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

如何创建基于地名录的命名实体识别(NER)系统?

邓昊天
2023-03-14

我尝试过很多NER工具(OpenNLP、斯坦福NER、LingPipe、Dbpedia Spotlight等)。

但我一直回避的是一个基于地名录/词典的NER系统,在该系统中,我的自由文本与预定义实体名称列表匹配,并返回可能的匹配项。

这样我就可以拥有各种列表,如PERSON、ORGANIZATION等。我可以动态更改列表并获得不同的提取。这将大大减少训练时间(因为它们中的大多数都基于最大熵模型,所以它们通常包括标记大型数据集、训练模型等)。

我使用OpenNLP词性标记器构建了一个基于地名录的非常粗糙的NER系统,我从中取出所有专有名词(NP),然后在根据列表创建的Lucene索引中查找它们。然而,这给了我很多误报。例如,如果我的lucene索引中有“Samsung Electronics”,而我的POS标记器将我的“Electronics”作为NP,我的方法将返回我的“Samsung Electronics”,因为我正在进行部分匹配。

我也读过一些人谈论将地名录作为CRF算法的一项功能。但我始终无法理解这种方法。

你们中有谁能指导我在地名录和词典的基础上找到一种清晰而可靠的方法吗?

共有2个答案

阎兴为
2023-03-14

您可以尝试这个最小的bash命名实体识别器:https://github.com/lasigeBioTM/MER演示:http://labs.fc.ul.pt/mer/

万俟玉书
2023-03-14

我会尽量让地名录的使用更清楚,因为我怀疑这就是你要找的。无论使用何种训练算法(CRF、maxent等),它们都会考虑到大多数情况下的特征:

  • 代币
  • 词性
  • 资本化
  • 地名录
  • (还有更多)

实际上,地名录功能为模型提供了培训步骤将考虑的中间信息,而不明确依赖于培训语料库中的NE列表。假设你有一个关于运动队的地名录,一旦模型经过训练,你就可以在不再次训练模型的情况下,随心所欲地扩展列表。该模型将任何列出的运动队视为。。。一支运动队,不管它叫什么。

实际上:

  1. 使用任何基于NER或ML的框架
  2. 决定哪些地名录有用(这可能是最关键的部分)
  3. 影响每个地名录的相关标签(例如运动队、公司、城市、纪念碑等)
  4. 在地名录中填入大量的地名
  5. 让你的模型把那些地名录作为特征考虑进去
  6. 在相关语料库上训练一个模型(它应该包含许多地名录中的NE)
  7. 尽可能多地更新你的列表

希望这有帮助!

 类似资料:
  • 我正在进行我目前的毕业项目,名为“土耳其实体识别”。当我使用人名和地点(有时地点可以是不同的语言,例如塔克西姆/伊斯坦布尔的希尔顿酒店)时,识别器应该捕捉到土耳其语单词。我需要在我的数据集中添加“Hotel”,该数据集充满了特定的位置标签,如Hotel、Restaurant或Mall。但说到组织名称标签。我需要找到一个关于乐队、产品、公司名称的好数据集,但我不知道如何找到或收集这个数据集 在斯坦福

  • 我正在尝试使用自定义NE(命名实体)字典在印度训练NER模型以进行分块。我分别引用NLTK和Stanford NER: NLTK 我找到了NEChunkParser能够在自定义语料库上进行训练。然而,文档或源代码注释中没有指定训练语料库的格式。 在哪里可以找到NLTK中NER的自定义语料库指南? 根据这个问题,斯坦福大学NER的FAQ给出了如何训练定制NER模型的方向。 主要问题之一是默认的斯坦福

  • 我正在编写一些代码来执行命名实体识别(NER),这对于英文文本来说非常好。然而,我希望能够将NER应用于任何语言。为此,我想1)识别文本的语言,然后2)将NER应用于识别的语言。对于第2步,我怀疑A)将文本翻译成英语,然后应用NER(英语),或B)将NER应用于所识别的语言。 以下是我目前掌握的代码。我想让NER在这种语言首次被识别后,为text2或任何其他语言工作: 有人有这方面的经验吗?非常感

  • 我正在尝试使用这个简短的实体识别教程来学习NER。但我无法成功运行代码。我在现场提供了一个入口。这里提到的txt文件。 我收到错误。 请帮帮我。先谢谢你。

  • 问题内容: 我正在寻找Java的简单但“足够好”的命名实体识别库(和字典),我正在处理电子邮件和文档并提取一些“基本信息”,例如:名称,地点,地址和日期 我一直在环顾四周,大多数似乎都是沉重的一面和完整的NLP项目。 有什么建议吗? 问题答案: 顺便说一句,我最近遇到了OpenCalais,它似乎具有我要照顾的功能。

  • 我现在正在使用一些NLP库(stanford和nltk)stanford我看到了演示部分,只是想问一下是否可以使用它来识别更多的实体类型。 因此,目前斯坦福大学的NER系统(如演示所示)可以将实体识别为个人(姓名)、组织或位置。但被认可的组织仅限于大学或一些大型组织。我想知道我是否可以使用它的API来编写更多实体类型的程序,比如如果我输入的是“Apple”或“Square”,它就可以识别出它是一家