hunspell
Библиотека для проверки орфографии, морфологического анализа и генерации слов, основанная на словарях с правилами аффиксов. Она предоставляет инструменты для анализа структуры слов, проверки их корректности и предложения исправлений. Изначально созданная для венгерского языка, библиотека теперь поддерживает множество языков и используется в различных приложениях, включая офисные пакеты, браузеры и текстовые редакторы.
Особенности
- поддержка множества языков через загружаемые словари;
- морфологический анализ;
- генерация словоформ на основе заданной основы и аффиксов;
- проверка орфографии и предложение исправлений;
- поддержка пользовательских словарей и исключений.
Основные компоненты
Hunspell состоит из нескольких ключевых компонентов, которые обеспечивают все функции проверки орфографии и морфологического анализа (подробнее с документацией можно ознакомиться здесь).
Проверка орфографии
Библиотека предоставляет функции для проверки корректности слов на основе загруженного словаря. Проверка включает не только поиск слова в словаре, но и применение правил аффиксов для определения допустимых словоформ.
Основные функции проверки:
Hunspell_spell()— проверка, является ли слово корректным согласно словарю;Hunspell_suggest()— генерация списка предложений для исправления опечаток;Hunspell_suggest_auto()— автоматический выбор наилучшего исправления;- Поддержка составных слов и слов с дефисами для языков, где это допустимо.
Морфологический анализ
Hunspell выполняет морфологический анализ слов, разбивая их на основу и аффиксы. Это позволяет не только проверять орфографию, но и понимать структуру слова, что полезно для лингвистических приложений.
Функции морфологического анализа:
Hunspell_analyze()— возвращает морфологический разбор слова (список основ и аффиксов);Hunspell_stem()— извлечение основы (основ) из слова;Hunspell_get_dic_encoding()— получение кодировки словаря (например, UTF-8);- Поддержка нескольких вариантов разбора для омонимов.
Генерация словоформ
На основе заданной основы и правил аффиксов библиотека может генерировать допустимые словоформы. Это полезно для тестирования словарей, создания лингвистических ресурсов или расширения словарного запаса приложений.
Функции генерации:
Hunspell_generate()— генерация словоформ из основы и аффиксов;Hunspell_generate2()— генерация с учётом заданных флагов аффиксов;- Поддержка генерации всех возможных форм или только конкретных (например, множественного числа).
Работа со словарями
Hunspell загружает словари, состоящие из файлов с расширениями .dic (список слов и их флаги) и .aff (правила аффиксов). Библиотека позволяет управлять несколькими словарями одновременно, включая пользовательские словари.
Функции управления словарями:
Hunspell_constructor()/Hunspell_destructor()— создание и уничтожение экземпляра Hunspell с загрузкой словаря;Hunspell_add_dic()— добавление дополнительного словаря;Hunspell_add()— добавление слова в пользовательский словарь (во время выполнения);Hunspell_remove()— удаление слова из пользовательского словаря;Hunspell_add_with_affix()— добавление слова с указанием примера для наследования аффиксов.
Обработка текста и кодировок
Библиотека корректно работает с различными кодировками текста, включая Unicode (UTF-8), что позволяет поддерживать множество языков. Внутренние преобразования обеспечивают совместимость между разными кодировками словарей и входного текста.
Функции обработки текста:
- Автоматическое определение кодировки словаря;
- Конвертация входного текста во внутреннюю кодировку при необходимости;
- Поддержка работы с UTF-8 как основной кодировкой в современных версиях;
- Функции для нормализации текста (например, приведение к нижнему регистру с учётом языка).