Qual è un buon metodo per il clustering di testo breve?


15

Sto lavorando a un problema di clustering di testo. I dati contengono diverse frasi. Esiste un buon algoritmo che raggiunge un'elevata precisione su testi brevi?

Potete fornire buone referenze?

Algoritmi come KMeans, clustering spettrale non funzionano bene per questo problema.

Risposte:


10

Ciò dipende principalmente dalla quantità di "stato dell'arte" (SOTA) che desideri rispetto alla profondità che desideri raggiungere (gioco di parole previsto ...).

Se riesci a vivere solo con incorporamenti di parole poco profondi forniti da word2vec, Glove o fastText, penso che Word Mover Distance (WMD [sì, davvero ...]) sia una bella funzione per misurare distanze (brevi) di documenti [1] . Ho già visto diversi Notebook Python in passato che forniscono "tutorial" per questa misura della distanza, quindi è davvero facile andare avanti.

Tuttavia, se sei più interessato a SOTA, dovrai esaminare l'apprendimento profondo (rappresentazione in sequenza), usando un qualche tipo di rete ricorrente che apprende un modello di argomento dalle tue frasi. Oltre all'integrazione di incorporamenti (semantici) di parole, questi approcci vanno oltre l'approccio "buono-vecchio" "bag-of-words" imparando le rappresentazioni degli argomenti usando le dipendenzedelle parole nella frase [s]. Ad esempio, il modello di argomento ricorrente a livello di frase (SLRTM) è un modello ricorrente, piuttosto interessante, profondo basato sulle idee della più tradizionale LDA (di Blei et al.) O LSA (Landauer et al.), Ma è solo un arXiv carta (quindi tutti gli avvisi "prendi questo con un granello di sale" di default sulle ricerche non sottoposte a revisione paritaria dovrebbero applicarsi ...) [2]. Tuttavia, il documento ha molti eccellenti suggerimenti e riferimenti per iniziare la tua ricerca se vuoi andare in questa tana del coniglio.

Infine, va chiarito che non sostengo che questi sono i metodi concordati con le migliori prestazioni, rispettivamente, per il bag-of-word e i modelli di sequenza. Ma dovrebbero avvicinarti a qualunque sia la "migliore" SOTA, e almeno dovrebbe servire come un eccellente punto di partenza.

[1] Matt J. Kusner et al. Dagli incantesimi di parole alle distanze dei documenti. Atti della 32a Conferenza internazionale sull'apprendimento automatico, JMLR, 2015.

[2] Fei Tian et al. SLRTM: lasciare che gli argomenti parlino da soli. arXiv 1604.02038, 2016.


ho provato word2vec e non funziona bene per il testo breve.
Entusiasta il

Solo per essere sicuri: la mia risposta sopra non mi consiglia di usare word2vec (da solo) per un breve raggruppamento di testo. Piuttosto, raccomanda di usare i metodi WMD (su vettori incorporati) e / o Deep Learning. (Eppure, se riesci ad addestrare i tuoi vettori, ottieni risultati molto buoni solo con loro, usando la Somiglianza del Coseno Morbido , almeno per un "prototipo realizzabile")
fnl,

-1

https://github.com/RandyPen/TextCluster
Questo è un metodo cluster specifico per il testo breve, che supera i KMean ecc. Non è necessario impostare un numero variabile latente.
L'idea di base è tokenizzare la frase in parole. Quindi dirigere verso un bucket diverso in base al componente di testo. In ogni bucket, calcola la somiglianza tra la frase e il bucket. Se il punteggio di somiglianza è superiore al valore specifico, aggiungi questa frase in quel bucket, altrimenti cerca il bucket successivo.

di base


Devi elaborare la tua risposta. Non limitarti a citare un link.
Michael R. Chernick,
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.