Как получить все возможные слова из данного словаря hunspell?
Я хотел бы разобрать открытый офис, поддерживающий отформатированный hunspell aff
а также dic
файлы.
английский aff
а также dic
файлы можно скачать отсюда, например: http://extensions.openoffice.org/en/project/english-dictionaries-apache-openoffice
Я хочу отсканировать каждую строку данного .dic
файл и генерировать каждое возможное слово каждой строки с предоставленным .aff
файл
Как я могу это сделать?
Я установил платформу NHunspell, но у нее нет этой функции: https://www.nuget.org/packages/NHunspell/
Например, для английского языка давайте рассмотрим
make/UAGS
сделать можно make, made, makes, making
так далее
Теперь мне нужен парсер, чтобы дать мне все эти комбинации. Как я могу получить их? Ты очень
В общем, я хочу просмотреть каждую строку словаря и сгенерировать все возможные слова из слова этой строки, и я не знаю, как я могу это сделать
Я также могу написать свои собственные парсеры, но мне кажется, что правила довольно сложные, и нет подробной и простой документации по этому поводу.
Вот что я хочу в принципе. Изображение объясняет очень четко
дающий analyze/ADSG
, en.dic
а также en.aff
файл и получение всех следующих слов
analyze, analyzes, analyzing, analyzed, reanalyze, reanalyzes, reanalyzing, reanalyzed
2 ответа
Если вам нужна вся база данных, вы можете выполнить unmunch
:
unmunch dictionary.dic dictionary.aff
Обратите внимание, что текущая реализация unmunch в hunspell имеет ограничение на максимальное количество слов, affs и длину сгенерированных слов. Таким образом, unmunch может потерпеть неудачу, если целевой язык выходит за пределы unmunch.
Если вам нужен только список возможных слов, которые могут быть сгенерированы из записи, вы можете использовать wordforms
:
wordforms dictionary.aff dictionary.dic word
Как отметил Картал Табак, вам нужны инструменты командной строки и , которые распространяются вместе с Hunspell. Ноwordforms
рассчитан только на один стебель, иunmunch
очень глючный. См. этот ответ для альтернатив.
Более того, похоже , что Hunspell не предоставляет эту возможность как библиотечные функции. Если вы хотите использовать эту функцию программно (как вы упомянули C# и NHunspell), вам, вероятно, потребуется создать эти внешние программы и проанализировать их выходные данные.