Может ли кто-нибудь дать мне несколько предложений о том, когда происходит сбой синтаксического анализатора зависимостей, почему он не работает и как это исправить?
Примеры сбоя синтаксического анализатора зависимостей
Ответы (1)
Рассмотрим следующее предложение:
Песок уже начал просачиваться на дно.
Дерево: (КОРЕНЬ(С(НП(ННП Пески))(ВП(ВБД было)(АДВП(РБ уже))(ВП(ВБН начато)(С(ВП(ТО к)(ВП(ВБ ручеек)(ПП(ВБ в) (НП (ДТ) (НН внизу)))))))) (. . .)))
парсер зависимостей: [nsubj (начало-4, пески-1), nsubj: xsubj (струйка-6, пески-1), aux (начало-4, имел-2), advmod (начало-4, уже-3), корень(КОРЕНЬ-0, начало-4), отметка(струйка-6, до-5), xcomp(начало-4, струйка-6), регистр(низ-9, в-7), дет(низ-9, the-8), nmod:into(струйка-6, нижняя-9), точка(начало-4, .-10)]
Может быть две причины, по которым синтаксический анализатор зависимостей не работает.
1) Здесь слово «пески» является именем собственным во множественном числе (NNPS), но вывод тега POS дает NNP, который является именем собственным, поэтому в теге есть ошибка, которая, в свою очередь, распространяется на парсер зависимостей, поскольку он использует POS для генерации зависимости». Чтобы справиться с этим случаем, вы можете обучить теггер POS предложениям, в которых он терпит неудачу.
2) Контекст предложения может быть совершенно новым для синтаксического анализатора зависимостей, поскольку большинство синтаксических анализаторов, таких как spacy, stanford, nltk и т. д., являются обученными моделями ML, поэтому для обработки этого случая вы можете обучать синтаксический анализатор зависимостей отдельно с новыми предложениями.
вы можете обратиться по этой ссылке, чтобы понять, как обучать POS-теггер и парсер зависимостей: https://spacy.io/usage/training#section-tagger-parser
Надеюсь, он ответит на ваши вопросы.