セットアップ: 文字列と文字列のペアに関連付けられた特徴ベクトルを保存する必要があります。文字列と文字列のペアは、入出力関係をエンコードします。比較的少数の入力X
(例: 5) があり、各入力x
に対して比較的少数の出力Y|x
(例: 10) があります。
問題は、どのデータ構造が最速かということです。
追加の関連情報:
- 通常、出力は入力ごとに異なり、それぞれ
X
が同じ数の出力を持つとは限りません。 - 検索は「何度も」行われます (おそらく 1000 回)。
- 入力は同じ頻度でサンプリングされますが、各入力に対して、通常は 1 つまたは 2 つの出力が頻繁にアクセスされ、残りはほとんどアクセスされないか、まったくアクセスされません。
現在、以下の3つの可能性を考えています。
- list-of-lists : インデックス ( input を表す
X[i]
) で外側のリストにアクセスし、インデックス ( output を表す) で内側のリストにアクセスしますY[i][j]
。 - hash-of-hashes : 上記と同じ。
- フラット ハッシュ:
key = (input,output)
.