2016-05-05 6 views
1

結果は固定数の配列です。のリスト(すべて同じ長さ)を考えてみましょう。Minhashの結果を保存する

これも行列として見ることができるので、では、すべてのセルが別の配列を指す配列を使用します。どのようにPythonでそれを行うには?

すべての商品がリストなどのリストです。

私は辞書を考えましたが、キーは1,2,2、...、Mなので、ここに行くにはピッソニックなのか分かりません。

私は実装には興味がありません。どのアプローチを選択する必要がありますか。

答えて

1

選択したコンテナには、hash-itemIDのペアが含まれている必要があります。また、ハッシュでインデックスを作成するかソートする必要があります。配列されていない配列は、遠隔的に効率的ではありません。

適切なサイズのハッシュを使用していて、さまざまなハッシュアルゴリズムがうまく実装されていると仮定すると、1つのアルゴリズムの最小ハッシュとの衝突の可能性があるため、そのような衝突が発生した場合には、類似性の尺度を実質的に変更しないであろう。

マルチプルではなく単一のコンテナを使用すると、インデックス作成のメモリオーバーヘッドが減少しますが、必要な処理量はわずかに増加します。通常、メモリはminhashの制限要因であるため、単一のコンテナが望ましい場合があります。

1

あなたはPythonのリストにint、文字列、その他のリスト、dicts、オブジェクト、関数などの任意のものを保存することができます。

anything_goes_in_here = [1, 'one', lambda one: one/1, {1: 'one'}, [1, 1]] 

だから、リストのリストを格納すると、前方かなりストレートです:

>>> list_1 = [1, 2, 3, 4] 
>>> list_2 = [5, 6, 7, 8] 
>>> list_3 = [9, 10, 11, 12] 
>>> list_4 = [13, 14, 15, 16] 
>>> main_list = [list_1, list_2, list_3, list_4] 
>>> for list in main_list: 
...  for num in list: 
...    print num 
... 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 

あなたはインデックスが意味のあるリストのリストを格納するために探している場合(インデックスはあなたについてのいくつかの情報を与える意味データはそこに保存されています)、これは基本的にハッシュマップ(辞書)を再実装しています。

関連する問題