Pregunta Aprendizaje automático a gran escala: ¿Python o Java? [cerrado]


Actualmente me estoy embarcando en un proyecto que implicará rastrear y procesar grandes cantidades de datos (cientos de gig), y también extraerlos para extraer datos estructurados, denominados reconocimiento de entidades, deduplicación, clasificación, etc.

Estoy familiarizado con las herramientas de ML de Java y el mundo de Python: Lingpipe, Mahout, NLTK, etc. Sin embargo, cuando se trata de elegir una plataforma para un problema de tan gran escala, carezco de experiencia suficiente para decidir entre Java o Python. .

Sé que esto suena como una pregunta vaga, pero estoy buscando consejos generales sobre cómo elegir Java o Python. La JVM ofrece un mejor rendimiento (?) Sobre Python, pero ¿son compatibles las bibliotecas como Lingpipe, etc. con el ecosistema de Python? Si fuera este Python, qué fácil sería escalarlo y administrarlo en múltiples máquinas, etc.

¿Con cuál debería ir y por qué?


32
2018-03-15 13:41


origen


Respuestas:


Como Apache se está volviendo fuerte produciendo cosas excelentes como Lucene / Solr / Nutch para Search, Mahout para Big Data Machine Learning, Hadoop para Map Reduce, OpenNLP para NLP, muchas cosas de NoSQL. La mejor parte es la gran "I" que significa integración y estos productos se pueden integrar entre sí y, por supuesto, en la mayoría de las situaciones ellos (estos productos) se complementan entre sí.

Python también es genial, sin embargo, si lo considera más arriba de ASF, entonces iré con Java como Sean Owen. Python siempre estará disponible para lo anterior, pero sobre todo como Add on's y no como material real. Por ejemplo, puede hacer Hadoop usando Python usando Streaming, etc.

Cambié parcialmente de C ++ a Java para utilizar algunos de los productos muy populares de Apache como Lucene, Solr y OpenNLP y también otros productos Java de código abierto populares como Neo4j y OrientDB.


16
2018-03-15 16:03



Creo que una gran cosa que tiene Java es Hadoop. Si realmente quieres decir a gran escala, querrás poder usar algo así. En general, Java tiene la ventaja de rendimiento y más bibliotecas disponibles. Entonces: Java.


10
2018-03-15 14:56



Si está buscando bases de datos NoSQL aptas para tareas ML, entonces Neo4J es una de las más preparadas para producción (relativamente) y es capaz de manejar BigData, es nativa de JAVA pero viene con una hermosa API REST lista para usar y por lo tanto puede integrarse con la plataforma que elijas. JAVA te dará una ventaja de rendimiento aquí.


5
2018-03-16 10:04