You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大规模拉丁语语料库文本重复内容高效去除方案问询

高效处理拉丁语语料重复内容的方案

核心思路

针对你1.7亿词的大语料,优先采用基于滑动窗口+哈希的轻量方案,避开SequenceMatcher的高复杂度,同时精准区分「无意义的后缀重复」和「训练模型时自然出现的重复短句」。

具体实现步骤

1. 基于句子列表(corpus_list)的去重(推荐)

因为已预处理为句子列表,操作更精准,能有效规避误删自然重复:

  • 维护一个滚动哈希集合,记录最近N个句子的哈希值(N建议设为20-50,可根据语料短句长度灵活调整)
  • 遍历句子列表,对每个句子计算哈希(用内置hash()快速计算,追求稳定性也可使用hashlib.md5):
    • 若当前句子哈希不在滚动集合内,保留该句子并将哈希加入集合;当集合长度超过N时,移除最早加入的哈希值
    • 若当前句子哈希在集合内,进一步检查连续M个句子(比如M=3)是否与之前某段连续句子完全匹配,只有连续匹配时才判定为冗余重复,跳过后续重复段
  • 最后将保留的句子重新拼接为完整文本

2. 针对拼接字符串(concatenated_preprocessed_text)的快速去重

若必须使用单字符串处理,采用后缀数组+最长重复子串检测的优化方案:

  • 借助divsufsort库(C语言实现,速度极快)生成后缀数组,快速定位长重复子串
  • 设置长度阈值:仅处理长度超过L(比如50个词)的重复子串,忽略短重复(避免误删自然重复短句)
  • 精准删除冗余重复:遍历找到的长重复子串,判断其起始位置是否在首次出现位置之后,且属于连续重复的后缀部分,符合条件再执行删除

3. 批量处理CSV的高效技巧

  • 用pandas结合多进程处理7000行数据,大幅提升效率:
    from multiprocessing import Pool
    import pandas as pd
    
    def deduplicate_row(row):
        # 此处填入上述针对corpus_list或字符串的去重逻辑
        return processed_text
    
    df = pd.read_csv("your_corpus.csv")
    with Pool(4) as p:
        df["deduplicated_text"] = p.map(deduplicate_row, df["corpus_list"].tolist())
    
  • 处理完成后可直接覆盖原text列,或保存为新列

关键注意事项

  • 阈值调整:N(滚动窗口大小)、M(连续匹配数)、L(重复子串长度阈值)需结合语料测试调整,建议先拿100行数据做小范围测试,找到既能高效去重又不误删自然重复的参数
  • 避免误删:不要单独对单个句子做去重,必须结合上下文的连续重复判断——自然重复短句通常零散出现,不会连续多句重复

内容的提问来源于stack exchange,提问作者Phil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:57:35