【发布时间】:2015-09-30 20:11:36
【问题描述】:
目前我正在研究数据挖掘、文本比较,并找到了这个:https://en.wikipedia.org/wiki/Cosine_similarity。
由于我已经成功实现了这个算法来比较两个字符串,我决定尝试一些更复杂的任务来实现。 我已经迭代了包含大约 250k 个文档的数据库,并将数据库中的一个随机文档与该数据库中的整个文档进行了比较。
比较所有这些项目的时间:316.35898590088 秒,即 - > 5 分钟来比较所有 250k 文档!
由于这个结果,出现了许多问题,我不想提出一些建议。 为了清楚起见,首先我将描述一些可能有用的细节。
- 选择了 PHP 作为编程语言。
- 文档存储在 MySQL 中。
- 余弦相似度函数的实现只包含这个 功能,没有停用词和任何其他花哨的东西。
问题
- 有什么方法可以达到更好的性能吗?我应该从哪里开始,通过调整算法(即提前准备向量等),通过使用其他技术等?
- 我应该如何以及在哪里存储这些比较结果。例如,我想打印一些图表,我可以通过相似度分数查看所有这些 250k 文档,以便我可以识别哪些最相似等等。
【问题讨论】:
标签: php full-text-search cosine-similarity text-search