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

如何将3个人工标注的推特Excel数据集合并并基于投票分类器输出?

合并多标注人员推特数据集的投票分类实现

核心思路

以tweet id为唯一标识对齐三个数据集,对PTI和PMLN列的标注值执行多数投票(或自定义投票规则),生成最终的统一标注列,最后导出合并后的文件。

实现步骤(Python + Pandas)

1. 依赖安装

如果未安装pandas和Excel处理依赖,先执行:

pip install pandas openpyxl

2. 加载并合并数据集

假设三个Excel文件名为annotator1.xlsx、annotator2.xlsx、annotator3.xlsx,代码如下:

import pandas as pd

# 加载三个标注数据集
df1 = pd.read_excel("annotator1.xlsx")
df2 = pd.read_excel("annotator2.xlsx")
df3 = pd.read_excel("annotator3.xlsx")

# 按唯一标识合并,重命名标注列避免冲突
merged_df = df1.merge(df2, on=["tweet id", "name", "PPP", "full text"], suffixes=("_anno1", "_anno2"))
merged_df = merged_df.merge(df3, on=["tweet id", "name", "PPP", "full text"], suffixes=("", "_anno3"))

# 统一第三份数据的标注列命名
merged_df.rename(columns={"PTI": "PTI_anno3", "PMLN": "PMLN_anno3"}, inplace=True)

3. 实现投票逻辑

定义多数投票函数,处理单条数据的三个标注值:

def majority_vote(values):
    # 统计各标注值的出现次数
    count = values.value_counts()
    # 返回出现次数最多的标注;若三方标注均不同(平局),返回None或自定义规则
    if count.max() > 1:
        return count.idxmax()
    else:
        return None  # 可替换为"不确定"、中位数0或其他处理方式
应用投票规则到目标列

merged_df["PTI_final"] = merged_df[["PTI_anno1", "PTI_anno2", "PTI_anno3"]].apply(majority_vote, axis=1)
merged_df["PMLN_final"] = merged_df[["PMLN_anno1", "PMLN_anno2", "PMLN_anno3"]].apply(majority_vote, axis=1)

### 4. 生成最终文件
保留所需列并导出:
```python
# 筛选最终需要的列
final_df = merged_df[["name", "tweet id", "PPP", "PTI_final", "PMLN_final", "full text"]]

# 导出到新Excel文件
final_df.to_excel("merged_annotations.xlsx", index=False)

自定义投票规则扩展

如果需要更灵活的标注合并逻辑:

  • 加权投票:给不同标注人员的标注赋予权重(如专业标注员权重设为2),计算加权得分最高的标注值
  • 平局处理:三方标注不同时,可选择保留所有原始标注、取中位数(0、1、-1的中位数为0),或标记后手动审核

注意事项

  • 确保三个数据集的tweet id完全匹配,否则合并时会丢失数据;若存在缺失,可先对齐tweet id,缺失标注补为NaN
  • 如果标注值是字符串类型(如"0"而非数字0),先做类型转换:df["PTI"] = pd.to_numeric(df["PTI"], errors="coerce")

内容的提问来源于stack exchange,提问作者ZAIN UL ABIDIN QADRI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:22:05