Python大文本比较

yqlxgs2m  于 2022-12-27  发布在  Python
关注(0)|答案(2)|浏览(139)

我不擅长数学,我在这里张贴我的问题。希望,不会得到吨的不喜欢。我有很多大文本从200.000到1.000.000字符在他们每个人。我需要比较文本找到重复。我决定使用指纹(md5散列),然后比较指纹。但后来我意识到一种新的比较方式-计数字符在文本中。
那么,哪一个工作得更快,哪一个CPU处理能力更低呢?
P.S.重要提示:不能有2个或多个具有相同字符计数的不同文本

rhfm7lfc

rhfm7lfc1#

获取字符串的长度会快得多,并且使用的cpu能力也会更少
这是因为它只是一个任务,对Python来说很容易,并且具有作为一个内置函数的优点。然而,要预制一个md5,它需要对每个字符进行计算,以产生整体散列,这将花费更长的时间。

9udxz4iz

9udxz4iz2#

如果文本是完全重复的,你可以得到哈希值,甚至更快,文本的长度和排序的长度(由文本的id或文本引用本身)识别长度(或哈希值)的重复。
对于排序,您可以使用快速排序算法,例如quicksort。
事实上,甚至有一个特殊的 *nix命令行实用程序用于排序支持重复删除的项目,它是sort -u
如果文本是近似重复的,而不是完全相同的,事情就更难了,你需要使用特殊的重复感知哈希算法,并使用它们的相似性度量对结果哈希进行排序,这样如果两个被比较的项目之间的距离小于某个相似性阈值,它们就会计算近似的东西。
然后再次传递结果排序列表,并获得接近的副本。

相关问题