资源简介
共现矩阵生成python实现 包括源代码和打包好的exe
Co-occurrence_Matrix.exe 软件本体
data.csv 原始数据 上面让你准备的那个
node.csv 节点数据 (包含节点名称+词频数)
edge.csv 节点关系的三元组存储形式存储(包含两两节点关系+关系频数)
co_occurrence_matrix.csv 共现矩阵(稀疏矩阵形式)
Co-occurrence_Matrix.exe 软件本体
data.csv 原始数据 上面让你准备的那个
node.csv 节点数据 (包含节点名称+词频数)
edge.csv 节点关系的三元组存储形式存储(包含两两节点关系+关系频数)
co_occurrence_matrix.csv 共现矩阵(稀疏矩阵形式)
代码片段和文件信息
# encoding:utf-8
import datetime
def sortDictValueByme(dict is_reverse):
‘‘‘
将字典按照value排序
:param dict: 待排序的字典
:param is_reverse: 是否按照倒序排序
:return s: 符合csv逗号分隔格式的字符串
‘‘‘
# 对字典的值进行倒序排序items()将字典的每个键值对转化为一个元组key输入的是函数item[1]表示元组的第二个元素reverse为真表示倒序
tups = sorted(dict.items() key=lambda item: item[0] reverse=is_reverse)
s = ‘‘
for tup in tups: # 合并成csv需要的逗号分隔格式
s = s + tup[0] + ‘‘ + str(tup[1]) + ‘\n‘
return s
def get_Co_authors(filePath):
‘‘‘
读取csv文件获取作者信息并存储到列表中
:param filePath: csv文件路径
:return co_authors_list: 一个包含所有作者的列表
‘‘‘
# 设置编码为utf-8-sig防止首部\ufeff的出现它是windows系统自带的BOM用于区分大端和小端UTF-16编码
with open(filePath ‘r‘ encoding=‘utf-8-sig‘) as f:
text = f.read()
co_authors_list = text.split(‘\n‘) # 分割数据中的换行符‘\n‘两边的数据
# print(co_authors_list)
co_authors_list.remove(‘‘) # 删除列表结尾的空字符
return co_authors_list
def str2csv(filePath s):
‘‘‘
将字符串写入到本地csv文件中
:param filePath: csv文件路径
:param s: 待写入字符串(逗号分隔格式)
‘‘‘
with open(filePath ‘w‘ encoding=‘utf-8‘) as f:
f.write(s)
print(‘写入文件成功请在‘ + filePath + ‘中查看‘)
def sortDictValue(dict is_reverse):
‘‘‘
将字典按照value排序
:param dict: 待排序的字典
:param is_reverse: 是否按照倒序排序
:return s: 符合csv逗号分隔格式的字符串
‘‘‘
# 对字典的值进行倒序排序items()将字典的每个键值对转化为一个元组key输入的是函数item[1]表示元组的第二个元素reverse为真表示倒序
tups = sorted(dict.items() key=lambda item: item[0] reverse=is_reverse)
s = ‘‘
for tup in tups: # 合并成csv需要的逗号分隔格式
s = s + tup[0] + ‘‘ + str(tup[1]) + ‘\n‘
return s
def build_matrix(co_authors_list is_reverse):
‘‘‘
根据共同作者列表构建共现矩阵(存储到字典中)并将该字典按照权值排序
:param co_authors_list: 共同作者列表
:param is_reverse: 排序是否倒序
:return node_str: 三元组形式的节点字符串(且符合csv逗号分隔格式)
:return edge_str: 三元组形式的边字符串(且符合csv逗号分隔格式)
‘‘‘
node_dict = {} # 节点字典包含节点名+节点权值(频数)
edge_dict = {} # 边字典包含起点+目标点+边权值(频数)
# 第1层循环遍历整表的每行作者信息
for row_authors in co_authors_list:
row_authors_list = row_authors.split(‘‘) # 依据‘‘分割每行所有作者存储到列表中
# filter(None row_authors_list)
while ‘‘ in row_authors_list:
row_authors_list.remove(‘‘)
# print(row_authors_list)
# 第2层循环遍历当前行所有作者中每个作者信息
for index pre_au in enumerate(row_authors_list): # 使用enumerate()以获取遍历次数index
# 统计单个作者出现的频次
if pre_au not in node_dict:
node_dict[pre_au] = 1
else:
node_dict[pre_au] += 1
# 若遍历到倒数第一个元素则无需记录关系结束循环即可
if pre_au == row_authors_list[-1]:
break
connect_list = row_authors_list[index + 1:]
# 第3层循环遍历当前行该作者后面所有的合作者以统计两两作者合作的频次
for next_au in connect_list:
A B = pre_au next_au
# 固定两两作者的顺序
if A > B:
A B = B A
key = A + ‘‘ + B # 格式化为逗号分隔AB形式作为字典的键
# 若该关
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-11-27 09:35 共现矩阵\
文件 6579035 2019-11-26 23:36 共现矩阵\Co-occurrence_Matrix.exe
文件 8108 2019-11-27 09:35 共现矩阵\Co-occurrence_Matrix.py
文件 1352 2019-11-27 09:34 共现矩阵\co_occurrence_matrix.csv
文件 269 2019-11-27 09:09 共现矩阵\data.csv
文件 944 2019-11-27 09:34 共现矩阵\edge.csv
文件 315 2019-11-27 09:34 共现矩阵\node.csv
文件 575179 2019-11-27 09:31 共现矩阵\操作说明.docx
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- 蓝奏云批量上传工具.zip
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
评论
共有 条评论