python 共现矩阵

最近有个妹子问我共现矩阵python怎么实现?

大致写了下,顺便记下笔记 …

关于共现矩阵是什么,可以参考这篇博文python构建关键词共现矩阵

本文提供另一思路:

  • 以列表存储数据为例:
    在这里插入图片描述
    步骤1:针对每一个样本,利用itertools库中的combinations函数构建排列组合,然后输出一个这样的DataFrame 针对第一个样本,可以构建6中两两的排列组合
    在这里插入图片描述
    ·针对第二个样本,同样可以构建6中两两的排列组合
    在这里插入图片描述
    步骤2: 将两个DataFrame合并成一个
    在这里插入图片描述
    步骤3: 重复统计
    在这里插入图片描述
    步骤4: 利用unstack函数生成共现矩阵
    在这里插入图片描述

  • 完整代码

import pandas as pd
from itertools import combinations

def Get_matrix(df_list):
    '''
        获取共现矩阵
    '''
    df = pd.DataFrame()
    for i in df_list:
        df = pd.concat([df,i])
    df = pd.DataFrame(df.value_counts())
    df.columns = ['counts']
    df = df.unstack(level=1).fillna(0)
    
    return df


def count_list(list_):
    '''
        排列组合
    '''
    list_ = [c for c in combinations(list_, 2)] + [(i[-1],i[0]) for i in [c for c in combinations(list_, 2)]]
    df = pd.DataFrame(list_,columns=['x1','x2'])
    
    return df

if __name__ == "__main__":
    
    data_list = [
        ['I' ,'like','learning'],
        ['I' ,'like','playing'],
    ]
    df_list = [count_list(i) for i in data_list]            # 排列组合
    res_df = Get_matrix(df_list)                            # 获取共现矩阵

.
.
.
.
.
.
.
.

最后,文章中有不足之处,欢迎指正

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值