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

使用Python pandas实现句子相似词分组替换的技术咨询

问题根因

  • 原有代码提前将句子截断只保留第一个词处理,自然无法输出完整句子
  • 原有匹配逻辑是整句相似度匹配,没有针对句子中的单个词汇做替换处理,不符合需求

修正后可运行代码

import pandas as pd
from fuzzywuzzy import fuzz

# 相似度阈值,可自行调整
SIMILARITY_THRESHOLD = 90

def replace_similar_words_in_column(column_values):
    # 第一步:按出现顺序构建词汇映射表,相似词映射到首次出现的基准词
    benchmark_words = []
    word_mapping = {}
    
    # 先遍历所有句子的所有词,构建映射
    for sentence in column_values:
        if pd.isna(sentence):
            continue
        words = str(sentence).split()
        for word in words:
            if word in word_mapping:
                continue
            # 对比已有基准词
            matched_benchmark = None
            for b_word in benchmark_words:
                if fuzz.ratio(word, b_word) >= SIMILARITY_THRESHOLD:
                    matched_benchmark = b_word
                    break
            if matched_benchmark:
                word_mapping[word] = matched_benchmark
            else:
                word_mapping[word] = word
                benchmark_words.append(word)
    
    # 第二步:用映射表替换所有句子中的词,保留完整句子结构
    processed_sentences = []
    for sentence in column_values:
        if pd.isna(sentence):
            processed_sentences.append(sentence)
            continue
        words = str(sentence).split()
        replaced_words = [word_mapping.get(word, word) for word in words]
        processed_sentences.append(' '.join(replaced_words))
    return processed_sentences

# 主逻辑
if __name__ == '__main__':
    df = pd.read_csv('input.txt')
    # 遍历每列单独处理
    for col in df.columns:
        df[col] = replace_similar_words_in_column(df[col].tolist())
    # 输出结果
    print(df)
    # 如需保存结果可取消下一行注释
    # df.to_csv('output.csv', index=False)

逻辑说明

  1. 每列数据单独处理,保证不同列的词汇映射互不干扰
  2. 先按句子出现顺序遍历所有词汇,相似度符合要求的词统一映射到首次出现的基准词
  3. 替换时只换匹配到的相似词,句子其余部分完全保留,符合保留完整句子的要求
  4. 自带空值处理逻辑,不会因为空数据报错
  • 如需不区分大小写匹配,可将相似度计算行修改为 if fuzz.ratio(word.lower(), b_word.lower()) >= SIMILARITY_THRESHOLD:

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:39:03