问题描述
我正在使用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 (将#修改为@)