Question

Nous avons besoin d'un module de classification de contenu. classificateur bayésien semble être ce que je cherche. Faut-il aller pour Orange ou NLTK?

Était-ce utile?

La solution

Eh bien, comme en témoigne la documentation, la mise en œuvre Naive Bayes dans chaque bibliothèque est facile à utiliser, alors pourquoi ne pas exécuter vos données avec les deux et comparer les résultats?

Les deux Orange et NLTK sont à la fois matures, les bibliothèques stables (10 ans et plus dans le développement de chaque bibliothèque) qui ont pris naissance dans les grandes universités; ils partagent certaines caractéristiques communes principalement Machine Learning algorithmes. Au-delà de cela, ils sont tout à fait différentes dans leur portée, le but et la mise en œuvre.

Orange est agnostique de domaine - pas dirigé vers une discipline académique particulière ou d'un domaine commercial, au lieu qu'il s'annonce comme données pile complète l'exploitation minière et la plate-forme ML. Il est Concentrons Outils et non eux-mêmes l'application de ces outils dans une discipline particulière.

Ses caractéristiques comprennent IO, l'algorithme d'analyse des données, et une toile de visualisation de données.

NLTK, d'autre part, a commencé comme et reste un projet académique dans un calcul département linguistique d'une grande université. La tâche que vous avez mentionné (Classification de contenu du document) et votre algorithme de choix (Naive Bayes) sont à peu près droit au cœur de la fonctionnalité de NLTK. En effet NLTK ne ont des algorithmes ML / Data Mining, mais son seul parce qu'ils ont un particulier utilité en linguistique informatique.

NLTK comprend bien sûr quelques algorithmes ML, mais seulement parce qu'ils ont une utilité en linguistique informatique, ainsi que des documents, parseurs tokenizers, partie de synthèse vocale analyseurs, etc .-- qui tous comprennent NLTK.

Peut-être la mise en œuvre Naive Bayes à Orange est tout aussi bon, je choisirais encore NLTK de la mise en œuvre, car il est clairement optimisé pour la tâche particulière que vous avez mentionné.

Il existe de nombreux tutoriels sur NLTK et en particulier pour ses Naive Bayes pour une utilisation la classification des contenus. Un billet de blog par Jim plus et un autre dans streamhacker.com , par exemple présente un excellent tutoriels pour l'utilisation de Naive Bayes NLTK; le second comprend une ligne par ligne, discussion du code requis pour accéder à ce module. Les auteurs de ces deux messages font état de bons résultats en utilisant NLTK (92% dans le premier cas, 73% dans le second).

Autres conseils

Je ne sais pas Orange, mais +1 pour NLTK:

J'ai successivement utilisé les outils de classification dans NLTK au texte et classer les données méta connexes. Bayésienne est la valeur par défaut, mais il existe d'autres alternatives telles que Maximum Entropy. De plus, étant une boîte à outils, vous pouvez personnaliser comme bon vous semble - par exemple. la création de vos propres caractéristiques (qui est ce que je l'ai fait pour les méta-données).

NLTK a aussi quelques bons livres -. Dont l'un est disponible sous licence Creative Commons (ainsi que O'Reilly)

NLTK est un outil qui supporte un modèle d'état de quatre traitement du langage naturel:

  1. tokenizing: Les caractères de groupement comme des mots. Cela va de choses regex trivial à traiter avec des contractions comme « ne peut pas »
  2. Tagging. Cette applique des balises partie de synthèse vocale aux jetons (par exemple, « NN » pour nom, « VBG » pour verbe gérondif). Cela se fait généralement par la formation d'un modèle (par exemple Markov caché) sur un corpus de formation (à savoir grande liste des phrases par par tagged main).
  3. Chunking / Parsing. Cela prend chaque phrase étiquetée et extraction de caractéristiques dans un arbre (par exemple nom phrases). Cela peut être selon une grammaire écrite à la main ou une formation sur un corpus.
  4. extraction de l'information. Ce parcourt l'arbre et l'extraction des données. C'est là votre orange spécifique = serait fait fruits.

NLTK soutient WordNet, un grand dictionnaire sémantique qui permet de classer les mots. Donc, il y a 5 définitions de noms pour orange (fruit, arbre, pigment, la couleur, la rivière en Afrique du Sud). Chacun d'eux a un ou plusieurs « chemins de hypernym » qui sont des hiérarchies de classifications. Par exemple. le premier sens de « orange » a un deux chemins:

  • orange / citron / edible_fruit / fruits / reproductive_structure / plant_organ / plant_part / natural_object / tout / objet / physical_entity / entité

et

  • orange / citron / edible_fruit / produits / nourriture / solide / matière / physical_entity / entité

En fonction de votre domaine d'application, vous pouvez identifier orange comme un fruit, ou un aliment, ou une chose végétale. Ensuite, vous pouvez utiliser la structure de l'arbre chunked pour déterminer plus (qui a fait quoi au fruit, etc.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top