#匯入所需的package
#具體思路以及**實現
#匯入package並讀取原始資料
import seaborn as sns #用於畫圖
from bs4 import beautifulsoup #用於爬取arxiv的資料
import re #用於正規表示式,匹配字串的模式
import requests #用於網路連線,傳送網路請求,使用網域名稱獲取對應資訊
import json #讀取資料,我們的資料為json格式的
import pandas as pd #資料處理,資料分析
import matplotlib.pyplot as plt #畫圖工具
data = pd.dataframe(data) #將list變為dataframe格式,方便使用pandas進行分析
data.head() #顯示資料的前五行
資料處理步驟
將作者列表進⾏處理,並完成統計。具體步驟如下:
將論⽂第⼀作者與其他作者(論⽂非第⼀作者)構建圖;
使⽤圖演算法統計圖中作者與其他作者的聯絡;
社交網路分析
圖是複雜網路研究中的乙個重要概念。graph是用點和線來刻畫離散事物集合中的每對事物間以某種方式相聯絡的數學模型。graph在現實世界中隨處可見,如交通運輸圖、旅遊圖、流程圖等。利用圖可以描述現實生活中的許多事物,如用點可以表示交叉口,點之間的連線表示路徑,這樣就可以輕而易舉的描繪出乙個交通運輸網路
圖型別無向圖,忽略了兩節點間邊的方向。
指有向圖,考慮了邊的有向性。
多重無向圖,即兩個結點之間的邊數多於一條,又允許頂點通過同一條邊和自己關聯。
圖統計指標
度:是指和該節點相關聯的邊的條數,又稱關聯度。對於有向圖,節點的入度 是指進入該節點的邊的條數;節點的出度是指從該節點出發的邊的條數;
迪傑斯特拉路徑:.從乙個源點到其它各點的最短路徑,可使用迪傑斯特拉演算法來求最短路徑;
連通圖:在乙個無向圖 g 中,若從頂點i到頂點j有路徑相連,則稱i和j是連通的。如果 g 是有向圖,那麼連線i和j的路徑中所有的邊都必須同向。如果圖中任意兩點都是連通的,那麼圖被稱作連通圖。如果此圖是有向圖,則稱為強連通圖。
具體**實現
建立作者鏈結的無向圖:
import networkx as nx
建立無向圖
g = nx.graph()
只用五篇**進行構建
for row in data.iloc[:5].itertuples():
authors = row[1]
authors = [』 '.join(x[:-1]) for x in authors]
# 第乙個作者 與 其他作者鏈結
for author in authors[1:]:
g.add_edge(authors[0],author) # 新增節點2,3並鏈結23節點
nx.draw(g, with_labels=true)
得到作者之間的距離:
try:
print(nx.dijkstra_path(g, 『balázs c.』, 『ziambaras eleni』))
except:
print(『no path』)
如果我們500片**構建圖,則可以得到更加完整作者關係,並選擇最大聯通子圖進行繪製,折線圖為子圖節點度值。
#計算論⽂關係中有多少個聯通⼦圖
第五次作業
一 問題及 include using namespace std class time void add a minute void add an hour void add seconds int n void add minutes int n void add hours int n voi...
第五次作業
當我們在討論多型性的時候,通常會用過載函式進行舉例,而這次發現的問題主要在過載運算子上,因此我希望通過對過載運算子的測試來得出乙個結論。我們想知道為什麼前置運算子和後置運算子會有區別,因此設計了乙個實驗來證明它 得到最終結果如預期那樣。通過這次作業,我能感受到前置和後置運算子的區別,通過x 和y x...
第五次作業
insert into student sno,sname,s sdept,sage values 201215128 陳冬 男 is 18 建表時規定學號唯一,而在建表時已經加入了該學號,所以不能有兩個相同學號。3.70 insert into student sno,sname,s sdept,...