Что хранить в словарях?
Для многих языков, например английского или русского, морфологи- ческий анализ и синтез удобно проводить с помощью заранее созданных словарей, в которых тем или иным способом задан список базовых форм слов и всех соответствующих им словоформ. Например, в словаре должна храниться лемма (базовая форма) глагола решать с указанием ее основы реша- и со ссылкой на другую базу, где хранятся все варианты концовок для этого слова и указанием их грамматических форм:
-л — 3-е лицо, единственное число, мужской род, прошедшее время;
-ла — 3-е лицо, единственное число, женский род, прошедшее время;
-ю — 1-е лицо, единственное число, настоящее время и т. д.
В школьной грамматике основой считается часть слова без оконча- ния. В большинстве случаев она не меняется при грамматических измене- ниях самого слова — так ведет себя, например, основа слон в словофор- мах слон, слону, слонами, слонов. Но в некоторых словах основа может изменяться. Например, для словоформ день, дню и дне основами будут ден-, дн- и дн-, такое явление называется чередованием. Поэтому самый популярный на сегодня подход использует псевдоосновы (или машин- ные основы). Это неизменяемые начальные части слов. Для слова день такой неизменяемой частью будет д-. А оставшиеся концы — псевдо- флексии — могут заноситься в дополнительные таблицы или храниться как-то иначе. Каждой псевдофлексии присваивается набор грамматиче- ских значений. Так, -ень будет обозначать единственное число и имени- тельный падеж для упоминавшийся псевдоосновы д-.
Формы некоторых слов могут образовываться от разных корней. На- пример, у слова ходить есть форма шел. Это называется супплетивизмом. В таких случаях, если не придумать какое-нибудь другое решение, псев- дооснова получается нулевая, и все слово превращается в псевдофлексию. В русском языке супплетивизм и чередования очень распространены, по- этому псевдоосновы часто получаются очень короткими, а псевдофлексии
Если в главном словаре анализатора хранятся леммы — основные формы слов с указанием основы, то такой подход называют лемматиза- цией (lemmatization). Ему противопоставляют стемминг (stemming) — подход без использования словаря основ. В стемминге есть только прави- ла обрабатывания суффиксов и, возможно, небольшие словари исключе- ний. Существует бесплатный инструмент для написания стеммеров — Snowball. Он разработан для 20 языков, в том числе и для русского, и мо- жет быть реализован на многих языках программирования. Но для русско- го языка стемминг работает гораздо хуже, чем лемматизация.
Современные модули морфологического анализа для распространён- ных языков используют словарные базы данных объемом не менее 100 тысяч базовых форм слов. Вся русская морфология чаще всего базируют- ся на грамматическом словаре А. А. Зализняка [Зализняк 1977]. Он был впервые издан в 1977 году и с тех пор неоднократно переиздавался. В данный момент в сети доступны отсканированные страницы этого словаря и различные базы данных, построенные на его основе. Бумажный словарь содержит систематизированное описание 100 тысяч слов с указанием осо- бенностей их словоизменения.
Чем больше компьютерный словарь, тем лучше, однако всегда можно найти слова, которых в словаре не окажется: это могут быть новые слова, узкоспециализированные термины, жаргонизмы, слова с опечатками. Для них необходима система предиктивного анализа.
Далее мы рассмотрим некоторые доступные модули для морфологи- ческого анализа русского языка. Они различаются составом и объёмом словаря, скоростью поиска по нему, набором тегов, обозначающих грам- матические признаки, способом обработки несловарных слов и наличием дополнительных функций (например, ранжированием гипотез или сняти- ем неоднозначности с учётом контекста). Кроме этого, различаются юри- дические условия их использования (лицензия, указывающая, в частности, разрешено ли использование в коммерческих целях), доступность исход- ного кода модуля, возможность пополнения словаря новыми словами, не привлекая к этому разработчиков. Существуют также разные варианты технического оформления модуля: отдельная программа, библиотека для языка С/C++, модуль для языка Python и т. д.
Морфологические модули АОТ
Рабочая группа АОТ (Автоматическая обработка текста, руководитель
А. В. Сокирко) выкладывает свои разработки в свободный доступ на- чиная с 2002 года. Их библиотеки можно использовать бесплатно даже в коммерческих проектах. Проект включает в себя модули для проведения графематического, морфологического, синтаксического и семантического
анализа. Разработчики реализовали снятие морфологической неоднознач- ности с использованием скрытых марковских моделей и синтаксический анализатор именных групп [Сокирко, Толдова 2005].
Модуль морфологического анализа АОТ реализован в виде библиоте- ки на языке C++ и сопровождается программой-редактором словарей (MorphWiz), позволяющей в удобном интерфейсе просматривать содержи- мое морфологического словаря, добавлять, удалять и исправлять описание слов.
Морфология в проекте АОТ включает в себя словари для русского (174 тысячи лемм), английского (104 тысячи лемм) и немецкого (218 ты- сяч лемм) языков. За основу русского морфологического словаря был взят грамматический словарь Зализняка. Все три словаря записаны в одинако- вом формате, а поиск по ним осуществляется одним и тем же программ- ным кодом. Демонстрационный интерфейс поиска по морфологическому словарю развернут на сайте проекта АОТ.
Морфологический модуль (включающий библиотеку LemmatizerLib) обрабатывает словоформы по отдельности и не учитывает их контекст. Результатом анализа словоформы является набор морфологических гипо- тез, каждая из которых включает следующие данные:
флаг словарности, который показывает, основана ли гипотеза на сло- варной лемме или сгенерирована предиктивным алгоритмом.
набор неизменяемых грамматических признаков (граммем), например одушевленность существительного или вид глагола;
текстовая строка, представляющая лемму (аношкинские коды, о кото- рых будет сказано чуть ниже);
Достарыңызбен бөлісу: |