Django:过滤类似于给定项目的项目

时间:2016-04-03 04:10:34

标签: python django sentence-similarity

我有一个django后端(Postgre数据库)。

假设一个给定的表,比如A,有一个名为' message'的charfield。现在,我想要做的是找到A中所有具有相似“消息”的项目。发送消息'给定实例的字段。相似性将基于某种算法。 TL; DR我想根据项目项目相似性找到项目。

这个问题有三个部分:

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

  2. 如何找到' message'之间的相似性?字段?请注意,该项更像是一个400字符的帖子,而不是一组关键字。我曾经遇到过很多计算字符串距离的算法,但我不认为这会削减它。我认为TF-IDF后跟余弦相似性更合适。

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

1 个答案:

答案 0 :(得分:0)

这可能会起到作用:

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

SearchQuerySet.more_like_this(self, model_instance)

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