Создать список слов с похожим написанием - PullRequest
0 голосов
/ 12 июня 2018

Учитывая слово (английское или неанглийское), как я могу составить список слов (английский или неанглийский) с похожим написанием?

Например, учитывая слово 'sira', некоторыепохожие слова:

  • сирра
  • сейра
  • сиара
  • сайра
  • шира

Я бы предпочел, чтобы это было на многословной стороне, то есть оно должно генерировать как можно больше слов.

Желательно на Python, но код на любом языке полезен.

Австралийский бизнесRegister ABN lookup tool (инструмент, который находит регистрационные номера предприятий по ключевым словам поиска) хорошо справляется с этой задачей.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

То, что вы ищете, предоставлено ispell (и семейством) словарей.Относительно простой интерфейс через библиотеку hunspell.

Фактические данные (словари), которые вы можете загрузить отсюда (среди других мест, например, на страницах плагинов OpenOffice).).

Существует интерфейс для получения ряда похожих слов на основе расстояния редактирования, предложенного в комментарии.Следуя примеру с GitHub:

>>> import hunspell
>>> hobj = hunspell.HunSpell('/usr/share/hunspell/en_US.dic', '/usr/share/hunspell/en_US.aff')
>>> hobj.spell('spookie')
False
>>> hobj.suggest('spookie')
['spookier', 'spookiness', 'spook', 'cookie', 'bookie', 'Spokane', 'spoken']
0 голосов
/ 12 июня 2018

Для поиска в базах данных используйте "LIKE"

Требуемый запрос:

SELECT * FROM `testTable` WHERE name LIKE "%s%i%r%a%
...