python 读取doc_python构建共现矩阵+pajek可视化

本文介绍了如何使用Python处理doc文件,构建共现矩阵,并通过Pajek进行可视化。首先,对文本进行中文分词和停用词处理,然后将数据存储。接着,利用ucinet转换并设定阈值,保存为.net格式。最后,通过Pajek的netdraw工具或添加.vec文件来美化图形。
摘要由CSDN通过智能技术生成

代码源于需求~

第一步,python构建出共现矩阵

  • 中文分词、去停用词

  • 数据存储

第二步,pajek结合ucinet可视化,可vosviewer

上图

b5fec121046356c7aa4e7155ada7cc24.png

890ff2e0a4223e47876af8c67a1dced8.png

627848ae0fc227707a3961173745cb17.png

python实现共现矩阵

代码见:

https://www.cnblogs.com/Cookie-Jing/p/13837525.html点击原文链接也可

2bdcf4e4cebe82d3e86bc18081dc1e67.png

数据预处理部分与之前的主题模型——lda差不多

import numpy as npimport pandas as pdfrom pprint import pprintimport xlrd #读取excel数据import reimport jieba #使用结巴进行中文分词path = r"D:\01研\01大四\2020.3.13-国家突发卫生事件\20201008\lda.xlsx" #修改路径data = xlrd.open_workbook(path)sheet_1_by_index = data.sheet_by_index(0) #读取表一title = sheet_1_by_index.col_values(1) #第二列n_of_rows = sheet_1_by_index.nrowsdoc_set = [] #空列表for i in range(1,n_of_rows): #逐行读取    doc_set.append(title[i])
#从文件导入停用词表def stopwordslist(filepath):    stopwords=[line.strip() for line in open(filepath,'r',encoding='utf-8').readlines()]    return stopwordsstopwords=stopwordslist(r"D:\01研\01大四\2020.3.13-国家突发卫生事件\20201008\stopwords.txt")texts = []#每篇文章关键词word_set = []#每篇文章关键词不重复set_word = []#所有关键词的集合stpwrdlst2 = ['和', '等', '对', '的', '不','与', '一','化','三要','二要']#去停用词2自编,这里是我自己觉得需要去掉的词for doc in doc_set:    #只保留中文    cleaned_doc = ''.join(re.findall(r'[\u4e00-\u9fa5]', doc))    #分词    doc_cut = jieba.lcut(cleaned_doc)    #去停用词    text_list0 = [word for word in doc_cut if word not in stopwords and len(word)>1]    text_list1 = [word for word in text_list0 if word not in stpwrdlst2]    #最终处理好的结果存放于text[]中    texts.append(text_list1)    for word in texts:        word_new = list(set(word))#去除一维数组中相同的词        word_set.append(word_new)    for subword in word_set:        for word in subword:            if word not in set_word:                set_word.append(word)#统计所有出现的词

使用ucinet转化excel存储的共现矩阵

存储为.##d,.##h格式

bc84deb35fe591b956ea0dae90b5ff8f.png

47c59d1357457ddfabf335b8c945ad7b.png

关键词太多,进行阈值的抽取,保存为.net格式

d3d9eb62b8af9cca4aa83951a87d4ad3.png可视化

使用netdraw打开,图形不太美观

4f13a91d701fe40077e5aeb66c0e9c20.png

pajek打开.net格式文件

b95377008b49fda56eeebce2da621cc3.png

对图要求高一点的话,加上.vec,自己制作

e0edcc57e2c678ddb729c9da61f5cbcf.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值