Nlp 如何使用Stanford Nertager从python列表中识别命名实体

Nlp 如何使用Stanford Nertager从python列表中识别命名实体,nlp,nltk,stanford-nlp,Nlp,Nltk,Stanford Nlp,我是NLP的初学者,也是第一次使用斯坦福德·纳塔格。为了学习,我和斯坦福·纳塔格一起玩。我有一个国家名称的python列表 ['France', 'India', 'Bangladesh', 'England', 'Germany', 'Brazil', 'Egypt', 'Bhutan', 'Srilanka'] 我想得到属于NERTagger的“位置”实体,但我得到的是“组织”实体 [(“法国”、“组织”), (“印度”、“组织”), (“孟加拉国”、“组织”), (“英格兰”、“组织”)

我是NLP的初学者,也是第一次使用斯坦福德·纳塔格。为了学习,我和斯坦福·纳塔格一起玩。我有一个国家名称的python列表

['France', 'India', 'Bangladesh', 'England', 'Germany', 'Brazil', 'Egypt', 'Bhutan', 'Srilanka']
我想得到属于NERTagger的“位置”实体,但我得到的是“组织”实体

[(“法国”、“组织”), (“印度”、“组织”), (“孟加拉国”、“组织”), (“英格兰”、“组织”), (“德国”、“组织”), (“巴西”、“组织”), (“埃及”、“组织”), (“不丹”、“组织”), (“斯里兰卡”、“组织”)]


可能是我这里遗漏了什么

首先,您需要在您的公司上安装Stanford NER。根据操作系统的不同,这两个过程如何

现在看一下这个示例代码

import nltk
from nltk.tokenize.toktok import ToktokTokenizer
from nltk.tag import StanfordNERTagger
stanford_classifier = os.environ.get('STANFORD_MODELS').split(':')[0]
stanford_ner_path = os.environ.get('CLASSPATH').split(':')[0]
st = StanfordNERTagger(stanford_classifier, stanford_ner_path, encoding='utf-8')
查克街

<nltk.tag.stanford.StanfordNERTagger at 0x7f897c44e6d8>
结果

[('France', 'LOCATION'),
 ('is', 'O'),
 ('the', 'O'),
 ('biggest', 'O'),
 ('county', 'O'),
 ('in', 'O'),
 ('EU', 'LOCATION')]

因为标记是上下文相关的,所以NER标记者很难处理单个单词。如果你给它一个完整的句子,包含一个国家的名称,我希望它能更好地工作。你要求的是一个县列表中的实体。NER在标记化句子上标记实体。
[('France', 'LOCATION'),
 ('is', 'O'),
 ('the', 'O'),
 ('biggest', 'O'),
 ('county', 'O'),
 ('in', 'O'),
 ('EU', 'LOCATION')]