一种基于关键字加权算法的舆情热词发现方法与流程

文档序号:11234097阅读:357来源:国知局

本发明涉及一种热词发现方法,具体涉及一种基于关键字加权算法的热词发现方法。

技术背景

随着互联网的普及和飞速发展,每日海量的新闻数据在网络上涌现。另一方面,微博、博客、论坛等自媒体的出现使网络上信息的发布者从专业的新闻媒体记者转化为各行各业的普通网民,社会大众也由过去被动的信息接收者转为现在信息的传播者。网络用语由此变得越来越丰富多彩,譬如“给力”、“屌丝”、“躺枪”等新词层出不穷。在此情况下,如何在纷繁复杂的网络信息中挖掘热点词汇、如何获取热门的新词条和新概念进而有效的寻找热点话题,正成为舆情研究领域的热点和难点。

热词是伴随网络普及而出现的一种词汇现象,它通常反映了某一时间段内社会中发生的重大事件或是被社会大众所关注的热点问题,是组成互联网热点信息的一部分。热词具有创造性和突发性,它覆盖了当下网民或媒体关注的热点人物、热点事件。比如,“青岛大虾”就是出自于国庆期间,被爆出“38元一只”的天价虾事件,之后此词就暗讽某些商家的宰客行为。因此,快速识别热词就可以快速准确的了解社会以及民情,进而可以对舆论导向进行正确的引导和宣传。另外,对各大搜索领域而言,有效地识别热词可以提高网站的点击量,甚至增加利润。简单而言,热词发现是一种文本挖掘技术,就是从海量的网络信息中经过预处理、提取特征、以及聚类分析挖掘出在给定时间段内出现的热门词条。

热词发现主要包含语料切分、噪音词过滤、特征提取以及热词识别四个过程。

热词发现过程中最基本最关键的就是语料切分,简而言之,就是分词。众所周知,中文和英文的一个显著不同在于中文以汉字字符为最小单位,词条与词条之间不存在明显的词边界,任何相邻的字符都可能构成热词,这给中文处理造成了很大困难,因此,词条切分、确定词边界至关重要,极大的影响了后续垃圾词过滤,热词识别处理的准确度。中文分词大致分为基于词典匹配的方法和基于统计的方法。基于词典匹配的方法主要是将文本与给定的分词词典进行比较和匹配,然后通过歧义消除来进行处理,这种方法简单,效率高,但对于并未登录于词典上的词难以识别。基于统计的分词方法主要基于字和词的统计信息,将相邻字的共现信息应用于分词,这种方法主要包括互信息、隐马尔可夫模型(hmm)、随机条件场(crf)和最大熵模型(me)。与基于词典的分词相比,这种方式处理速度慢,但却对未登录词的识别有较好的效果。在实际处理中,大多会平衡分词速度和精度这两个因素,选择词典和统计相结合的方式进行分词处理。

热词识别中,噪音词的过滤又称为停用词过滤。对网络文本进行预处理之后,我们得到了经过词性标注的词组。这些词组中有很多并无实际意义的词,此时过滤处理主要针对以下两种词组:一种为频繁出现的语气助词、介词、连词等虚词,例如“的”、“是”、“了”、“吗”等;另一种为修饰性地形容词、表征程度地副词和频率出现较高的数词和量词的搭配。经过过滤可以显著提高后续文本处理和热词识别的速度。

文本表示是指用一种准确简单的方式表示文档内容,从而可以为计算机识别。目前的文本表示方法有布尔模型、向量空间模型、概率检索模型、n元语法模型等。其中,最为经典的是向量空间模型(vsm,vectorspacemodel),即将文本表示为特征项和特征项权值组成的空间向量的形式,特征项为该文档表示的一个维度,特征项的权值反映了特征项对该文档的重要程度。在空间向量模型中,每篇文档表示为如下的形式:

v(d)={w1(d1),w2(d2),...,wn(dn)}

其中,d表示文档,n表示在文本特征抽取时所抽取文本特征项的总数,wj(dj)表示第j个文本特征项在文档d中的权值。

热词发现中的热词识别依赖于vsm模型中特征权值的计算。权值的计算有三种方法:第一种为二值法,特征项出现在文档中标记为1,否则标记为0;第二种方法权值表示为特征项在文档中出现的频率。这两种方法并没有考虑特征项在语料库的重要程度,因此,特征权值采用经典的tf-idf方法更为合理。tf-idf是一种用于信息检索的常用的加权统计技术,他可以反映特征项对于一个语料库中的一份文件的重要程度。某一特征项的权值随着其在文件中出现的次数成正比增加,同时会随着其在语料库中出现的频率成反比下降。他的具体定义形式如下:

