3

如标题中所述,我只是在寻找可以用来接收 twitter firehose(或其中的一部分)的算法或解决方案,并且

a) 确定一般问题 b) 对于一个问题,确定可能相同的问题,并有一定的信心

谢谢!

4

1 回答 1

3

(一种)

我会尝试使用机器学习词袋模型来识别问题。

  1. 创建一组带标签的 twits,并用二进制标志标记它们中的每一个:问题或非问题。
  2. 从训练集中提取特征。这些特征传统上是单词,但至少在我尝试过的任何时候——使用二元语法显着改善了结果。(3克对我的情况没有帮助)。
  3. 根据数据构建分类器。我通常发现SVM比其他分类器提供更好的性能,但您也可以使用其他分类器 - 例如朴素贝叶斯KNN(但您可能需要这些分类器的特征选择算法)。
  4. 现在您可以使用分类器对推文进行分类。1

(乙)

这个问题在信息检索领域被称为“重复检测”或“接近重复检测”。
您至少可以使用语义解释找到彼此非常相似的问题,正如 Markovitch 和 Gabrilovich 在他们精彩的文章Wikipedia-based Semantic Interpretation for Natural Language Processing中所描述的那样。至少,它将帮助您确定两个问题是否正在讨论相同的问题(即使不相同)。

这个想法是这样的:

  1. 使用 wikipedia 构建一个表示其语义的向量,对于一个 term t,条目是与 term共同出现的该术语vector_t[i]的 tf-idf 分数。文章中详细描述了这个想法。阅读前 3-4 页就足以理解它。无需全部阅读。2it
  2. 对于每条推文,构造一个向量,该向量是其术语向量的函数。比较两个向量 - 您可以确定两个问题是否在讨论相同的问题。

编辑:

第二个想法,BoW 模型在这里不太合适,因为它忽略了术语的位置。但是,我相信如果您添加用于提取特征的NLP处理(例如,对于每个术语,还表示它是前置主题还是后置主题,这是使用 NLP 处理确定的),结合机器学习将产生相当不错的效果结果。


(1) 为了评估您的分类器,您可以使用交叉验证,并检查预期的准确性。
(2) 我知道 Evgeny Gabrilovich 将他们创建的实现算法发布为一个开源项目,只需要寻找它。

于 2012-09-11T18:01:55.553 回答