Подтвердить что ты не робот

Существительные фразы с spacy

Как я могу извлечь существительные фразы из текста, используя spacy?
Я не имею в виду часть речевых тегов. В документации я не могу найти ничего о существительных фразах или регулярных синтаксических деревьях.

4b9b3361

Ответ 1

Если вам нужны базовые NP, то есть NP без согласования, предпозиционные фразы или относительные предложения, вы можете использовать итератор noun_chunks для объектов Doc и Span:

>>> 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'

Если вам нужно что-то еще, лучший способ - перебрать слова предложения и рассмотреть синтаксический контекст, чтобы определить, управляет ли слово нужным фразовым типом. Если это так, выведите его поддерево:

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