Spacy получить pos & тег для конкретного слова - PullRequest
0 голосов
/ 20 февраля 2019

Я столкнулся с ситуацией, когда мне нужно получить pos_ & tag_ от просторных объектов документа.

Например,

text = "Australian striker John hits century"
doc = nlp(text)
for nc in doc.noun_chunks:
    print(nc) #Australian striker John
doc[1].tag_ # gives for striker

, если я хочу получить pos_ & tag_ для слова «нападающий», нужно ли мне снова дать это предложение nlp() ??

Также есть документ [1] .tag_, но мне нужно что-то вроде doc ['striker']. Tag_ ..

Есть ли возможность?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы должны обработать текст только один раз:

text = "Australian striker John hits century"
doc = nlp(text)
for nc in doc.noun_chunks:
    print(nc)  
    print([(token.text, token.tag_, token.pos_) for token in nc])

Если вы хотите получить только определенное слово в пределах существительного чанка, вы можете дополнительно отфильтровать его, изменив второе выражение печати, например,

print([(token.text, token.tag_, token.pos_) for token in nc if token.tag_ == 'NN'])

Обратите внимание, что это может напечатать несколько совпадений, в зависимости от вашей модели и входного предложения.

...