Python 的 Spacy 不返回令牌

Spacy for Python not returning tokens

我正在尝试 运行 使用 SPACY nlp 的简单代码,但没有得到任何标签。 请帮忙? 我的代码很糟糕。我没有从打印语句中得到任何输出。

from spacy.lang.en import English
nlp = English(entity=True)
doc = nlp('John Smith loves coding in Python!')
for ent in doc.ents:
    print(ent.label_)
print([token for token in sent if token.ent_type_ == 'PERSON'])

正如@WiktorStribiżew 在评论中所说 - 当我使用时代码对我有用

nlp = spacy.load('en_core_web_sm')

我还得下载文件

python -m spacy download en_core_web_sm

您也可以通过代码下载

spacy.cli.download('en_core_web_sm')

但是因为你只需要下载一次所以用代码下载它是浪费时间。


顺便说一句:应该是 doc 而不是 send


import spacy

nlp = spacy.load("en_core_web_sm")

doc = nlp('John Smith loves coding in Python!')

for ent in doc.ents:
    print(ent.label_)
    
print([token for token in doc if token.ent_type_ == 'PERSON'])

坦率地说,您甚至可以在 scapy web page

上看到类似的代码