Datumbox:基于 Java 的新的开源机器学习框架

  • 张天雷

2014 年 10 月 24 日

话题:Java语言 & 开发架构机器学习

当今时代的探索和发现都是基于大量的算法、模型以及统计学的测试和工具。Datumbox 公司应运而生,它提供了一套强有力的基于 Java 的开源机器学习框架。

Datumbox API 提供了海量的分类器和自然语言处理服务,能够被应用在很多领域的应用,包括了情感分析、话题分类、语言检测、主观分析、垃圾邮件检测、阅读评估、关键词和文本提取等等。目前,Datumbox 所有的机器学习服务都能够通过 API 获取,该框架能够让用户迅速地开发自己的智能应用。目前,基于 GPL3.0 的 Datumbox 机器学习框架已经开源并且可以从GitHub上进行下载。

早期的 Datumbox 0.3.x 之前的框架是去年 8 月和 9 月开发的,它们是使用 PHP 来写的。在今年的五月和六月,新的 0.4.x 版本使用 Java 语言并且扩展了很多特性。这些版本都已经通过了商业应用的深度测试。目前的版本是 Datumbox 0.5.0,相关功能正在进一步完善,这只是第一款对于公众发布的 Alpha 版本。尽管是第一款,框架的 API 已经通过了无数的测试。并且在不久,将会有更加稳定并且优良的版本。

Datumbox 的机器学习平台很大程度上已经能够取代普通的智能应用。用户可以很轻松地注册,并且使用其强有力的、易于使用的 API 来构建自己智能平台服务。Datumbox 的机器学习 API 让每个开发者都能够迅速地构建自己的智能软件和服务。整个实现过程是十分简单的,几分钟就能够搞定。它具有如下几个显著的优点:

  1. 强大并且开源。Datumbox API 使用了强大的开源机器学习框架Datumbox,使用其高度精确的算法能够迅速地构建创新的应用。
  2. 易于使用。平台 API 十分易于使用,它使用了 REST&JSON 的技术,对于所有的分类器都提供了一套普通的接口,并且有一套简明的文档和代码样例,来帮助用户进行开发。
  3. 迅速使用。Datumbox 去掉了那些很花时间的复杂机器学习训练模型。用户能够通过平台直接使用分类器。

Datumbox 主要可以应用在四个方面。一个是社交媒体的监视,评估用户观点能够通过机器学习解决,Datumbox 能够帮助用户构建自己的社交媒体监视工具。第二是搜索引擎优化,其中非常有效的方法就是文档中重要术语的定位和优化。第三点是质量评估,在在线通讯中,评估用户产生内容的质量对于去除垃圾邮件是非常重要的,Datumbox 能够自动的评分并且审核这些内容。最后是文本分析,自然语言处理和文本分析工具推动了网上大量应用的产生,平台 API 能够很轻松地帮助用户进行这些分析。

类似于 Datumbox,MahoutScikit-Learn也是同一类型的项目,尽管它们拥有完全不同的目标。Mahout 仅仅支持有限的并行算法,这样能够使用 Hadoop 的 Map-Reduce 框架处理大数据。对于另外一个,Scikit-Learn 支持大量的算法但是它不能处理海量的数据。另外,它是基于 Python 进行开发的,能够很好的进行样板开发和科学计算,但并不是软件开发的最好的语言。

不同于如上两种平台,Datumbox 框架采取了一个折中的方式。它使用了 Java,尝试去支持大量的算法,这意味着它能够更轻松地包含产品代码,并且能够调整优化以减少内存消耗,从而使用在实时的系统中。尽管当前 Datumbox 框架只能处理到中型的数据集,它具有扩展到处理大数据的能力。

从平台的各个方面来看,特别是这仅仅是一个 Alpha 版本,Datumbox 机器学习框架有它自己的独特的但是可以接受的限制:

  1. 文档限制:目前说明文档没有很好覆盖所有的部分,更多的需要进行补充。
  2. 没有多线程:这个框架目前没有支持多线程处理,当然并不是所有的机器学习算法都可以并行化。
  3. 代码样例:尽管这个框架已经被发布,在网上可以找到的代码样例是很少的。
  4. 代码结构:为这样一个巨大的工程构建一个坚固的框架是很具有挑战性的,除此之外还需要处理可能彼此之间完全不同的机器学习算法。
  5. 模型持续性和大数据集:目前训练出的模型以 MongoDM 数据库形式存储在硬盘中。为了处理大量的数据,必须要开发另外的解决方案。例如 MapDB 可能是一个很好的选择。
  6. 新的算法、测试以及模型:目前还有很多很强大的技术没有被支持,特别是时序分析方面的技术。

总之,Datumbox 开源项目是一个新推出的很好的项目。对于机器学习、大数据处理方面很有需要的研究者来说,这不得不说是一个福音。用户可以尝试去深究一下开源的代码,从而更加深刻地了解这个平台,让自己地研究更加迅速和模式化。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Java语言 & 开发架构机器学习