根据之前的分配(投票)将短文本分配给两个类别之一

Assign a short text to one of two categories according to previous assignments (votes)

有一连串的短文。每个都有推文的大小,或者让我们假设它们都是推文。

用户可以对任何推文进行投票。因此,每条推文都具有以下三种状态之一:

相关(赞成票)

默认(中立,即不投票)

不相关(反对票)

每当有一组新推文出现时,它们将按特定顺序显示。此顺序由用户对之前所有推文的投票决定。目的是为每条新推文分配一个分数。该分数是根据该推文的文本与用户投票的所有先前推文之间的单词相似度或匹配度计算的。换句话说,得分最高的推文将包含之前投票赞成的最多单词数和之前投票反对的最少单词数。此外,具有高分的新推文将触发给用户的通知,因为它们被认为非常相关。

最后一件事,最少的语义考虑(自然语言处理)会很棒。

我已经阅读了关于词频-逆向文档频率的文章并提出了这个非常简单和基本的解决方案:

温馨提示:tf–idf中的高权重是由整个集合中的高词频和低词总频达到的。

如果用户对一条推文投赞成票,则这条推文的所有单词都会获得正面分数(负面情况也是如此)。这意味着我们将有一大组单词,其中每个单词都有正点和负点的总数。

如果(推文评分 > 0)则此推文将触发通知。

推文得分 = 这条推文所有单词得分的总和

词分=词频*总频的倒数

所有先前投票中的词频 =(这个词的总 正面 票 - 这个词的总 负面 票)/ 票赞成这个词

逆向总频数=log(所有个词的总票数/这个个词的总票数)

这个方法够用吗?我愿意接受任何更好的方法和任何现成的 API 或算法。

一种可能的解决方案是训练分类器,例如 Naive Bayes on the tweets that a user has voted on. You can take a look at the documentation of scikit-learn, a Python library, which explains how you can easily preprocess your text and train such a classifier

我会看一下朴素贝叶斯,但是在执行简单分类时我也会看一下 K 最近邻算法 - 它包含在 Sci-kit Learn 库中并且有很好的记录。

回复:"running SKLearn on GAE is not possible" - 你要么需要使用 Google 预测 API,要么 运行 一个 VPS 作为工作人员处理您的分类任务;不过,这显然必须存在于不同的系统上。

不过我想说的是,如果您只希望对适当小的数据集执行简单分类,您实际上可以在 JavaScript 中实现分类器,例如

`http://jsfiddle.net/bkanber/hevFK/light/`

使用 JS 实现,如果数据集太大,处理时间会变得慢得令人无法接受,但作为一个选项很好,在许多情况下甚至更可取。

最终,GAE 不是我在构建任何可能需要除最基本的 ML 技术之外的任何东西时使用的平台。我会在 Digital Ocean、AWS 等

等地方查看 Heroku 或 VPS