java - 在 Java 中消除命名实体的歧义

标签 java named-entity-recognition

我有一个字符串列表(在本例中为公司名称)和一个 Java 程序,该程序从大多数非结构化文本中提取看起来像公司名称的内容列表。我需要将提取文本的每个元素与列表中的字符串相匹配。警告:非结构化文本有拼写错误,例如“Blah, Inc.”。称为“Blah”等。我尝试过 Levenshtein Edit Distance,但由于可预见的原因而失败。是否有解决此问题的已知最佳实践方法?还是我回到手动数据输入?

最佳答案

您可能想看看 Apache Stanbol ,它将 NER 引擎(我认为一个基于您提供的地名词典)和链接引擎连接在一起以解析您检测到的实体。我自己没有使用过它,它仍处于孵化阶段,但可能适合您的需求。

在 TAC 知识库人口轨道(实体链接)中也有一些这方面的研究。任务会在不同的地方弹出,你也应该在 ACL、EMNLP、SIGIR 等 session 上有运气(这个列表并不完整)。

TAC 系统链接到维基百科的一个子集,这可能有助于您的名称变化,因为页面具有“重定向”,本质上是特定页面的别名。

例如,以下页面重定向到“Apple Inc.”,但您可能希望从原始维基百科转储或干净来源(如 DBPedia)中提取重定向或 Freebase。

  • 苹果
  • 苹果公司
  • 苹果电脑
  • 苹果电脑公司
  • 苹果电脑公司
  • 苹果电脑公司
  • 苹果电脑公司
  • 苹果电脑公司
  • 苹果公司
  • 苹果公司
  • 苹果公司
  • 苹果电脑
  • 苹果电脑公司
  • 苹果公司
  • 苹果公司
  • ...

关于java - 在 Java 中消除命名实体的歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007186/

相关文章:

java - 如何使用 Spring Data REST 创建自定义 PersistentEntityResourceAssembler

java - 自定义 SQL 查询,将 SELECT 结果插入到 Spring Boot JPA Hibernate 中的表中

tensorflow - 如何在 NER 上使波斯语的 spacy 训练更快

python - 每行文本到单词 + Python 中的命名实体标签

java - Spring数据JPA和可以为空的参数

javascript - Nashorn loadWithNewGlobal 功能细节

python - SpaCy 3 交叉验证

java - 如何阅读 OpenNLP 中命名实体识别的文档

machine-learning - 除了 NER 基本模型之外,添加自定义实体

java - iTextPDF 到 OpenPDF 集成