其中,tflk为特征项k出现在文档l中的频数,dfk为文档集中出现特征项k的文档数,n为文档集中的文档总数。tf-idf方法是目前研究和应用最为广泛的一种方法。

综上所述,以上介绍的现有的热词发现方法存在以下问题:

(1)忽略了互联网舆情主题鲜明的特性。当前网络新闻为了提高网民的点击率与社会大众的关注度,发布者一般都会在舆情页面标题中明确地表达事件主题和观点,因此,标题中关键词信息价值很高。而现有的热词发现在文本表示时,对文档向量化时,并未考虑标题的信息价值,将其与舆情正文简单拼接进行文本处理,这样在特征提取时,不仅处理数据量大、处理效率低,而且易造成特征项提取的不准确。

(2)权值计算所使用idf表维护困难。一方面,对于那些新词以及表中未登录的词难以计算idf值;另一方面,现有的idf表需手工更新且更新周期长,而舆情新闻以每日数以万计的速度发布,idf表无法实时更新会造成数据偏差越来越大。

(3)忽略词组中词性的有效信息。在tf-idf的特征权值计算中,每个词都有不同的词性,而且命名实体的信息量大于非命名实体,未登录的特征项比可识别的更有可能是热词。但现有的热词发现算法并未考虑词性所包含的有效信息,而是将所有候选词组赋予了相同的权重。

针对以上问题,本发明引入了加权式tf-idf计算方法对传统的tf-idf计算公式进行改进,针对不同词性赋予不同权值,并且实现对idf表增量式更新,提高了热词识别的准确度。同时,考虑到舆情信息的海量性和主题鲜明性,通过对舆情标题为主,舆情正文为辅进行处理来提高文本处理的效率。



技术实现要素:

本发明主要解决自媒体时代下现有热词发现方法的问题与不足,提供了一种基于关键字加权式的tf-idf算法的热词发现方法,以解决在海量舆情信息下热词发现的效率和准确度的问题,从而实现热点词汇的高效、准确识别。

为了实现上述目的,本发明提供的技术方案如下:

一种基于关键字加权算法的舆情热词发现方法,包括:

一个舆情语料库,存储从互联网上抓取的经过预处理海量舆情信息;

一个过滤词库,分为词性过滤表和词义过滤表两部分,用以对分词结果中助词、介词、连词等虚词、表示修饰的形容词和表征程度的副词、数词和量词的搭配等词性以及并无实际含义的词进行过滤;

一个idf表,用以存储词汇或短语的反文档频率,并且实现动态更新;

一个词性权重表,用以存储不同词性的权重。权重等级取值为1-5,依次递增。

舆情信息预处理模块,在对相关舆情网页进行采集后,过滤网页中图片、广告、链接等噪音数据,提取出舆情新闻的标题和内容,将其存入舆情语料库,为后续文本处理提供基础。

文本分词模块,对语料库中的文本采用基于词典和统计相结合的方法进行分词,并且对获得的每个词或短语进行词性标注,实现对新词和未登录词的识别。

噪音过滤模块,参照过滤词库对获得的分词集合进行词性、词义比对,对出现在过滤词库中的词和短语,不再作为候选热点词汇参与后续计算。

权值计算模块,对经过噪音过滤模块筛选得到的候选热点词或短语参照词性权重表获取权重,同时参照idf表获取其对应的反文档频率。根据这两个值,通过加权式tf-idf计算方法生成该词的热度值。具体公式如下:

其中,ftitle表示特征项k出现在新闻标题中的频率,fcontent表示特征项k出现在新闻正文中的频率,wnature表示特征项k所属词性的权值,suml表示该新闻分词集合的分词总数,dfk表示整个新闻集中出现特征项k的新闻的数目,n表示整个新闻集中所有新闻的数目。

热词提取模块,维护一个候选热点列表,该表以键值对的形式存储了词与其对应的热度值。依次将经过热度计算处理的候选词插入该列表,如果该词已存在,则对该词的热度值进行更新。所有候选热点词汇处理完毕后,对列表中热词以降序排序,即可得到一段时间内的热词集合。

idf表更新模块,每次处理完毕后,对idf表根据增量式的idf计算公式进行更新,以克服海量数据下反文档频率更新周期长所引起的热词识别不准确的问题。增量式的idf计算公式如下:

