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 =)
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
Grande fammi sapere se hai problemi! – Shane