Java开源文本挖掘框架

时间:2010-02-20 18:05:40

标签: java frameworks machine-learning nlp information-retrieval

我想知道什么是最好的基于Java的开源文本挖掘框架,使用botg机器学习和字典方法。

我正在使用Mallet,但没有那么多文档,我不知道它是否符合我的所有要求。

7 个答案:

答案 0 :(得分:6)

老实说,我认为这里提出的几个答案非常好。但是,为了满足我的要求,我选择Apache UIMAClearTK一起使用。它支持几种ML方法,我没有任何许可证问题。另外,我可以为其他ML方法制作包装器,并且我利用了UIMA框架,它非常有条理和快速。

谢谢大家的有趣答案。

最诚挚的问候, ukrania

答案 1 :(得分:4)

虽然不是专门的文本挖掘框架,Weka通常在文本挖掘任务中使用了许多分类器,例如:SVM,kNN,多项NaiveBayes等。

它还有一些过滤器可以使用文本数据,如StringToWordVector过滤器,可以执行TF / IDF转换。

查看Weka wiki网站了解详情。

答案 2 :(得分:2)

答案 3 :(得分:2)

我使用了LingPipe - 用于人类语言语言分析的 Java库套件 - 用于文本挖掘(和其他相关)任务。

这是一个非常文档齐全的软件包,该网站包含几个教程,可以全面解释如何使用LingPipe执行某项任务,例如named entity recognition。还有一个新闻组,您可以在其中发布有关软件(或NLP相关任务)的任何问题,并立即回复包装的作者;当然还有blog

源代码也很容易理解,并且有很好的文档记录,对我来说,这总是一个很大的优势。

至于机器学习算法,有很多,从NaïveBayes到Conditional Random Field。另一方面,对于字典匹配算法,它们有一个ExactDicitonaryChunker,它是Aho-Corasich算法的一种实现(这个任务非常非常快速的算法)。

总而言之,我认为它是Java最好的NLP软件包之一(我没有使用过那里的每一个软件包,所以我不能说它是最好的),我绝对推荐它你手边的任务。

答案 4 :(得分:2)

您可能已经了解GATE:http://gate.ac.uk/

...但这就是我们(在我的日常工作中)使用的许多不同的文本挖掘问题。它非常灵活和开放。

答案 5 :(得分:1)

我使用OpenNLP MaxEnt http://sourceforge.net/projects/maxent/为一个课程构建了CoNLL数据的最大熵命名实体识别器。

需要使用自定义perl脚本进行大量数据预处理才能将所有功能提取到漂亮的数值向量中。

答案 6 :(得分:0)

我们使用lucene处理来自互联网的直播流。它有一个原生的java api。

http://lucene.apache.org/java/docs/

然后你可以使用mahout,这是一系列在lucene之上运行的机械学习算法。

http://lucene.apache.org/mahout/