【发布时间】:2019-09-02 07:47:48
【问题描述】:
我正在使用 Python 3。
我在做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)
【问题讨论】:
标签: python-3.x pandas dataframe apply tf-idf