(NLP) Выпуск библиотек зависимостей обработки естественного языка - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать демонстрацию NLP, и когда я создаю анализ зависимостей, я получаю эту ошибку.

Мой код:

from nltk.grammar import DependencyGrammar
from nltk.parse import (DependencyGraph,ProjectiveDependencyParser, NonprojectiveDependencyParser)
    dg = DependencyGraph(text)
    dg.tree().pprint()
    for head,dep,rel in     dg.triples():
        print('({h[0]}, {h[1]}), {r}, ({d[0]}, {d[1]})'.format(h=head, r=rel, d=dep)) 

И ошибка:

Traceback (most recent call last):
  File "/home/indianic/anaconda3/lib/python3.7/site-packages/nltk/parse/dependencygraph.py", line 351, in _parse
    cell_extractor = extractors[cell_number]
KeyError: 111

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "demo.py", line 77, in <module>
    dependency(text)
  File "demo.py", line 69, in dependency
    dg = DependencyGraph(text)
  File "/home/indianic/anaconda3/lib/python3.7/site-packages/nltk/parse/dependencygraph.py", line 90, in __init__
    top_relation_label=top_relation_label,
  File "/home/indianic/anaconda3/lib/python3.7/site-packages/nltk/parse/dependencygraph.py", line 355, in _parse
    'CoNLL(10) or Malt-Tab(4) format'.format(cell_number)
ValueError: Number of tab-delimited fields (111) not supported by CoNLL(10) or Malt-Tab(4) format.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 18 февраля 2020

tl; dr вам нужно быть осторожным с вашим вводом text.

При условии, что простой текст действительно потерпит неудачу:

>> DependencyGraph("random sentence")
 ...
 ValueError: Number of tab-delimited fields (2) not supported by CoNLL(10) or Malt-Tab(4) format

Как вы можете видеть из его документации DependencyGraph принимает в качестве входных данных строку с форматом Malt-TAB или формат CoNLL .

Некоторые примеры приведены здесь . Найдите одно из следующих значений:

>>> treebank_data = """Pierre  NNP     2       NMOD
... Vinken  NNP     8       SUB
... ,       ,       2       P
... 61      CD      5       NMOD
... years   NNS     6       AMOD
... old     JJ      2       NMOD
... ,       ,       2       P
... will    MD      0       ROOT
... join    VB      8       VC
... the     DT      11      NMOD
... board   NN      9       OBJ
... as      IN      9       VMOD
... a       DT      15      NMOD
... nonexecutive    JJ      15      NMOD
... director        NN      12      PMOD
... Nov.    NNP     9       VMOD
... 29      CD      16      NMOD
... .       .       9       VMOD
... """
>>> dg = DependencyGraph(treebank_data)

Таким образом, ваш ввод text должен содержать значения, разделенные табуляцией, такие как формат CoNLL или Malt-Tab, как запрашивается в полученном вами сообщении об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...