【问题标题】:Trending topics: 1-word terms vs composed terms热门话题:1 字词与组合词
【发布时间】:2010-10-30 17:01:32
【问题描述】:

With your perfect help here我已经学会了如何计算热门话题(标准分+浮动平均值)。

我的下一个问题:我的数据库中的术语(由 1-3 个单词组成)与它们被提及的时间相关联。但热门话题总是只有 1 个单词的术语,因为术语的一部分总是比完整的术语更频繁地被提及。示例:昨天有 3 篇关于“巴拉克·奥巴马”的新闻文章,今天有 148 篇。然后“巴拉克·奥巴马”当然正在上升。但“巴拉克”也在崛起,因此成为热门话题。

我在计算热门话题时如何包含术语的长度?我不想使用其他算法,我对上面的算法非常满意。我可以将所有两个词项的分数乘以 1.5 左右吗?

详细示例:我的主要趋势是:微软、中国、希拉里克林顿、达拉斯小牛队。我想说,“希拉里·克林顿”和“达拉斯小牛队”从来没有排名第一或第二,因为它们是两个词。 “微软”和“中国”是一个词,所以他们总是排名更好。有没有办法解决这个问题?

我希望你能帮助我。提前致谢!

【问题讨论】:

    标签: tags


    【解决方案1】:

    谈到奥巴马,是的,你可以。 :)

    也许您可以在输出之前测试您的高趋势是否包含在低趋势中。我会尝试这样的事情:

    例子:你有

    1. 奥巴马
    2. 法航
    3. 巴拉克
    4. A330
    5. 巴拉克·奥巴马
    6. ...

    如果您要输出的列表不太长(例如您只取 100 个最好的分数),您只选择其他列表中未包含的列表,可能会在包含其他。 (您可能必须取前 150 个值,然后进行处理以消除冗余,这可能会达到 110 之类的值,然后修剪最后 10 个值以恢复您的 100 个值。)

    “Barack Obama”同时包含“Barack”和“Obama”,所以你可以给它100%的奖励,你的名单可能会变成:

    1. 法航
    2. 巴拉克·奥巴马
    3. A330
    4. ...

    希望它不会过多地改变你的算法,但实际上你可以在最后插入这个处理,然后再输出它。

    编辑:

    或者,如果你真的没有列出最好的分数,而只是一个一个地计算,你可以拆分你的趋势来计算其组成部分的思考总和(比如“巴拉克奥巴马”的趋势是“巴拉克奥巴马"'s + 0.5*"Barack"'s + 0.5*"Obama"'s)。

    【讨论】:

    • 非常感谢!非常简单,但它有效! :) 不幸的是,它只涵盖一种情况。另一种情况是,我的主要趋势是:微软、中国、希拉里·克林顿、达拉斯小牛队。我想说“希拉里·克林顿”和“达拉斯小牛队”从来没有排名第一或第二,因为它们是两个词。 “微软”和“中国”是一个词,所以他们总是排名更好。有没有办法解决这个问题?
    • 我不知道为什么会这样。使用我给你的方法(从子组件中添加部分趋势),你可以达到与常数乘数相同的效果,只是乘数取决于子组件的趋势。也许增加乘数可以解决问题,但你应该小心不要试图过多地弯曲数据。您可能会将错误的趋势归功于错误的趋势(愚蠢的例子:一个名叫麦克唐纳的人会从麦克唐纳的破产中受益匪浅,并仅仅因为他的名字而获得比它更高的趋势)。在这里没有空间说话,祝你好运。
    • 没有足够的声誉来评论 AviD 的答案,所以我在这里这样做:AviD 的公式(几乎)是正确的。您减去趋势(巴拉克奥巴马),因为它包含两次:一次在趋势中(巴拉克),一次在趋势中(奥巴马)(计算“巴拉克”的所有出现包含“巴拉克奥巴马”的所有出现;“奥巴马”的计数相同,所以两次“巴拉克奥巴马”)。但要完全准确,您还必须减去同样包含两次的“奥巴马巴拉克”的所有出现次数。问题是 AviD 还计算“Ehud Barack”(为了示例而拼错)和“Michelle Obama”的趋势。
    【解决方案2】:

    基于@subtenante 的回答,您应该寻找的公式应该基于“Barack Obama”始终包含“Barack”和“Obama”这一事实......
    如此简单的数学表明它应该是:

    "Barack"s + "Obama"s - "Barack Obama"s
    

    ...当然,假设您的部分术语仅出现在正确的上下文中,无论是单独出现还是与完整术语组合 - 即“Barack”将始终指代“Barack Obama”(而不是例如“埃胡德·巴拉克”)。

    【讨论】:

    • 谢谢!为什么要减去“巴拉克奥巴马”的价值?
    • 正如@subtenante 在他对自己帖子的评论中解释的那样,我减去了“巴拉克奥巴马”,因为它已经被包含了两次——它被计算为趋势一次(“巴拉克”),第二次被计算为“奥巴马” ”。然而,@subtenante 也对罕见的“奥巴马巴拉克”提出了很好的看法。正如我还指出的那样,除了您预期的“巴拉克奥巴马”之外,这些子术语也可能出现在其他趋势中。
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2012-06-11
    • 1970-01-01
    • 2014-02-15
    相关资源
    最近更新 更多