【问题标题】:weighted trie for autosuggest feature自动建议功能的加权特里
【发布时间】:2013-07-09 17:36:19
【问题描述】:

我有一个 trie(后缀树),用于我网站中的自动建议功能。

现在我想在权重较低的文本上方显示最流行(权重最高)的文本。如何更改我的尝试,以便按加权顺序提出建议。

或者我应该只在内存中按重量排序?

【问题讨论】:

    标签: data-structures trie


    【解决方案1】:

    您可以在每个节点上添加countweight 属性,并在使用您的文字构建特里树时对其进行更新。每个字符的初始权重为0,但如果一个字符是单词的终止字符,那么它的初始权重为1。随着您不断添加单词,您可以调整终端字符的权重。

    因此,例如,您可以:

    t:0
    |  
    o:1
    |
    w:3---e:0
    |  \    \
    n:2 a:0  l:4
         \
          r:0
           \
            d:2
    

    对于字符串to(出现一次)、tow(出现三次)、towel(出现四次)、town(出现两次)和toward(也出现两次)。

    如果您有前缀tow,您可以查看非零加权字符串,例如tow:3towel:4town:2toward:2

    之后就可以按重量排序了。

    我还没有在实践中尝试过这种实现;这只是一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      相关资源
      最近更新 更多