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

如何用Python将复数词转单数并合并Excel中的词频统计?

解决Excel词频统计中复数转单数并合并词频的问题

原始数据

1.Chip, 5
2.Chips,8
3.Car, 2
4.Cars, 6

期望输出

Chip 13
Car 8


方案一:Python脚本自动化处理(适合大量数据)

1. 安装依赖库

需要用到pandas读取Excel文件,nltk进行词形还原(复数转单数):

pip install pandas nltk

2. 完整处理代码

import pandas as pd
from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet
import nltk

# 下载NLTK所需的词库数据
nltk.download('wordnet')
nltk.download('averaged_perceptron_tagger')

def get_wordnet_pos(tag):
    # 将NLTK词性标签映射为WordNet可识别的格式
    if tag.startswith('J'):
        return wordnet.ADJ
    elif tag.startswith('V'):
        return wordnet.VERB
    elif tag.startswith('N'):
        return wordnet.NOUN
    elif tag.startswith('R'):
        return wordnet.ADV
    return wordnet.NOUN  # 默认按名词处理

lemmatizer = WordNetLemmatizer()

# 读取Excel文件(替换为你的文件路径)
df = pd.read_excel('word_frequency.xlsx', usecols=[0, 1], names=['raw_word', 'frequency'])

# 提取纯单词(去除开头的数字和点)
df['clean_word'] = df['raw_word'].str.extract(r'(\w+)')

# 词性标注+词形还原(复数转单数)
df['pos_tag'] = df['clean_word'].apply(lambda x: nltk.pos_tag([x])[0][1])
df['singular_word'] = df.apply(lambda row: lemmatizer.lemmatize(row['clean_word'], get_wordnet_pos(row['pos_tag'])), axis=1)

# 按单数单词分组求和
merged_result = df.groupby('singular_word')['frequency'].sum().reset_index()

# 打印结果
for _, row in merged_result.iterrows():
    print(f"{row['singular_word']} {row['frequency']}")

# 保存结果到新Excel
merged_result.to_excel('merged_word_frequency.xlsx', index=False)

3. 使用说明

  • 替换代码中的word_frequency.xlsx为你的Excel文件路径
  • 运行脚本后,控制台会输出期望的结果,同时生成merged_word_frequency.xlsx保存处理后的数据

方案二:Excel手动处理(适合少量数据)

如果数据量不大,可以用Excel内置函数快速处理:

  1. 提取纯单词:在空白列输入公式=RIGHT(A1,LEN(A1)-FIND(".",A1)),下拉填充,去除开头的数字和点
  2. 统一为单数:手动将复数单词替换为单数(如Chips→Chip,Cars→Car)
  3. 求和合并:在空白单元格输入=SUMIF(B:B,"Chip",C:C)(B列为处理后的单数单词,C列为词频),替换单词即可得到对应总和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:45:43