命名实体识别算法

我想使用命名实体识别(NER)为数据库中的文本找到足够的标签。

我知道有一篇关于此内容的维基百科文章以及许多其他描述NER的页面,我更愿意从您那里听到有关此主题的信息:

  • 你用各种算法做了什么体验?
  • 您会推荐哪种算法?
  • 哪种算法最容易实现(PHP/Python)?
  • 算法如何工作?是否需要手动培训?

例:

“去年,我在伦敦看到了巴拉克·奥巴马 >。

我希望你能帮助我。非常感谢你提前!


答案 1

首先,如果您计划使用python,http://www.nltk.org/,尽管据我所知,代码不是“工业实力”,但它会让您入门。

查看 http://nltk.googlecode.com/svn/trunk/doc/book/ch07.html 的第7.5节,但要了解算法,您可能需要通读本书的很多内容。

另请查看此 http://nlp.stanford.edu/software/CRF-NER.shtml。它是用java完成的,

NER不是一个简单的主题,可能没有人会告诉你“这是最好的算法”,他们中的大多数都有其优点/缺点。

我的0.05美元。

干杯


答案 2

这取决于您是否想要:

要了解NER:一个很好的起点是NLTK和相关的书

要实施最佳解决方案:在这里,您将需要寻找最先进的技术。看看TREC中的出版物。一个更专业的会议是Biocreative(NER应用于狭窄领域的一个很好的例子)。

实现最简单的解决方案:在这种情况下,您基本上只想进行简单的标记,并拉出标记为名词的单词。您可以使用来自nltk的标记器,甚至只是在PyWordnet中查找每个单词,然后用最常见的wordense标记它。


大多数算法都需要某种训练,并且当它们在表示您将要求它标记的内容上进行训练时,性能最佳。


推荐