Как получить все возможные слова из данного словаря 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), вам, вероятно, потребуется создать эти внешние программы и проанализировать их выходные данные.

Другие вопросы по тегам