我開始處理稀疏矩陣,所以我對這個主題不太熟練。我的問題是,我從單詞列表中找到一個簡單的coo-occurrences矩陣,就是一個二維同現矩陣,通過單詞來計算一個單詞在同一個上下文中出現多少次。矩陣相當稀疏,因爲語料庫不是那麼大。我想將它轉換爲稀疏矩陣,以便能夠更好地處理它,最終在事後做一些矩陣乘法運算。在這裏我做了什麼到現在爲止(僅第一部分,剩下的只是輸出格式和清理數據):如何將共生矩陣轉換爲稀疏矩陣
def matrix(from_corpus):
d = defaultdict(lambda : defaultdict(int))
heads = set()
trans = set()
for text in corpus:
d[text[0]][text[1]] += 1
heads.add(text[0])
trans.add(text[1])
return d,heads,trans
我的想法是做一個新功能:
def matrix_to_sparse(d):
A = sparse.lil_matrix(d)
這是否有什麼意義?然而,這是行不通的,我不知道如何得到一個稀疏矩陣。我應該更好地使用numpy數組嗎?什麼是最好的方式來做到這一點。我想比較許多處理矩陣的方法。
如果有人能讓我朝着這個方向發展,那將會很好。
[this](http://docs.scipy.org/doc/scipy/reference/sparse.html)應該是有用的給你。如果你沒有對你的字典做任何事情,我會說直接把它放在矩陣中。 – Raufio 2013-02-22 18:00:07
Yeap,但我也想通過單詞映射出現的同現,如果我將語料庫直接放入矩陣,這樣做會起作用嗎?我不信。 – 2013-02-22 20:42:48