Компьютерный анализ естественно-языкового текста Кафедра информационных систем в искусстве и гуманитарных науках Компьютерный анализ естественно-языкового текста СТРУКТУРА КУРСА 1. Введение в дисциплину 2. Автоматический анализ текста на морфологическом уровне 3. Автоматический анализ текста на синтаксическом уровне 4. Семантический компонент в системах автоматического анализа текста Компьютерный анализ естественно-языкового текста СТРУКТУРА КУРСА 2. Автоматический анализ текста на морфологическом уровне 1. Морфологический уровень в ЛИТ 2. Основные понятия морфологии в компьютерной морфологии 3. Основные процедуры компьютерной морфологии 4. Компьютерная морфология русского языка 5. Технологии морфологического анализа 6. «Предсказание» (типизация) 7. Вопросы, смежные с синтаксисом ПЛАН ЛЕКЦИЙ 9-11 1. Xerox Tools: • • • альтернативные инструменты операции высокого уровня дополнительные функциональные возможности Резюме по морфологии 2. • • специальные функции: технология ISpell «предсказание» в АОТ Частеречная разметка 3. • • • • типы омонимии данные о русских омоформах разметка в Национальном корпусе методы снятия грамматической неоднозначности ДРУГИЕ ИНСТРУМЕНТЫ ДЛЯ РАБОТЫ С КОНЕЧНЫМИ ПРЕОБРАЗОВАТЕЛЯМИ • FSA Utilities (Gertjaan van NOORD, State University of Groningen) http://www.let.rug.nl/~vannoord/Fsa/ • Intex (Max Silberztein, Laboratoire d'Automatique Documentaire et Linguistique, Université Paris 7, сейчас - Université de Franche-Comté) http://intex.univfcomte.fr/ • Unitex - версия Intex на условиях GPL: (Institut d'électronique et d'informatique Gaspard-Monge, Université Paris-est Marne la vallée) http://wwwigm.univ-mlv.fr/~unitex/ • FSM tools (Mehryar MOHRI, AT&T) http://www.research.att.com/~fsmtools/fsm/ ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ XEROX TOOLS Помимо моделирования порядка следования конструктивных компонентов и соотнесения ПВ с ПС: • Моделирование формальных модификаций (например, чередований) – собственный компилятор для двухуровневых правил (twolc) – операции высоких уровней над регулярными выражениями ДВУХУРОВНЕВЫЕ ПРАВИЛА (КРАТКИЕ СВЕДЕНИЯ) • 1983: работа Киммо Коскенниеми Two-level morphology • Основная идея: параллельное действие правил, работа которых не столько преобразует цепочки символов, сколько соотносит их между собой • Четыре типа правил – a : b c_d – a : b c_d – a : b c_d – a : b / c_d a всегда реализуется как b в контексте c_d; a реализуется как b только в контексте c_d; a реализуется как b только в контексте c_d и ни в каком другом контексте; a никогда не реализуется как b в контексте c_d ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (1) Предварительно вводятся: • символ ‘?’ любой символ из используемого алфавита • оператор ‘$’ включение: $A =def [?* A ?*] ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (2) • оператор замены A -> B =def [ [ ~$[A – 0] [A .x. B]]* ~$[A – 0]] «Все, что не содержит непустых цепочек языка A, сцепляется с преобразователем A .x. B с возможной итерацией всего этого (или, вообще, с заменой пустой цепочкой), после чего следует все, что не содержит непустых цепочек языка A» ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (3) • Пример использования оператора замены: Чередования в 1 л. ед. ч. русских глаголов 2 спряжения: ходить – хожу, но ходят, ходит любить – люблю, но любят, любит без чередования говорить – говорю, но говорят, говорит ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (4) Лексикон Verb2 LEXICON Root ljub Ending1 ; khod Ending1 ; sid Ending1 ; govor: Ending1 ; LEXICON Ending1 +1pSg:+1pSgju # ; +2pSg:ish’ # ; +3pSg:it # ; +1pPl:im # ; +2pPl:ite # ; +3pPl:jat # ;в соотносит, например: ljub+1pSg ljub+1pSgju но ljub+3pPl ljubjat ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (5) В командной строке xfst • read regex [[b +1pSg j u -> b l j u] & [d +1pSg j u -> z h u]] • read Verb2.txt • compose дает отношение, в котором соотносятся • ljub+1pSg (ljub+1pSgju – промежуточный и уровень, отсутствует после композиции) • ljublju ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (6) • оператор разметки A -> B ... C Всякая цепочка A в выражениях на верхней ленте преобразователя должна соответствовать на нижней ленте такой же цепочке, но только в окружении B и С ОПЕРАЦИИ ВЫСОКОГО УРОВНЯ В XEROX TOOLS (7) Пример использования оператора разметки • регулярное выражение a | e | i | o | u -> “[” ... “]” • позволяет выделить все гласные квадратными скобками, т.е., например, соотнести: engineer:[e]ng[i]n[e][e]r ШИРОКИЙ НАБОР ВОЗМОЖНОСТЕЙ XEROX TOOLS • моделирование структуры составных единиц по конструктивному принципу («что за чем идет», на уровне морфологии – морфотактика) • соотнесение разных уровней представления языковых единиц (более формальных – поверхностных и более содержательных – глубинных, «лексических») • моделирование формальных модификаций соединяемых элементов (на уровне морфологии - морфонология) КОНЕЧНЫЕ ПРЕОБРАЗОВАТЕЛИ - ЗАДАЧИ НА СТЫКЕ МОРФОЛОГИИ И СИНТАКСИСА • - локальный синтаксический анализ: снятие неоднозначностей (после морфологического анализа перед синтаксическим) • - сегментация текста • - поверхностный синтаксический анализ: маркировка и фильтрация синтаксических составляющих ТЕХНОЛОГИЯ ISPELL Ispell • интерактивная программа проверки орфографии в среде Unix • единый алгоритм и единая архитектура позволяют применять ко многим языкам, заменяя лишь базу данных БАЗА ДАННЫХ ISPELL Хранит данные о наборе словоформ, правильно построенных в данном языке. Включает: • Словарь (обязательный компонент) • Файл аффиксов ISPELL: СООТНОШЕНИЕ ДАННЫХ В СЛОВАРЕ И ФАЙЛЕ АФФИКСОВ В словаре записи двух типов: • словоформы без «флагов» (нет потребности в файле аффиксов) бугрится бугров бугром • словоформы с «флагами» (отсылками к словарю аффиксов) бугрившийся/A бугристость/F бугристый/AS ISPELL: СТРУКТУРА «ФЛАГА» В ФАЙЛЕ АФФИКСОВ flag *A: # # прилагательные и причастия # # прилагательные/причастия на -ый (м.р. в ед. и мн.ч.) [^Ц] Ы Й > -ЫЙ,ОГО # белый > белого (р.п.) ЦЫЙ > -ЫЙ,ЕГО # куцый > куцего (р.п.) [^Ц] Ы Й > -ЫЙ,ОМУ # белый > белому (д.п.) ЦЫЙ > -ЫЙ,ЕМУ # куцый > куцему (д.п.) ЫЙ > -Й,М # белый > белым (т.п.) [^Ц] Ы Й > -ЫЙ,ОМ # белый > белом (п.п.) ЦЫЙ > -ЫЙ,ЕМ # куцый > куцем (п.п.) ЫЙ > -Й,Е # белый > белые (мн,и.п.) ЫЙ > -Й,Х # белый > белых (мн,р.п.) ЫЙ > -Й,МИ # белый > белыми (мн,т.п.) # ж. и ср. род ЫЙ > -ЫЙ,АЯ # белый > белая (ж,и.п.) [^Ц] Ы Й > -ЫЙ,ОЙ # белый > белой (ж,р.п.) БАЗЫ ДАННЫХ ISPELL ДЛЯ РУССКОГО ЯЗЫКА 1. К.Книжник, В.Роганов http://www.garret.ru/~knizhnik/rispell.tar.gz 2. А.Лебедев ftp://scon155.phys.msu.su/pub/russian/ispell /rus-ispell.tar.gz