Python 2.7 SpaCy:失踪人员和实体

Python 2.7 SpaCy:失踪人员和实体,python-2.7,nltk,spacy,Python 2.7,Nltk,Spacy,我对spaCy失踪人员实体有一些问题。下面是一个例子,当名字前面有某些标题时,SpaCy似乎变得盲目了。删除Labour MP(注释行)时,它会识别名称,否则返回空列表 import spacy from spacy.en import English nlp_toolkit = English() nlp = spacy.load('en') text = u"In a recent tweet, Labour MP Luciana Berger sought clarification..

我对spaCy失踪人员实体有一些问题。下面是一个例子,当名字前面有某些标题时,SpaCy似乎变得盲目了。删除
Labour MP
(注释行)时,它会识别名称,否则返回空列表

import spacy
from spacy.en import English
nlp_toolkit = English()
nlp = spacy.load('en')

text = u"In a recent tweet, Labour MP Luciana Berger sought clarification..."
#text = u"In a recent tweet, Luciana Berger sought clarification..."

all_tags = nlp(text)

person_list=[]
for ent in all_tags.ents:
    if ent.label_=="PERSON":
        person_list.append(str(ent))      
print person_list
现在,我正在使用SpaCy的1.8.2版本。但在升级之前,我真的很想知道这个问题是否在版本2中得到了解决,因为升级似乎不是那么简单。有人可以测试它或提出解决方案吗?谢谢

更新:

它变得更加有趣。如果您将该名称更改为其他更常见的名称,则该名称有效

text = u"In a recent tweet, Labour MP James Mill sought clarification..."
out: ['James Mill']
因此,这与名称有关,而不是它前面的
MP
。。。
无论如何-如果有人能检查它是否与v2正常工作,我将不胜感激

我用Spacy 2.0.7版试用了你的代码,它确实给出了“Luciana Berger”作为句子的实体

我在最近的一条推文中,工党议员卢西亚娜·伯杰要求澄清……

另一句话,它给出了“詹姆斯·穆勒”

如果您想尝试较新的版本,可以尝试在虚拟环境中安装,这样您就可以在两个版本上进行试验。你可以利用这个。事实上,我建议使用Virtual env,因为在版本之间切换是一个相当漫长的过程。所以最好在换衣服之前试试


同样仅供参考,NER正在Spacy进行“模型培训”,以下是。因此,可能并非所有的名字都包含在NER中

非常感谢您为我测试这个。是的,我会尝试在verenv中安装v2。