gpt4 book ai didi

python - 重复文本检测/散列

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:09 27 4
gpt4 key购买 nike

我在数据库中有几组字符串。每个集合将有不到 500 个成员,将有数万个集合,字符串是自然语言。我想检测每组中的重复字符串。新字符串将与现有集合进行比较,如果它们是唯一的,则添加到数据库中。

是否有哈希算法可以有效地找到(非常)相似的字符串?例如,字符串可能具有相同数量的单词,但编码可能略有不同(UTF-8 与 Latin-1)。

最佳答案

对于初学者,您可能应该进行某种规范化。您可能应该将所有文本转换为单一编码(例如:UTF-8)。您可能还想做 case-folding,其他 Unicode normalizations可能还会对每组进行排序(取决于您存储它们的方式)。

从你的问题中(对我来说)不清楚你是想找到完全匹配还是只是“相似”的字符串集。如果考虑到标准化后您只关心精确匹配,那么您就大功告成了。只需在字符串集的规范化形式上建立索引,您就可以通过对它们进行规范化来快速查找新集。

如果您想找到接近的匹配项,那么您可能需要进行某种相似性散列。关于 Locality Sensitive Hashing 的维基百科文章描述了许多技术。

许多这些技术背后的基本思想是在每个字符串 h[0] 到 h[n] 上计算一些非常有损的哈希值。要查找新的字符串集,您需要计算它的哈希值并逐一查找。至少获得一个匹配项的任何事物都是“相似的”,匹配项越多,它就越相似(您可以选择将事物切断的阈值)。

关于python - 重复文本检测/散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/832485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com