Как получить правильный NER, используя SpaCy, из текста, такого как «Агент ФБР Питер Стржок, который критиковал Трампа в текстах, уволен - разделы New York TimesSARCHSip to contentSkip to site».здесь «Критикованный Трамп» распознается как личность, а не «Трамп» как личность.
Как предварительно обработать текст в нижнем регистре, например «Критиковано» или «Тексты» из приведенной выше строки, чтобы преодолеть вышеуказанную проблему илилюбая другая техника для этого.
import spacy
from spacy import displacy
from collections import Counter
import en_core_web_sm
nlp = en_core_web_sm.load()
from pprint import pprint
sent = ("F.B.I. Agent Peter Strzok, Who Criticized Trump in Texts, Is Fired - The New York Times SectionsSEARCHSkip to contentSkip to site")
doc = nlp(sent)
pprint([(X, X.ent_iob_, X.ent_type_) for X in doc])
Результат из приведенного выше кода: - «Критикованный Трамп» как «ЛИЦО» и «Тексты» как «GPE»
Ожидаемый результат должен быть: - «Трамп» как «ЧЕЛОВЕК»вместо «Критикованный Трамп» как «ЧЕЛОВЕК» и «Тексты» как «» вместо «Тексты» как «GPE»