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

如何从以逗号分隔的字符串中去除重复分句

逗号分隔分句去重实现方案

需求明确:处理函数返回的逗号分隔字符串,按完整分句维度去重(仅删除完全重复的分句,不会误删仅含重复单词的不同分句),保留分句的原始出现顺序。

示例:

  • 输入:"lorem ipsum dolor, lorem ipsum dolor, lorem mark dol"
  • 目标输出:"lorem ipsum dolor, lorem mark dol"

Python 实现

def deduplicate_clauses(input_str):
    # 拆分分句并去除每个分句前后的空白字符
    clauses = [clause.strip() for clause in input_str.split(',')]
    # 去重并保留原始顺序
    seen = set()
    unique_clauses = []
    for clause in clauses:
        if clause not in seen:
            seen.add(clause)
            unique_clauses.append(clause)
    # 重新拼接成逗号分隔的字符串
    return ', '.join(unique_clauses)

# 测试示例
test_input = "lorem ipsum dolor, lorem ipsum dolor, lorem mark dol"
print(deduplicate_clauses(test_input))
# 输出结果:lorem ipsum dolor, lorem mark dol

JavaScript 实现

function deduplicateClauses(inputStr) {
    // 拆分分句并清理前后空白
    const clauses = inputStr.split(',').map(item => item.trim());
    // 利用Map的插入顺序特性去重
    const uniqueMap = new Map();
    clauses.forEach(clause => {
        if (!uniqueMap.has(clause)) {
            uniqueMap.set(clause, clause);
        }
    });
    // 拼接回目标字符串
    return Array.from(uniqueMap.values()).join(', ');
}

// 测试示例
const testInput = "lorem ipsum dolor, lorem ipsum dolor, lorem mark dol";
console.log(deduplicateClauses(testInput));
// 输出结果:lorem ipsum dolor, lorem mark dol

关键注意点

  • 必须先清理分句前后的空白字符,避免因空格差异导致重复分句被误判为不同内容(比如 "abc" 和 " abc")
  • 去重过程需保留分句的原始出现顺序,因此不能直接依赖无序集合(如Python的set直接转列表会打乱顺序)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:55:12