Das Papier: Ссылка
Ich frage mich nur, ob es irgendwelche Implementierungen von Kapitel 3 dieses Artikels gibt. Ich meine Abfrage zwischen großen Datasets, nicht nur die Simhash (es ist einfach Simhash-Implementierungen zu finden).
Danke ~
Dies ist ein Problem in Data mining
und similarity search
. Es gibt zahlreiche Artikel, in denen beschrieben wird, wie dies möglich ist und wie große Datenmengen skaliert werden können.
Ich habe eine Implementierung ( github: mksteve, clustering , mit einigen Kommentaren dazu in meinem blog ) von wikipedia: Metrikbaum . Dies erfordert, dass die von Ihnen getroffenen Maßnahmen die Dreiecksungleichung ( wikipedia: Metrikraum ) erfüllen. Das ist die metrische Entfernung von einem Gegenstand A zu Punkt C ist kleiner oder gleich dem Abstand A zu B + der Abstand B zu C.
Angesichts dieser Ungleichheit ist es möglich, den Suchraum zu trimmen, so dass nur Teilbäume gesucht werden, die sich mit Ihrem Zielbereich überschneiden können. Ohne dass dieses Merkmal wahr ist (metrischer Raum).
Möglicherweise ist die Anzahl der Bits der Differenz im Simhash ein metrischer Raum.
Die allgemeine Verwendung dieser Datasets wird in dem Dokument erwähnt, wenn es mapReduce erwähnt, das im Allgemeinen auf einem hadoop cluster
ausgeführt wird. Die Verarbeitungsknoten erhalten jeweils eine Untermenge der Daten und finden eine Reihe von Zielübereinstimmungen aus ihren lokalen Datensätzen. Diese werden dann kombiniert, um eine vollständige Liste ähnlicher Objekte zu erhalten.
Es gibt einige Arbeiten (unsicher bezüglich Referenzen), die auf die Verwendung von m-Bäumen in einem Cluster verweisen, wo verschiedene Teile des Suchraums verschiedenen Clustern zugeordnet werden, aber ich bin nicht sicher, ob die Hadoop-Infrastruktur die Verwendung unterstützen würde so eine hohe Abstraktion.
Tags und Links algorithm similarity duplicates