我想使用命名实体识别(NER)来为数据库中的文本找到适当的标记。
我知道维基百科上有一篇关于这一点的文章,还有很多其他关于NER的文章,我希望能从你那里听到一些关于这个话题的东西:
示例:
“去年,我在伦敦见到了巴拉克·奥巴马。”=>标签:伦敦,巴拉克·奥巴马
我希望你能帮助我。非常感谢您提前!
发布于 2009-06-22 13:53:39
首先,查看http://www.nltk.org/,如果您计划使用python,尽管据我所知,代码并不是“行业优势”,但它会让您开始工作。
请参阅http://nltk.googlecode.com/svn/trunk/doc/book/ch07.html的第7.5节,但是要理解算法,您可能需要阅读大量本书。
还可以查看这个http://nlp.stanford.edu/software/CRF-NER.shtml。这是用java做的,
NER不是一门容易的学科,也许没人会告诉你“这是最好的算法”,他们中的大多数都有自己的优缺点。
我的0.05块钱。
干杯,
发布于 2009-06-22 14:05:15
这取决于您是否希望:
要了解NER:一个很好的起点是使用NLTK和相关的书。
要实现最好的解决方案:在这里,您需要寻找最先进的技术。查看TREC中的出版物。一个更专业的会议是生物活性 (一个应用于狭窄领域的NER的很好例子)。
要实现最简单的解决方案:在本例中,您基本上只想做简单的标记,并取出标记为名词的单词。您可以使用nltk中的标签,甚至可以在PyWordnet中查找每个单词并使用最常见的wordsense标记它。
大多数算法都需要某种形式的培训,并且当它们在代表您将要求它标记的内容方面进行培训时,它们的性能最好。
发布于 2014-07-16 20:01:14
这里有一些工具和API。
在DBPedia之上构建了一个名为DBPedia Spotlight (https://github.com/dbpedia-spotlight/dbpedia-spotlight/wiki)的工具。您可以使用他们的REST接口或下载并安装您自己的服务器。最重要的是,它将实体映射到它们的DBPedia存在,这意味着您可以提取有趣的链接数据。
AlchemyAPI (www.alchemyapi.com)有一个API,它也可以通过REST实现这一点,并且他们使用了一个免费的模型。
我认为大多数技术都依赖于一些NLP来查找实体,然后使用诸如维基百科、DBPedia、Freebase等底层数据库来消除歧义和相关性(例如,试图确定一篇提到苹果的文章是关于苹果还是该公司.如果文章中包含与苹果公司有关联的其他实体,我们会选择该公司)。
https://stackoverflow.com/questions/1026925
复制相似问题