With your perfect help here我已经了解了如何计算热门话题(标准分数+浮动平均值)。
我的下一个问题:我的数据库中的条款(包含1-3个单词)与提及的时间相关联。但趋势主题总是只有1个字的术语,因为术语的一部分总是比完整的术语更经常被提到。示例:昨天有3篇新闻文章是关于“巴拉克奥巴马”和今天的148.当然,“巴拉克奥巴马”正在崛起。但是“巴拉克”也在崛起,所以这是一个热门话题。
在计算热门话题时,如何包含术语的长度?我不想使用其他算法,我对上面的算法非常满意。我可以将所有双字词的得分乘以1.5左右吗?
详细示例:我的主要趋势是:微软,中国,希拉里克林顿,达拉斯小牛队。我想说“希拉里克林顿”和“达拉斯小牛队”从来没有排在第一或第二,因为它们是两个字的术语。 “微软”和“中国”是一个单词的术语,所以他们总是排名更好。有没有可能解决这个问题?
我希望你能帮助我。提前谢谢!
答案 0 :(得分:1)
谈论奥巴马,是的,你可以。 :)
也许您可以在输出之前测试您的高趋势是否包含在较低趋势中。我会尝试像这样:
示例:您有
如果您要输出的列表不会太长(例如您只获得100个最佳分数),则只选择其他未包含的列表,可能会为包含其中的那个添加50%的奖励其他。 (您可能必须先获取150个第一个值,然后进行处理以消除冗余,这可能会达到110之类,然后修剪最后10个值以获得100个值。)
“巴拉克奥巴马”包含“巴拉克”和“奥巴马”,所以你可以给它100%的奖金,你的名单可能会变成:
希望它不会过多地改变你的算法,但实际上你可以在输出之前插入这个处理。
编辑:
否则,如果你真的没有列出最好的分数但只是一个一个地计算,你可以将你的趋势分开以计算其成分的思考总和(如“巴拉克奥巴马”的趋势是“”巴拉克奥巴马“是+ 0.5 *”Barack“的+ 0.5 *”奥巴马“的。)
答案 1 :(得分:0)
在@ subtenante的答案的基础上,你应该寻找的公式应该基于“巴拉克奥巴马”总是包含“巴拉克”和“奥巴马”的事实...... 如此简单的数学表明它应该是:
"Barack"s + "Obama"s - "Barack Obama"s
...当然,假设您的部分条款仅出现在正确的背景下,无论是单独的还是组合到整个期限 - 即“Barack”将始终指的是“Barack Obama”(而不是例如“ Ehud Barack“)。