【问题标题】:How to recognize Named Entity from a python list using Stanford NERTagger如何使用斯坦福 NERTagger 从 python 列表中识别命名实体
【发布时间】:2018-11-09 05:21:33
【问题描述】:

我是 NLP 的初学者,也是第一次使用 StanfordNERTagger。出于学习目的,我正在玩斯坦福 NERTagger。我有一个国家名称的python列表

['France', 'India', 'Bangladesh', 'England', 'Germany', 'Brazil', 'Egypt', 'Bhutan', 'Srilanka']

我想获得属于 NERTagger 的“位置”实体,但我得到的是“组织”实体

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

可能我在这里遗漏了什么

【问题讨论】:

  • NER 标注器很难处理单个单词,因为标注依赖于上下文。如果你给它包含一个国家名称的完整句子,我希望它会更好。
  • 您正在请求县列表中的实体。 NER 在标记化的句子上标记实体。

标签: nlp nltk stanford-nlp


【解决方案1】:

首先,您需要在您的计算机上安装 Stanford NER。取决于操作系统,这两个程序如何configure Stanford ner tagger

现在看看这个示例代码

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')

检查st

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

我的句子

sentence = u'France is the biggest county in EU'
words = nltk.word_tokenize(sentence)
st.tag(words)

结果

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2014-07-14
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多