27 votes

Modélisation de sujets dans MALLET vs NLTK

Je viens de lire un article fascinant sur la façon dont MALLET pourrait être utilisé pour la modélisation de sujets, mais je n'ai rien trouvé en ligne comparant MALLET à NLTK, avec lequel j'ai déjà eu une certaine expérience.

Quelles sont les principales différences entre eux? MALLET est-il une ressource plus «complète» (par exemple, a-t-il plus d'outils et d'algorithmes sous le capot)? Ou où sont de bons articles répondant à ces deux premières questions?

18voto

Matti Lyra Points 5370

Ce n'est pas que l'un est plus complet que les autres c'est plus une question de quelques trucs que les autres ne l'est pas et vice versa. Il a aussi une question de public cible et de l'objectif.

Mallet est un Java sur machine outil d'apprentissage qui vise à fournir robuste et rapide pour les implémentations différentes de traitement du langage naturel tâches.

NLTK est construit à l'aide de Python et est livré avec un lot de fonctionnalités supplémentaires comme corpus tels que WordNet. NLTK est plus destiné à l'apprentissage de la PNL, et en tant que telle est utilisé comme une plate-forme d'apprentissage et peut-être moins que d'une solution d'ingénierie.

À mon avis, la principale différence entre les deux est que NLTK est mieux positionnée comme une ressource d'apprentissage pour les personnes intéressées par l'apprentissage de la machine et de la PNL comme il est livré avec toute une tonne de documentation, des exemples de corpus, etc. etc.

Mallet est plus destiné à des chercheurs et des praticiens qui travaillent dans le domaine et savent déjà ce qu'ils veulent faire. Il est livré avec moins de documentation (même si elle a de bons exemples et de l'API est bien documenté) par rapport à NLTK de la vaste collection du général PNL choses.

Mise à JOUR: De bons articles décrivant ces serait le Maillet docs et des exemples à http://mallet.cs.umass.edu/ - la barre latérale a des liens à la séquence de marquage, le sujet de la modélisation etc.

et pour NLTK la NLTK livre Naturelles de Traitement du Langage Python est une bonne introduction à la fois à NLTK et à la PNL.

Mise à JOUR

J'ai récemment trouvé la sklearn bibliothèque Python. Ce qui est destiné à l'apprentissage de la machine, plus généralement, ne sont pas directement pour la PNL, mais peut être utilisé pour cela. Il est livré avec une très grande sélection d'outils de modélisation et plus il semble s'appuyer sur NumPy, donc ça devrait être assez rapide. Je l'ai utilisé un peu et je peux dire que c'est très bien écrit et documenté et dispose d'une communauté active de développeurs en le poussant vers l'avant (à partir de Mai 2013, au moins).

Mise à JOUR 2

J'ai également été à l'aide du maillet pour un certain temps (plus précisément, le maillet de l'API) et je peux dire que si vous avez l'intention sur l'intégration de maillet dans un autre projet, vous devez être très familier avec Java et prêt à passer beaucoup de temps à mettre au point un presque complètement sans-papiers de la base de code.

Si tout ce que vous voulez faire est d'utiliser le maillet outils de ligne de commande, c'est très bien, à l'aide de l'API nécessite beaucoup de creuser par le biais de l'maillet code lui-même et généralement la correction de certains bugs ainsi. Soyez averti maillet vient avec un minimum de documentation en ce qui concerne l'API.

0voto

theclaymethod Points 31

La question est de savoir si vous travaillez en Python ou en Java (ou aucun des ci-dessus). Mallet est bon pour Java (donc Clojure et Scala) puisque vous pouvez facilement accéder à l'API en Java. Mallet a également une belle interface en ligne de commande de sorte que vous pouvez l'utiliser en dehors d'une application.

Pour la même raison avec Python, NLTK est idéal pour python, et vous n'aurez pas à faire tout Jython folie pour obtenir ces à bien jouer ensemble. Si vous êtes à l'aide de python, Gensim juste ajouté un Maillet wrapper qui vaut le détour. Maintenant, il s'agit essentiellement d'un bare-bones alpha, mais il peut faire ce qu'il vous faut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X