C/C++/Java/C# で比較的理解しやすい (そして実装しやすい) 局所性に敏感なハッシュの例はありますか?
概念についてもっと学びたいので、いくつかのテキストファイルで実装を試して、それがどのように機能するかを確認したいので、高性能などは必要ありません...ハッシュの単なる例同様の入力に対して同様のハッシュを返す関数。後で例を挙げて、それからさらに学ぶことができます。:)
C/C++/Java/C# で比較的理解しやすい (そして実装しやすい) 局所性に敏感なハッシュの例はありますか?
概念についてもっと学びたいので、いくつかのテキストファイルで実装を試して、それがどのように機能するかを確認したいので、高性能などは必要ありません...ハッシュの単なる例同様の入力に対して同様のハッシュを返す関数。後で例を挙げて、それからさらに学ぶことができます。:)
文字列の場合、近似一致アルゴリズムを使用できます。
文字列が参照文字列から等距離にある場合、それらは互いに類似している可能性があります。これで、文字列の局所性に敏感なハッシュの実装ができました。
距離の範囲に対して異なるハッシュ バケットを作成できます。
編集:弦の距離の他のバリエーションを試すことができます。より単純なアルゴリズムでは、no が返されます。2 つの文字列間の共通文字。
ここの MSDN ブログには優れた記事があります。
また、ここのソースコードを検査できる C++ ライブラリが少なくとも 1 つあります: http://sourceforge.net/projects/lshkit/
I realise you explicitly asked for C/C++/C#, but there is a Python port of the nilsimsa hash which might be easier to grok than other, larger libraries.
Hadoop での Java 実装もあります。それは文書で良い仕事をします。
ライクライクと呼ばれる
現在、Likelike は Min-Wise 独立順列のみをサポートしています。Google ニュースのレコメンデーションには Min-Wise 独立順列が適用されます