其中,dfold表示在idf表更新前总新闻集中nold条新闻包含特征项k的新闻数,dfnew表示在一次处理后,新增的nnew条新闻中包含特征项k的新闻数。

本发明的效益是:本发明利用中文分词工具对海量的舆情信息进行初步分词,并给出词性标注,同时结合一个idf表、一个过滤词表和一个词性权值表,依据加权式tf-idf算法进行候选词语热度值计算,该计算不仅仅只依据词频,而是充分考虑了词语的词性、位置等所包含的有效信息,为热词识别提供了可靠性依据。另外,本发明充分考虑了自媒体时代下舆情标题主题鲜明的特点,主要对舆情标题进行语料处理,解决了海量舆情信息下的热词识别的效率问题。最后对idf表实现动态的增量式更新,保证了词语反文档频率的实时性,提高了热词识别的准确度。

附图说明

1:系统流程

具体实施方式

本发明公开一种面向海量舆情信息的基于关键字加权式tf-idf的热词发现方法,包括:

一个舆情语料库,存储从互联网上抓取的经预处理后的海量舆情信息;

一个过滤词库,分为词性过滤表和词义过滤表两部分,用以对分词结果中助词、介词、连词等虚词、表示修饰的形容词和表征程度的副词、数词和量词的搭配等词性以及并无实际含义的词进行过滤;

一个idf表,用以存储词汇或短语的反文档频率,并且实现动态更新;

一个词性权重表,用以存储不同词性的权重。权重等级取值为1-5,依次递增。

舆情信息预处理模块,在对相关舆情网页进行采集后,过滤网页中图片、广告、链接等噪音数据,提取出舆情新闻的标题和内容,将其存入舆情语料库,为后续文本处理提供基础。

文本分词模块,对语料库中的文本采用基于词典和统计相结合的方法进行分词,并且对获得的每个词或短语进行词性标注,实现对新词和未登录词的识别。

噪音过滤模块,参照过滤词库对获得的分词集合进行词性、词义比对,对出现在过滤词库中的词和短语,不再作为候选热点词汇参与后续计算。

权值计算模块,对经过噪音过滤模块筛选得到的候选热点词或短语参照词性权重表获取权重,同时参照idf表获取其对应的反文档频率。根据这两个值,通过加权式tf-idf计算方法生成该词的热度值。

热词提取模块,维护一个候选热点列表,该表以键值对的形式存储了词与其对应的热度值。依次将经过热度计算处理的候选词插入该列表,如果该词已存在,则对该词的热度值进行更新。所有候选热点词汇处理完毕后,对列表中热词以降序排序,即可得到一段时间内的热词集合。

idf表更新模块,每次处理完毕后,对idf表根据增量式的idf计算公式进行更新,以克服海量数据下反文档频率更新周期长所引起的热词识别不准确的问题。

下面结合一个较佳的实例对本发明进行详细描述。

1所示,系统包含一个舆情语料库、一个过滤词库、一个idf表和一个词性权重表。从网络抓取一个时间段内的网页新闻,使其逐条进入舆情预处理模块进行信息清洗,得到比较干净的新闻数据,将其以规范格式存入舆情语料库,然后使用中文分词工具将其进行分词以及词性标注。在噪音处理模块中,参考过滤词库,将分词集合中无实际含义的词组或短语进行筛除,获得结果输入到权值计算模块,依次依据每一个词依据词性、位置并应用加权式tf-idf算法进行热度值的计算,最后在热词提取模块获得一个依据热度值降序排列的热词表。最终,将idf表中的每个词输入到idf更新模块进行反文档频率增量式的更新。具体流程如下:

步骤1:建立一个过滤词库。可以通过参照如结巴分词、ansj_seg等开源的分词软件包中现有的停用词表建立。本发明在本实例中主要处理舆情新闻数据,考虑到新闻报道的五要素,即5个w(when、where、who、what、why),本发明建立一个词性过滤表,用以对分词结果中助词、介词、连词等虚词、表示修饰的形容词和表征程度的副词、数词和量词的搭配等词性进行过滤;同时,考虑到新闻数据中类似“搜狐”、“记者”、“人民日报”等与本身报道内容无关的高频词汇的影响,本发明结合ansj_seg、中科院分词的停用词表以及从实际新闻数据统计的无关高频词建立一个词义过滤表。

