Per quanto riguarda l'utilizzo del modello bigram (N-grammo) per costruire il vettore di funzionalità per il documento di testo


10

Un approccio tradizionale alla costruzione di feature per l'estrazione del testo è l'approccio bag-of-words e può essere migliorato usando tf-idf per impostare il vettore di feature che caratterizza un determinato documento di testo. Al momento, sto cercando di utilizzare il modello di linguaggio bi-gram o (N-gram) per creare il vettore di feature, ma non sai come farlo? Possiamo semplicemente seguire l'approccio del bag-of-word, cioè calcolare il conteggio delle frequenze in termini di bi-grammo anziché parole e migliorarlo usando lo schema di ponderazione tf-idf?

Risposte:


4

Sì. Ciò genererà molte più funzioni però: potrebbe essere importante applicare alcuni cut-off (ad esempio scartare funzioni come grammi o parole che ricorrono meno di 5 volte nel tuo set di dati) in modo da non affogare il tuo classificatore con troppi rumori Caratteristiche.


Grazie. Vuoi dire che la mia idea generale di calcolare ogni valore di una funzione in termini di bigram (N-grammo) è corretta? In altre parole, non vi è alcuna grande differenza nel calcolare i valori delle caratteristiche tra il modello bag-of-word e N-gram. Grazie per il chiarimento.
user3125

Sì, puoi usare tutti i bigrammi + unigrammi (parole) in una grande quantità di funzioni (purché tagli il meno frequente con un livello di cut-off).
Ogrisel,

3

Il numero di bigram può essere ridotto selezionando solo quelli con informazioni reciproche positive.

Lo abbiamo fatto per generare una borsa di rappresentazione bigrams nella traccia di mining XML INEX, http://www.inex.otago.ac.nz/tracks/wiki-mine/wiki-mine.asp .

Quello che non abbiamo provato è usare le informazioni reciproche tra i termini nella ponderazione dei grammi. Vedi https://en.wikipedia.org/wiki/Pointwise_mutual_information , https://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/philip-pmi.pdf e http: //www.nltk. org / howto / collocations.html per una migliore spiegazione delle informazioni reciproche puntuali per i bigrammi.

Vedi /programming/20018730/computing-pointwise-mutual-information-of-a-text-document-using-python e /programming/22118350/python-sentiment-analysis -utilizzare-informazioni-reciproche-puntuali per altre domande relative a questo.


dead link :-( ...
Renaud

1
@Renaud I collegamenti sono stati aggiornati :-)
Chris de Vries,

0

L'uso di proiezioni casuali per ridurre la dimensionalità dei dati può rivelarsi utile per ridurre lo spazio necessario per memorizzare le funzionalità, https://en.wikipedia.org/wiki/Random_projection . Si adatta molto bene e ogni esempio può essere proiettato su uno spazio dimensionale inferiore indipendentemente e senza alcun metodo di ottimizzazione diretta come PCA, SVD, Sammon Maps, NMF, ecc.

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.