NLP for java,我应该使用哪个工具包?

时间:2011-12-15 04:54:25

标签: java text nlp text-mining

我正在开发一个需要计算txt文件中每个单词出现次数的项目。 例如,我有一个这样的文本文件:

  

Silver Lake在IPO候选人中寻找什么   被盈利压垮的3家公司:Apple,Cirrus Logic,IBM   IBM的Palmisano:如何成为一家拥有100年历史的公司

如果文件中有上面显示的3个句子,我想计算每个单词的出现次数。在这里,公司和公司应被视为同一个词“公司”(小写),因此“公司”一词的总出现次数为2.

是否有任何针对java的NLP工具包可以告诉两个单词,如“family”和“family”实际上来自同一个单词“family”?

我将计算每个单词的出现以进一步进行Naive Bayes训练,因此获得每个单词的准确出现次数非常重要。

4 个答案:

答案 0 :(得分:4)

Apache LuceneOpenNLP提供了良好的词干算法实现。您可以查看并使用最适合您的产品。我一直在为我的项目使用Lucene。

答案 1 :(得分:0)

您也可以查看LingPipe:http://alias-i.com/lingpipe/

答案 2 :(得分:0)

您还可以查看GATE:http://gate.ac.uk/

如果您想使用单词训练词袋模型,您可以使用TF-IDF值而不是绝对数。

http://en.wikipedia.org/wiki/Tf%E2%80%93idf

答案 3 :(得分:0)

你在做什么叫做词干(获得根词)。

如前所述,Lingpipe,Gate和Lucene / Solr确实扼杀了。另一种选择是stanford解析器。或者你可以自己实施Porter Stemming算法。