2010-02-20 54 views
11

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

我使用槌,但不会有那么多的文件,我不知道这是否会适合我的所有要求。

+1

我有一个相关的问题上,在http://stackoverflow.com/questions/2293636/what-is-a-good-java-library-for-parts-of-speech -tagging – Glenn 2010-02-20 18:08:45

+0

感谢:P。在使用ML方法时,使用满足所有IR要求的广泛框架的POS标签器应该很好。 Lingpipe对字典非常好,但对商业工具来说它不是免费的。 – 2010-02-20 18:14:38

回答

4

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

它也有几个过滤器使用类似StringToWordVector滤波器可以执行TF/IDF变换文本数据到热锅。

查看Weka wiki网站以获取更多信息。

+0

问题是我需要执行命名实体识别(NER),Weka没有提供从单词中提取特征的功能,例如正字法和形态特征。但是如果我可以在IR上使用Weka的方法,那将会很酷。 – 2010-02-20 18:59:06

+1

我觉得这个主题上的维基百科页面有几个指向NER的一些软件包的链接。我刚刚遇到了Apache的UIMA项目,也许你会发现它很有用:http://incubator.apache.org/uima/index.html – Amro 2010-02-20 20:16:12

+0

是的,我知道UIMA。但它不提供ML方法。对于使用基于字典的方法制作NER的系统来说,这是一个完美的解决方案。我不知道如何在UIMA上整合ML方法。 – 2010-02-20 20:24:43

2
+0

我已经看过这个网站,非常好,谢谢。但是我在询问你的经验反馈。我已经尝试了其中一些,但我不知道哪一个是最好的。或者即使我必须使用一个,两个或更多的框架来完成我的任务。 – 2010-02-20 19:23:47

+0

@ukrania对不起,我不是那么正确的人。祝你好运。 – 2010-02-20 19:35:47

2

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

这是一个非常有据可查的软件包,而该网站包含几个教程,详细解释了如何做LingPipe一定的任务,如named entity recognition。还有一个新闻组,您可以在其中发布您对软件的任何问题(或NLP相关任务),并且可以及时获得软件包作者自己的答复;当然还有blog

源代码也很容易遵循和有据可查,哪些对我来说总是一大优势。

至于机器学习算法,有很多,从朴素贝叶斯到Conditional Random Field。另一方面,对于字典匹配算法,他们有一个ExactDicitonaryChunker,这是Aho-Corasich算法的实现(这是一个非常非常快的算法)。总之,我认为它是Java最好的NLP软件包之一(我没有使用过每一个包,所以我不能说它是最好的),我绝对推荐它对于你手头的任务。

+1

@JG感谢您的建议:)。我正在研究我的系统。即使制作商业工具,我也要付出一些代价?有什么限制? – 2010-02-20 20:52:04

2

你可能已经知道GATE:http://gate.ac.uk/

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

+0

@PSpeed是的,我已经知道了。 GATE与UIMA非常相似。其实,GATE是第一个出现的人。但是,我不知道是否可以用GATE执行ML方法。你知道这件事吗? – 2010-02-21 21:46:41

+0

我认为GATE也更灵活...我们发现UIMA非常局限。我没有ML的具体经验,但看起来好像是有人在研究它,那么GATE将成为一个可能的平台。如果我正在写这样的东西,那么我可以从这里开始......但我没有搜索过任何特定的项目。 – PSpeed 2010-02-21 22:53:33

+0

看起来ML和GATE至少有一些工作:http://gate.ac.uk/gate/doc/plugins.html#Machine_Learning – PSpeed 2010-02-21 22:55:49

1

我建立使用OpenNLP最大墒http://sourceforge.net/projects/maxent/为一疗程一次CoNLL数据的最大熵命名实体识别。

需要使用自定义perl脚本进行大量的数据预处理,尽管可以将所有提取的特征提取到漂亮的数值向量中。

6

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

谢谢大家的有趣答案。

最好的问候, ukrania