Возможно, я пропустил часть документов, но я пытаюсь определить уникальный идентификатор для каждой сущности в стандартном наборе инструментов NER.Например:
import spacy
from spacy import displacy
import en_core_web_sm
nlp = en_core_web_sm.load()
text = "This is a text about Apple Inc based in San Fransisco. "\
"And here is some text about Samsung Corp. "\
"Now, here is some more text about Apple and its products for customers in Norway"
doc = nlp(text)
for ent in doc.ents:
print('ID:{}\t{}\t"{}"\t'.format(ent.label,ent.label_,ent.text,))
displacy.render(doc, jupyter=True, style='ent')
возвращает:
ID:381 ORG "Apple Inc"
ID:382 GPE "San Fransisco"
ID:381 ORG "Samsung Corp."
ID:381 ORG "Apple"
ID:382 GPE "Norway"
Я смотрел на ent.ent_id
и ent.ent_id_
, но они неактивны согласно документы .В ent.root
я тоже ничего не нашел.
Например, в GCP NLP каждая сущность возвращается с номером «Entity», который позволяет вам идентифицировать несколько экземпляров одной и той же сущности в тексте.
Это «текст» 2 о «Apple Inc» 1, основанный в «Сан-Франциско» 4.А вот немного «текста» 3 о «Корпорации Самсунг» 6.Теперь еще немного «текста» 8 о «Apple» 1 и его «продуктах» 5 для «клиентов» 7 в «Норвегии» 9 "
Поддерживает ли spaCy нечто подобное? Или есть?способ использовать NLTK или Стэнфорд?