我是Python和NLP(使用SpaCy)的新手,所以希望有人能帮助我。我想检测文本中的命名实体,然后获取NE周围的五个单词。
我已经找到了NEs,但是我卡在了如何找到“周围的单词”上。
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之前的字符串没有显示出来。此外,我不知道如何获取多个字符串(包括NE之前和之后的字符串)。
span
。 - amirouche