2016-06-20 19 views
-1

Gegeben zwei Dokumente, ich möchte die Ähnlichkeit zwischen ihnen berechnen. Ich habe Maßnahmen, um herauszufinden, die Kosinus-Abstand, N-Gram und Tf-IDF mit diesem: This is a previously asked questionVergleich zweier Dokumente in Python

Ich möchte wissen, was weiter mit diesen Funktionen getan werden muss.

Auch ich habe versucht, Word2Vec Umsetzung nach, die wir finden Ähnlichkeiten versucht, den folgenden Code:

for i in range(len(Words)): 
    print i 
    for k in range(len(Words)): 
     net_sim = 0.0 
     for j in range(len(Words.ix[i]['A'])): 
      sim = 0.0 
      for l in range(len(Words.ix[k]['A'])): 
       if sim < model.similarity(Words.ix[i]['A'][j],Words.ix[k]['A'][l]): 
        sim = model.similarity(Words.ix[i]['A'][j],Words.ix[k]['A'][l]) 
      net_sim += sim 
     Similarity.ix[i][k] = net_sim/len(Words.ix[i]['A']) 

Für immer Wort in einem bestimmten Dokument, ich versuche, das ähnlichste Wort in dem zweiten Dokument zu finden und fügen ihre Ähnlichkeit hinzu. Dann teile ich durch die Anzahl der Wörter, um es auf einen Bereich von 0 bis 1 zu normalisieren. Hier ist Words ein DataFrame, bestehend aus Wörtern verschiedener Dokumente, in separaten Zeilen und Modell ist ein Word2Vec-Modell. Dieser Prozess benötigt viel Zeit und ich möchte ihn optimieren und suche nach verschiedenen Ansätzen.

+0

uns Bitte zeigen Sie den Code, den Sie bereits haben! –

+0

http://Stackoverflow.com/a/22577329/6350407 –

+1

Bitte zeigen Sie uns den Code ** Sie ** bereits haben! Entschuldigung, aber SO ist nicht da, um den Code zusammen zu setzen, den du woanders gefunden hast. Sie müssen sich zumindest anstrengen. –

Antwort

1

Wenn Sie sich auf die von Ihnen beschriebenen Funktionen konzentrieren, sollte es leicht zu implementieren sein, indem Sie lesen, aber ich weiß nicht, Ich weiß, ob dies der beste Weg ist, die Ähnlichkeiten zwischen ihnen zu vergleichen.

Wie in der difflib docs Seite angegeben, können Sie auch ihr Paket verwenden, um Dateien und Sequenzen zu vergleichen.

Dieses Modul bietet Klassen und Funktionen für Vergleichen Sequenzen. Es kann zum Beispiel für Dateien vergleichen verwendet werden, und Differenzinformationen in verschiedenen Formaten, einschließlich HTML und Kontext und Unified-Diffs produzieren können.

Zum Vergleichen von Verzeichnissen und Dateien siehe auch das Modul filecmp.


Insbesondere können Sie difflib.SequenceMatcher() verwenden Textfolgen zu vergleichen.

Beispiel:

import difflib 

# passing strings 
difflib.SequenceMatcher(None, str1, str2) 

# reading files 
difflib.SequenceMatcher(None, file1.read(), file2.read()) 

Weitere Beispiele und Tutorials finden Sie unter:

PyMOTW - difflib

+0

Nein, ich muss die Ähnlichkeit im Bereich von 0 bis 1 finden. Ich habe versucht, den Word2Vec Ansatz, aber es dauert eine Menge Zeit und ich brauche ein schnelleres Programm für größere Daten –