我在Python中执行以下代码。它花了一些时间运行。有什么我做错了。
有没有更好的方法来做同样的事情。
REF_ID
答案 0 :(得分:0)
由于没有提供足够的数据(我不知道model
是什么),因此无法确定以下行中发生了什么:
similar = [[item[0] for item in model.wv.most_similar(word) if item[1] > 0.7] for word in words]
在您创建仅包含两列的DataFrame similarity_matrix
时,似乎没有必要使用下面的第二行:
similarity_matrix = pd.DataFrame({'Root_Word': words, 'Similar_Words': similar})
# This below does not do anything
similarity_matrix = similarity_matrix[['Root_Word', 'Similar_Words']]
apply
方法不是很快。尝试使用已在pandas中实现的矢量化方法,如下所示。 Here是关于此主题的有用链接。
similarity_matrix['Unlist_Root'] = similarity_matrix['Root_Word'].apply(lambda x: ', '.join(x))
# will be faster like this:
similarity_matrix['Unlist_Root'] = similarity_matrix['Root_Word'].str.join(', ')
类似地:
similarity_matrix['Unlist_Similar'] = similarity_matrix['Similar_Words'].apply(lambda x: ', '.join(x))
# will be faster like this:
similarity_matrix['Unlist_Similar'] = similarity_matrix['Similar_Words'].str.join(', ')
其余代码无法运行得更快。
如果您提供了更多数据/信息,我们可以为您提供更多帮助......