【发布时间】:2015-06-16 06:04:38
【问题描述】:
有一个短文本流。每个都有一条推文的大小,或者让我们假设它们都是推文。
用户可以对任何推文进行投票。因此,每条推文都具有以下三种状态之一:
相关(赞成票)
默认(中立,即不投票)
不相关(反对票)
每当有一组新推文出现时,它们都会按特定顺序显示。此顺序由用户对所有先前推文的投票决定。目的是为每条新推文分配一个分数。该分数是根据该推文的文本与用户之前投票的所有推文之间的单词相似度或匹配度计算得出的。换句话说,得分最高的推文将是包含先前投票为正面的单词数量最多和先前投票为负面的单词最少的推文。此外,具有高分的新推文将触发通知给用户,因为它们被认为非常相关。
最后一件事,最少的语义考虑(自然语言处理)会很棒。
我已经阅读了词频-逆文档频率,并提出了这个非常简单和基本的解决方案:
提醒:tf-idf 中的高权重是由词在整个集合中的高词频和低总频率达到的。
如果用户对一条推文投了赞成票,则这条推文的所有词都会得到一个肯定的分数(否定的情况也是如此)。这意味着我们将拥有大量单词,其中每个单词都有正点和负点的总数。
如果 (Tweet score > 0) 那么这条推文将触发通知。
推文得分 = 这条推文所有单词的得分之和
词得分 = 词频 * 逆总频
之前所有投票中的词频 =(该词的总 肯定 票 - 该词的总 否定 票)/ 总 票这个词
逆总频率 = log(所有字的总票数/这个字的总票数)
这个方法够吗?我愿意接受任何更好的方法和任何现成的 API 或算法。
【问题讨论】:
标签: twitter nlp tf-idf text-classification document-classification