?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Previous Entry Share Next Entry
Разбор предложений с несловарными элементами
kelijah
Из важных нереализованных задач осталась вот такая.

Допустим, есть предложение: "Н.Цискаридзе ответил на обвинения в причастности к нападению на С.Филина"

Оно разбирается парсером так:



В ходе разбора парсер знает, что Н.Цискаридзе и "С.Филина" являются реализацией паттерна ФИО. Но это знание никак не передается наружу, и к моменту завершения разбора принадлежность этих токенов к особому лексическому классу уже теряется.

Для полнотекстового парсинга, определения тематики документа и построения конспекта нам нужно снова получить эту информацию.

И вот тут возникает 3 возможности.

1. Ввести отдельную стадию токенизации, на которой определять принадлежность токенов к особым лексическим классам, и помечать их. Помечать токены можно примитивно, например тегами B-PERSON/I-PERSON, B-LOCATION/I-LOCATION, или ввести более детальное тегирование. Статистический подход - штука очень мощная и приятная в плане обучения, но отсутствие информации о связываемости соседей обязательно понизит точность.

2. Все-таки сделать "проброс" пометок изнутри правил парсера наружу. Главный минус - это повлечет падение производительности, так как при переборе вариантов придется таскать между альтернативами еще и наборы пометок.

3. Определять named entries на совсем новой стадии, уже после выполнения разбора. Условно назовем это "семантический постпроцессор".

Пока думаю, что лучше. Перед глазами есть реализации в других иноязычных парсерах первого и третьего подходов.

Кроме паттернов ФИО есть еще много других случаев, когда надо уметь определять принадлежность цепочки токенов к лексическому классу, например название географического места (см. токен "обл."):



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