我目前正在尝试用Java实现标记引擎,并搜索从文本(文章)中提取关键字/标记的解决方案。我在stackoverflow上找到了一些建议使用Pointwise Mutual Information的解决方案。
我不能使用pyton和nltk所以我必须自己实现它。但我不知道如何计算概率。 等式看起来像这样:
PMI(term, doc) = log [ P(term, doc) / (P(term)*P(doc)) ]
我想知道的是如何计算P(term,doc)
我已经有一个lange文本语料库和一组文章。这些文章不是语料库的一部分。语料库用lucene索引。
请帮帮我。 最好的问候。
答案 0 :(得分:2)
有很多算法可以做到这一点:
开源工具:
kea(http://www.nzdl.org/Kea/)监督方法使用训练数据和受控词汇
maui索引器(http://code.google.com/p/maui-indexer/)它基本上是kea的扩展,它提供了使用百科全书进行关键短语提取的工具。
carrot2(http://project.carrot2.org/)无监督的关键短语提取方法。它支持关键短语提取的输入,输出格式和参数的大量变化。
mallet主题建模模块(http://mallet.cs.umass.edu/topics.php)
斯坦福主题建模工具(http://nlp.stanford.edu/software/tmt/tmt-0.3/)
Mahout群集算法(http://mahout.apache.org/)
商业api:
Alchemy API(http://www.alchemyapi.com/api/keyword-extraction/)
zemanta API(http://www.zemanta.com/developer/)
雅虎术语提取api(http://developer.yahoo.com/contentanalysis/)