基于特征项权重增长趋势的事件检测与跟踪方法
技术领域
本发明涉及数据挖掘领域,尤其是涉及一种基于特征项权重增长趋势的事件检测与跟踪方法。
背景技术
网络新闻是以网络为载体,由新闻机构发布的最近发生事件的消息报道,是人们日常生活中最为关注的信息类型之一,事件是指在特定时间、特定地点发生的关于特定人物群体的某个事情。互联网的飞速发展带来了海量繁杂的新闻报道,导致人们很难快速方便的找到自己感兴趣事件的相关报道。因此,新闻事件检测与跟踪研究变得愈发重要,它旨在帮助人们应对日益严重的互联网信息爆炸问题,对新闻媒体信息流进行事件的自动识别和已知事件的持续跟踪。
事件检测通常可以分为两类:回顾式方法和在线式方法。前者首先获取整个新闻集,然后通过文本聚类方法对新闻文本聚类,标识出所有事件,若有新增数据,则在新的数据集上重新执行聚类算法;后者按新闻的时间顺序依次处理每条新闻,从新闻流中检测出事件,对于新增数据采用增量式更新挖掘算法。回顾式方法虽然简单易操作,但数据集量级过大时,算法重新执行会造成计算上的浪费,其效率会成为最大的问题,因此,更侧重于实时地在新闻流中标识出事件的在线式方法更具实用价值。事件跟踪主流的方法包括KNN方法、决策树方法、根据词法特征进行事件跟踪、利用一个有限混合模型动态追踪话题发展趋势的方法、基于反馈学习自适应的中文话题追踪技术,然而,现阶段的研究大多只停留在事件跟踪阶段,对事件的动态演变过程研究甚少。
传统的新闻事件检测采用文本聚类算法处理静态的数据集,聚类结果为话题簇,然而,生产环境中新闻数据是递增的,能够动态地处理新闻集,跟踪后序新闻报道,反应事件动态演变过程的事件检测与跟踪方法才更有意义。
发明内容
本发明所要解决的技术问题是提供一种基于特征项权重增长趋势的事件检测与跟踪方法,该方法结合特征项的权重与特征项的增长趋势的相似度算法,能够实时高效地检测新闻事件并反映一个事件动态变化的过程。
本发明解决上述技术问题所采用的技术方案为:
一种基于特征项权重增长趋势的事件检测与跟踪方法,包括以下步骤:
(1)从新闻门户网站爬取新闻形成新闻集合;
(2)针对新闻集合中的每一篇新闻,从新闻的标题与正文中提取关键词作为新闻特征项,以特征项构建新闻向量模型;
(3)从新闻集合中提取第一则新闻,并作为一个事件存入事件库,该新闻的新闻特征项即为对应事件的事件特征项;
(4)按新闻时序依次从新闻集合中取出新闻,并且依次计算所提出的新闻与每个事件的相似度,取最大的相似度值,并与预先设定的相似度阈值进行比较,当最大相似度值大于相似度阈值,将该新闻归入到最大相似度值对应的事件中,实行步骤5,当最大相似度值小于相似度阈值,将该新闻作为一个新的事件存入事件库,并直接实行步骤6;
(5)当一则新闻归入某个事件时,如果该新闻拥有事件的一个或多个事件特征项,则将对应的事件特征项权重加1;如果事件缺少该新闻的一个或多个新闻特征项,则将对应的新闻特征项添加到该事件的事件特征项中,并设置初始权重为1,且每当有新闻归入到一个事件时,根据衰减比例对每个事件特征项的权重进行衰减。
(6)判断新闻集合中的新闻是否全部取出,若没有全部取出,重复步骤4~5,若全部取出,结束事件检测和跟踪。
优选地,所述的步骤2采用向量N(n1,w1,n2,w2,…nk,wk)表示新闻文本,其中ni(1≤i≤k)表示新闻特征项,wi(1≤i≤k)表示新闻特征项的权重,每个新闻特征项的初始权重均为1。
优选地,所述的步骤3采用向量E(e1,w1,e2,w2,…en,wn)表示一个事件,其中ei(1≤i≤k)表示事件特征项,wi(1≤i≤n)表示事件特征项的权重,每个事件特征项的初始权重均为1。
优选地,所述的步骤4中,相似度阈值为0.2。
优选地,所述的步骤4中,新闻N与事件E的相似度计算公式为,
其中,N表示进来的一条新闻,E表示生成的一个事件,t0表示当前时间,设定集合P1={k1,k2,…,km},ki(1≤i≤m)表示的是在新闻N与事件E中同时出现的特征项,设定集合P2={w1,w2,…,wm},集合P2包含集合P1中的每个特征项对应的权重,设定集合P3={t1,t2,…,tm},集合P3包含最近更新集合P1中的每个特征项的时间,设定集合P4={h1,h2,…,hm},集合P4包含一个事件的全部特征项,设定集合P5={s1,s2,…,sm},集合P5包含集合P4中的每个特征项的权重,设定集合P6={q1,q2,…,qm},集合P6包含最近更新集合P4中的每个特征项的时间。
优选地,所述的步骤5中,衰减比例为0.2。
本发明与现有技术相比,存在的以下有益效果:
本发明通过对事件的特征项权重依据时间的分布特征研究,发现与事件主旨关系比较密切的特征项,权重随时间增长的比较快,因此,可以使用特征项的增长趋势来反映特征项的热度,根据特征项的这个特征,设计新的相似度算法,进而,比较有效地检测出一些热点事件并追踪其发展态势。
附图说明
附图1是本发明方法的总体实现框图。
附图2是爬虫采集新闻原理图。
具体实施方式
为进一步了解本发明的内容,结合实施例对本发明作详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例一:
结合附图1所示,本发明提出的一种基于特征项权重增长趋势的事件检测与跟踪方法包括以下步骤:
步骤1:从新闻门户网站爬取新闻形成新闻集合,可以网易、腾讯、新浪、搜狐、凤凰、中华网等六大新闻门户网站采集某段时间内所发布的所有网络新闻共89541条。人工地从实验数据中找出15个热点事件,并统计与这些事件相关的新闻数目,形成一个标准事件集。爬虫采集新闻的原理如附图2所示,包括页面下载模块、页面解析模块和任务管理模块。页面下载模块主要是通过模拟HTTP请求来获取页面内容,多个程序设计语言提供了内置的类库支持HTTP请求的模拟,例如Java内置的HttpURLConnection可以完成简单的请求,同时很多第三方类库提供了更加完善的机制,例如Apache HttpClient还提供了自定义user-agent、cookie以及设置代理等功能。页面解析模块主要负责解析页面下载模块下载的页面,对于新闻数据的采集属于对HTML页面的解析,对于HTML的解析最简单的是将HTML看成文本,利用正则表达式来进行匹配解析,但是其实HTML是一种有层次结构的结构化表现形式,对于HTML页面的解析还可以通过其他一些专用的工具进行语法层面的解析,如Java语言的第三方类库HTMLParser支持针对HTML标签及层次结果进行解析,Jsoup则支持利用类似Jquery的方式对HTML的DOM进行解析提取。任务管理模块主要是对爬虫系统待爬取的URL地址进行管理,对于任务管理模块主要需要考虑以下几个问题:URL策略问题,需要考虑任务队列的策略,是否需要采取FIFO(First Input First Output)这种先进先出的队列的形式保证有序,或是需要考虑URL权重等因素;URL去重问题,对于任务的管理需要考虑任务的重复性问题,需要考虑如何去除重复的URL,对于小规模的URL管理可以采用类似Set的数据结构实现去重;分布式URL管理,对于大规模爬虫系统,当进行分布式爬取时,一般可以采用基于Redis或者MongoDB这类的非关系型数据库实现。在本实施例中,步骤1中,评价指标包括生成率、错检率、漏检率与错误识别代价,生成率、错检率、漏检率与错误识别代价的计算公式分别如下:
Pgeneration=M/N;
Pfalse=B1/B;
Pmise=(A-A1)/A;
C=Cmiss·Pmiss+Cfalse·Pfalse(1-P);
其中,E表示某个热点事件,A表示与事件E相关的新闻数据,A1表示在A中有A1条新闻被归入到事件E中,B表示与事件E不相关的新闻数目,B1表示在B中有B1条新闻被归入到事件E中,N表示标准事件集中事件的数目,此处N为15,M表示从某个实验生成的事件库中,查找到的出现在标准事件集中的事件的数目。
步骤2:针对新闻集合中的每一篇新闻,从新闻的标题与正文中提取关键词作为新闻特征项,以特征项构建新闻向量模型。使用向量N(n1,w1,n2,w2,…nk,wk)表示新闻文本,其中ni(1≤i≤k)表示新闻特征项,wi(1≤i≤k)表示新闻特征项的权重,每个新闻特征项的初始权重均为1。
步骤3:从新闻集合中提取第一则新闻,并作为一个事件存入事件库,设定该事件的阈值,该新闻的新闻特征项即为对应事件的事件特征项。采用向量E(e1,w1,e2,w2,…en,wn)表示一个事件,其中ei(1≤i≤k)表示事件特征项,wi(1≤i≤n)表示事件特征项的权重,每个事件特征项的初始权重均为1。
步骤4:按新闻时序依次从新闻集合中取出新闻,并且依次计算所提出的新闻与每个事件的相似度,取最大的相似度值,并与预先设定好的相似度阈值进行比较,当最大相似度值大于相似度阈值,将该新闻归入到最大相似度值对应的事件中,实行步骤5,当最大相似度值小于相似度阈值,将该新闻作为一个新的事件存入事件库,设定新的事件的阈值,并跳过步骤5直接实行步骤6。
在本实施例中,新闻N与事件E的相似度计算公式为,
其中,N表示进来的一条新闻,E表示生成的一个事件,t0表示当前时间,设定集合P1={k1,k2,…,km},ki(1≤i≤m)表示的是在新闻N与事件E中同时出现的特征项,设定集合P2={w1,w2,…,wm},集合P2包含集合P1中的每个特征项对应的权重,设定集合P3={t1,t2,…,tm},集合P3包含最近更新集合P1中的每个特征项的时间,设定集合P4={h1,h2,…,hm},集合P4包含一个事件的全部特征项,设定集合P5={s1,s2,…,sm},集合P5包含集合P4中的每个特征项的权重,设定集合P6={q1,q2,…,qm},集合P6包含最近更新集合P4中的每个特征项的时间。事件的阈值设定为0.2。
步骤5:当一则新闻归入某个事件时,如果该新闻拥有事件的一个或多个事件特征项,则将对应的事件特征项权重加1;如果事件缺少该新闻的一个或多个新闻特征项,则将对用的新闻特征项添加到该事件的事件特征项中,并设置初始权重为1,且每当有新闻归入到一个事件时,根据衰减比例0.2对每个时间特征项的权重进行衰减。
步骤6:判断新闻集合中的新闻是否全部取出,若没有全部取出,重复步骤4~5,若全部取出,结束事件检测和跟踪。
效果实施例:
为了进一步验证本发明方法的可行性和有效性,进行实验。
实验的事件相似度阈值分别设置为0.1、0.15、0.2、0.25、0.3、0.35、0.4。根据实验结果分别计算出每个实验的生成率、错检率、漏检率与错误识别代价,并且生成以下表格。
阈值 |
错检率 |
漏检率 |
生成率 |
错误识别代价 |
0.10 |
0.00007 |
0.84 |
0.33 |
0.016 |
0.15 |
0.00007 |
0.87 |
0.33 |
0.017 |
0.20 |
0.00003 |
0.80 |
0.4 |
0.012 |
0.25 |
0.00002 |
0.82 |
0.47 |
0.016 |
0.30 |
0.000002 |
0.83 |
0.4 |
0.016 |
0.35 |
0.000004 |
0.90 |
0.33 |
0.018 |
0.40 |
0 |
0.91 |
0.4 |
0.018 |
通过对实验结果的分析,发现随着相似度阈值的变化,算法的错误识别代价上下波动。随着相似度阈值不断的增大,错检率不断下降;漏检率呈现先降后增的趋势,相似度阈值设置为0.2时,漏检率最低;错误识别代价呈现先降后增的趋势,相似度阈值设置为0.2时,得到最小的错误识别代价0.012。错误识别代价是衡量算法性能的重要指标,0.012在误差可接受范围内,故在实施例1中,本发明选取的相似度阈值为0.2。
以上结合实施例对本发明进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍属于本发明的专利涵盖范围之内。