СТАТИСТИЧЕСКИЙ АНАЛИЗ ТЕКСТОВ КАК СРЕДСТВО АВТОМАТИЧЕСКОГО ПОСТРОЕНИЯ МОРФОЛОГИЧЕСКОЙ МОДЕЛИ ЯЗЫКА
Н. Н. Синельников
Новосибирский государственный университет
moonlight@novosoft.ru
Ключевые слова: адаптивный морфологический анализ, морфология, статистический анализ.
В данном докладе описывается использование статистического анализа текстов как составной части комплекса адаптивного морфологического анализа. Комплекс предназначен для максимально правдоподобной обработки текстов как можно более разнообразного лексического состава, а также содержащих искажения. Статистический анализ, построенный над уровнем морфологического анализа, играет ключевую роль как в первоначальной настройке комплекса, так и в рабочем режиме. В свою очередь, результаты статистического анализа используются морфологическим, что обеспечивает адаптивность всего алгоритма.
В данном докладе описывается использование статистического анализа текстов как составной части комплекса адаптивного морфологического анализа.
Исходной задачей, из которой родилась эта проблема, было создание морфологического анализатора, способного работать с неподготовленными и, возможно, содержащими неправильности текстами как можно более разнообразного лексического состава. Под морфологическим анализатором здесь понимается программный блок, принимающий на входе текст и превращающий его в цепочку элементов, соответствующих словам исходного текста, где каждый элемент описывает морфологическую структуру и грамматические характеристики соответствующего слова. Очевидно, что такая постановка задачи исключает решение о простом задании поддерживаемой лексики в виде списка, ставящего в соответствие словам результат их обработки, в связи с возникновением двух проблем.
Первая из них связана с самим характером языкового материала. Как известно, особенностью реальных живых языков является то, что функция распределения слов по периодичности использования является практически однородной, то есть, к примеру, в языке будет пять слов, период вхождения которых будет составлять от пяти до десяти, и пятьсот слов с периодом вхождения от пятисот до тысячи, и спад этой функции происходит чрезвычайно медленно (закон Ципфа). Это приводит к тому, что подход с заданием поддерживаемых слов в виде списка пригоден только для подмножеств языка, обладающих небольшим количеством элементов, то есть, к примеру, для специализированной лексики. В то время, как мы можем перечислить все слова в каком-либо одном тексте или наборе текстов одной тематики, при попытке перечислить все слова языка мы столкнемся с проблемой – такой список будет большим до такой степени, что его невозможно будет поддерживать, и в то же время большинство слов в нем будут исключительно редко используемыми. Кроме того, предусмотреть все используемые слова просто невозможно – хотя бы потому, что язык постоянно изменяется и вводит новые слова. В то время как люди, говорящие на этом языке, испытывают очень мало проблем с такими словами, так как даже новые слова используют ту же самую систему словообразования и словоизменения, система с „перечислением“ столкнется с непреодолимыми трудностями.
Второй проблемой является то, что невозможно найти абсолютно правильный текст в электронном виде. Наиболее распространенными орфографическими неправильностями являются пропуск комбинационных символов (к примеру, написание ё как е), пропуск знаков препинания в словах, имеющих их в своем составе (например, пропуск точек в аббревиатурах), слитное написание отдельных слов или, наоборот, разбиение слов на части пробелами и дефисами, а также неправильное использование лигатур в языках, которые их применяют (как, например, французский). Этот тип неправильностей может быть автоматически исправлен блоком коррекции ошибок, по большому счету не имеющим отношения к морфологии, и мы на нем останавливаться не будем. Но, кроме того, существуют неправильности другого рода – ошибки словообразования, примером является использование knowed вместо knew или goed вместо went. И, наконец, существуют тривиальные опечатки. Как легко понять, такие неправильности формализации не поддаются, и для работы с ними нужны другие методы.
Частичным решением обеих проблем является хранение не списка слов, а морфологической модели языка, то есть списка морфем и правил их композиции, и использование алгоритма, собирающего слова из морфем по этим правилам. Морфем в любом языке, как правило, значительно меньше, чем слов, так что объем информации, которую нужно хранить для опознания всех возможных правильных словоформ, при этом резко уменьшается. Кроме того, такой подход позволяет также опознавать слова с ошибками словообразования. Но это решение все еще является неудовлетворительным. Во-первых, создание базы данных морфем остается весьма трудоемкой задачей, которую было бы желательно упростить. Во-вторых, этот подход по-прежнему страдает от двух из упомянутых проблем – точно так же, как нельзя предугадать все используемые слова из-за изменчивости языка, по той же причине нельзя предугадать все используемые морфемы, а в тексте с опечатками мы встретим искаженные словоформы, которые невозможно предусмотреть в принципе. И именно здесь на сцену выходит статистический анализ.
Под статистическим анализом понимается нахождение правильных моделей словоизменения и грамматических характеристик слов из текста, содержащего ошибки, исходя из того соображения, что правильная модель изменения будет встречаться в тексте чаще, чем неправильная. Возможность применения статистического анализа связана со следующими свойствами морфем [1]:
- a) Количество корней в каждом языке намного (в 100 раз и больше) превосходит количество аффиксов;
- b) Аффиксы, в отличие от корней, образуют закрытое множество, пополнение которого происходит крайне редко;
- c) Аффиксы специализированы для выражения грамматических характеристик слова;
- d) Сочетаемость аффиксов, в отличие от сочетаемости корней, определяется почти полностью внутрилексемными факторами.
Эти свойства позволяют нам задать вручную только аффиксы языка и, исходя из их свойств, попытаться выделить корни автоматически. Например, предположим, что мы анализируем русский текст и все слова, производные от „дом“, неизвестны системе. В тексте встречаются все падежные формы слова „дом“ и наречие „домой“. На основании того, что неизвестные слова имеют один и тот же предположительный корень, всегда связанный с падежными окончаниями существительных, системой будут выдвинуты гипотезы о том, что имеется в виду либо слово „дом“ – существительное мужского рода, либо слово „дома“ – существительное женского рода. Модели склонения этих существительных будут почти совпадать – разницей будут формы „домом“ и „домов“ в случае мужского рода и формы „домы“ и „домой“ в случае женского. В тексте форма „домы“, как правило, встречаться не будет, следовательно, если формы „домом“ и „домов“ будут встречаться чаще, чем наречие „домой“, победит гипотеза о мужском роде существительного „дом“, и форма „домой“ будет признана отдельным словом, не имеющим падежных окончаний. Как отсюда видно, статистическому анализу подвергается не сам исходный текст, а продукт его морфологического разбора.
В описываемой программной системе статистический анализ используется, во-первых, при предварительном построении морфологической базы данных, и, во-вторых, в рабочем режиме алгоритма адаптивного морфологического анализа.
Построение морфологической базы данных является итеративным процессом: после начальной конфигурации базы данных аффиксов на вход системы подается некоторый набор текстов, система пытается определить структуру и характеристики каждого слова и выдает получившийся список на подтверждение оператору. После этого выполняется второй проход по тексту, и так далее. При каждом последующем проходе постепенное заполнение базы данных корней приводит к более полному использованию алгоритма коррекции ошибок, что снижает количество ложных опознаваний. Как иллюстрацию можно привести пример работы системы с текстом, изобилующим переносами строк: на первом проходе половинки перенесенных слов будут опознаны как отдельные слова, но при последующих проходах половинки слов, корни которых были опознаны и внесены в базу данных на предыдущих этапах, будут склеены алгоритмом коррекции ошибок и не породят ложных слов. Важно, что таким образом роль оператора при построении базы данных сводится большей частью к простому подтверждению или неподтверждению гипотез системы, что приводит к значительному уменьшению трудоемкости процесса.
Адаптивный морфологический анализ является динамической версией вышеописанного алгоритма, в котором база данных корней предполагается заведомо неполной и пополняется прямо по ходу обработки текста. Если в некотором тексте встречаются слова, неизвестные системе (к примеру, специализированная лексика или слова с устойчивыми опечатками), статистический анализ поможет определить грамматические характеристики этих слов с достаточной степенью уверенности, после чего корни этих слов будут автоматически внесены в базу данных и использованы при дальнейшей работе. Таким образом, в адаптивном морфологическом анализе статистика и морфология используют результаты друг друга. Даже если смысл самого слова остается неизвестным системе, определение части речи, к которой оно принадлежит, позволяет облегчить дальнейшую обработку текста и повысить ее качество.
Алгоритм статистического анализа рассчитан на опознание неизвестных словоформ, строящихся только по общим правилам, то есть такие слова, как „knew“, не будут опознаны в автоматическом режиме и должны будут быть введены оператором в базу данных вручную. Такое решение связано, во-первых, с желанием уменьшить количество возможных неоднозначных интерпретаций слов, а, во-вторых, с тем, что слова, образующиеся не по общим правилам, образуют закрытое множество с ограниченным количеством элементов, в то время как задачей статистического анализа является опознание новых слов, отсутствующих в базе данных. Алгоритм также не рассчитан на нахождение неправильностей в тексте, так как он должен пытаться распознавать даже искаженные слова, что практически эквивалентно попытке распознания даже произвольных последовательностей символов. Таким образом, например, русское слово „ночезападный“, бессмысленное с точки зрения носителя языка, будет тем не менее воспринято алгоритмом анализа как абсолютно законное. И, наконец, этот алгоритм применим только к языкам, имеющим аффиксы.
Созданная опытная версия статистического анализатора для английского языка показала, что этот подход действительно позволяет с высокой точностью идентифицировать корни слов и определять их часть речи (так, было идентифицировано около 70% всех глагольных корней уже на первой итерации, а около 5% слов, идентифицированных как глаголы, настоящими глаголами не были), причем большая часть ошибок была вызвана недостаточным количеством статистического материала (было проанализировано 160 MB текстов) и неполным предварительным описанием правил композиции. Например, анализатор не воспринял как глагол слово "abut", так как его причастия настоящего и прошедшего времени удваивают корневую согласную, а об этом явлении анализатор не знал. Из 5% неправильных глаголов большая часть была настоящими глаголами, подвергнувшимися действию устойчивых опечаток, и только 2% не были глаголами вообще. Так, например, среди опознанных глаголов было слово accomodate, так как в одном из проанализированных текстов оно постоянно писалось через одну m (правильно через две), что иллюстрирует применимость адаптивного алгоритма. В настоящее время создается полная версия адаптивного морфологического анализатора, применимая к русскому языку.
Литература
- Мельчук И. А. Противопоставление корней и аффиксов // Курс общей морфологии, Т. IV. М., Вена: Языки славянской культуры, 2001. С. 69-79.
Statistical analysis of texts as a means of automatic composition
of morphological models for languages
Nikolay Nikolayevich Sinelnikow
Keywords: adaptive morphological analysis, morphology, statistical analysis.
This report describes the use of statistical analysis of texts as a component of adaptive morphological analysis algorithm. The purpose of the algorithm is to attempt to perform morphological analysis on texts of the most varied lexical composition even if they contain distortions. Statistical analysis, which is built on top of morphological analysis, plays the key role both in initial tuning of the system and in the operating mode. In their turn, the results of statistical analysis are used by the morphological layer, which imparts adaptability to the algorithm.