Domanda

Abbiamo bisogno di un modulo di classificazione dei contenuti. classificatore Bayesiano sembra essere quello che sto cercando. Dovremmo andare per Orange o NLTK?

È stato utile?

Soluzione

Beh, come dimostra la documentazione, l'implementazione Naive Bayes in ogni biblioteca è facile uso, quindi perché non correre i tuoi dati con entrambi e confrontare i risultati?

Sia Orange e NLTK sono entrambi maturi, biblioteche stabili (10 + anni di sviluppo per ogni libreria) che ha origine in grandi università; condividono alcune caratteristiche comuni principalmente Machine Learning algoritmi. Oltre a ciò, sono molto diversi nel campo di applicazione, finalità, e l'implementazione.

Orange è di dominio agnostico - non diretto verso una particolare disciplina accademica o il dominio commerciale, invece si annuncia come il data mining full-stack e la piattaforma di ML. E 'di attenzione si concentra sulle Strumenti se stessi e non l'applicazione di questi strumenti in una disciplina particolare.

Le sue caratteristiche comprendono IO, l'algoritmo di analisi dei dati, e una tela visualizzazione dei dati.

NLTK, d'altra parte, ha cominciato come e rimane un progetto accademico in un computazionale Dipartimento di Linguistica di una grande università. Il compito che lei ha citato (Classificazione dei contenuti del documento) e l'algoritmo di scelta (Naive Bayes) sono praticamente proprio al centro delle funzionalità di NLTK. NLTK effettivamente hanno algoritmi di ML / Data Mining, ma il suo solo perché hanno una particolare utility in linguistica computazionale.

NLTK naturalmente include alcuni algoritmi di ML, ma solo perché hanno utilità nella linguistica computazionale, insieme con i parser documento, tokenizers, part-of-speech analizzatori, ecc .-- ognuno dei quali comprendono NLTK.

Forse l'attuazione Naive Bayes a Orange è altrettanto buono, vorrei ancora scegliere di NLTK implementazione perché è chiaramente ottimizzato per il particolare compito lei ha citato.

Ci sono numerosi tutorial su NLTK ed in particolare per le sue Naive Bayes per l'uso la classificazione dei contenuti. Un post sul blog di Jim Inoltre e un altro in streamhacker.com , ad esempio presenti eccellente tutorial per l'utilizzo di Naive Bayes di NLTK; la seconda comprende una linea per linea discussione del codice necessario per accedere a questo modulo. Gli autori di entrambi questi messaggi riportano buoni risultati utilizzando NLTK (92% nel primo caso, 73% nel secondo).

Altri suggerimenti

Non so Arancione, ma +1 per NLTK:

Ho successivamente utilizzato gli strumenti di classificazione in NLTK in testo classificare e metadati relativi. Bayesiana è il default, ma ci sono altre alternative, come massima entropia. Pur essendo un kit di strumenti, è possibile personalizzare a vostro piacimento - ad es. creare le proprie caratteristiche (che è quello che ho fatto per il meta-dati).

NLTK ha anche un paio di buoni libri -. Uno dei quali è disponibile sotto la licenza (così come O'Reilly)

NLTK è un toolkit che supporta un modello a quattro stato di elaborazione del linguaggio naturale:

  1. creazione di token: il raggruppamento personaggi come parole. Si va da cose banali espressioni regolari a che fare con le contrazioni come "non può"
  2. Tagging. Questa è l'applicazione part-of-speech tag per i token (ad esempio "NN" per sostantivo, "VBG" per verb gerundio). Questo è in genere fatto attraverso la formazione di un modello (ad esempio, Hidden Markov) su un corpus di formazione (vale a dire lunga lista di per mano frasi tagged).
  3. Chunking / Analisi. Questo sta prendendo ogni frase con tag e l'estrazione di caratteristiche in un albero (ad es sostantivo frasi). Questo può essere secondo una grammatica scritta a mano o uno addestrato su un corpus.
  4. Estrazione
  5. Informazioni. Questo sta attraversando l'albero e l'estrazione dei dati. Questo è dove il vostro specifico arancione = frutta sarebbe fatto.

NLTK supporta WordNet, un dizionario semantica enorme che classifica le parole. Quindi ci sono 5 le definizioni sostantivo per Orange (frutta, albero, pigmento, il colore, fiume in Sud Africa). Ognuno di questi ha una o più 'percorsi hypernym' che sono gerarchie di classificazione. Per esempio. il primo senso di 'arancione' ha due percorsi:

  • arancione / Citrus / edible_fruit / frutta / reproductive_structure / plant_organ / plant_part / natural_object / intero / oggetto / physical_entity / entità

e

  • arancione / Citrus / edible_fruit / prodotti / alimenti / solido / materia / physical_entity / entità

A seconda del dominio di applicazione è possibile identificare arancione come un frutto, o di un alimento, o una cosa pianta. Quindi è possibile utilizzare la struttura ad albero Chunked per determinare più (chi ha fatto cosa alla frutta, ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top