2010-02-17 5 views
5

J'ai utilisé tf/idf pour calculer la similarité entre deux documents. Il a certaines limites et ne fonctionne pas très bien. J'ai cherché LDA (allocation de Dirichlet latent) pour calculer la similarité de document. Je ne connais pas beaucoup de choses à ce sujet. Je ne pouvais pas trouver beaucoup de choses sur mon problème.Similitude de document

Pouvez-vous s'il vous plaît me fournir un tutoriel lié à mon problème? Ou pouvez-vous donner quelques conseils comment puis-je réaliser cette tâche avec LDA ???

Merci

P.S: est-il un code source availabe pour effectuer cette tâche avec LDA ??

+0

Pouvez-vous s'il vous plaît expliquer pourquoi similarité cosinus n'a pas fonctionné pour vous? –

Répondre

0

Vous pourriez penser à LSA (analyse sémantique latente) qui est une solution très commune à ce genre de problème.

+0

Salut rythme, Merci pour votre réponse. Oui, je sais à propos de LSA et je l'ai également mis en œuvre. J'ai utilisé le paquet JAMA pour SVD mais j'ai eu un problème que si mes lignes sont inférieures à columsn cela ne fonctionne pas :(Pouvez-vous me dire tout autre paquet SMALL svd? – user238384

1

Avez-vous regardé Lucene et Mahout?

Ceci peut être utile - Latent Dirichlet Allocation avec Lucene et Mahout.

+0

Merci, pouvez-vous aussi s'il vous plaît répondre est-il possible de calculer similarité entre deux documents avec l'aide de LDA? Comme la plupart des gens ont dit qu'il peut être utilisé pour le clustering non supervisé :( – user238384

+0

Désolé, je ne sais pas assez sur LDA pour offrir une réponse d'experts à cela, ce ne fait pas partie de Mahout Cependant, ma compréhension du clustering est que les objets de votre groupe sont basés sur une mesure de similarité, ce qui dans ce cas serait LDA. –

0

Un peu vieux, mais pour tous ceux qui sont toujours intéressés, jetez un oeil à ce blog post (avertissement: ceci est mon propre blog). L'algorithme décrit ici et le code lié feront probablement ce dont vous avez besoin si vous n'avez pas votre cœur sur une approche spécifique. En ce qui concerne le commentaire de Shashikant, la similitude de cosinus peut ne pas être une bonne option car les signatures sont proportionnelles à la longueur des documents. Les signatures de longueur constante sont préférables.

0

Essayez ce service pour calculer la similarité cosinus entre deux documents

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 
Questions connexes