我开始处理稀疏矩阵,所以我对这个主题不太熟练。我的问题是,我从单词列表中找到一个简单的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