我正在使用Python3。
我正在做TF_IDF,并且记录了超过80%的结果。
但是因为太慢了。因为形状是51,336 x 51,336。
如何在不使用for语句的情况下更快地创建数据框。
现在要花50分钟。
我想制作一个这样的数据框。
[column_0],[column_1],[相似性]
索引[0],列[0],值
索引[0],列[1],值
索引[0],列[2],值
....
索引[100],列[51334],值
索引[100],列[51335],值
索引[100],列[51336],值
...
索引[51336],列[51335],值
索引[51336],列[51336],值
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
indices = pd.Series(df.index, index=df['index_name'])
tfidf_matrix = tf.fit_transform(df['text'])
similarity = pd.DataFrame(columns=['a', 'b', 'similarity'])
for n in range(len(cosine_sim)):
for i in list(enumerate(cosine_sim[n])):
if i[1] > 0.8 and i[1] < 0.99:
similarity = similarity.append({'column_0': indices.index[n],'column_1': indices.index[i[0]],'similarity': i[1]},ignore_index=True)
答案 0 :(得分:0)
如果您想到并行化一项工作,那么很遗憾,没有办法并行化/分发对这些矢量化器所需的词汇的访问。 因此,您为此选择了另一种方法。通过使用 hashingvectorizer 。 为此scikit文档提供了一个示例,该示例使用此向量化器来训练分类器。 https://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html。
希望这对您有帮助