V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
click
V2EX  ›  Django

请问Django怎么做“相关文章”功能?

  •  
  •   click · 2013-08-21 15:35:21 +08:00 · 4198 次点击
    这是一个创建于 3894 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是在一文章后面列出与这篇文章关键词(或tag)相同的文章
    12 条回复    1970-01-01 08:00:00 +08:00
    ritksm
        1
    ritksm  
       2013-08-21 15:43:39 +08:00   ❤️ 2
    这和django有啥必然关系么
    cloverstd
        2
    cloverstd  
       2013-08-21 15:49:40 +08:00 via iPhone
    这是数据库吧
    相同 tag 的就行了
    kchum
        3
    kchum  
       2013-08-21 15:51:05 +08:00 via iPhone
    没做过,瞎指导.
    分词,取主关键字相似度高的。
    简单的可以把关键字相同的列出。
    kavinyao
        4
    kavinyao  
       2013-08-21 16:25:12 +08:00
    简单点可以找出同当前文章关键词或tag重合度比较高的文章,关键词或tag可以人工指定。

    复杂点可以利用基于内容或协同过滤的方法进行自动化推荐,建议google 推荐系统。

    和用不用django没关系。
    NStal
        5
    NStal  
       2013-08-21 16:33:53 +08:00
    http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html
    ruanyifeng的这篇文章又简单的讲余弦相似性的应用.

    http://www.52nlp.cn/%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E4%B8%A4%E4%B8%AA%E6%96%87%E6%A1%A3%E7%9A%84%E7%9B%B8%E4%BC%BC%E5%BA%A6%E4%BA%8C
    这篇是针对英文的不过用的手段更多.

    数据处理这块一般来说维度越多效果越好.
    Ever
        6
    Ever  
       2013-08-21 16:50:32 +08:00
    click
        7
    click  
    OP
       2013-08-21 23:24:27 +08:00
    @ritksm 没必然关系,只是我想用Django做
    click
        8
    click  
    OP
       2013-08-21 23:35:15 +08:00
    @NStal 太复杂了。我不求它有多准确,只要能找出同当前文章tag重合度比较高的文章。
    现在的问题是我不知道tag数据结构如何设计。现在的设计是tag占一个字段和文章放一个数据表。像“tag1,tag2,tag3”当成一条数据。
    kk71
        9
    kk71  
       2013-08-21 23:39:55 +08:00
    一般从标签和分类入手。
    楼上有说查找相同的分词……个人觉得太累了。
    google推荐系统可以看看
    imzoke
        10
    imzoke  
       2013-08-22 00:40:51 +08:00
    @click 可以参考 WordPress 的 tag 数据库设计。
    chloerei
        11
    chloerei  
       2013-08-22 00:45:23 +08:00
    楼主不用自己做,可以找搜索引擎的 more like this 功能或者专门的推荐引擎。我没有实际搞过,但知道至少有 Lucene 提供这个功能,楼主需要做的是查一下 python 怎么调用搜索引擎的功能。

    http://lucene.apache.org/core/3_0_3/api/contrib-queries/org/apache/lucene/search/similar/MoreLikeThis.html
    cloudream
        12
    cloudream  
       2013-08-24 10:52:40 +08:00
    多对多的 文章:tags

    然后定时计算两两文章间的相关度分值。

    分值计算方法:有相同tag的tag分数求和。

    tag分数计算方式:关联文章越多该tag分数越低。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1081 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.