2016-04-17 15 views
-3

Im Anschluss an meine vorherige Frage habe ich einen Clustering-Algorithmus für eine große Anzahl von Strings mit Python & Levenshtein Abstand implementiert .. Aber es dauert sehr lange, Clustering abzuschließen. Irgendwelche Vorschläge bitte?Implementieren hierarchischen Clustering in Python mit Levenshtein Abstand

<> Iterierte thro die Liste in einem for-Schleife für jedes Element in der Liste Lauf durch die Liste wieder Ähnlichkeitsprozent zu finden wenn Ähnlichkeit> threshold, Ende für Schlaufe

+1

Die heißen Teile in Cython neu schreiben. –

Antwort

0

Zuerst clustern bewegen Verwenden Sie einen Profiler, um zu sehen, wo die meiste Zeit verbracht wird. Ich vermute, dass es in der tatsächlichen Levenshtein-Berechnung ist, aber es ist gut, um sicher zu sein. Iff ist:

  1. die Funktion Levenshtein Umsetzung mit Cython. Dies wird Ihnen bereits eine enorme Beschleunigung bringen.
  2. Berechnen Sie die Paare in mehreren Threads. Z.B. Wenn Sie 1000 Strings haben, haben Sie 1000000 Paare, also können Sie jeden von 8 Strängen 125000 der Paare tun.
+0

vielen Dank .. lass mich das überprüfen .. –

+0

ja Levenshtein Funktion nimmt 90% der Zeit .. –