This 게시물은 Spacy의 태그 작성자로 Conll 형식의 텍스트 블록의 종속성을 얻는 방법을 보여줍니다. 이 솔루션을 게시입니다 : 내가 doc.sents
를 사용하지 않고 동일한 출력을 좀하고 싶습니다Spacy의 문장 분리자를 사용하지 않고 Spacy에서 Conll 형식으로
1 Bob bob NNP PERSON 2 nsubj
2 bought buy VBD 0 ROOT
3 the the DT 4 det
4 pizza pizza NN 2 dobj
5 to to IN 2 dative
6 Alice alice NNP PERSON 5 pobj
:
import spacy
nlp_en = spacy.load('en')
doc = nlp_en(u'Bob bought the pizza to Alice')
for sent in doc.sents:
for i, word in enumerate(sent):
if word.head == word:
head_idx = 0
else:
head_idx = word.head.i - sent[0].i + 1
print("%d\t%s\t%s\t%s\t%s\t%s\t%s"%(
i+1, # There's a word.i attr that's position in *doc*
word,
word.lemma_,
word.tag_, # Fine-grained tag
word.ent_type_,
str(head_idx),
word.dep_ # Relation
))
그것은이 블록을 출력합니다.
사실, 저는 제 자신의 문장 분리기가 있습니다. 나는 이것을 사용하고 싶습니다. 그리고 Spacy에게 한 번에 한 문장 씩주고 POS, NER, 의존성을 얻고 싶습니다.
POS, NER 및 Spacy의 문장 분리기를 사용하지 않고 Spacy로 Conll 형식의 한 문장의 종속성을 어떻게 얻을 수 있습니까?