我希望有人可以帮助我。我是处理大型数据集的新手,需要帮助优化运行时间和内存使用情况。
我正在处理2000年至2018年间来自30家报纸的新闻报道。整个数据集中大约有1200万篇文章。我正在计算文章之间的TFIDF和余弦相似度,并且鉴于数据约为40GB,因此我不确定它的伸缩性如何。
目前,我只使用1个月的数据,虽然工作正常,但速度非常慢。
对于TFIDF词汇表,我们希望执行的分析持续时间的语料库持续时间永远不会超过1年的数据(这是上限)。建立词汇的最佳方法是什么?我在互联网上搜索了一下,发现使用gensim可以逐步建立词汇表。是我能做的最好的还是有更好/快速的方法来解决这个问题?
鉴于我成功地建立了语料库词汇,我需要计算与其他文章(同一日期)的余弦相似度小于给定阈值的所有文章(从特定日期开始)。由于词汇量巨大,因此反复调用transform和cosine_similarity可能会非常昂贵。知道我该如何改善吗?我想到了使用Kruskal算法来查找断开连接的组件,以最大程度地减少对变换和余弦相似度的调用。
虽然以迭代方式使用迭代器和gensim来构建字典可以帮助节省内存,但我仍然不确定如何减少计算没有相似文章的文章数量的时间?
3)如果任何人都有处理大熊猫中类似数据的经验,我应该移至数据库还是大熊猫足以完成此任务?
谢谢:)