Java开源文本挖掘框架

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

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

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

谢谢大家的有趣答案。

最诚挚的问候,乌克兰

虽然Weka不是一个专门的文本挖掘框架,但它有许多通常用于文本挖掘任务的分类器,例如:SVM,kNN,多项式NaiveBayes等。

它还有一些filter可以使用文本数据,例如可以执行TF / IDF转换的StringToWordVectorfilter。

查看Weka wiki网站了解更多信息。

也许看看Java开源NLP和文本挖掘工具 。

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

它是一个记录完备的软件包,该网站包含几个教程,详细解释了如何使用LingPipe完成某项任务,例如命名实体识别 。 还有一个新闻组,您可以在其中发布有关软件(或NLP相关任务)的任何问题,并立即回复包装的作者; 当然还有博客 。

源代码也很容易遵循和记录良好,对我来说,这总是一个很大的优点。

至于机器学习算法,有很多,从朴素贝叶斯到条件随机场 。 另一方面,对于字典匹配算法,他们有一个ExactDicitonaryChunker ,它是Aho-Corasich算法的一种实现(这个任务非常非常快速的算法)。

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

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

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

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

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

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

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

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

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