我正在做一个项目,需要从大量文档中提取人名。这个任务应该属于命名实体解析问题。目前有哪些最流行的开源软件/库来执行命名实体解析?
流行的命名实体解析软件
命名实体解析的问题被称为多个术语,包括重复数据删除和记录链接。我怀疑是否有可能准确地确定哪些软件属于最流行的用于解决该问题的软件。有多种方法和算法可用于命名实体解析。因此,实现这些的软件可以被视为相互补充(也许,存在多个比较和基准实体解析方法和算法的研究,但到目前为止我只看到了其中两个 - 请参见下面的参考资料,用三重星号“***”)。
这个关于实体解析的精彩教程(以演示幻灯片的形式)提供了问题和解决方案的全面概述,包括方法和算法。本教程还提供了广泛的参考资料来源以及更多信息。说到相应的软件,可能会发现开源或双许可项目,例如基于 Java 的斯坦福 NLP Group 软件(包括斯坦福命名实体识别器(NER))、斯坦福实体解析框架(SERF)、LingPipe(包括NER 模块)和Duke库,以及基于 Python 的NLTK软件(http://www.nltk.org/book/ch07.html)。我意识到命名实体识别和解析是完全不同的任务,但是,通过使用适当的代码段,上面提到的一些专注于前者的软件可能对后者有用。
此外,以下恕我直言相关/相关的软件和论文也可能感兴趣:
- Python中的信息提取框架;
- GATE软件,特别是ANNIE信息提取系统;
- 本文提到的其他几种 NER 工具*** ;
- NER 方法的出色概述***,包括神经网络和深度学习;
- Ontotext 的S4(Self-Service Semantic Suite)按需软件提供对链接数据存储库的访问,例如 DBpedia、Freebase 和 GeoNames;
- Duke 的 Elasticsearch NER 插件;
- 这篇关于 Swoosh 算法的论文,由 SERF 软件实现;
- 维基链接语料库,由谷歌发布;
- 这篇关于实体消歧的论文;
- 关于记录联动、实体解析、重复检测的书籍《数据匹配》 。
注意不要将“实体解析”与“命名实体识别”混淆。命名实体识别是指在文本中查找命名实体(例如专有名词)。这就是您最初的问题所要求的。例如,您可以在NLTK 和 Python中执行此操作,或者使用斯坦福的 NER 工具。
实体匹配(或实体解析)也称为重复数据删除或记录链接。这与 NER 不同。实体匹配说,“给定这两个实体,它们是同一个东西吗?” 为了匹配实体,我们可能会查看有关它们的特征,例如,如果我们试图确定 Mary Smith 是否与 Mary Q. Smith 相同,我们可能会检查两个人的街道地址是否相同。我们还可以在名称本身上使用字符串距离或其他指标(Levenshtein、soundex 等),以查看它们是否“足够接近”以可能代表同一个人。
但是实体匹配和命名实体识别不是一回事。
我遇到了 Data Ladder 的DataMatch,它是一个很棒的模糊匹配和实体解析工具,可以在整个业务中使用,并且非常适合这种情况。他们为新用户提供免费试用。
事实上,对软件进行了独立验证评估,并将其与 IBM 和 SAS 的主要软件工具进行了比较。澳大利亚科廷大学数据链接中心进行了一项研究,模拟了 440 万条记录的匹配。它确定了提供商在准确性方面的准确性(找到的匹配数与可用的匹配数。错误匹配的数量)
1. DataMatch Enterprise, Highest Accuracy (>95%), Very Fast, Low Cost
2. IBM Quality Stage, High Accuracy (>90%), Very Fast, High Cost (>$100K)
3. SAS Data Flux, Medium Accuracy (>85%), Fast, High Cost (>100K)
Ralph,这些是数据 ETL 的重复数据删除工具,IBM 的 Quality Stage 是一种重复数据删除工具,主要用于典型数据 ETL 期间处理数据的过程,它不是实体解析工具。这两个概念之间是有区别的。对于实体解析,请尝试 IBM InfoSphere MDM 或 IBM InfoSphere Identity Insight。