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

Python构建NLP倒排索引时字典值列表重复值的去除方法

NLP倒排索引文档ID列表去重方法

你遇到的是构建倒排索引时,同一单词在单篇文档中多次出现导致文档ID重复录入的典型问题,可通过以下几种Python方案实现去重:

方案1:快速实现(适合小体量数据,要求结果按ID排序)

直接利用集合去重后排序,一行代码即可完成:

# 假设你的原始倒排索引存在变量 inverted_index 中
inverted_index = {word: sorted(set(doc_ids)) for word, doc_ids in inverted_index.items()}

运行后直接得到你需要的输出格式:{'man': [1,11], 'upon': [1,3,1539]}

方案2:保序去重(适合需要保留ID首次出现顺序的场景)

如果不需要排序,仅需要去除重复值且保留原有列表的先后顺序,可以用遍历判重的方式实现,时间复杂度为O(n),效率更高:

for word, doc_ids in inverted_index.items():
    visited = set()
    unique_ids = []
    for id in doc_ids:
        if id not in visited:
            visited.add(id)
            unique_ids.append(id)
    inverted_index[word] = unique_ids

前置优化方案(推荐,适合大体量语料)

你可以在构建倒排索引阶段就避免生成重复ID,省掉后续去重开销:

  • 处理单篇文档时,先对当前文档的所有单词做去重,再给每个去重后的单词对应的列表添加当前文档ID
  • 或者每个单词对应的存储结构先用集合,全部构建完成后再统一转成排序后的列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:08