• 大小: 169KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-08-17
  • 语言: Python
  • 标签: python  

资源简介

python实现了知网论文的高频关键词提取,生成高频关键词矩阵,并进行了社会网络分析

资源截图

代码片段和文件信息

‘‘‘
本文档处理知网以RefWorks格式导出的文献格式
‘‘‘
import numpy as np
import pandas as pd

data=pd.read_excel(‘data/cnki学习干预关键词.xlsx‘)# 读取原式数据,K1列是关键词,以分号分割

keyword_dict=data[‘K1‘].to_dict() #读取关键字列,并由numpy seriers转化为字典格式
keyword_dict={k:v.split(‘;‘) for kv in keyword_dict.items()}#将每行(一篇论文)的关键词分割成关键词列表

# 将所有文章的关键词组成一个大的列表,方便统计每个关键词出现的次数,map比循环的速度更快
keyword_list=[]
for v in keyword_dict.values():
    keyword_list.extend(v)
# map(keyword_list.extendkeyword_dict.values())不能使用?
keyword_list=filter(Nonekeyword_list)


#统计关键词列表中每个关键词出现的次数,找到高频词
# keyword_set=set(keyword_list)
# keyword_count1={k:keyword_list.count(k) for k in keyword_set}
from collections import Counter
keyword_count=Counter(keyword_list)

#产生高频词列表,按从大到小排序
keyword_high_filter=1 #设定高频词阈值
keyword_high={k:v for kv in keyword_count.items() if v>keyword_high_filter}#过滤掉低频词,保留高频词
keyword_sort=sorted(keyword_high.items()key=lambda item :item[1]reverse=True) #按照词频从大到小排序
keyword_sort=dict(keyword_sort)
#构建高频词的共现矩阵
keyword_comatrix=pd.Dataframe(index=keyword_sort.keys()columns=keyword_sort.keys())#初始化关键词共现矩阵
keyword_comatrix_like=pd.Dataframe(index=keyword_sort.keys()columns=keyword_sort.keys())#初始化关键词共现矩阵
keyword=list(keyword_sort.keys())
keyword_len=len(keyword) #关键词个数
for i in range(keyword_len):
   s1= keyword[i]#关键词1
   keyword_comatrix.iloc[i i]=keyword_sort[s1] #设定关键词共现矩阵的的对角线都为0
   keyword_comatrix_like.iloc[i i] = 1
   for j in range(i+1keyword_len):
        s2=keyword[j]#关键词2
        s=set([s1s2])
        #统计关键词1、2在各个论文里共同出现的次数,即共现次数
        keyword_comatrix.iloc[j i]=keyword_comatrix.iloc[ij]=sum([s.issubset(set(v)) for v in keyword_dict.values()])
        keyword_comatrix_like.iloc[j i]=keyword_comatrix_like.iloc[ij]=keyword_comatrix.iloc[ij]/np.sqrt(keyword_sort[s1]*keyword_sort[s2])

#将数据输出达到excel
with pd.ExcelWriter(‘solve.xls‘) as wr:
    pd.Series(keyword_count).to_excel(wr ‘keyword_all‘)
    pd.Series(keyword_sort).to_excel(wr‘keyword‘)
    keyword_comatrix.to_excel(wr‘keyword_comatrix‘)
    keyword_comatrix_like.to_excel(wr ‘keyword_comatrix_like‘)


‘‘‘
利用关键词共现的相似矩阵,进行谱聚类
‘‘‘
from sklearn.cluster import SpectralClustering
n_clusters=5
clustering = SpectralClustering(n_clusters=n_clustersaffinity=‘precomputed‘assign_labels=“discretize“)
clf=clustering.fit(keyword_comatrix_like.values)
keyword_cluster_labels=clf.labels_ #分类后的各点的类标签

‘‘‘
关键词共现的社会网络分析
‘‘‘
import networkx as nx
import matplotlib.pyplot as plt

plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘] # 步骤一(替换sans-serif字体)
plt.rcParams[‘axes.unicode_minus‘] = False   # 步骤二(解决坐标轴负数的负号显示问题)

G=nx.Graph(keyword_comatrix)
#pos = nx.get_node_attributes(G ‘location‘)
colors=[‘r‘‘b‘‘g‘‘y‘‘purple‘]
node_color =[colors[v] for v in keyword_cluster_labels]
node_size=np.array([G.degree(v) for v in G])*150
#pos=nx.spring_layout(G)
#node_size = [0.0005*nx.get_node_attributes(G ‘population‘)[v] for v in G]
edge_width = [2*keyword_comatrix.loc[uv] f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      180321  2019-04-16 14:33  data\cnki学习干预关键词.xls
     文件      105650  2019-04-16 14:40  data\cnki学习干预关键词.xlsx
     文件         250  2019-04-18 11:22  data\keywordnetwork.py
     文件        3913  2019-04-28 11:05  get_matrix.py
     目录           0  2019-04-18 21:28  data\

评论

共有 条评论

相关资源