我试图在Lucene中进行实体提取(更像是匹配)。以下是一个示例工作流程:
给定一些文本(来自URL)和列表人名,尝试从文本中提取人名。
注意:
人的名字并不完全 标准化。例如有些人是X先生,夫人。 Y和一些人只是John Doe,X和Y. 思考的其他前缀和后缀 关于Jr.,Sr.,Dr。,I,II ...... 等等(不要让我开始使用非 美国名字。)
我正在使用Lucene MemoryIndex创建每个Url文本的内存索引(剥离html标记),并使用StandardAnalyzer查询所有名称的列表,一次一个(100k名称,有没有其他方法可以做到这一点?平均而言,我的平均文本大约需要8秒。
一个主要的问题是消除噪音我使用0.01分作为基本分数,像“John Doe先生”这样的查询得分显着低于“John Doe”,如果文字包含“John Doe” “并且在许多情况下错过了0.01门槛。
另一个问题是,如果我将所有名字正常化并开始删除Dr. Mrs. Mrs.等所有出现的事件,那么我开始错过像“约翰·爱德华二世博士”这样的好匹配,并最终得到了很多垃圾比赛像“约翰爱德华先生”。
据我所知,Lucene可能也不适合这项工作,但到目前为止它还没有被证明是太糟糕了。任何帮助表示赞赏。
答案 0 :(得分:2)
NEE是一个NLP任务,不是lucene的一部分。对于开源,您可以查看lingpipe和gate以及opennlp。有各种货币替代品。
GATE完全基于规则,并且难以用于高精度。你需要一个统计引擎; lingpipe有一个,但你必须提供训练数据。我不知道这方面opennlp的内容。
答案 1 :(得分:0)
人名的消歧是众所周知的困难。如果您有其他信息,例如位置或共同出现的名称,这将是有价值的。但是仍然有许多工作仍在进行作者消歧,并且通常不能仅从名单中解决。
这是一个典型的项目http://code.google.com/p/bibapp/wiki/AuthorAuthorities。还有一个典型的出版物http://www.springerlink.com/content/lk07h1m311t130w4/。
以下是关于记录重复数据删除的项目,我们认为这对于作者消除歧义有用http://datamining.anu.edu.au/projects/linkage.html
答案 2 :(得分:0)
这些项目可能对您有用:
答案 3 :(得分:0)
OpenNPL非常有用。 http://opennlp.apache.org/
该网站有文档和示例。
对于完全没有经验的人 “驯服文本:http://www.manning.com/ingersoll/一书提供了一个很好的概述。您也可以从上面的链接下载书中的源代码。
答案 4 :(得分:0)
你可以试试这个.. http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html
Documenataion很清楚,你也可以使用DBPedia-Spotlight webservice ...