当前位置: 首页 > 知识库问答 >
问题:

使用openNLP(默认模型)进行命名实体识别

欧阳俊晖
2023-03-14

有人能指出openNLP NameFinder模块使用的算法吗?代码很复杂,只有很少的文档记录,并且将其作为黑匣子(提供默认模型)使用给我的印象是它主要是启发式的。以下是一些输入和输出示例:

输入:

约翰·史密斯很沮丧。

约翰·史密斯很沮丧。

巴拉克·奥巴马感到沮丧。

乌戈·查韦斯很沮丧。(不再)

杰夫·阿特伍德很沮丧。

刘冰对openNLP NER模块感到失望。

诺姆·乔姆斯基对这个世界感到沮丧。

杰登·史密斯很沮丧。

史密斯·杰登很沮丧。

Lady Gaga很沮丧。

加加感到沮丧。

嘎嘎夫人很沮丧。

杰登很沮丧。

刘先生很沮丧。

输出(我将菱形改为方括号):

约翰·史密斯感到沮丧。

约翰·史密斯很沮丧。

巴拉克·奥巴马(Barak Obama)感到沮丧。

乌戈·查韦斯很沮丧。(不再)

杰夫·阿特伍德(Jeff Atwood)感到沮丧。

刘冰对openNLP NER模块感到失望。

诺姆·乔姆斯基对这个世界感到沮丧。

杰登[开始:人]史密斯[结束]感到沮丧。

[START:person]史密斯[END][START:person]杰登[END]感到沮丧。

Lady Gaga很沮丧。

加加感到沮丧。

嘎嘎夫人很沮丧。

杰登很沮丧。

刘先生很沮丧。

该模型似乎只是简单地学习在训练数据中注释的固定名称列表,并允许一些平铺和组合。两个值得注意的例子是:

  1. 先生和夫人等强名称指标被忽略
  2. Jayden(#2011年美国最流行的4个名字)没有被识别,而下面的“Smith”(在“Jayden Smith…”中)已确认。我怀疑这个模型“认为”句子开头大写的Jayden应该是句子开头,而不是应该是一个NE。颠倒顺序,“Smith Jayden”作为提示(假设为1),openNLP将其标识为两个不同的NEs,不同于“John Smith”等其他全名,可能暗示“Smith”在姓氏列表中

-

另外,斯坦福大学和UIUC NER系统都表现得更好,有一些有趣但离题的细微差异(这个问题太长了)

共有1个答案

何灼光
2023-03-14

顾名思义,NameFinderME使用最大熵模型。这是关于ME的开创性论文。

如果OpenNLP的性能不符合您的要求,并且您不能使用斯坦福大学或UIUC NERs,我建议您使用CRF尝试Mallet。这个示例代码应该可以帮助您开始。

 类似资料:
  • 我知道Apache OpenNLP使用MaxEnt模型作为其NER标记器。但是Apache OpenNLP在运行其命名实体识别(NER)模型时(默认情况下)使用了哪些功能?以及我们如何在OpenNLP(Java实现)中合并/自定义新功能?

  • 我目前正在从事一个java web服务器项目,该项目需要使用自然语言处理,特别是实体识别(Entity Recognition,NER)。 我在java中使用OpenNLP,因为添加自定义训练数据很容易。它工作得很好。 然而,我还需要能够提取实体内部的实体(嵌套命名实体识别)。我试着在OpenNLP中这样做,但我遇到了解析错误。所以我猜OpenNLP很遗憾不支持嵌套实体。 下面是一个我需要解析的示

  • 我正在使用OpenNLP模型进行名称实体识别。 我正在传递句子,我想在其中识别单词。Open NLP需要一个String[]变量,因此我将String拆分为用空格分隔的单词。 我面临着识别日期的问题。例如,如果字符串包含日期:2012年1月7日,我将字符串拆分为单词,“7”、“1”和“2012”将被分隔为3个不同的单词。虽然它们被识别为日期,但这3个不同的标记对我来说没有意义进行进一步处理。我怎么

  • 问题内容: 好的,我有以下代码来训练来自OpenNLP的NER标识符 我不知道我是否做错了什么,如果缺少什么,但是分类不起作用。我认为train.txt错误。 *发生 *的错误 是所有令牌仅被分类为一种类型。 我的train.txt数据类似于以下示例,但是条目的变化和数量更多。另一件事是,我每次都从文本中逐字逐句地查找,而不是所有标记。 有人可以证明我做错了吗? 问题答案: 您的训练数据不正确。

  • 我正在尝试阿尔巴尼亚语的OpenNLP。为此,我正在使用OPenNLP并尝试用阿尔巴尼亚语构建人员、位置和组织实体识别的模型。我正在构建我自己的语料库,但我需要一位Open NLP专家来确认我以下疑问:1-我是否应该为每个模型构建一个单独的语料库,例如,对于人构建一个只有标签存在的语料库?2-是否可以在相同的语料库中标记人员、位置和组织,并使用它来训练能够提取所有三种实体类型的单个模型?3-是否有

  • 我正在使用命名实体重新识别器查看斯坦福corenlp。我有不同类型的输入文本,我需要将其标记到我自己的实体中。所以我开始训练我自己的模型,但它似乎不起作用。 例如:我的输入文本字符串是“关于丰田陆地巡洋舰1956-1987黄金投资组合的49篇杂志文章之书”http://t.co/EqxmY1VmLg http://t.co/F0Vefuoj9Q" 我通过这些例子来训练自己的模型,只寻找一些我感兴趣