【问题标题】:Name Entity Resolution Algorithm名称实体解析算法
【发布时间】:2026-02-03 14:40:01
【问题描述】:

我正在尝试构建一个实体解析系统,我的实体所在的位置,

(i) General named entities, that is organization, person, location,date, time, money, and percent.
(ii) Some other entities like, product, title of person like president,ceo, etc. 
(iii) Corefererred entities like, pronoun, determiner phrase,synonym, string match, demonstrative noun phrase, alias, apposition. 

从各种文献和其他参考资料中,我已经定义了它的范围,因为我不会考虑每个实体在其实体类别之外的歧义。也就是我考的是牛津大学的Oxford 与牛津的地方不同,前一个是组织实体的第一个词,第二个是位置实体。

我的任务是构建一种分辨率算法,我将在其中提取 并解决实体。

所以,我首先要开发一个实体提取器。 其次,如果我尝试将我发现的共指联系起来 像这样的各种文献seminal work,他们正在努力解决 一种基于决策树的算法,具有一些特征,例如距离, i-pronoun, j-pronoun, string match, 确定名词 短语,指示名词短语,数字一致性特征, 语义类一致、性别一致、专有名称、别名、并列 等等。

该算法似乎是一个不错的算法,其中使用隐马尔可夫模型 (HMM) 提取实体。

我可以用 HMM 制定一个实体识别系统。 现在我正在尝试制定一个共指以及一个实体 分辨率系统。我试图感受而不是使用这么多 如果我使用带注释的语料库并直接用 基于 HMM 的标注器,旨在解决关系提取问题,例如,

*"Obama/PERS is/NA delivering/NA a/NA lecture/NA in/NA Washington/LOC, he/PPERS knew/NA it/NA was/NA going/NA to/NA be/NA
small/NA as/NA it/NA may/NA not/NA be/NA his/PoPERS speech/NA as/NA Mr. President/APPERS"

where, PERS-> PERSON
       PPERS->PERSONAL PRONOUN TO PERSON
       PoPERS-> POSSESSIVE PRONOUN TO PERSON
       APPERS-> APPOSITIVE TO PERSON
       LOC-> LOCATION
       NA-> NOT AVAILABLE*

我会错吗?我做了一个大约 10,000 个单词的实验。早期结果似乎 鼓励。在我的一位同事的支持下,我试图插入一些 语义信息,例如, PERSUSPOL、LOCCITUS、PoPERSM 等,用于美国政治人物、美国位置城市、拥有者男性,在标签集中一次性合并实体消歧。我现在感觉关系提取会好得多。 请也看看这个新想法。 我用朴素贝叶斯分类器也得到了一些很好的结果 以一组关键字为主的被标记为一个类。

如果有人可以提出任何不同的方法,请随时提出建议。

我在 MS-Windows 上使用 Python2.x,并尝试使用 NLTK、Scikit-learn、Gensim、 熊猫、Numpy、Scipy 等。

提前致谢。

【问题讨论】:

  • 发布有问题。这两个例子都被自动文本编辑器当作代码。但它们不是代码,而是示例。

标签: python algorithm machine-learning nlp


【解决方案1】:

您似乎要走三种完全不同的道路,每条道路都可以在独立的博士学位中完成。有很多关于它们的文献。我的第一个建议集中在主要任务上,其余的外包。如果您打算为非著名语言开发此功能,也可以在其他语言的基础上进行开发。

命名实体识别

Standford NLP 在这方面真的走得太远了,特别是英语。它们解析命名实体非常好,它们被广泛使用并且拥有一个不错的社区。​​p>

openNLP for python 中可能存在其他解决方案。

有些人试图将其扩展到不寻常的细粒度类型,但您需要更大的训练数据来涵盖这些案例,并且决策变得更加困难。

编辑:Stanford NER 存在于 NLTK python 中

命名实体解析/链接/消歧

这涉及将名称链接到一些知识库,并解决牛津大学是否牛津市的问题。

AIDA: 是其中最先进的技术之一。他们使用不同的上下文信息以及连贯性信息。此外,他们还尝试支持多种语言。他们有一个很好的基准。

Babelfy:提供有趣的 API,对实体和概念进行 NER 和 NED。此外,它们支持多种语言,但效果不佳。

其他如 tagme 和 wikifi ...等

会议决议

Stanford CoreNLP 在这方面也有一些出色的工作。我还可以推荐 this work,他们将 Conference Resolution 与 NED 结合在一起。

【讨论】:

  • 希望这会有所帮助。
  • 感谢您的回答。我会回顾你的文献,但似乎有一个中心点,实体。我正试图围绕它展开。任务很大,我明白。