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

如何在Python中按聚类统计依存分析元组的出现频率

依存分析元组跨聚类频率统计实现方案

核心思路

要统计每个依存分析元组在不同聚类中的出现次数,关键是先拆分元组列表,再去重同一聚类内的重复元组,最后按元组统计关联的聚类数量。

代码实现步骤

假设你的DataFrame名为df,包含Parsed(元组列表)和Clu(聚类编号)两列,具体实现如下:

  1. 导入依赖库并构造示例数据
import pandas as pd

# 模拟你的DataFrame结构
data = {
    'Parsed': [[('18', 'nummod'), ('cat', 'nsubj')], 
               [('18', 'nummod'), ('dog', 'obj')], 
               [('dog', 'obj'), ('cat', 'nsubj')], 
               [('book', 'dobj'), ('18', 'nummod')]],
    'Clu': [1, 0, 0, 2]
}
df = pd.DataFrame(data)
  1. 展开元组列表
    将Parsed列中的每个元组拆分为独立行,每行对应一个元组和所属的聚类编号:
exploded_df = df.explode('Parsed')
  1. 去重同一聚类内的重复元组
    确保同一个聚类中,相同元组只保留一条记录,避免重复计数:
unique_clu_tuple = exploded_df.drop_duplicates(subset=['Parsed', 'Clu'])
  1. 统计元组跨聚类出现次数
    按元组分组,统计每个元组关联的不同聚类数量:
tuple_cluster_count = unique_clu_tuple.groupby('Parsed')['Clu'].nunique().reset_index(name='Cluster_Count')

# 输出结果
print(tuple_cluster_count)

输出示例:

Parsed  Cluster_Count
0  ('18', 'nummod')              3
1    ('book', 'dobj')              1
2     ('cat', 'nsubj')              2
3      ('dog', 'obj')              1

扩展:生成聚类-元组存在矩阵

如果需要类似CountVectorizer的矩阵形式(行是聚类,列是元组,值表示元组是否在该聚类中出现),可以用以下代码:

# 生成矩阵
cluster_tuple_matrix = unique_clu_tuple.pivot_table(
    index='Clu', 
    columns='Parsed', 
    aggfunc='size', 
    fill_value=0
)
# 转换为1/0标识(1表示出现,0表示未出现)
cluster_tuple_matrix = cluster_tuple_matrix.applymap(lambda x: 1 if x > 0 else 0)

print(cluster_tuple_matrix)

输出示例:

Parsed  ('18', 'nummod')  ('book', 'dobj')  ('cat', 'nsubj')  ('dog', 'obj')
Clu                                                                         
0                      1                 0                  1               1
1                      1                 0                  1               0
2                      1                 1                  0               0

内容的提问来源于stack exchange,提问作者Divyansh Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:39