我想知道什么是最好的基于 Java 的开源文本挖掘框架,以使用 botg 机器学习和字典方法。
我正在使用 Mallet,但没有那么多文档,我不知道它是否符合我的所有要求。
我想知道什么是最好的基于 Java 的开源文本挖掘框架,以使用 botg 机器学习和字典方法。
我正在使用 Mallet,但没有那么多文档,我不知道它是否符合我的所有要求。
老实说,我认为这里提供的几个答案非常好。但是,为了满足我的要求,我选择将Apache UIMA与ClearTK一起使用。它支持多种 ML 方法,我没有任何许可证问题。另外,我可以对其他 ML 方法进行封装,并利用 UIMA 框架,该框架组织良好且速度快。
谢谢大家有趣的答案。
最好的问候,乌克兰
您可能已经了解 GATE: http: //gate.ac.uk/
...但这就是我们(在我的日常工作中)用于许多不同文本挖掘问题的方法。它非常灵活和开放。
我使用LingPipe——一套用于人类语言语言分析的 Java 库——用于文本挖掘(和其他相关)任务。
它是一个文档齐全的软件包,该站点包含几个教程,这些教程彻底解释了如何使用 LingPipe 完成特定任务,例如命名实体识别。还有一个新闻组,您可以在其中发布有关软件(或 NLP 相关任务)的任何问题,并得到软件包作者本人的及时回复;当然还有博客。
源代码也很容易理解并且有据可查,对我来说,这总是一个很大的优势。
至于机器学习算法,有很多,从朴素贝叶斯到条件随机场。另一方面,对于字典匹配算法,它们有一个ExactDicitonaryChunker,它是 Aho-Corasich 算法的一个实现(这个任务的一个非常非常快的算法)。
总而言之,我认为它是 Java 最好的 NLP 软件包之一(我没有使用过那里的每一个软件包,所以我不能说它是最好的),我绝对推荐它来完成以下任务你手头有。
我使用 OpenNLP MaxEnt http://sourceforge.net/projects/maxent/为 CoNLL 数据构建了一个最大熵命名实体识别器,用于一次课程。
虽然需要使用自定义 perl 脚本进行大量数据预处理,但确实可以将所有特征提取到漂亮的数字向量中。
我们使用 lucene 处理来自互联网的实时流。它有一个原生的java api。
http://lucene.apache.org/java/docs/
然后,您可以使用 mahout,它是一组在 lucene 之上运行的机器学习算法。