首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >热门主题:1个单词的术语与合成的术语

问热门主题:1个单词的术语与合成的术语
EN

Stack Overflow用户
提问于 2009-06-02 14:39:20
回答 2查看 910关注 0票数 3

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

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

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

详细的例子:我最热门的趋势是:微软,中国,希拉里·克林顿,达拉斯小牛。我想说的是,“希拉里·克林顿”和“达拉斯小牛”从来都不是no1或no2,因为它们只有两个单词。“微软”和“中国”是一个单词的术语,所以它们的排名总是更好。有没有可能解决这个问题?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-06 07:34:17

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

也许你可以在输出之前测试一下你的高趋势是否包含在低趋势中。我会尝试像这样的东西:

示例:你有

  1. Obama
  2. Air France
  3. Barack
  4. A330
  5. Barack Obama
  6. ...

如果你想输出的列表不太长(就像你只取100个最好的分数),你只选择那些不包含在其他列表中的分数,可能会在包含其他分数的列表中增加50%的奖金。(您可能需要获取150个第一个值,然后进行删除冗余的处理,可能会达到大约110个值,然后修剪最后10个值以恢复100个值。)

“巴拉克·奥巴马”包含“巴拉克”和“奥巴马”,所以你可以给它100%的奖励,你的清单可能会变成:

  1. Air France
  2. Barack Obama
  3. A330
  4. ...

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

编辑:

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

票数 1
EN

Stack Overflow用户

发布于 2009-06-07 13:04:41

基于@subtenante的答案,你应该寻找的公式应该基于这样一个事实,即“巴拉克·奥巴马”总是包含“巴拉克”和“奥巴马”……

所以简单的数学会表明它应该是:

代码语言:javascript
复制
"Barack"s + "Obama"s - "Barack Obama"s

..。当然,假设您的部分术语只存在于正确的上下文中,无论是单独出现还是组合成完整的术语-即“巴拉克”总是指“巴拉克·奥巴马”(而不是“奥巴马”)。“埃胡德·巴拉克”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/939938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档