Classificazione statistica del testo


32

Sono un programmatore senza background statistico e attualmente sto esaminando diversi metodi di classificazione per un gran numero di documenti diversi che voglio classificare in categorie predefinite. Ho letto di kNN, SVM e NN. Tuttavia, ho qualche problema ad iniziare. Quali risorse mi consigliate? Conosco abbastanza bene il calcolo a variabile singola e multi-variabile, quindi la mia matematica dovrebbe essere abbastanza forte. Possiedo anche il libro di Bishop su Neural Networks, ma ha dimostrato di essere un po 'denso come introduzione.

Risposte:


19

Consiglio questi libri: sono anche molto apprezzati su Amazon:

"Text Mining" di Weiss

"Programmazione di applicazioni di mining di testo", di Konchady

Per il software, consiglio RapidMiner (con il plugin di testo), gratuito e open-source.

Questo è il mio "processo di estrazione del testo":

  • raccogliere i documenti (di solito una scansione web)
    • [campione se troppo grande]
    • timestamp
    • rimuovere il markup
  • tokenize: suddivisione in caratteri, parole, n-grammi o finestre scorrevoli
  • stemming (aka lemmatizzazione)
    • [includere sinonimi]
    • vedi algoritmo di portatore o fiocco di neve pronomi e articoli sono di solito cattivi predittori
  • rimuovere le password
  • vettorializzazione delle caratteristiche
    • binario (appare o no)
    • conteggio parole
    • frequenza relativa: tf-idf
    • guadagno di informazioni, chi quadrato
    • [hanno un valore minimo per l'inclusione]
  • ponderazione
    • parole di peso in cima al documento più in alto?

Quindi puoi iniziare il lavoro di classificazione. kNN, SVM o Naive Bayes, a seconda dei casi.

Puoi vedere la mia serie di video di mining di testo qui


Questa è un'ottima risposta! Esaminerò i suggerimenti dei tuoi libri e anche la descrizione del tuo processo sarà eccezionale. Mi piacciono in particolare i suggerimenti per le vettorializzazioni di funzionalità.
Emil H,

(Se qualcuno volesse approfondire ulteriormente la parte della vettorializzazione, sarebbe fantastico.)
Emil H

11

Un ottimo testo introduttivo che copre gli argomenti che hai citato è Introduzione al recupero delle informazioni , che è disponibile online in testo completo gratuitamente.

Introduzione al recupero delle informazioni


L'ho scannerizzato sul posto di lavoro ieri. È una lettura interessante: vorrei avere più tempo per assorbire il materiale, ma dovevo ottenere ciò di cui avevo bisogno e andare avanti.
Thomas Owens,

d'accordo, questo è un libro eccellente. Spiega praticamente come funziona Google :)
Neil McGuigan,

5

La rete neurale potrebbe rallentare per un gran numero di documenti (anche questo ora è praticamente obsoleto).
E puoi anche controllare Random Forest tra i classificatori; è abbastanza veloce, si adatta bene e non richiede una messa a punto complessa.


+1 per le foreste casuali. Sicuramente un buon classificatore da provare prima, in quanto non si adattano troppo.
Zach

4

Se provieni dal punto di vista della programmazione, un'opzione è utilizzare Natural Language Toolkit (NLTK) per Python. C'è un libro di O'Reilly, disponibile gratuitamente , che potrebbe essere un'introduzione meno densa e più pratica alla costruzione di classificatori di documenti, tra le altre cose.

Se sei interessato a rafforzare il lato statistico, il libro di Roger Levy in corso, Probabilistic Models in Study of Language , potrebbe non essere male da esaminare. È scritto per studenti di laurea cogsci / compsci che iniziano con tecniche statistiche PNL.


3

In primo luogo posso consigliarvi il libro Fondamenti dell'elaborazione statistica del linguaggio naturale di Manning e Schütze.

I metodi che vorrei usare sono le distribuzioni di frequenza delle parole e i modelli di linguaggio ngram. Il primo funziona molto bene quando vuoi classificare un argomento e i tuoi argomenti sono specifici ed esperti (con parole chiave). La modellazione Ngram è il modo migliore per classificare stili di scrittura, ecc.


0

Naive Bayes è di solito il punto di partenza per la classificazione del testo, ecco un articolo del Dr. Dobbs su come implementarne uno. Spesso è anche il punto finale per la classificazione del testo perché è così efficiente e parallelizza bene, SpamAssassin e POPFile lo usano.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.