2010-02-17 16 views
5

Ho usato tf/idf per calcolare la somiglianza tra i due documenti. Ha alcune limitazioni e non ha prestazioni molto buone.Somiglianza documento

Ho cercato LDA (assegnazione di dirichlet latente) per calcolare la somiglianza del documento. Non so molto di questo. Non sono riuscito a trovare molte cose anche sul mio problema.

Potete fornirci qualche tutorial relativo al mio problema? O puoi dare alcuni consigli come posso ottenere questo compito con LDA ???

Grazie

P.S: è anche lì tutto il codice sorgente di availabe per svolgere tale compito con LDA ??

+0

Potete per favore approfondire il motivo per cui somiglianza coseno non ha funzionato per voi? –

risposta

0

Si potrebbe pensare a LSA (analisi semantica latente) che è una soluzione molto comune a questo tipo di problema.

+0

Ciao ritmo, Grazie per la risposta. Sì, so di LSA e l'ho anche implementato. Ho usato il pacchetto JAMA per SVD ma ho avuto un problema che se le mie file sono inferiori a columsn non funziona :(. Puoi dirmi qualsiasi altro pacchetto svd SMALL? – user238384

1

Hai dato un'occhiata a Lucene e Mahout?

Questo potrebbe essere utile - Latent Dirichlet Allocation con Lucene e Mahout.

+0

Grazie, puoi anche rispondere è possibile calcolare somiglianza tra due documenti con l'aiuto della LDA? Come per lo più persone hanno detto che può essere utilizzato per clustering non supervisionato :( – user238384

+0

Scusa, non so abbastanza su LDA per offrire una risposta di esperti, non è parte di Mahout che Tuttavia, la mia comprensione del clustering è che i tuoi oggetti di raggruppamento basati su qualche misura di somiglianza, che in questo caso sarebbe LDA. –

0

Un po 'vecchio, ma per chiunque sia ancora interessato, dai un'occhiata a questo blog post (disclaimer: questo è il mio blog). L'algoritmo qui descritto e il codice collegato probabilmente faranno ciò di cui hai bisogno se non hai il cuore impostato su un approccio specifico.

Per quanto riguarda il commento di Shashikant, la somiglianza del coseno potrebbe non essere una buona opzione perché le firme sono di lunghezza proporzionale ai documenti. Sono preferibili le firme a lunghezza costante.

0

provare questo servizio per il calcolo del coseno somiglianza tra due documenti

http://www.scurtu.it/documentSimilarity.html

import urllib,urllib2 
import json 
API_URL="http://www.scurtu.it/apis/documentSimilarity" 
inputDict={} 
inputDict['doc1']='Document with some text' 
inputDict['doc2']='Other document with some text' 
params = urllib.urlencode(inputDict)  
f = urllib2.urlopen(API_URL, params) 
response= f.read() 
responseObject=json.loads(response) 
print responseObject 
Problemi correlati