Algorithm 如何注意异常新闻活动

Algorithm 如何注意异常新闻活动,algorithm,language-agnostic,statistics,Algorithm,Language Agnostic,Statistics,假设你能够跟踪新闻中提到的不同实体,比如说“史蒂夫·乔布斯”和“史蒂夫·鲍尔默” 您可以通过什么方式判断每个实体在给定时间段内的提及次数相对于其正常出现频率是否异常 我想,对于像史蒂夫·乔布斯这样更受欢迎的人来说,增长50%可能是不寻常的(增长1000到1500),而对于一个相对不知名的CEO来说,在某一天增长1000%是可能的(增长2到200)。若你们并没有一种方法来衡量你们的不寻常指数,那个么你们的不寻常指数可能会被闻所未闻的15分钟成名时间所支配 更新:为了更清楚,我们假设您已经能够获得连

假设你能够跟踪新闻中提到的不同实体,比如说“史蒂夫·乔布斯”和“史蒂夫·鲍尔默”

您可以通过什么方式判断每个实体在给定时间段内的提及次数相对于其正常出现频率是否异常

我想,对于像史蒂夫·乔布斯这样更受欢迎的人来说,增长50%可能是不寻常的(增长1000到1500),而对于一个相对不知名的CEO来说,在某一天增长1000%是可能的(增长2到200)。若你们并没有一种方法来衡量你们的不寻常指数,那个么你们的不寻常指数可能会被闻所未闻的15分钟成名时间所支配

更新:为了更清楚,我们假设您已经能够获得连续的新闻流,识别每个新闻项中的实体,并将所有这些内容存储在关系数据存储中。

比简化的方式更简单- 存储人员的姓名以及在过去24小时内创建的文章数量,包括他们的姓名。与历史数据进行比较

现实生活-
如果你试图动态地挑选出人们的名字,你会怎么做呢?在文章中搜索如何获取名称?一旦你取了一个新名字,你会为他搜索所有的文章吗?你如何区分史蒂夫·乔布斯和苹果,以及史蒂夫·乔布斯这个正在撰写大量文章的新星

如果您希望简单,请创建一个表,其中包含50个您实际插入的人名。每天午夜,让你的程序在过去的24小时内运行一个快速的谷歌查询,并存储结果的数量。这里面有很多我们没有考虑的变量。

  • 创建一个数据库并保留带有时间戳的故事历史记录。然后,您将拥有一段时间内您所监控的每类新闻的故事历史
  • 定期计算每单位时间的故事数(选择单位)
  • 测试当前值与历史数据的偏差是否超过X个标准差
有些数据会比其他数据更不稳定,因此您可能需要适当地调整X。X=1是一个合理的起点

您可以使用。这就是很多股票追踪者的工作原理。通过跟踪最近的n数据点,您可以看到这种变化是否是超出其通常方差的重大变化

你也可以尝试一些标准化——一个非常简单的方法是,每个类别都有一个总的提及次数(m),与上一个时间段(δ)的百分比变化,然后是一些标准化值(z),其中z=m*δ。让我们看下表(m0是m的上一个值):


在这里,未知的拉里·埃里森(Larry Ellison)的400%变化导致z值为400,更知名的史蒂夫·乔布斯(Steve Jobs)的10%变化是495,而我的20%峰值仍然是10。您可以根据您认为合适的权重调整此算法,或者使用标准偏差或滚动平均值来确定这是否远离他们的“预期”结果。

您使用的方法将取决于每个人的计数分布。我的直觉是,它们不会是正态分布的,这意味着一些纵向数据的标准方法可能不合适——特别是对于你提到的那些小人物、不知名的首席执行官,他们的数据非常不连续

我真的不太精通纵向方法,无法在这里给你一个可靠的答案,但如果你现在把我锁在一个房间里实施这一点,我可能会这么做:

  • 挖掘出一堆过去的数据。很难说你需要多少,但我基本上会一直坚持下去,直到它在计算上变得疯狂或者时间线变得不切实际(不指望史蒂夫·乔布斯会引用上世纪30年代的作品)

  • 在准备创建一个类似的“概率分布”(我在这里使用了松散的术语)时,最近的数据需要比过去的数据加权更多——例如,一千年后,听到史蒂夫·乔布斯的一次提及可能会被认为是一个值得注意的事件,所以你不想使用今天的预期计数(Andy的滚动平均值使用了相同的原理)。对于数据库中的每个计数(天),创建一个随时间衰减的采样概率。昨天是最相关的数据,应该经常采样;30年前不应该

  • 使用权重和替换从该数据集中采样(即,同一数据可以多次采样)。绘制多少图取决于数据、跟踪多少人、硬件有多好等。越多越好

  • 将你当天的实际报道数与该分布进行比较。模拟报道数中有多少百分比高于你的真实报道数?这大概是(上帝不允许任何经济学家看到这一点)当天发生真实计数或更大计数的概率。现在你决定什么是相关的-5%是标准值,但这是一个武断、愚蠢的标准值。只需浏览一下你的结果,看看什么似乎与你相关。结束

  • 这种方法最糟糕的地方在于:它没有趋势。如果史蒂夫·乔布斯一周前有15000个,三天前有2000个,昨天有300个,那么有明显的下降趋势。但是上面概述的方法只能通过减少旧数据的权重来解释这一点;它无法预测这种趋势。它假设这个过程基本上,随着时间的推移,没有真正的变化,只是同一个随机过程中可能发生的事件越来越少

    无论如何,如果你有耐心和意志力,可以查看一些真实的统计数据。例如,你可以查看多层次模型(每天都是嵌套在个人内的重复测量)。
    Name                m    m0    δ    z
    Steve Jobs       4950  4500    .10      495
    Steve Ballmer     400   300    .33      132
    Larry Ellison      50    10    4.0      400
    Andy Nobody        50    40    .20      10