6

Qualcuno sa di buoni modelli di categorizzazione del testo open source? So di Stanford Classifier, Weka, Mallet, ecc. Ma tutti richiedono addestramento.categorie di categorizzazione del testo

Ho bisogno di classificare articoli di notizie in Sport/Politica/Salute/Gioco/ecc. C'è qualche modello pre-addestrato là fuori?

Alchimia, OpenCalais, ecc. Non sono opzioni. Ho bisogno di strumenti open source (preferibilmente in Java).

risposta

5

Avere un modello pre-addestrati presuppone che il corpus che è stato utilizzato per addestrare è dal esattamente lo stesso dominio dei documenti stanno cercando di classificare. Generalmente questo non ti darà i risultati che desideri perché non hai il corpus originale. L'apprendimento automatico non è statico, quando si allena un classificatore è necessario aggiornare il modello quando nuove funzionalità/informazioni diventano disponibili.

Prendi ad esempio la classificazione di articoli di notizie come vuoi nel dominio di Sport/Politica/Salute/Gioco/ecc.

Prima quale lingua? Stiamo parlando solo di inglese? Come è stato etichettato il corpus originale? E la più grande sconosciuta è la categoria ecc.

Allenare il proprio classificatore è davvero facile. Se stai classificando il testo, MALLET è la scelta migliore. Puoi essere attivo e funzionante in meno di 10 minuti. Puoi aggiungere MALLET alla tua applicazione in meno di 1 ora.

Se si desidera classificare gli articoli di notizie ci sono molti corpora open source che è possibile utilizzare come base per iniziare la formazione. Vorrei iniziare con Reuters-21578 o RCV-1.

+0

Grazie mille, Shane, per la tua risposta.Sicuramente esaminerò i set di dati che hai menzionato! Ma sì, sto lavorando solo su dati in inglese e domini generali di articoli di notizie (simili a quelli classificati da Alchemy e OpenCalais). Darò un colpo a MALLET. – MFARID

+0

Grande fammi sapere se hai problemi! – Shane

0

C'è una lunga lista di modelli pre-addestrato per OpenNLP

http://opennlp.sourceforge.net/models-1.5/

+1

Grazie tante, ma nessuno di loro lo fanno testo-categorizzazione – MFARID

+0

Non sono sicuro se questo sarebbe ideale il vostro bisogno https://cwiki.apache.org/MAHOUT/bayesian.html anche citando un esempio che arriva con la loro fonte. https://cwiki.apache.org/MAHOUT/wikipedia-bayes-example.html –

2

Ci sono molti classificatori là fuori a seconda delle vostre necessità. Innanzitutto, penso che potresti voler restringere cosa vuoi fare con i classificatori.

E la formazione è parte di passaggi di classificazione, non penso che troverete molti classificatori pre-addestrati là fuori. Inoltre, la formazione è quasi sempre parte facile della classificazione.

Detto questo, ci sono in realtà molte risorse che puoi guardare. Non posso fingere di prendersi il merito di questo, ma questo è uno degli esempi:

Weka - è una raccolta di macchina di algoritmi di apprendimento per il data mining. È uno dei più popolari framework di classificazione del testo . Contiene implementazioni di una vasta gamma di algoritmi , tra cui Naive Bayes e Support Vector Macchine (SVM, elencate sotto SMO) [Nota: Altre implementazioni SVM non Java comunemente utilizzate sono SVM-Light, LibSVM e SVMTorch]. Un progetto correlato è Kea (Keyphrase Extraction Algorithm) un algoritmo per che estrae le frasi chiave dai documenti di testo.

Apache Lucene Mahout - Un progetto incubatore per create altamente scalabili implementazioni distribuite su algoritmi di apprendimento automatico comune sulla superiore della mappa-ridurre framework Hadoop.

Fonte: http://www.searchenginecaffe.com/2007/03/java-open-source-text-mining-and.html

+0

Grazie, Hearty, per la tua risposta. – MFARID

