StanfordNLP, CoreNLP, spaCy - разные графики зависимостей - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь использовать простые правила / шаблоны, определенные для графа зависимостей, для извлечения самой базовой информации из предложений (например, тройки, такие как subject-> Предикат-> объект). Я начал использовать StanfordNLP , поскольку его было легко установить и использовать GPU для лучшей производительности. Тем не менее, я заметил, что для некоторых предложений результирующий граф зависимостей выглядел не так, как я ожидал - хотя я не эксперт. Поэтому я попробовал два других решения: spaCy и Stanford CoreNLP (я так понимаю, что они поддерживаются разными группами?)

Для примера предложения «Том заставил Сэма поверить, что у Алисы рак». Я напечатал зависимости для всех трех подходов. CoreNLP и spaCy дают одинаковые зависимости и отличаются от StanfordNLP. Следовательно, я склонен переходить на CoreNLP и spaCy (еще одно преимущество состоит в том, что они поставляются с NER из коробки).

Есть ли у кого-нибудь еще опыт или отзывы, которые могли бы помочь, куда идти дальше? Я не ожидаю, что CoreNLP и spaCy всегда будут давать одни и те же графики зависимостей, но в предложении примера, рассматривая Sam как obj, как это делает StandfordNLP, по сравнению с nsubj (CoreNLP, spaCy), кажется, существенная разница

Format:
token   dependency_tag   parent_token

StanfordNLP
Tom     nsubj   made
made    ROOT    ROOT
Sam     obj     made
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  obj     has
.       punct   made

CoreNLP
Tom     nsubj   made
made    ROOT    ROOT
Sam     nsubj   believe
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  dobj    has
.       punct   made

spaCy
Tom     nsubj   made
made    ROOT    ROOT
Sam     nsubj   believe
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  dobj    has
.       punct   made

1 Ответ

1 голос
/ 23 мая 2019

Не знаю, как ответить на ваши вопросы, но я бы рекомендовал вам внимательно прочитать документацию для Stanford CoreNLP: https://nlp.stanford.edu/software/lex-parser.shtml

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

Это связано как с неточностями в синтаксическом анализаторе, так и с неясностями на естественном языке.

...