Как я могу создать список слов, которые фонетически звучат одинаково для одного входного слова? - PullRequest
3 голосов
/ 02 февраля 2012

Когда вы неправильно пишете слово в Google (например, "appples"), оно предлагает вам знакомое предложение "Вы имели в виду: яблок ".

ИсключаяСпособность Google угадывать ваши намерения на основе релевантности результатов поиска. Как мне составить список слов, которые звучат одинаково?

Слова не обязательно должны быть английскими и не должны существовать.Так, например, если я введу «дыру», я получу список, включающий такие слова, как: «весь», «привет», «шлюха», «роль», «моляр» и т. Д.

Я предполагаю, что в Интернете может быть что-то, что может разработать этот список, но я не смог ничего найти.Если сайта нет и если это можно сделать с помощью Perl, есть ли модуль CPAN, который может помочь мне сделать это?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2012

Если вы действительно ищете слова, которые звучат одинаково, а не только поисковые подсказки - вы можете посмотреть на фонетические алгоритмы. Soundex и Metaphone / Double Metaphone - это два очень распространенных варианта, и есть реализации каждого из них на любом популярном языке.

Эти алгоритмы сокращают слово до «ключа», который указывает на его произношение. Если вы взяли набор слов для запуска и построили структуру данных, сопоставляющую эти ключи со словами, которые оценивают их, - вы можете взять произвольную строку, оценить ее до ее «ключа», а затем найти другие слова, которые оцениваются на то же введите структуру данных (возможно, хеш-таблицу списков или аналогичную).

Это не идеально, потому что вам нужно найти большой набор слов, чтобы заполнить ваш набор данных, но это сработает.

С другой стороны, если вам просто нужны поисковые подсказки / альтернативные варианты написания, есть более простые способы сделать это.

Надеюсь, это было полезно.

2 голосов
/ 02 февраля 2012

Вы можете начать с изучения модуля Text :: Soundex.Это простой алгоритм, который отображает слова в 4-байтовые коды.Я давно вытащил Soundex из Седжвика (бывшего Кнута), использовал его для генерации более длинных ключей (не усеченных) и предложил списки исправлений для замены на 0 и 1 букву.Я применил это к большим базам данных переписи и почтовых данных.

...