怎么去重

2022-08-01 10:44:04 +08:00
 abc0123xyz

从某个电报群下载了几十 gb 的小说
想进行去重,各位大佬给个思路 类似于这种

文件 1 文件 2 章节标题不一致
同时文件 2 和文件 3 可能缺胳膊少腿的
同时文件 1 ,2 ,3 可能每个章节内容都有少量不同

该怎么筛选出相对最完整的文件


文件 1

第一回 灵根育孕源流出 心性修持大道生
第二回 悟彻菩提真妙理 断魔归本合元神
···
···
第一百回 径回东土 五圣成真

文件 2

第 1 回 灵根育孕源流出 心性修持大道生
第 2 回 悟彻菩提真妙理 断魔归本合元神
···
···
第 39 回 一粒金丹天上得 三年故主世间生

文件 3

第 1 回 灵根育孕源流出 心性修持大道生
第 2 回 悟彻菩提真妙理 断魔归本合元神
···
···
第八十七回 凤仙郡冒天止雨 孙大圣劝善施霖
904 次点击
所在节点    问与答
5 条回复
eason1874
2022-08-01 10:50:48 +08:00
按章分割,统计字数,取字数最多的版本
abc0123xyz
2022-08-01 10:53:16 +08:00
@eason1874 该怎么判断若干个文件是同一本书呢?
Woood
2022-08-01 10:58:20 +08:00
自己的活儿自己想办法
eason1874
2022-08-01 11:01:27 +08:00
@abc0123xyz 取章名比较文本相似度不就知道了
bipy
2022-08-01 13:13:25 +08:00
import difflib

with open('1.txt', 'r') as t1, open('2.txt', 'r') as t2:
sm = difflib.SequenceMatcher(None, t1.readlines(), t2.readlines())
print(sm.ratio())

# Output
# 0.9974747474747475

自己加点逻辑,遍历一下即可,另外 difflib.get_close_matches() 还可以匹配到相近的标题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/869884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX