4

我正在尝试在 Lucene 中进行实体提取(更像是匹配)。这是一个示例工作流程:

给定一些文本(来自 URL)和人名列表,尝试从文本中提取人名。

笔记:

人名没有完全规范化。例如,有些是 X 先生、Y 夫人,有些只是 John Doe、X 和 Y。要考虑的其他前缀和后缀是 Jr.、Sr.、Dr.、I、II 等(别让我开始使用非美国名称)。

我正在使用 Lucene MemoryIndex从每个 Url(剥离 html 标记)创建文本的内存索引,并使用 StandardAnalyzer 查询所有名称的列表,一次一个(100k 个名称,还有其他方法吗?这个?平均而言,这大约需要 8 秒。在我拥有的平均文本上)。

一个主要问题是,为了消除噪音,我使用 0.01 作为基础分数,如果文本包含“John Doe”并且在许多案例都没有达到 0.01 的阈值。

另一个问题是,如果我规范化所有名称并开始删除所有出现的 Dr. Mr. Mrs. 等,那么我会开始错过像“Dr. John Edward II”这样的好匹配,并最终得到很多像“Mr. . 约翰·爱德华”。

我知道 Lucene 可能也不是适合这项工作的工具,但到目前为止它还没有被证明太糟糕。任何帮助表示赞赏。

4

5 回答 5

2

NEE 是属于 lucene 的 NLP 任务。开源的可以看lingpipe和gate以及opennlp。有多种货币替代方案。

GATE 完全基于规则,很难用于高精度。为此,您需要一个统计引擎;lingpipe 有一个,但您必须提供训练数据。我对 opennlp 在这方面的内容不是最新的。

于 2010-11-29T21:12:06.637 回答
0

OpenNPL 很有用。http://opennlp.apache.org/

该站点有文档和示例。

对于完全没有经验的人 《驯服文本》一书:http: //www.manning.com/ingersoll/ 提供了很好的概述。您也可以从上面的链接下载本书的源代码。

于 2013-05-13T01:51:43.007 回答
0

你可以试试这个.. http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html

文档很清楚,您也可以使用 DBPedia-Spotlight 网络服务...

http://spotlight.dbpedia.org/rest/spot/?text=

于 2014-02-21T05:35:41.713 回答
0

这些项目可能对您有用:

http://nlp.stanford.edu/ner/index.shtml

http://cogcomp.cs.illinois.edu/page/software_view/4

于 2010-11-30T09:07:29.397 回答
0

人名的消歧是出了名的困难。如果您有其他信息,例如位置或名称的共同出现,这将很有价值。但是仍有很多工作需要解决作者的歧义,通常不能仅从名称列表中解决。

这是一个典型的项目http://code.google.com/p/bibapp/wiki/AuthorAuthorities。还有一个典型的出版物http://www.springerlink.com/content/lk07h1m311t130w4/

这是一个关于记录重复数据删除的项目,我们发现它对消除作者歧义很有用http://datamining.anu.edu.au/projects/linkage.html

于 2010-11-29T21:14:34.607 回答