我使用Python 2.7創建一個項目,該項目將使用Twitter數據並對其進行分析。主要概念是收集推文,並獲取該推文集中最常用的主題標籤,然後我需要創建一個圖表,其中主題標籤將成爲節點。如果這些井號標籤恰好出現在相同的推文中,而該推文會是圖中的一條邊,並且該邊的權重將成爲同現號。所以,我想創建一個使用defaultdict(lambda : defaultdict(int))
詞典的詞典,並使用networkx.from_dict_of_dicts
Python:從共生矩陣創建無向加權圖
我的代碼用於創建共生矩陣的曲線
def coocurrence (common_entities):
com = defaultdict(lambda : defaultdict(int))
# Build co-occurrence matrix
for i in range(len(common_entities)-1):
for j in range(i+1, len(common_entities)):
w1, w2 = sorted([common_entities[i], common_entities[j]])
if w1 != w2:
com[w1][w2] += 1
return com
但爲了使用networkx.from_dict_of_dicts
我需要它在這種格式:com= {0: {1:{'weight':1}}}
你有什麼想法我可以解決這個問題嗎?或者以不同的方式創建這樣的圖表?
雖然在我的項目的進一步工作,我創建了一個從我得到了使用矩陣創建一個圖形功能我的代碼 'DEF create_graph(cooccurrence_matrix): 克= nx.Graph() 對於E,共在cooccurrence_matrix.iteritems(): 如果共> = 3: g.add_edge(E [0],E [ 1],weight = co) return g' 但是,當我運行它說'TypeError:'collections.defaultdict'對象不可調用',我不能figu回答原因。你有什麼想法? – banana
@banana - 該代碼中沒有任何內容突出顯示爲有問題,但我不是一位NX專家。通常情況下,整個診斷回溯是有用的,並且在評論中不太適合,所以如果您可以創建[mvce](http://stackoverflow.com/help/mcve),則可能值得發佈一個新問題。 –