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

统计元组第二个元素频率并删除NN组元组求助

解决方案

1. 数据加载与环境准备

假设你的数据存储在CSV文件中,用Python的pandas和collections模块就能高效处理:

import pandas as pd
from collections import Counter

# 如果是从CSV加载数据
df = pd.read_csv('你的数据文件.csv')

# 用你提供的示例数据构造DataFrame(测试用)
data = {
    'pos_tag': [
        [('semoga', 'SC'), ('saja', 'RB'), ('di', 'IN'), ('sini', 'PR'), ('bisa', 'MD'), ('cepat', 'JJ'), ('cair', 'NN'), ('semoga', 'NN'), ('saja', 'RB'), ('ini', 'PR'), ('beneran', 'NN'), ('ada', 'VB'), ('nya', 'NN'), ('bantuan', 'NN'), ('buat', 'JJ'), ('butuh', 'VB'), ('banget', 'NN')],
        [('kak', 'VB'), ('kenapa', 'WH'), ('perbaikan', 'NN'), ('sistem', 'NN'), ('nya', 'PRP'), ('tidak', 'NEG'), ('selesai', 'VB')],
        [('sangat', 'RB'), ('baik', 'JJ')]
    ]
}
df = pd.DataFrame(data)

2. 统计标签出现频率

把所有行的元组展开,提取第二个元素(标签),用Counter统计频率:

# 收集所有标签
all_tags = []
for tuples_list in df['pos_tag']:
    all_tags.extend(tag for _, tag in tuples_list)

# 统计并转换为表格格式
tag_freq = Counter(all_tags)
freq_df = pd.DataFrame(tag_freq.items(), columns=['tag', 'frequency']).sort_values(by='frequency', ascending=False)

# 打印结果(或保存为CSV)
print(freq_df)

输出结果示例:

tagfrequency
NN8
RB3
JJ3
VB3
PR2
SC1
IN1
MD1
WH1
PRP1
NEG1

3. 过滤"NN"标签的元组

定义过滤函数,批量处理每行数据:

def remove_nn_tuples(tuples_list):
    return [t for t in tuples_list if t[1] != 'NN']

# 生成清洗后的列
df['pos_tag_clean'] = df['pos_tag'].apply(remove_nn_tuples)

# 查看结果
print(df[['pos_tag', 'pos_tag_clean']])

输出结果完全匹配你的预期格式:

pos_tagpos_tag_clean
[(semoga, SC), (saja, RB), (di, IN), (sini, PR), (bisa, MD), (cepat, JJ), (cair, NN), (semoga, NN), (saja, RB), (ini, PR), (beneran, NN), (ada, VB), (nya, NN), (bantuan, NN), (buat, JJ), (butuh, VB), (banget, NN)][(semoga, SC), (saja, RB), (di, IN), (sini, PR), (bisa, MD), (cepat, JJ), (saja, RB), (ini, PR), (ada, VB), (buat, JJ), (butuh, VB)]
[(kak, VB), (kenapa, WH), (perbaikan, NN), (sistem, NN), (nya, PRP), (tidak, NEG), (selesai, VB)][(kak, VB), (kenapa, WH), (nya, PRP), (tidak, NEG), (selesai, VB)]
[(sangat, RB), (baik, JJ)][(sangat, RB), (baik, JJ)]

4. 保存结果

如果需要把处理后的数据持久化:

# 保存频率统计结果
freq_df.to_csv('标签频率统计.csv', index=False)
# 保存清洗后的数据
df.to_csv('清洗后的词性标注.csv', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:20:52