Проблема с распознаванием именованных объектов Spacy

Я пытаюсь пометить ORG из кучи текста, который я разбираю

На данный момент у меня есть следующее:

import spacy
import en_core_web_sm
nlp = en_core_web_sm.load()

file = open("C:\\sample.txt")

doc = nlp(file.read())
print([(X.text, X.label_) for X in doc.ents])

Теперь мой результат печатает все возможные теги, я просто хочу, чтобы вместо этого он печатал ORG. Есть предложения, как это сделать?


person ravecoder    schedule 28.05.2019    source источник


Ответы (1)


X.label_ содержит имя объекта, поэтому все, что вам нужно, это добавить условие, чтобы возвращать только те кортежи, где X.label_ равно ORG:

print([(X.text, X.label_) for X in doc.ents if X.label_ == "ORG"])
#                                           ^------------------^   
person Wiktor Stribiżew    schedule 28.05.2019