Авт. обработка текстов на естественном языке и комп. лингвистика. Большакова (2014) (1185448), страница 36
Текст из файла (страница 36)
К неполной омонимии можно отнести слова, укоторых совпадают лишь некоторые формы. Это, например, «закапывать»,происходящее от слов «закапать» и «закопать», или приведенное выше «стекло».Выделяют и более частные явления. Так, полисемией называется свойство словупотребляться в разных значениях. В теоретической лингвистике считается, что словаполисемичны, если они сохранили некоторую логическую связь между собой:существуют некоторые аналогии, ассоциации, не потеряны исторические корни.
Так,например, слово «ядро», как нечто центрообразующее, считается полисемичным111(пушечное ядро, ядро ореха, ядро армии), тогда как «коса» будет омонимичной (хотяи здесь можно найти общее – нечто тонкое и вытянутое). Кроме того, слова могутбыть омоформами друг друга, если у них совпадают одно или несколько написаний,или омографами, когда у них совпадают написания, но различаются произношения(«зáмок» vs «замóк»).Рассмотрев то, над чем работает морфология, перейдем к тем методам, спомощью которых она реализуется. Различают два вида морфологических словарей:словарные и бессловарные.
Словарная морфология предполагает наличие словаря, вкотором каждой словоформе сопоставлены нормальная форма и набор параметров.Т.е. у нас хранится полный словарь слов, и мы не можем проанализировать илипросинтезировать слова, отсутствующие в словаре. Самым простым решениемпроблемы создания морфологического словаря является таблица, в которой в первойколонке будет записана словоформа, во второй – нормальная форма, а в третьей –набор параметров.Для морфологического анализа в таком словаре необходимо просто найти всесоответствующие словоформы и выдать найденные результаты. Для синтезатребуется найти заданную нормальную форму с требуемым набором параметров ивыдать словоформу, находящуюся в той же строке (Рис.
2.1).Однако при подобном подходе очень велики накладные расходы. Еслипредположить, что среднее слово будет занимать 8 байт, среднее количествопараметров положить равным 4 и для обозначения параметров использовать 8 байт,то с частью речи одна запись в среднем будет занимать 48 байт. Предположим, чтодля каждой нормальной формы у нас имеется 8 словоформ. Тогда морфологическийсловарь объемом 100 тыс. слов будет занимать 36,6 Мб. Однако это весьмаоптимистические предположения.
Так, 8 словоформ были взяты просто потому, чтоэто круглая цифра. В русском языке существительные имеют 12 форм, априлагательные – 24; с другой стороны, наречия и предлоги имеют всего одну форму,но их количество уступает количеству тех же существительных. Максимальноеколичество словоформ может превышать 300 (если мы считаем деепричастия ипричастия формами глагола), и среднее количество в этом случае составит около 25форм на парадигму. На практике потребуется также место для индексов, в случаереляционной таблицы придется зарезервировать место не под среднюю длину слова, амаксимальную и т.д. В итоге словарь в 100 тыс. слов (чего не достаточно для анализатекстов широкой тематики) будет содержать порядка 2–2,5 млн.
входов против 800тыс., которые были взяты для расчета. В связи с этим объем занимаемой памятиможет вырасти на порядок – до 256 Мб без учета индексов. Кроме того, и времяпоиска будет пропорционально логарифму от объема базы, умноженному на среднююдлину слова.Выходом может служить переход к дереву. Анализ словоформы в таком случаепроводится побуквенно, начиная от корня дерева. В каждом узле хранится массивуказателей на следующую вершину, причем каждый указатель отвечает за своюбукву. Решение в лоб заключается в том, чтобы в каждом узле хранить массив длинойв размерность алфавита языка.
Однако для русского языка для хранения всехпоследовательностей из 8 букв потребовалось бы более 46 млрд указателей. Большаячасть таких вариантов будет отсеяна, так как, например, в русском языке нет слов,начинающихся на твердый или мягкий знак. Кроме того, массивы будут заполненыплотно только близко к корню дерева.
Ближе к листовым вершинам массивы112становятся сильно разрежены. Это свойство можно использовать и после 2-4 уровнейхранить два массива. Первый массив хранит список букв, для которых имеютсяуказатели, а второй массив – собственно указатели в соответствующих ячейках.Кроме того, часть постфиксов слов будут уникальны для данной ветви и будутпредставлять собой линейную цепочку, то есть их можно хранить в виде строки, а непоследовательности вершин дерева. На Рис. 2.2 показан пример дерева префиксов.мама, ж.р., одуш.,ед.ч., им.п.Анализмамы, ж.р., одуш.,ед.ч., р.п.маме, ж.р., одуш.,ед.ч., д.п.маму, ж.р., одуш.,ед.ч., в.п.мамой, ж.р., одуш.,ед.ч., т.п.Синтезмамемаме, ж.р., одуш.,ед.ч., пр.п.мамы, ж.р., одуш.,мн.ч., им.п.мамахмама, ж.р., одуш.,ед.ч., д.п.мам, ж.р., одуш.,мн.ч., р.п.мамам, ж.р., одуш.,мн.ч., д.п.мам, ж.р., одуш.,мн.ч., в.п.мама, ж.р., одуш.,мн.ч., пр.п.мама, ж.р., одуш.,ед.ч., пр.п.мамами, ж.р., одуш.,мн.ч., т.п.мамах, ж.р., одуш.,мн.ч., пр.п.Рис.
2.1. Пример табличного морфологического анализа и синтезаКроме того, традиционно раздельно хранят деревья префиксов и постфиксов.Дело в том, что для большинства слов можно выделить неизменяемую часть –префикс – и набор постфиксов с привязанными к ним параметрами. Подобный наборпостфиксов будем называть парадигмой изменения слова. Заметим, что мы неупотребляем здесь слова «окончания», а именно постфикс, так как при изменениислова у него может появляться, исчезать или меняться не только окончание, но исуффикс.
Частым явлением является изменение корневой буквы. Ярким примеромявляется слово «идти», которое целиком попадет в изменяемый постфикс и будетиметь пустой неизменяемый префикс («идти» → «шел»). Кроме того, во многихсложносоставных словах меняется не только первое, но и второе слово. В этом случаев постфикс попадает вся часть слова, начиная с изменяемой части первого слова. Так,например, в фамилии Римский-Корсаков в постфикс попадет часть «ий-Корсаков».Можно заметить, что слова группируются по парадигмам. Парадигма – этомножество всех постфиксов и связанных с ними параметров для всех словоформданного слова.
Так, например, слова «лектор» и «завлаб» имеют одну парадигму. Мыможем хранить единственный набор ветвей в дереве постфиксов, сокращая темсамым занимаемый объем памяти.113А Б В Г Д Е Ё Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я… Е …… А …… Е …… К …… К Л М …… Т …… Т …… О …… О …… Р …… Р …Парадигма3… М …… М …Парадигма1Парадигма1Парадигма4Парадигма2Рис. 2.2. Фрагменты дерева префиксов для слов «вектор», «лектор», «мама»,«лемма»Заметим, что вопрос о совпадении парадигм зависит от воли проектировщика.Так, слова «лектор» и «вектор» ни в коем случае не попадут в одну парадигму, таккак будут иметь различные формы в винительном падеже.
Однако слова «мама» и«лемма» попадут или не попадут в одну парадигму в зависимости от того, учитываемли мы их одушевленность или нет. В первом случае парадигмы будут различными,так как для каждой формы слова «мама» будет прописан параметр «одушевленная»(хотя может существовать еще одно слово в морфологии, являющеесянеодушевленным и означающее материнскую плату – его парадигма совпадет спарадигмой слова «лемма»), тогда как для слова «лемма» будет приписан параметр«неодушевленная». Во втором случае этих различий не будет, и слова будутпринадлежать одной парадигме.Конечная вершина дерева префиксов должна содержат информацию о том, какойпостфикс или набор постфиксов соответствует данному префиксу.
При этом указатель должен показывать на листовую вершину постфикса, в связи с тем, что развернуть его от корня будет несколько затруднительно. Заметим, что конечная вершинадерева префиксов не обязана быть листовой, так как в том месте, где закончиласьоснова одного слова, может продолжиться другое (например, «лук-ом» и«луков-ый»).Заметим, что листовые вершины представленного дерева сходятся в парадигмах.Кроме того, часть путей в дереве могут совпадать, в связи с чем можно перейти отдерева к графу, объединив совпадающие части в одну ветвь. Такой граф уже можноназвать конечным автоматом, так как для каждого перехода в нем определен символ,114по которому осуществляется переход.
Подобные и другие ухищрения позволяютсущественно сократить объем памяти, занимаемой морфологическим словарем.Морфологический анализ будет проходить следующим образом. Мы двигаемсяпобуквенно по строке, содержащей слово, перемещаясь при этом по деревупрефиксов. Изначально в качестве текущей вершины выбирается корень деревапрефиксов. Если переход из текущей вершины по очередной букве строкиотсутствует, то разбор заканчивается. Если достигнута вершина, помеченная какконечная, то проводится проверка постфикса.
При этом мы двигаемся по деревупостфиксов от листовой вершины к корню. Если корень был успешно достигнут, тоинформация из парадигмы изменения слова переносится в результат. Если в деревепрефиксов не была достигнута листовая вершина, то движение по немупродолжается. В случае, когда множество результатов оказалось пустым, сообщаем онеуспешном анализе. В противном случае возвращаем множество результатов.Скорость анализа будет пропорциональна длине слова, а не объему словаря.Для дерева постфикса возможен и другой вариант хранения. В этом случае мыхраним префикс не с конца, а с его начала (движение будет производиться от корнядерева к листовым вершинам).
При этом вершины деревьев префиксов и постфиксовхранят номер парадигмы. В этом случае, проведя анализ префикса, мы начинаемпоиск постфикса от корня дерева. Если в конце слова была достигнута вершина с темже номером парадигмы, что и в дереве префиксов, то слово считается успешнонайденным.Следует заметить, что скорость работы морфологического анализа будет сильнозависеть от задач, которые перед ним ставятся. Так, например, если у нас имеетсяпоисковая система, задача которой найти все вхождения данного слова в документах,вне зависимости от формы слова, то нам вполне достаточно вернуть лишьнормальную форму слова. Если мы хотим ранжировать поиск в зависимости отсовпадений морфологических параметров, или, как в нашем случае, морфологическиепараметры будут входить в критерий оценки, то для добавления параметров крезультату и их обработки потребуется еще некоторое время.
Кроме того,морфологический анализ может хранить и семантическую информацию, добавлениекоторой к результату еще снизит скорость работы.Морфологический синтез будет осуществляться следующим образом. В индексенормальных форм находим все нормальные формы, для которых будет производитьсясинтез. Одной строке нормальной формы может соответствовать несколько слов сосвоими парадигмами, например, слово «кошка», имеющее одушевленную инеодушевленную формы, будет иметь разные постфиксы в винительном падежемножественного числа: «кошек» vs «кошки».