2015-10-22 21 views
10

spacyを使用してテキストから名詞句を抽出するにはどうすればよいですか?
私は品詞タグを参照していません。 ドキュメントでは、名詞句や通常の解析木については何も見つかりません。spacyの名詞フレーズ

>>> from spacy.en import English 
>>> nlp = English() 
>>> doc = nlp(u'The cat and the dog sleep in the basket near the door.') 
>>> for np in doc.noun_chunks: 
>>>  np.text 
u'The cat' 
u'the dog' 
u'the basket' 
u'the door' 

あなたが何か他のものが必要な場合は、最良の方法:あなたがベースのNP、調整なしすなわちNPは、前置詞句や関係節をしたい場合は

答えて

26

、あなたはドクとスパンオブジェクトにnoun_chunksイテレータを使用することができます文の言葉を反復して構文的文脈を考慮して、あなたが望むフレーズの種類をその言葉が支配するかどうかを判断することです。それは、そのサブツリー得ない場合:

from spacy.symbols import * 

np_labels = set([nsubj, nsubjpass, dobj, iobj, pobj]) # Probably others too 
def iter_nps(doc): 
    for word in doc: 
     if word.dep in np_labels: 
      yield word.subtree 
+0

親愛なる三段論法を、あなたは、1つのコードが完全にするために追加することができ、「おそらく他」のタグが何であるか私に言うことができますか?私はまた、 "赤ちゃんと彼のおもちゃ"のようなものを抽出したいと思います。 – user1419243

関連する問題