如何有效地处理长tfidf向量而没有针对张量流操作的内存错误?获取python杀死错误

问题描述

我正在使用tensorflow为文本文档实现kmeans聚类。我为每个文档创建了TF-IDF向量。由于我的文档很长,每个tfidf向量的大小为80,000。我将这些文档聚集成100个小批处理。我想聚至少一百万个文档,并且我想要一种有效的方法来做到这一点而又不会在python中出现内存错误

目前,我的TF-IDF向量看起来像这样,

document 1: [0.1234,0.876,0.478,0 . . . . . .0.987,0 .... 0.976,...]

document 19747668: [0,0.866,0.375,.....,0.687,0.986 ......]

,依此类推 每个向量都是长度为80,000的稀疏数组。

在kmeans中,我正在这些向量之间进行余弦相似度运算,然后是通常的算法。

# Create a placeholder for input tfidf vectors
                input_vectors = tf.placeholder("float64",name = "input_vectors")
                sampled_centroids = tf.placeholder("float64",name = "sampled_centroids")

                numerator = tf.matmul(input_vectors,tf.transpose(sampled_centroids)) # transpose second matrix

                vector_norm = tf.norm(input_vectors,axis=1)
                transposed_vector_norm = tf.expand_dims(tf.transpose(vector_norm),1)

                centroid_norm = tf.expand_dims(tf.norm(sampled_centroids,axis=1),0)

                denominator = tf.matmul(transposed_vector_norm,centroid_norm)

                cos_similarity = numerator/denominator

现在,它适用于2000左右的较小文档集而不会中断。如何在没有内存问题的情况下进行扩展?

我如何找到一种更好的方法来将这些TF-IDF向量有效地保存在内存中,以执行kmeans算法的所有张量流操作。我迷路了。请帮助!!!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)