Как сгенерировать.conllu из объекта Doc?
Где я могу найти пример файла.conllu, который Spacy примет? или пример как его сгенерировать? с 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'
2 ответа
textacy может сделать это:
from textacy.export import doc_to_conll
doc_to_conll(doc)
Это сработало:
[ str(i), token.text, token.lemma_, token.pos_, token.tag_, '-', str(head_ix), token.dep_, '-', '-' ]