Java ou Python pour le traitement du langage Naturel [fermé]


Je voudrais savoir quel langage de programmation est le meilleur pour le traitement du langage naturel. Java ou Python? J'ai trouvé beaucoup de questions et réponses à ce sujet. Mais je suis toujours perdu dans le choix de l'utiliser.

Et je veux savoir quelle bibliothèque NLP utiliser pour Java car il y a beaucoup de bibliothèques (LingPipe, GATE, OpenNLP, StandfordNLP). Pour Python, la plupart des programmeurs recommandent NLTK.

Mais si je dois faire du traitement de texte ou des informations extraction à partir dedonnées non structurées (juste du texte anglais simple formé gratuitement) pour obtenir des informations utiles, quelle est la meilleure option? Java ou Python? Bibliothèque appropriée?

Mise à Jour

Ce que je veux faire, c'est extraire des informations utiles sur les produits à partir de données non structurées (par exemple, les utilisateurs font différentes formes de publicité sur les mobiles ou les ordinateurs portables avec une langue anglaise pas très standard)

Author: Wooble, 2014-04-07

2 answers

Java vs Python pour la PNL est une préférence ou une nécessité. Selon l'entreprise / les projets, vous devrez utiliser l'un ou l'autre et souvent, il n'y a pas beaucoup de choix à moins que vous dirigiez un projet.

, Autres que NLTK (www.nltk.org), il y a effectivement d'autres bibliothèques pour un traitement de texte dans python:

(pour en savoir plus, voir https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search)

Pour Java, il y en a des tonnes d'autres mais voici une autre liste:

Ceci est une belle comparaison pour le traitement de chaîne de base, voir http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html

Une comparaison utile de GATE vs UIMA vs OpenNLP, voir https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4

Si vous n'êtes pas sûr, quelle est la langue à utiliser pour la PNL, personnellement, je dis: "toute langue qui vous donnera l'analyse/sortie souhaitée", voir Quelle langue ou quels outils apprendre pour le traitement du langage naturel?

Voici un assez récent (2017) des outils PNL: https://github.com/alvations/awesome-community-curated-nlp

Une liste plus ancienne de PNL outils (2013): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp


En dehors des outils de traitement du langage, vous auriez vraiment besoin machine learning outils à intégrer dans les pipelines NLP.

Il y a toute une gamme dans Python et Java, et encore une fois, c'est à la préférence et à la question de savoir si les bibliothèques sont suffisamment conviviales:

Bibliothèques d'apprentissage automatique dans python:

(pour plus d'informations, voir https://pypi.python.org/pypi?%3Aaction=search&term=machine + apprentissage & soumettre = recherche)


Avec le récent (2015) tsunami d'apprentissage en profondeur dans la PNL, vous pourriez peut-être envisager: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

J'éviterai d'énumérer les outils d'apprentissage en profondeur par non-favoritisme / neutralité.


Autres questions de Stackoverflow qui ont également demandé la PNL / ML outils:

 120
Author: alvas, 2017-05-23 12:34:41

La question est très ouverte. Cela dit, plutôt que d'en choisir un, voici une comparaison en fonction de la langue que vous souhaitez utiliser (car il existe de bonnes bibliothèques disponibles dans les deux langues).

Python

En termes de Python, le premier endroit que vous devriez regarder est la Python Langage Naturel Toolkit. Comme ils le notent dans leur description, NLTK est une plate-forme leader pour la construction de programmes Python pour travailler avec des données de langage humain. Il fournit des interfaces faciles à utiliser vers plus de 50 corpus et ressources lexicales telles que WordNet, ainsi qu'une suite de bibliothèques de traitement de texte pour la classification, la tokenisation, le stemming, le tagging, l'analyse et le raisonnement sémantique.

Il y a aussi un excellent code que vous pouvez rechercher qui provient du projet Natural Language Toolkit de Google basé sur Python. Vous pouvez trouver un lien vers ce code ici sur GitHub.

Java

Le premier endroit à regarder serait Stanford Traitement de la Langue Naturelle le Groupe. Tous les logiciels qui y sont distribués sont écrits en Java. Toutes les distributions récentes nécessitent Oracle Java 6 + ou OpenJDK 7+. Les paquets de distribution incluent des composants pour l'invocation en ligne de commande, des fichiers jar, une API Java et du code source.

Une autre excellente option que vous voyez dans de nombreux environnements d'apprentissage automatique ici (option générale), est Weka. Weka est une collection d'algorithmes d'apprentissage automatique pour tâches d'exploration de données. Les algorithmes peuvent être appliqués directement à un ensemble de données ou appelés à partir de votre propre code Java. Weka contient des outils pour le prétraitement des données, la classification, la régression, le clustering, les règles d'association et la visualisation. Il est également bien adapté pour développer de nouveaux schémas d'apprentissage automatique.

 39
Author: Nathaniel Payne, 2014-04-10 22:19:07