代码之家  ›  专栏  ›  技术社区  ›  ʞɔıu

如何注意异常新闻活动

  •  5
  • ʞɔıu  · 技术社区  · 16 年前

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

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

    更新:

    4 回复  |  直到 16 年前
        1
  •  3
  •   Andy    16 年前

    你可以用一个 rolling average . 这就是很多股票追踪者的工作原理。通过跟踪最后一个 N

    您还可以尝试一些规范化——一个非常简单的方法是,每个类别都有总的提及次数( M ),与上一个时间段的百分比变化( ),然后是一些规范化值( Z z=m*δ m0 是以前的值m):

    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
    

    在这里,未知的Larry Ellison的400%变化导致z值为400,更著名的Steve Jobs的10%变化是495,我的峰值20%仍然是低10。你可以根据你觉得好的权重调整这个算法,或者使用标准差或滚动平均值来确定这是否远离他们的“预期”结果。

        2
  •  2
  •   Jay    16 年前
    • 创建一个数据库并保留带有时间戳的故事历史记录。然后,您将拥有一段时间内您所监控的每类新闻的故事历史。
    • 定期计算每单位时间的故事数(选择单位)。
    • 测试当前值与历史数据的偏差是否超过X个标准差。

        3
  •  0
  •   Mike M.    16 年前

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

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

        4
  •  0
  •   Matt Parker    16 年前

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

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

    2. 使用权重和替换从该数据集中取样(即,同一数据可以多次取样)。你画了多少画取决于数据,你跟踪了多少人,你的硬件有多好,等等。越多越好。

    3. 将您当天的实际故事数与该分布进行比较。模拟计数的百分之几高于实际计数?这大概是(上帝不让任何经济学家看到这一点)你的真实计数或更大的概率发生在那一天。现在你决定什么是相关的-5%是标准,但这是一个任意的,愚蠢的标准。只需浏览一下你的结果,看看什么似乎与你相关。结束。

    这种方法最糟糕的地方在于:它没有趋势。如果史蒂夫·乔布斯一周前有15000人,三天前有2000人,昨天有300人,那么有明显的下降趋势。但上述方法只能通过减少旧数据的权重来解释这一点;它无法预测这一趋势。它假设过程基本上是 stationary

    the statistics StackExchange site