ооо!

БЛОГ разработчика

Подключение лемматизера.Начало работы


Я буду описывать работу с морфологией максимально просто. В моем случае – язык С#. Думаю, что в случае С или php можно действовать по аналогии, с поправкой на синтаксис вашего языка.
Прежде всего, чтобы работать с морфологией АОТ, нужно скачать библиотеку на сайте проекта www.aot.ru (или на SourceForge.net) и добавить ее в ваш проект. К проекту была подключен пакет LemmatizerNET. Он включается правым кликом на вкладке Reference (Ссылки) в Solution Explorere (Обозреватель решений), и выбирается Add Reference (Добавить ссылку)).



Теперь нужно подключить пакет (лемматизер) в коде программы:

LemmatizerNET.MorphLanguage lang = LemmatizerNET.MorphLanguage.Russian;

Мы создали объект lang, находящийся в пространстве имен подключенного лемматизера и присвоили ему выбранный язык.
Теперь нужно создать объект с интерфейсом ILemmatizer, т.е. собственно морфоанализатор:

LemmatizerNET.ILemmatizer lemma = LemmatizerNET.LemmatizerFactory.Create(lang);

Как уже было сказано, интерфейс ILemmatizer представляет собой собственно морфоанализатор, его методы позволяют:
  • работать со словарями, загружать их в память,
  • подключать файлы статистики
  • находить все слова с данной нормальной формой и помещать их парадигмы в коллекцию, указатель на которую и возвращает
  • находить все слова, которые могут иметь данную форму и помещать их парадигмы в коллекцию, указатель на которую и возвращает
  • создает объект IParadigm по уникальному идентификатору и возвращает указатель на него.
Также свойства данного интерфейса позволяют решать проблемы с возникшими неоднозначными значениями словоформы.

После этого нужно прописать путь к словарям:

LemmatizerNET.FileManager manager = LemmatizerNET.FileManager.GetFileManager(путь);

И инициализировать словари:

lemma.LoadDictionariesRegistry(manager);

Словари АОТ должны быть установлены на вашем компьютере. Особенности подключения словарей рассмотрены здесь. Также вы можете подключать файлы статистики для решения проблем с неоднозначностью:

lemma.LoadStatisticRegistry(LemmatizerNET.Subject.Literature, manager);

Нравится




Если вы считаете, что данные материалы как-либо нарушают ваши права, напишите нам