algorithm - 在 Twitter 上识别重复问题的方法?

标签 algorithm twitter duplicates

如标题所述,我只是在寻找算法或解决方案,人们可​​能会使用这些算法或解决方案来接收 twitter firehose(或其中的一部分)和

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

谢谢!

最佳答案

(A)

我会尝试使用 machine learning 来识别问题和 Bag of Words model .

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

(B)

此问题在 Information-Retrieval 的世界中被提及作为“重复检测”或“近似重复检测”。
您至少可以使用语义解释找到彼此非常相似的问题,正如 Markovitch 和 Gabrilovich 在他们的精彩文章 Wikipedia-based Semantic Interpretation for Natural Language Processing 中所描述的那样.至少,它会帮助您确定两个问题是否在讨论相同的问题(即使不完全相同)。

思路是这样的:

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

编辑:

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


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

关于algorithm - 在 Twitter 上识别重复问题的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12374267/

相关文章:

algorithm - 矩阵重新排序以阻止对角线形式

java - 为什么 2 for 循环的时间复杂度不是 O(n*2^n)?

MySql:如何从包含重复字段的行的表中更新单行出现?

class - 重复的类com.google.android.gms.common.util.VisibleForTesting

java - 坚持理解递归

algorithm - 折叠一张纸(计算机视觉)

ios - 通过 Fabric 安装 Twitter,登录有效,请求 Tweets 的持续错误

iphone - 从 ACAccountStore 打开 Twitter 设置 (iOS 5.1 TWITTER)

c# - 如何获取几个月前的推文?

php - 多维数组值的重复数据删除