步骤2:建立一个idf表。可以通过从公开数据平台或者网络爬虫获取一段时间内的历史新闻数据,经过处理后获得词语的反文档频率。本发明采用网络爬虫的方式获取历史新闻集,经过分词处理、词频统计后计算出每个词语的idf值,以此建立idf表,idf表以{词条k,idfk,dfk,n}的格式存储,并通过后期的idf表更新模块实现idf表的自适应更新。其中,dfk表示整个新闻集中出现词条k的新闻的数目,n表示整个新闻集中所有新闻的数目,则idfk表示词条k的反文档频率,可由以下公式计算可得:

步骤3:建立一个词性权重表。可以参照现有的分词词库表,如ictpos3.0词性标注集。本发明以ansj_seg分词工具的词性集为基础,依据新闻报道的特点,对不同词性赋予1-5之间的不同权值,以名词为基准词性,定义权重为3,对地名、人名、未登陆的新词等所含信息量较大的词定义比基准词性较高的权重。

步骤4:建立一个舆情语料库,用于存储经过清洗的网络爬虫得到的新闻数据。

步骤5:建立一张热词表,用于以{词名,热度值}的方式存储热词识别处理得到的热词集合。

步骤6:舆情数据抓取。本发明以天为时间单位,采用网络爬虫的方式周期性获取这个时间段内舆情新闻数据,在舆情信息预处理模块对抓取的网页进行数据清洗,过滤网页中图片、广告、链接等噪音数据,提取出舆情新闻的标题和内容,将其存入舆情语料库,为后续文本处理提供基础。

步骤7:将舆情语料库中的新闻逐条读取并进行分词。可以使用现有的开源分词工具,如结巴分词、盘古分词工具或者自定义分词算法。本发明主要采用开源的ansj_seg分词工具进行基于词典和统计相结合的方法对新闻进行分词得到表征新闻的分词集合,并进行词性标注,对于未登录词,以nw作为词性标记。同时,在此步统计该新闻l分词集合的分词总数suml。

步骤8:对表征新闻的分词结果集进行过滤。通过噪音过滤模块,参照词性过滤表和词意过滤表对获得的分词集合中的词逐个进行词性、词义比对,对出现在过滤词库中的词性,如形容词:a;时间词:t;副词:d等和无实际意义的高频词和短语,如“记者”、“新华网”、“图片”等,对其权值设置为零,不再作为构成文档向量集的特征项参与后续处理。此步得到了表示新闻的特征向量集。

步骤9:对特征向量集中的每一个特征项计算权重值。依次取出特征向量集中的每一个特征项,作如下处理:

a.计算特征项k的反文档频率idfk。从idf表中查找该特征项,若存在,则得到对应的反文档频率idfk;如果不存在,则取得idf表任意一条词条的文档总数n(idf表中所有词条具有相同的文档总数),并以{词条k,idfk,0,n}的格式插入idf表。该特征项的反文档频率可由以下公式计算可得:

idfk=log(100+n)

b.获取该特征项k的词性,通过对照词性权值表,获得该词性的权值wnature。人名、地名、机构团体名、新词等含有较多信息性的词性权值较高。

c.计算该特征项k的权重值,即tf-idf值。依据该特征项的位置信息统计词频,如果该特征项出现在标题中,则将其权重设为5倍,并且融合步骤b中获取的词性权值wnature、步骤a中获取的反文档频率值idfk以及所属新闻l分词集合的分词总数suml,使用如下公式计算该特征项k的权重:

其中,ftitle表示特征项k出现在新闻标题中的频率,fcontent表示特征项k出现在新闻正文中的频率。

步骤10:由步骤9得到带有权重的表示新闻l的向量,经统计一般10个词可涵盖一条新闻主要内容,因此对该向量以权重降序进行排列,取权重前10的特征项加入热词表,若该热词表存在该特征项,则以下述公式对其进行热度值更新:

hk=hk+wlk

其中,hk表示特征项k在热词表中已有的热度值。

步骤11:对舆情语料库中的所有新闻进行步骤7到步骤10的处理,最后将热词表以热度值降序排列,即可得到一个时间段内(本实例为一天)的舆情热词集合。

步骤12:对idf表进行增量式更新,目的是保证每次获取词条的反文档频率都是最新值。

a.统计本次处理中舆情新闻总条数nnew。

b.对idf表中出现的所有词条k,逐个计算本次舆情新闻集中包含该词条的新闻数dfnew。

c.以{词条k,idfk,dfk,n}的格式更新idf表。其中:

dfk=dfold+dfnew

n=nold+nnew

dfold、nold为词条k更新前在表中的对应值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1