相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

如何使用python通过余弦相似度有效地检索顶级K-相似文档?

我正在处理十万(100,000)份文件(平均文件长度约为 500 个术语)。对于每个文档,我想通过余弦相似度获得前 k 个(例如 k = 5)个相似文档。那么如何通过Python有效地做到这一点。

这是我所做的:

  1. 对于每个文档,进行文本分割,去除停用词,计算词频(tf)
  2. 所以我们得到了 tf 矩阵,大约 100,000 个文档 * 600000 个术语
  3. 1做- pairwise_distances(tf_matrix,度量= “余弦”)
  4. 对于每个文档,获取前 k 个相似文档。

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

这是我的想法:

  1. 对于每个文档,进行特征选择,只保留 tf > 1 的术语
  2. 首先进行聚类,然后计算每个聚类内的余弦相似度
  3. 因为我只需要前 k 个相似的文档,我是否需要计算所有成对余弦相似度?
  4. python GPU编程还是并行编程?

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

非常感谢。


我知道有一个类似的问题,但这不是我想要的。


更新1

感谢 @orange ,经过分析,我发现第 2 步是瓶颈!这是示例代码:

def construct_dt_matrix():
    dt_matrix = pd.DataFrame(columns=['docid'])
    docid = 0
    for f in files:
        # text segmentation for f
        # remove stop words
        # word count store …
Run Code Online (Sandbox Code Playgroud)

python algorithm tf-idf feature-selection cosine-similarity

5
推荐指数
1
解决办法
2005
查看次数