私は Python を使用しています (そして pandas、numpy、scipy にアクセスできます)。
セット A とセット B の 2 つのセットの文字列があります。各セット A と B には c が含まれています。2000 要素 (各要素は文字列)。文字列の長さは約 50 ~ 100 文字で、最大 c. 20 ワード (これらのセットはさらに大きくなる可能性があります)。
セットAのメンバーがセットBのメンバーでもあるかどうかを確認したい.
今、単純な実装は、A と B のメンバーが互いに比較される行列として視覚化できると考えています (たとえば、A1 == B1、A1 == B2、A1 == B3 など...) とブール値比較からの (0, 1) は、行列の要素を構成します。
これを効率的に実装するための最良の方法は何ですか?
さらに2つの詳細:
(i) 大きなセットの場合は、ブルーム フィルター (PyBloom、pybloomfilter など) を使用して各文字列をハッシュすることも考えています (つまり、fasle ポジティブはそれほど気にしません...)。これは良いアプローチですか、それとも考慮すべき他の戦略はありますか?
(ii)ファジーマッチが必要になる可能性があるため、文字列間のレーベンシュタイン距離マッチ(遅い可能性があることはわかっています)を含めることを考えています-これを(i)のアプローチと組み合わせる方法、またはそれ以外の方法でより効率的にする方法はありますか?
助けてくれてありがとう!