0

我有一个 django 后端(Postgre DB)。

假设一个给定的表,比如 A,有一个叫做“消息”的字符域。现在,我要做的是找到 A 中与给定实例的“消息”字段具有相似“消息”的所有项目。相似性将基于某种算法。TL;DR 我想根据项目相似度查找项目。

问题有 3 个部分:

  1. 我该怎么做?我可以实时执行(慢速)还是必须预先计算表 A 中所有项目之间的相似性。(这可能会炸毁我的数据库)

  2. 如何找到“消息”字段之间的相似性?请注意,该项目更像是一个 400 字符的帖子,而不是一组关键字。我遇到了许多计算字符串距离的算法,但我认为这不会减少它。我认为 TF-IDF 后跟余弦相似度更合适。

  3. 我如何在生产环境中实现上述目标?就像应该使用什么数据结构来优化请求响应时间与存储一样。

4

1 回答 1

0

这可能会奏效:

http://django-haystack.readthedocs.org/en/v2.4.1/searchqueryset_api.html#more-like-this

SearchQuerySet.more_like_this(self, model_instance)

您可以传入模型的一个实例,以获取类似的结果。

于 2016-04-04T09:28:19.480 回答