11 Часть I. Компоненты 14 Глава Компьютерная



бет16/197
Дата19.03.2022
өлшемі4,29 Mb.
#136225
түріЛитература
1   ...   12   13   14   15   16   17   18   19   ...   197
Байланысты:
nikolaev is mitrenina ov lando tm red prikladnaia i kompiute
Латын тілі 4,5 - дәріс 2, 169-182 фил, Вопросы на русском языке, 6 үж

часть речи;

  • множество наборов изменяемых грамматических признаков (грам- мем) для данной словоформы, по набору для каждого варианта лем- матизации, например число существительного, род прилагательного и пр.

    На рис. 1 показаны наборы граммем всех возможных форм для слова
    «МЫЛА» представлены в виде их объединения (рд, ед U им, мн U вн, мн
    = вн, рд, им, ед, мн).





    Рис. 1
    Перечень всех использующихся в проекте АОТ частей речи и грам- мем представлен на странице проекта. Уникальный двухбуквенный иден- тификатор, соответствующий некоторой комбинации значений селектив- ных признаков и граммем, называется аношкинским кодом или анкодом. Например, коду аа соответствует комбинация граммем «С,мр,ед,им», а коду аб — «С,мр,ед,рд». Список всех возможных анкодов (сочетаний граммем), использующихся библиотекой LemmatizerLib, содержится в файлах {r,e,g}gramtab.tab (для русского, английского и немецкого языков).
    Модель словоизменения в системе АОТ может порождать маловеро- ятные (или ошибочные) словоформы. Например, возможно порождение форм сравнительной степени прилагательных и форм на «по-», образо- ванных на основе форм сравнительной степени, в тех случаях, где эти формы не кажутся естественными: «призывнОй» — «призывнЕе»* —
    «попризывнЕе»*, «столОвый» — «столОвее»* — «постолОвее»* и т. д. Лишние формы не являются проблемой при анализе текста, однако могут вызвать сложности при постановке слова или словосочетания в указанную форму.
    С технической точки зрения лингвистические анализаторы проекта АОТ спроектированы так, чтобы их было удобно использовать изнутри других программ: библиотека на C++ LemmatizerLib, COM-интерфейс Lemmatizer и .Net интерфейс LemmatizerNet. Для обработки одного тек-

    стового файла существует программа FileLem. Готовые к использованию модули и программы доступны на сайте проекта по адресу http://aot.ru/download.php.


    На настоящий момент работа над лингвистическими модулями про- екта АОТ продолжается, и морфологический словарь пополняется новыми словами.


      1. Морфологический анализатор Pymorphy2 и словарь проекта OpenCorpora

    Словарная база проекта АОТ была использована в других разработ- ках, среди которых морфологический анализатор pymorphy на языке Python и морфологический словарь проекта OpenCorpora. С содержатель- ной точки зрения pymorphy — это реализация алгоритмов морфологиче- ского анализа, описанных в документации проекта АОТ, на языке Python с поправкой на внутреннее представление данных (в АОТ используется ко- нечный автомат, в pymorphy — таблицы пар ключ-значение). Последняя версия анализатора была выпущена в 2011 году, и с тех пор разработка и исправление ошибок в pymorphy остановлены.
    С 2012 года ведущий разработчик проекта pymorphy Михаил Коробов начал работу над новым проектом — pymorphy2, в котором заново реали- зованы хранение словаря и поиск по нему. В качестве словаря в этой сис- теме используется словарная база проекта «Открытый корпус».
    Так же как и морфологический анализатор АОТ, pymorphy2 обраба- тывает словоформы независимо друг от друга. В качестве результата он возвращает набор гипотез, каждая из которых является возможной морфо- логической интерпретацией заданной словоформы. Рассмотрим пример из документации по pymorphy2:

    >>> morph.parse('стали')


    [Parse(word='стали', tag=OpencorporaTag('VERB,perf,intr plur,past,indc'), normal_form='стать', score=0.983766, methods_stack=((, 'стали', 884, 4),)), Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn sing,gent'), normal_form='сталь', score=0.003246, methods_stack=((, 'стали', 12, 1),)), Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn sing,datv'), normal_form='сталь', score=0.003246, methods_stack=((, 'стали', 12, 2),)), Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn sing,loct'), normal_form='сталь', score=0.003246, methods_stack=((, 'стали', 12, 5),)),

    Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn plur,nomn'), normal_form='сталь', score=0.003246, methods_stack=((, 'стали', 12, 6),)), Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn plur,accs'), normal_form='сталь', score=0.003246, methods_stack=((, 'стали', 12, 9),))]


    В этом примере pymorphy2 предложил шесть вариантов анализа сло- воформы стали. Первый вариант — это форма глагола стать. Остальные пять вариантов связаны с существительным сталь в единственном (sing) и множественном (plur) числе в родительном (gent), дательном (datv), пред- ложном (loct), именительном (nomn) и винительном (accs) падежах


    В pymorphy2 реализован предиктивный морфологический анализ для слов, которых не удалось найти в словаре. В следующем примере анализа- тор обработал слова бутявковедами, правильно определил его базовую форму бутявковед и понял, что это одушевленное существительное (NOUN,anim) мужского рода (masc), в форме множественного числа (plur) и творительного падежа (ablt):

    >>> morph.parse('бутявковедами') [Parse(word='бутявковедами', tag=OpencorporaTag('NOUN,anim,masc plur,ablt'), normal_form='бутявковед', score=1.0, methods_stack=((, 'бутявковедами', 51, 10), (, 'едами')))]


    В pymorphy2 также предусмотрена возможность постановки слов в начальную форму, произвольную форму по указанным граммемам и со- гласования существительного с заданным числительным.


    Морфологический словарь проекта OpenCorpora, использующийся в pymorphy2, является побочным результатом работы над аннотированным Открытым корпусом текстов на русском языке OpenCorpora. В его размет- ке каждому слову сопоставляется не только набор граммем, описывающих его форму, но и номер леммы в морфологической базе данных. Морфоло- гический словарь OpenCorpora основан на словаре АОТ и полностью его включает. Набор граммем для этого словаря был разработан заново, после чего словарь АОТ был автоматически преобразован в новый формат. Сло- варь OpenCorpora продолжает вручную пополняться словами, которые были встречены в текстах корпуса. На момент написания этой книги ко- пия словаря со свежими дополнениями ежедневно публикуется на сайте проекта в текстовом формате и в формате XML. Проект OpenCorpora не имеет своего модуля морфологического анализа, pymorphy2 пока является

    единственным инструментом, который использует словарную базу Откры- того корпуса.




      1. Анализатор Mystem

    Морфологический анализатор mystem — это внутренняя разработка компании Яндекс, и его исходный код недоступен. Бинарные сборки про- граммных модулей mystem для Windows, Mac OS и Linux опубликованы на сайте Яндекса. Первая версия mystem была разработана Ильёй Сегало- вичем и Виталием Титовым. На данный момент в свободном доступе на- ходится третья версия, в состав которой включён модуль снятия частереч- ной омонимии. Неоднозначность между разными формами одного и того же слова не снимается.


    Без снятия омонимии

    ./mystem -e UTF-8 -gni
    Со снятием омонимии

    ./mystem -e UTF-8 -gnd


    эти{этот} типы{тип}
    стали{становиться|сталь} есть{быть|есть}
    в{в} цехе{цех}
    эти{этот} типы{тип}
    стали{становиться} есть{есть}

    в{в} цехе{цех}

    Анализатор mystem использует словарь, который «зашит» внутрь программы и недоступен для пользователя: его нельзя ни посмотреть, ни изменить. Если возникает необходимость дополнить словарную базу ана- лизатора специфической для некоторой предметной области лексикой, пользователи могут подключать свой дополнительный словарь к mystem при запуске. Подробное описание формата пользовательского словаря и способов использования mystem есть на сайте Яндекса.


    При помощи mystem можно обработать текстовую строку или тексто- вый файл. Для использования анализатора изнутри других программ су- ществуют несколько модулей, предоставляющих программный интерфейс к mystem. Среди них pymystem3 для Python и mystem-scala для Java и Scala. Эти модули разработаны и поддерживаются самостоятельными раз- работчиками, а их список ведётся на странице Mystem сайта NLPub.
    Список доступных морфологических анализаторов для русского язы- ка не так велик, как для английского, однако он не ограничивается пере- численными выше. Существуют также следующие морфоанализаторы для русского языка:




      • TreeTagger — языконезависимый инструмент с закрытым исходным кодом, он действует на основе машинного обучения (деревья реше- ний), хотя последние его версии помимо статистики начали использо- вать словарь, так что из чисто статистического анализатора он стал гибридным.

      • Stemka — вероятностный морфологический анализатор для русского и украинского языков. Доступен в виде исходного кода на языке C++.

      • морфологический модуль проекта FreeLing.

      • набор правил стемминга для русского языка на языке обработки строк Snowball.

    Компьютерные лингвисты, разрабатывающие морфологические пар- серы для русского языка, принимают участие в соревновании по оценке качества морфоанализаторов и разработке стандартов морфологического анализа [Ляшевская и др. 2010]. В ходе соревнования проводится тестиро- вание систем, выполняющих обработку всех слов во входном тексте и ра- ботающих с контекстными данными. Соревнование проводится по не- скольким дорожкам. В зависимости от возможностей решения задач авто- матического разрешения морфологической неоднозначности, различаются два вида морфоанализаторов — проводящие или не проводящие разреше- ние неоднозначности. Для парсеров, не снимающих неоднозначность, вве- дены дорожки «Лемматизация», «POS», «Морфология», «Редкие слова», а для разрешающих неоднозначность парсеров — дорожки «Дизамбигуация: леммы» и «Дизамбигуация: частеречные теги». Соревнование позволило создать «Золотой стандарт» морфологической разметки русскоязычных текстов: так, согласно экспертным оценкам, точность ручной разметки эта- лонного корпуса составляет 94,4 % по леммам, 95,4 % по частеречным те- гам, 89,0 % по тегам грамматических категорий и 85,5 % по всей морфоло- гической аннотации.




    1. Достарыңызбен бөлісу:
  • 1   ...   12   13   14   15   16   17   18   19   ...   197




    ©engime.org 2024
    әкімшілігінің қараңыз

        Басты бет