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

j'aimerais savoir quel langage de programmation est le meilleur pour le traitement du langage naturel. Java ou Python ? J'ai trouvé beaucoup de questions et de réponses sur 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 un traitement de texte ou une extraction d'information à partir de données non structurées (juste du texte en anglais simple et libre) 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 renseignements utiles sur un produit à partir de données non structurées (p. ex. les utilisateurs font différentes formes de publicité sur les mobiles ou Ordinateurs portables avec la langue anglaise pas très standard)

102
demandé sur Wooble 2014-04-07 09:08:47

2 réponses

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

autres que NLTK (www.nltk.org), il existe en fait d'autres bibliothèques pour le traitement de texte dans python :

(pour plus d'informations, voir https://pypi.python.org/pypi?%3Aaction=search&term=natural+langue+traitement&submit=rechercher )

pour Java , il y en a d'autres, mais voici une autre liste.:

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

Une comparaison utile de PORTE 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 certain, Quelle est la langue à choisir pour la NLP, personnellement je dis, "toute langue qui vous donnera l'analyse/sortie désirée", voir quelle langue ou quels outils apprendre pour le traitement du langage naturel?

Voici une assez récente (2017) d'outils NLP: https://github.com/alvations/awesome-community-curated-nlp

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


à L'exception des outils de traitement linguistique, vous auriez grandement besoin de 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 si les bibliothèques sont assez conviviales:

bibliothèques D'apprentissage Machine en python:

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


avec le récent (2015) Deep learning tsunami in NLP , peut-être que vous pourriez considérer: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

je vais éviter d'énumérer des outils d'apprentissage en profondeur de non-favoritisme / neutralité.


autres questions sur L'écoulement des stocks qui demandaient aussi des outils NLP/ML:

120
répondu alvas 2017-05-23 12:34:41

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

Python

en termes de Python, le premier endroit que vous devriez regarder est le Python Natural Language Toolkit . Comme ils le notent dans leur description, NLTK est une plate-forme de premier plan pour construire des programmes Python pour travailler avec les données du langage humain. Il fournit des interfaces faciles à utiliser pour plus de 50 ressources corpora et lexicales telles que WordNet, ainsi qu'une suite de bibliothèques de traitement de texte pour la classification, la tokenization, le stemming, le tagging, le parsing, et le raisonnement sémantique.

il y a aussi de l'excellent code que vous pouvez consulter et qui provient du projet D'outils en langage naturel de Google basé sur Python. Vous pouvez trouver un lien vers ce code ici sur GitHub .

Java

Le premier endroit à regarder serait Stanford Traitement du Langage Naturel 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 comprennent des composants pour l'invocation en ligne de commande, des fichiers jar, une API Java et du code source.

un autre grande option que vous voyez dans beaucoup d'environnements d'apprentissage machine 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 regroupement, les règles d'association, et la visualisation. Il est également bien adapté au développement de nouveaux systèmes d'apprentissage automatique.

39
répondu Nathaniel Payne 2014-04-10 22:19:07