python利用余弦相似度聚类_如何使用python高效地利用余弦相似度检索顶级Ksimilar文档?...

我正在处理十万(100000)个文档(平均文档长度约为500个术语)。对于每个文档,我希望通过余弦相似度得到前k(例如k=5)个相似文档。那么如何通过Python来高效地实现这一点呢。在

以下是我所做的:对每个文档,进行文本分割,删除停止字,计算词频(tf)

所以我们得到了tf矩阵,大约100000个文档*600000个术语

do 1-pairwise_distances(tf_矩阵,metric=“余弦”)

对于每个文档,获取前k个相似文档。在

我用i5-2.5GHz运行我的代码,12小时过去了,但它仍在工作。所以我想知道如何优化我的代码或过程。在

我的想法是:对于每个文档,进行功能选择,只保留tf>1的术语

首先进行聚类,然后计算每个聚类内的余弦相似度

既然我只需要top k个相似文档,我是否需要计算所有成对余弦相似度?在

PythonGPU编程还是并行编程?在

那么,你有什么好主意吗?在

非常感谢。在

我知道有一个similar question,但那不是我想要的。在

更新1

感谢@orange,在分析之后,我发现第2步是瓶颈!下面是示例代码:def construct_dt_matrix():

dt_matrix = pd.DataFrame(columns=['docid'])

docid = 0

for f in files:

# text seg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值