Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Category:

Нулевая связка в новом парсере

Продолжая тему нового парсера на замену старому.

Добавил в качестве эксперимента в этот парсер поддержку нулевой связки, точнее любого подразумеваемого токена. Зачем?

Может показаться странным, но отсутствие формально необходимого элемента в тексте доставляет больше проблем, чем, например, морфологическая неоднозначность. Возьмем два эквивалентных предложения "Сегодня дождь." и "Дождь сегодня.". Если синтаксический анализатор не поддерживает нулевые связки (как, например, ванильный CYK), то надо решать, что будет вершиной в каждом из случаев. Допустим, мы решили, что вершиной становится существительное, как более значимый элемент: "Дождь(сегодня)". Сравним теперь результаты разбора со случаем, когда связка присутствует в явном виде "Сегодня был дождь". Зависимости в этом случае такие "был(Сегодня, дождь)". Видно, что по ребрам эти два случая совершенно не сопоставляются, и значит невозможно определять семантическую близость текста без дополнительных преобразований.

А вот так выглядят сейчас результаты разборов для случая "сегодня с самого утра сильный дождь".

Дерево зависимостей, с фиктивным токеном NULL:

По синтаксическому графу видно, что "сильный дождь" является подлежащим, не смотря на отсутствие глагола.

Составляющие:


Можно сравнить с результатами для явно выраженной связки "сегодня с самого утра был сильный дождь":

Tags: bottom-up parsing, восходящий разбор, парсер, синтаксис, синтаксический анализатор, синтаксический разбор
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments