我目前正在着手一个项目,该项目将涉及爬取和处理大量数据(数百个数据集),并对它们进行挖掘以提取结构化数据,命名实体识别,重复数据删除,分类等。
我熟悉来自Java和Python世界的ML工具: Lingpipe、Mahout、NLTK等。然而,当涉及到为如此大规模的问题选择平台时-我缺乏足够的经验来决定是Java还是Python。
我知道这听起来像是一个模糊的问题,但我正在寻找关于选择Java或Python的一般建议。JVM提供了更好的性能(?)在Python之上,但是像Lingpipe之类的库是否与Python生态系统相匹配呢?如果我使用Python,在多台机器上扩展和管理它会有多容易。
我应该选哪一个?为什么?
发布于 2012-03-16 00:03:38
随着阿帕奇变得越来越强大,产生了优秀的东西,如用于搜索的Lucene/Solr/Nutch,用于大数据机器学习的Mahout,用于Map Reduce的Hadoop,用于自然语言处理的OpenNLP,以及大量的NoSQL东西。最好的部分是大的"I“,它代表集成,这些产品可以相互集成,当然在大多数情况下,它们(这些产品)是互补的。
Python也很棒,但是如果你从ASF上考虑,那么我会选择Java,就像Sean Owen一样。Python将始终可用于上述内容,但主要类似于Add on,而不是实际的东西。例如,您可以使用Python、使用流等方式来执行Hadoop。
我部分地从C++转到了Java,以便利用一些非常流行的Apache产品,如Lucene、Solr和OpenNLP,以及其他流行的开源NoSQL Java产品,如Neo4j和OrientDB。
发布于 2012-03-15 22:56:00
我认为Java要做的一件大事就是Hadoop。如果你真的指的是大规模,你会希望能够使用这样的东西。一般来说,Java具有性能优势,并且有更多的库可用。所以: Java。
发布于 2012-03-16 18:04:32
如果你正在寻找适合于ML任务的NoSQL数据库,那么Neo4J是一种更适合生产的(相对)并且能够处理BigData的数据库,它是Java语言的原生版本,但它提供了一个开箱即用的漂亮的REST API,因此可以与你选择的平台集成。JAVA在这方面会给你带来性能上的优势。
https://stackoverflow.com/questions/9720894
复制相似问题