91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 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\

評論

共有 條評論

相關資源