使用Python对文本进行共现统计

本文介绍了如何利用Python对文本数据进行共现统计分析,包括词频计算、共现矩阵构建以及相关性分析,帮助理解文本中词汇的关系。
#-*-coding:utf-8-*-
import pandas as pd
list=['A',  'B',    'C',  'D',    'E',  'F',  'G',  'H',    'I', 'J',  'K', 'L']
word_list=[]
for i in range(0,len(list)):
    for j  in range(0,len(list)):
        word_list.append([list[i],list[j]])

data={}
for k in range(0,10):
    with open(str(k)+"_keywords.txt",'r',encoding='utf-8',errors='ignore') as f:
        txt_list=f.read().strip().split("\n")
        for line in txt_list:
            for l in word_list:
                if l[0] in line and l[1]in line:
                    key=str(l[0])+';'+str(l[1])+';'
                    if key in data.keys():
                        data[key]=data[key]+1
                    else:
                        data.update({key:1})
    print(str(k)+' 完成')
data_only={}
for key in data.keys():
    key_list=key.split(';')
    fkey=key_list[1]+';'+key_list[0]+';'
    kkey =key_list[1]+';'+key_list[1]+';'
    if fkey in data_only.keys() :
        print(fkey+'  **已经在其中不在录入**  '+key)
        continue
    elif key==kkey :
        print(key + ' **为叠词不计入统计' )
    else:
        data_only.update({key:data[key]})

# for key,value in data_only.items():
#     with open("关键词共现次数(top10).txt",'a+',encoding='utf-8',errors='ignore') as f:
#         f.write(key+str(value)+';'+'\n')


for i in range(0,len(list)):
    with open("词频共现矩阵(top10).txt", "a+", encoding='utf-8', errors='ignore') as f:
        f.write(list[i] + '\t')
    for j in range(0,len(list)):
                   with open("词频共现矩阵(top10).txt", "a+", encoding='utf-8', errors='ignore') as f:
                f.write(str(data[list[i]+list[j]])+'\t')
        else:
            with open("词频共现矩阵(top10).txt", "a+", encoding='utf-8', errors='ignore') as f:
                f.write(str(0) + '\t')
    with open("词频共现矩阵(top10).txt", "a+", encoding='utf-8', errors='ignore') as f:
        f.write("\n")

作者:WangB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值