我开始处理稀疏矩阵,所以我对这个话题并不是很精通。我的问题是,我有一个来自单词列表的简单共现矩阵,只是一个按单词计算单词在同一上下文中出现的次数的二维共现矩阵。由于语料库不是很大,因此矩阵非常稀疏。我想将它转换为稀疏矩阵以便能够更好地处理它,最终在之后进行一些矩阵乘法。这是我到目前为止所做的(只有第一部分,剩下的只是输出格式和清理数据):
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 数组吗?什么是最好的方法来做到这一点。我想比较处理矩阵的许多方法。
如果有人能给我指明方向,那就太好了。