• Роль морфологии в компьютерной лингвистике
• Морфология. Задачи и подходы к их решению
• Псевдолемматизация, композиты и прочие странные словечки
Не все задачи успели мы с вами обозреть в предыдущем посте, поэтому продолжать будем в этом.
Часто случается, что в интернете появляется какой-нибудь неологизм. Например, «затроллить». Слово «тролль» в словаре есть, но «затролля» уже нет, а, как мы выяснили ранее, приставка при разборе не отделяется от корня, так что мы понятия не имеем, что это за «затроллить» и как его изменять. Чтобы проанализировать это слово, нам придётся воспользоваться псевдолемматизацией. Для этого мы снова пользуемся так называемым обратным деревом окончаний (записанных справа налево).
Мы сразу находим пустое окончание. Можно предположить, что «затроллить» – это существительное, которое оканчивается пустым окончанием. Далее мы видим мягкий знак, а на мягкий знак просто так ничего не оканчивается. А вот «-ть» – это типичное окончание для глаголов. Таким образом, мы можем предположить, что у слова «затроллить» основа «затролли-», окончание «-ть». Теперь мы можем получить другие формы. Если отбросить «-ть» и подставить флексию прошедшего времени мужского рода «л», мы получим слово «затроллил».
Кроме того, мы понимаем, что «затроллить» » это инфинитив глагола, а значит, когда мы будем преобразовывать предложение, в котором нам встретилось слово «затроллить», на другой язык, мы поймём, что это слово выражало какое-то действие в инфинитиве. Таким образом, мы можем его перевести транслитерацией, например, «затроллинг» или «to troll», а за- ещё как-нибудь выразить. Именно в этом и состоит задача псевдолемматизации: разбирать неизвестные слова, пусть и не понимая семантику.
Верхушка айсберга
Мы рассмотрели базовые задачи, с которыми сталкивается морфология в компьютерной лингвистике. Важно понимать, что это малая толика того, чем она занимается. Вот еще неполный список проблем, над которыми мы работаем.
Композиты
Возьмем слово «паротепловозостроительный». Что такое пар-, тепло-, воз-, строительный – по отдельности понятно. Проблемы начинаются тогда, когда мы начинаем эти корни сочетать, а сочетать их можно практически бесконечно.
Композитные правила вредны и опасны композитными взрывами. Когда мы анализируем слово, которое необходимо разбирать по композитному правилу, априори мы должны делить его после каждой буквы, и только там, где обнаруживаются существующие в словарях формы, мы должны предполагать действительно разделение. Это первое место, где теоретически может быть взрыв, потому что в языке часто встречаются слова из одной буквы: союзы, предлоги. Из-за этого количество точек деления может возрасти многократно.
Кроме того, не все слова можно склеить друг с другом. Например, рассмотрим слово тепло-возо-строительный можно сперва восстановить первую связь тепловозо-строительный (смысл слова «строить тепловозы»). А можно вторую: тепло-возостроительный (смысл «обогревать возостроение»). Но слова возостроительный не существует. В то же время слово «тепловоз» – вполне словарное. Получается, что важен порядок склеивания кусков композита. Носитель языка быстро понимает, как правильно восстановить смысл слова. Но алгоритм анализа композитов обязан перебрать факториал разных вариантов последовательностей.
Словосочетания
Допустим, мы пытаемся проанализировать авиабилет, на котором написано: «Los Angeles-San Francisco».
Если поделить по пробелам, то мы получим слово «Angeles-San» и два отдельные слова «Los» и «Francisco». Что такое “Angeles-San”? Уважительное обращение к японцу по имени Анджелес? Наша система должна понимать, что “Los Angeles” – это одно словосочетание, “San Francisco”– другое, и что нет таких словосочетаний как “Los Francisco” и “San Angeles”.
Алгоритмы исправления ошибок ввода
Здесь перед нами стоит сразу две задачи. Прежде чем что-либо предпринимать, важно определить, ошибся ли пользователь, когда вводил слово, или это было преднамеренно? Во-вторых, если он все же ошибся, необходимо понять, в каком слове ошибка, и что он на самом деле хотел написать.
Статистическая обработка
В русском языке, как, впрочем, и в любом другом, разные слова употребляются с разной частотой. Во многих задачах знание этой частоты оказывает неоценимую помощь. Например, в той же псевдолемматизации. Система находит два варианта, и необходимо принять решение, какой из них выбрать. Если есть контекст, то из него можно получить некоторые сведения, которые помогут определить правильный вариант. Если контекста нет, надо выводить все найденные варианты. И в этом случае лучше выдавать проранжированные варианты: те, которые статистически встречаются чаще, выдавать первыми, а те, что реже – последними.
Discuss!
Мы подробно рассмотрели основные задачи, которые обработка естественного языка взваливает на компьютерную морфологию. Разумеется, еще не все проблемы решены, но мы работаем над этим. Если эта тема вас заинтересовала, вы хотите узнать что-то еще или, может быть, поделиться своими идеями, я буду рад пообщаться с вами в комментариях
Автор: aTwice