2

Cosa si intende per classificazione è molto importante.

La classificazione è un'attività supervisionata, che richiede in anticipo un corpus pre-etichettato. Passando dal corpus già etichettato, è necessario creare un modello utilizzando diversi metodi e approcci e infine è possibile classificare un corpus di test senza etichetta utilizzando tale modello. Se questo è il caso, puoi usare un classificatore multi-classe che è generalmente un'applicazione di un albero binario di un classificatore binario. L'approccio allo stato dell'arte per questo tipo di attività sta utilizzando un ramo di machine learning, SVM. Due dei migliori classificatori SVM sono LibSVM e SVMlight. Questi sono open-source, facili da usare e includono strumenti di classificazione multi-classe. Infine, devi fare un sondaggio sulla letteratura per capire cosa fare oltre ad ottenere buoni risultati, perché l'uso di quei classificatori non è abbastanza da solo. È necessario manipolare/pre-elaborare il corpus per estrarre le informazioni contenenti parti (ad esempio unigram) ed escludendo parti rumorose. In generale, probabilmente hai una lunga strada da percorrere, ma la PNL è un argomento molto interessante e su cui vale la pena lavorare.

Tuttavia, se ciò che intendi per classificazione è il clustering, il problema sarà più complicato. Il clustering è un task non supervisionato non controllato, il che significa che non includerai alcuna informazione sul programma che stai utilizzando su quale esempio appartiene a quale gruppo/argomento/classe. Ci sono anche lavori accademici sugli approcci ibridi semi-supervisionati, ma sono un po 'divergenti dal vero scopo del problema del clustering. La pre-elaborazione che devi usare mentre manipoli il tuo corpus ha una natura simile a quella che devi fare nel problema di classificazione, quindi non ne parlerò più. Per fare il clustering, ci sono diversi approcci che devi seguire. Innanzitutto, è possibile utilizzare il metodo LDA (Latent Dirichlet Allocation) per ridurre la dimensionalità (numero di dimensioni dello spazio delle caratteristiche) del corpus, che contribuirà all'efficienza e al guadagno di informazioni dalle funzionalità. Accanto o dopo LDA, è possibile utilizzare Hierarchical Clustering o altri metodi simili come K-Means per raggruppare il proprio corpus senza etichetta. È possibile utilizzare Gensim o Scikit-Learn come strumenti open-source per il clustering. Entrambi sono strumenti potenti, ben documentati e facili da usare.

In tutti i casi, fai molta lettura accademica e cerca di capire la teoria al di sotto di questi compiti e problemi. In questo modo, è possibile trovare soluzioni innovative ed efficienti per ciò che si sta trattando in modo specifico, perché i problemi nella PNL sono generalmente dipendenti dal corpus e si è generalmente da soli mentre si affronta il problema specifico. È molto difficile trovare soluzioni generiche e pronte per l'uso e non consiglio di fare affidamento anche su tale opzione.

Potrei aver risposto in modo eccessivo alla domanda, mi dispiace per le parti non pertinenti.

Buona fortuna =)

+0

Ottima risposta! Molte grazie. Sono ben consapevole della classificazione. Stavo cercando un approccio supervisionato, ma con modelli pre-formati – MFARID

+1

Il modello è l'esito principale del tuo lavoro in classifica; tutte le altre cose sono per creare un buon modello che si adatta alle tue esigenze. In questo senso, cercare di trovare un modello pronto all'uso è irrilevante e probabilmente impossibile. Ciò è principalmente dovuto al fatto che il compito che stai cercando di raggiungere, il corpus su cui stai lavorando, l'efficienza di cui hai bisogno e tutti gli altri aspetti saranno unici per te e per il tuo caso; è quindi una questione di pura fortuna trovare un modello che soddisfi i tuoi obiettivi. Il mio consiglio è di sporcarti le mani il più presto possibile, buona fortuna =) – clancularius

Problemi correlati