【问题标题】:How to generate .conllu from a Doc object?如何从 Doc 对象生成 .conllu?
【发布时间】:2019-12-19 06:22:41
【问题描述】:

我在哪里可以找到 Spacy 接受的示例 .conllu 文件?或示例如何生成它?有 IOB 吗?

尝试将我生成的 .conllu 文件转换为 .json 用于模型训练,这样:

 head_ix = token.head.i - sent[0].i + 1
 conll.append( (str(i), token.orth_, token.lemma_, token.tag_, token.ent_type_, str(head_ix), token.dep_) )

(你有正确的例子吗)

这是错误:

 $ python -m spacy convert spt3.conllu 

  .......
  File "/usr/local/lib/python2.7/dist-packages/spacy/cli/converters/conllu2json.py", line 25, in conllu2json
for i, (raw_text, tokens) in enumerate(conll_tuples):
  File "/usr/local/lib/python2.7/dist-packages/spacy/cli/converters/conllu2json.py", line 65, in read_conllx
id_, word, lemma, pos, tag, morph, head, dep, _1, iob = parts
ValueError: need more than 7 values to unpack

然后用这个:

        conll.append( (str(i), token.orth_, token.lemma_, token.tag_, '-', str(head_ix), token.dep_, str(head_ix), token.dep_, '-') )

错误是这样的:

head = (int(head) - 1) if head != "0" else id_
ValueError: invalid literal for int() with base 10: 'amod'

【问题讨论】:

    标签: python json spacy converters conll


    【解决方案1】:

    这解决了:

     [ str(i), token.text, token.lemma_, token.pos_, token.tag_, '-', str(head_ix), token.dep_, '-', '-' ]
    

    【讨论】:

    • 缺失值应该是_ 而不是-
    【解决方案2】:

    textacy 可以这样做:

    from textacy.export import doc_to_conll
    doc_to_conll(doc)
    

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      相关资源
      最近更新 更多