This投稿は、Spacyのタグ付きConll形式のテキストブロックの依存関係を取得する方法を示しています。これは解決策が掲載されて:私はdoc.sents
を使用せずに同じ出力を取得したいと思いSpacyの文分割器を使用しないConll形式のSpacy
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
))
それは、このブロックを出力します。
実際、私は自分の文分割器を持っています。私はそれを使い、POS、NER、依存関係を得るために一度に1つの文をSpacyに与えたいと思っています。
Spacyの文分割器を使用せずに、Spacyを使用して1つの文のPOS、NER、および依存関係をConll形式で取得するにはどうすればよいですか?