机器学习 - 概念/建议

时间:2014-07-22 19:54:19

标签: machine-learning classification text-classification

您好我是机器学习的新手,因此正在寻找文本分类解决方案。可以推荐一个用java编写的漂亮框架吗?我想过使用WEKA,还听说过MALLET。什么更好,主要区别在哪里?

我的目标是对未标记的文本进行分类。因此,我为每个学习主题准备了大约18个主题和100个文本。

你会建议做什么?也会欣赏一个很好的小例子或如何继续的提示。

2 个答案:

答案 0 :(得分:2)

你有一个非常小的文本数据集,你可以使用任何库 - 它并不重要。更高级的选项需要更多的数据而不是有意义,所以这不是一个值得考虑的问题。处理文本分类问题的简单方法是使用Bag of Words模型和线性分类器。 Weka和MALLET都支持这一点。

就我个人而言,我发现Weka是一个痛苦而MALLET记录不佳/过时,因此我使用JSAT。有一个关于垃圾邮件分类的例子here

(偏见警告,我是JSAT的作者)。

答案 1 :(得分:0)

由于您的任务相当简单,并且正如您在ML中提到的那样,我建议您使用weka,因为它易于使用且拥有庞大的用户社区。

否则,这里有一些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