扫码关注官方订阅号
项目用的是flask+mongodb+mongoengine,文章模型包含一个字符串列表的ListField(...)类型的字段用于存储tags,一篇文章可能有若干个字符串tag,我想在显示该篇文章的详细信息时,通过tags查询相关的几篇文章,python中应该怎么写更合理?
闭关修行中......
相关性可以用向量表示
假设一个系统中有N个TAG,TAG1/TAG2/TAG3/.../TAGN
TAG1/TAG2/TAG3/.../TAGN
一篇文章的TAG情况可以用一个只包含1和0的N维向量表示,两篇文章的相关性可以用向量的内积表示
比如说文章A的TAG情况是(1,1,1), 文章B的TAG情况是(0,1,1), 文章C的TAG情况是(1,0,1)。
(1,1,1)
(0,1,1)
(1,0,1)
实际实现的时候文章的TAG情况可以用binary数字表示,两个文章的相似性可以用两个binary的AND结果计算hamming weight。
AND
hamming weight
当然啦最简单的就是用现成的轮子,比如说果壳的这个 https://github.com/guokr/simbase
看你希望怎么定义相关了. MongoDB能提供的功能是在tags这个数组上建索引,然后快速找到有相同tag的文章。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
相关性可以用向量表示
假设一个系统中有N个TAG,
TAG1/TAG2/TAG3/.../TAGN
一篇文章的TAG情况可以用一个只包含1和0的N维向量表示,两篇文章的相关性可以用向量的内积表示
比如说文章A的TAG情况是
(1,1,1)
, 文章B的TAG情况是(0,1,1)
, 文章C的TAG情况是(1,0,1)
。实际实现的时候文章的TAG情况可以用binary数字表示,两个文章的相似性可以用两个binary的
AND
结果计算hamming weight
。当然啦最简单的就是用现成的轮子,比如说果壳的这个 https://github.com/guokr/simbase
看你希望怎么定义相关了. MongoDB能提供的功能是在tags这个数组上建索引,然后快速找到有相同tag的文章。