2009-12-15 15 views
13

Java'da uygulanan simhash işlevine rastlayan var mı?SimHash uygulaması?

Zaten bunun için arama yaptık, ancak bir şey bulamadı.

+2

+1. Bunu daha önce duymamıştım. İlginç iş parçacığı. – z5h

+0

Evet, oldukça yararlı olabilir - benzer dizileri (yani, benzer olmayan karma üreten) bir simhash benzer dizileri benzer, yerli, karma değerlerini üretmek için çalışır verilen bir dizi seyrek nüfuslu karma alanı üretmek için çalışır, normal bir karma aksine . – Joel

+0

Bu bağlantı "her bir özelliği normal bir 32 bit karma algoritması kullanarak sağlama" diyor; Java'da, [String'in hashCode] özelliğini kullanarak (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#hashCode%28%29) iyi bir hamle olmaz bunun için, iki karakterli dizeler için, yalnızca 20 bitlik bir sayı olan [0] * 31 + s [1] 'değerine iner ve bu 20 bitin üstünde bir çok sıfır değerine sahip olur. iki karakter ASCII ise. Daha iyi bir seçenek '(((uzun) s [0]) + 1) * (((uzun) ((~ s [0]) & 0xffff)) + 1) -1' gibi bir şey olabilir. –

cevap

-2

this page göre, BibSonomy geliştiricileri sormalısınız. Btw

+0

Sadece bu sayfada SimHash.java adında bir sınıftan bahsediliyor ya da bu sınıf aslında sorudaki linkte tanımlandığı gibi simhash algoritmasını uyguluyor mu? – Joel

3

. Google'ın, patented algoritmasına sahip olduğu anlaşılıyor. ABD'deyseniz, Google ile başarılı bir şekilde rekabet ederseniz ve kendi ana portföyünüz yoksa, bunları kullandığını söyleme. C

bir uygulama

http://dsrg.mff.cuni.cz/~holub/sw/shash/


[kaldırıldı artık alakalı BibSonomy metin] Burada

+0

Evet, bu yazıyı yazdığım zamana kadar G. – Joel

+1

tarafından patenti alınmış, özellikle charikar uygulamasının olmadığı eskiz/simhash üzerinde çeşitli varyantlar vardır. Eğer gerçek kağıda referanslara bakarsanız, onları avlayabilirsiniz. –

1

tam Java kaynak kodunu bulabilirsiniz. Çok basit. Bir demo da sağlanmıştır. http://aneurone.blogspot.com/2012/09/simhash.html

+2

Yalnız bağlantı, kendi başına anlamsız olduğu ve gelecekte hedeflenen kaynakların hayatta kalmayı garanti etmediği için [yetersiz yanıt olarak kabul edilir] (http://stackoverflow.com/faq#deletion). Lütfen bağlandığınız bilgilerin en az özetini eklemeyi deneyin (yaptığım gibi). – j0k