
由于只有一个答案,赏金截止日期快到了,我想我应该添加一个基线答案,这样赏金不会自动授予不会超出问题实质的答案。
显而易见的第一步是采用原始的一组推文,并遵循所有
in_reply_to_status_id链接来构建许多有向无环图。您可以100%确定这些关系。(您甚至应该通过原始集合中没有的推文来跟踪这些链接,并将其添加到您正在考虑的状态更新集中。)
除了这一简单的步骤外,还必须处理“提法”。与电子邮件线程化不同,没有什么比它可以匹配的主题行更有用了–这 不可避免地
会很容易出错。我将采用的方法是为可能由该推文中的提及表示的状态ID之间的每个可能关系创建特征向量,然后训练分类器猜测最佳选项,包括“不回复”选项。
要计算“一切可能的关系”,请首先考虑提及一个或多个其他用户且不包含的每个状态更新
in_reply_to_status_id。假设这些推文之一的示例是:1
@a @b no it isn't lol RT @c Yes, absolutely. /cc @stephenfry
…您将创建此更新,并在时限提前每次更新之间的关系的特征向量
@a,
@b,
@c,和
@stephenfry在上周(说),并且更新和特殊之间的一个“未回复”更新。然后,您必须创建一个特征向量-
您可以根据需要添加此向量,但是我至少建议添加:
- 两次更新之间经过的时间-大概是最近的更新。
- 通过提及的方式在推文中提及的比例。例如,如果这是第一个单词,则该分数将为0,并且比更新中稍后提及的可能性更大,它表示回复。
- 提到的用户的追随者数量-名人大概被垃圾邮件提及。
- 更新之间最长的公共子字符串的长度,这可能表示直接引用。
- 在提及之前是否加上“ / cc”或其他指示符,以表明这不是直接回复该人?
following / followed
原始更新作者的比例。- 等等
- 等等
由于分类器将仅使用那些被证明有用的分类器,因此可以提供更好的分类器。我建议尝试使用随机森林分类器,该分类器在Weka中方便地实现。
下一个需要训练集。刚开始时,它可能很小—刚好足以获得识别正在运行的对话的服务。对于此基本服务,必须添加一个不错的界面来更正不匹配或错误链接的更新,以便用户可以对其进行更正。使用这些数据可以建立更大的训练集和更准确的分类器。
1 …这可能是Twitter上的典型讨论水平;)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)