2010-08-31 15 views
14

Sto facendo una piccola ricerca su come raggruppare gli articoli in "notizie" a Google News.Algoritmo di clustering incrementale per raggruppare gli articoli di notizie?

Guardando alle domande precedenti qui sull'argomento, vedo spesso che si consiglia di estrarre semplicemente un vettore di parole da un articolo, in modo da appesantire alcune parole in più in alcune parti dell'articolo (ad esempio il titolo), e quindi usare qualcosa come un algoritmo k-means per raggruppare gli articoli.

Ma questo porta a un paio di domande:

  • Con k-means, come fai a sapere in anticipo quanto k dovrebbe essere? In un ambiente di notizie dinamiche potresti avere un numero di storie molto variabile e non saprai in anticipo quante storie rappresenta una raccolta di articoli.

  • Con algoritmi di raggruppamento gerarchico, come decidete quali cluster utilizzare come storie? Nella parte inferiore dell'albero ci saranno gruppi che sono solo singoli articoli, che ovviamente non vorrete usare, e un cluster alla radice dell'albero che ha tutti gli articoli, che di nuovo non vorrete ... ma come fai a sapere quali gruppi intermedi dovrebbero essere usati per rappresentare storie?

  • Infine, con gli algoritmi k-means o hierarchal, la maggior parte della letteratura che ho letto sembra presumere che tu abbia una collezione predefinita di documenti che vuoi raggruppare, e li raggruppa tutti in una volta. Ma che dire di una situazione in cui hai nuovi articoli in arrivo ogni tanto. Che succede? Devi raggruppare tutti gli articoli da zero, ora che ce n'è uno aggiuntivo? Questo è il motivo per cui mi chiedo se ci sono approcci che consentono di "aggiungere" gli articoli man mano che si procede senza re-clustering da zero. Non riesco a immaginare che sia molto efficiente.

risposta

2

Farei una ricerca di algoritmi di clustering K-means adattativi. C'è una buona sezione di ricerca dedicata ai problemi che descrivi. Ecco uno di questi paper (pdf)

+0

Grazie Eric! Questo è un documento utile :) Si rivolge al problema di predeterminare il numero di cluster, e suppongo che la scelta della soglia sia piuttosto critica in termini di qualità dei cluster ... ma è qualcosa che può essere sperimentato con. Mi chiedo però ... sai se questo algoritmo funzionerebbe bene in un contesto incrementale? Voglio dire, se arriva un nuovo articolo, e lo assegno a un cluster basato sulla distanza minima dai cluster esistenti, ciò porterà allo stesso risultato della ricomposizione dei cluster da zero o di un risultato a tutti gli effetti " cosi bene'? – Peter

+0

Sulla base del suo paragrafo di conclusione, credo che la risposta sia sì, si esibirà "come bene" come se avessi ricalcolato i cluster da zero assumendo che il calcolo della distanza sia eseguito correttamente. Non credo che impiegherebbe troppo tempo per implementare un prototipo in un linguaggio di scripting (è facile analizzare rapidamente molti formati di dati e fornisce buone librerie per la visualizzazione dei cluster). Quindi potresti avere un modello di strategia, una strategia che usa il k-means adattivo e una strategia che usa il normale k-significa che ricalcola ogni volta. –

+0

k-neighbor-neighbors può aiutare con il clustering online di nuovi articoli. – crizCraig

3

Ho lavorato su uno start-up che ha costruito esattamente questo: un motore di cluster incrementale per gli articoli di notizie. Abbiamo basato il nostro algoritmo su questo documento: Cluster di documenti Web utilizzando il grafico indice dei documenti (http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=4289851). Ha funzionato bene per noi per 10K articoli al giorno.

Ha due vantaggi principali: 1) E 'incrementale, che affronta il problema che hai con avere a che fare con un flusso di articoli in entrata (piuttosto che di clustering tutti in una volta) 2) utilizza la modellazione frase-based, al contrario del solo "sacco di parole", che si traduce in una precisione molto più elevata.

Una ricerca di Google si apre su http://www.similetrix.com, potrebbero avere quello che stai cercando.

Problemi correlati