我正在使用 Python(并且可以访问 pandas、numpy、scipy)。
我有两个集合字符串集合 A 和集合 B。每个集合 A 和 B 包含 c。2000 个元素(每个元素都是一个字符串)。字符串长度约为 50-100 个字符,最多包含 c。20 个单词(这些集合可能会变得更大)。
我想检查集合 A 的成员是否也是集合 B 的成员。
现在我在想一个简单的实现可以被可视化为一个矩阵,其中 A 和 B 中的成员相互比较(例如 A1 == B1,A1 == B2,A1 == B3 等等......)和布尔值比较中的 (0, 1) 包含矩阵的元素。
有效实施这一点的最佳方法是什么?
两个进一步的阐述:
(i) 我还认为,对于较大的集合,我可以使用 Bloom Filter(例如使用 PyBloom、pybloomfilter)来散列每个字符串(即,我不太介意 fasle positives ......)。这是一个好方法还是我应该考虑其他策略?
(ii) 我正在考虑在字符串之间加入 Levenshtein 距离匹配(我知道这可能很慢),因为我可能需要模糊匹配 - 有没有办法将它与 (i) 中的方法结合起来,或者以其他方式使其更有效?
提前感谢您的帮助!