2013-07-08 14 views
16

Sto provando a raggruppare il flusso di Twitter. Voglio mettere ogni tweet in un cluster che parla dello stesso argomento. Ho provato a raggruppare il flusso utilizzando un algoritmo di clustering online con somf/idf e cosine, ma ho scoperto che i risultati sono piuttosto negativi.Meglio il testo documenta il clustering di tf/idf e la somiglianza del coseno?

Gli svantaggi principali dell'uso di tf/idf è che raggruppa documenti che sono simili a parole chiave, quindi è bene identificare documenti quasi identici. Ad esempio, considera le seguenti frasi:

1- Il sito Web Stackoverflow è un bel posto. 2- Stackoverflow è un sito Web.

Le due frasi precedenti saranno probabilmente raggruppate insieme con un valore soglia ragionevole poiché condividono molte parole chiave. Ma ora considera le seguenti due frasi:

1- Il sito Web Stackoverflow è un bel posto. 2- Visito regolarmente Stackoverflow.

Ora usando tf/idf l'algoritmo di clustering fallirà miseramente perché condivide solo una parola chiave anche se entrambi parlano dello stesso argomento.

La mia domanda: esistono tecniche migliori per raggruppare i documenti?

+4

@ThomasJungblut bene, TF-IDF dovrebbe essere uno schema di ponderazione che attribuisce più peso alle parole chiave pertinenti già. Se si pensa che il problema è che i tweet sono frammenti di testo così piccoli, non ci si può aspettare che la similarità funzioni molto bene su di essi al di là della "quasi identità". La maggior parte dei tweet non contiene nemmeno frasi complete, quindi anche la PNL probabilmente fallirà. –

+1

Una cosa da guardare con LSI/LDA/NMF ecc. È la deriva dell'argomento. La formazione di un modello su un set di dati noto produrrà buoni risultati se la tua pipeline non viene eseguita correttamente. Se si applica il modello a un set di dati totalmente invisibile, è possibile che si verifichi un calo significativo delle prestazioni dovuto all'adattamento dei dati di allenamento originali. Poiché il testo di Twitter è così breve, la rappresentazione avrà bisogno di un po 'di giocherellare perché potrebbe non esserci abbastanza testo per addestrare correttamente un modello. – Steve

+0

@steve ci sono soluzioni a questo? –

risposta

2

Risposta lunga:

TfxIdf è attualmente uno dei più famosi metodo di ricerca. Quello di cui hai bisogno sono alcuni pre-elaborazione da Natural Langage Processing (NLP). Ci sono molte risorse che possono aiutarti per l'inglese (per esempio lib 'nltk' in python).

È necessario utilizzare l'analisi NLP sia sui propri querys (domande) che sui propri documenti prima dell'indicizzazione.

Il punto è: mentre tfxidf (o tfxidf^2 come in lucene) è buono, dovresti usarlo sulla risorsa annotata con informazioni di metaglistia. Può essere difficile e richiedere una conoscenza approfondita del motore di ricerca principale, dell'analisi grammaticale (sintassi) e del dominio del documento.

Risposta breve: La tecnica migliore consiste nell'utilizzare TFxIDF con annotazioni grammaticali grammaticali di NLP ed entrambe le query di riscrittura e indicizzazione.

9

In base alla mia esperienza, la similitudine di coseno sui vettori latent semantic analysis (LSA/LSI) funziona molto meglio del raw tf-idf per il cluster di testo, sebbene ammetto di non averlo provato sui dati di Twitter. In particolare, tende a occuparsi del problema di sparsità che stai incontrando, in cui i documenti non contengono abbastanza termini comuni.

I modelli di argomento come LDA potrebbero funzionare anche meglio.

+0

sono le tecniche di clustering dei modelli di argomento? o rappresentazione delle caratteristiche? –

+0

@guckogucko: rappresentazioni di feature. –

6

Come menzionato in altri commenti e risposte. L'utilizzo di LDA può dare un buon tweet-> pesi argomento.

Se questi pesi sono il clustering insufficiente per le proprie esigenze, è possibile esaminare il clustering di queste distribuzioni di argomenti utilizzando un algoritmo di clustering.

Mentre la formazione dipendente dalla LDA dipendente può facilmente raggruppare i tweet con stackoverflow, stack overflow e stack overflow nello stesso argomento. Tuttavia "la mia pila di scatole sta per traboccare" potrebbe invece andare in un altro argomento sulle scatole.

Un altro esempio: un tweet con la parola "Apple" potrebbe andare in una serie di argomenti diversi (l'azienda, la frutta, New York e altri). LDA avrebbe guardato le altre parole nel tweet per determinare gli argomenti applicabili.

  1. "Steve Jobs è stato il CEO di Apple" è chiaramente sulla società
  2. "Sto mangiando la mela più deliziosa" è chiaramente la frutta
  3. "Sto andando alla grande mela quando viaggio negli Stati Uniti "è più probabile che visiti New York
Problemi correlati