【发布时间】:2021-01-15 02:27:02
【问题描述】:
我正在尝试使用 tensorflow 计算 350k 句子之间的余弦相似度。
我的句子首先是使用 sklearn 向量化的:
doc = df['text']
vec = TfidfVectorizer(binary=False,norm='l2',use_idf=False,smooth_idf=False,lowercase=True,stop_words='english',min_df=1,max_df=1.0,max_features=None,ngram_range=(1, 1))
X = vec.fit_transform(doc)
print(X.shape)
print(type(X))
这很好用,我得到了稀疏矩阵,然后我尝试了两种方法将我的稀疏矩阵转换为密集矩阵。
(1) 我试过这个:
dense = X.toarray()
这仅适用于少量数据(大约 10k 句子),但在实际计算中会失败。
(2) 我一直在尝试以这种方式转换输出X,但是在执行第一步K时得到相同的错误消息:
K = tf.convert_to_tensor(X, dtype=None, dtype_hint=None, name=None)
Y = tf.sparse.to_dense(K, default_value=None, validate_indices=True, name=None)
任何解决这个谜团的提示/技巧将不胜感激。如果在大小方面应该更有效,也很高兴考虑批量计算我的计算?
【问题讨论】:
标签: python tensorflow scikit-learn cosine-similarity