Я новичок в Python и NLP (использую SpaCy), поэтому я надеюсь, что кто-нибудь может мне помочь. Я хочу обнаружить именованные объекты в моем тексте и сразу после того, как я хочу получить пять слов влево и вправо от сетевых элементов.
Я уже нашел сетевые элементы, но застрял в поиске "окружающих слов"
import spacy
nlp=spacy.load("en_core_web_sm")
doc = nlp(open(path to my text).read())
for index, token in enumerate(doc.ents):
if token.label_ == "PERSON" and token.text == "Frodo" or token.text == "Frodo Beutlin":
print(token[:index])
print(token[index])
print(token[index:])
Frodo Beutlin
think
Это мой результат, так как вы можете видеть строки до того, как мой NE не будет показан. Также меня смущает, как получить более одной строки (до и после).