您好我是机器学习的新手,因此正在寻找文本分类解决方案。可以推荐一个用java编写的漂亮框架吗?我想过使用WEKA,还听说过MALLET。什么更好,主要区别在哪里?
我的目标是对未标记的文本进行分类。因此,我为每个学习主题准备了大约18个主题和100个文本。
你会建议做什么?也会欣赏一个很好的小例子或如何继续的提示。
2 个答案:
答案 0 :(得分:2)
你有一个非常小的文本数据集,你可以使用任何库 - 它并不重要。更高级的选项需要更多的数据而不是有意义,所以这不是一个值得考虑的问题。处理文本分类问题的简单方法是使用Bag of Words模型和线性分类器。 Weka和MALLET都支持这一点。
就我个人而言,我发现Weka是一个痛苦而MALLET记录不佳/过时,因此我使用JSAT。有一个关于垃圾邮件分类的例子here。
(偏见警告,我是JSAT的作者)。
答案 1 :(得分:0)
由于您的任务相当简单,并且正如您在ML中提到的那样,我建议您使用weka,因为它易于使用且拥有庞大的用户社区。 p>
否则,这里有一些Java中的通用机器学习框架,您可以查看:
- Datumbox - 用于快速开发机器学习和统计应用程序的机器学习框架
- ELKI - 用于数据挖掘的Java工具包。 (无监督:聚类,异常检测等)。
- H2O - ML引擎,支持对存储在HDFS中的数据进行分布式学习。
- htm.java - 使用Numenta的皮质学习算法的通用机器学习库
- java-deeplearning - 用于Java的分布式深度学习平台,Clojure,Scala
- JAVA-ML - 具有Java中所有算法的通用接口的通用ML库
- JSAT - 用于分类,回归和聚类的众多机器学习算法。
- Mahout - 分布式机器学习
- Meka - 多标签分类和评估方法的开源实现(Weka扩展)。
- Apache Spark中的MLlib - Spark中的分布式机器学习库
- Neuroph - Neuroph是轻量级Java神经网络框架
- ORYX - 简单的实时大型机器学习基础设施。
- RankLib - RankLib是一个学习排名算法的库
- RapidMiner - RapidMiner与Java代码的集成
- 斯坦福分类器 - 分类器是一种机器学习工具,它将获取数据项并将它们放入k类之一。
- WalnutiQ - 人脑的面向对象模型
- Weka - Weka是用于数据挖掘任务的机器学习算法的集合
来源:Awesome Machine Learning