Я пытаюсь использовать простые правила / шаблоны, определенные для графа зависимостей, для извлечения самой базовой информации из предложений (например, тройки, такие как 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