微博的热点话题提取与跟踪(上)

微博的热点话题提取与跟踪(上)[20200111200505]
在21世纪的今天,是信息化的时代,随着通讯技术的快速发展,涌现出大量的微博信息,比如微博,用户量数以亿计,每天产生的新闻话题信息更是百亿条。这些微博中富含大量的热点信息,这些信息即可以给人们的生活带来便利的同时也会给人们带来了许多困扰。因此,从大量的微博信息中提取出有用的信息,可以为相关部门和政府决策提供理论依据。 本文从提取大量微博数据,构成一个大量微博数据的文本集合,通过对各微博文本进行中文分词,将微博文本用关键词向量表达出来,然后进行微博词向量的聚类算法研究,通过大类别发现话题信息及热点度分析,进而对话题的发展趋势进行跟踪等研究。论文着重研究了从相关网站提取微博文本信息的方法和对中文文本信息分词算法进行研究。系统基于ASP.NET开发平台,C#语言和Sql Server2005数据库。 关键词 微博,话题提取,分词算法,聚类算法,话题跟踪
对于微博的信息进行提取,能够有效帮助用户筛选出自己想要的信息,通过开发者的努力,帮助更多的用户过滤掉一些无用,甚至是垃圾信息。对信息进行分词,能够在一段文本信息中提取出比较重要的几个关键词,从而来组成话题,使人们一看标题就能够知道一段文字的表达主题,所以分词算法的选择显得尤为重要,以及分词字典的全面性更加重要。如果没有一个好的分词算法,就获取不到一段文本中的关键词,不仅如此,对于初步分词的结果,还要用去除停用词,提取出名词,动词等信息,因为这样才能够为后面话题的提取提高效率。话题的跟踪可以使人们持续关注到一件事情的发展动态,对于自己感兴趣的话题信息,能够长时间了解到其发展状况。传播主要经过了潜伏期、爆发期、蔓延期、反复期、缓解期和长尾期六个阶段[4]。
本次课题中,本人负责的部分主要是微博信息的抓取以及信息的分词部分。首先是微博信息的抓取部分,通过调用信息微博的api,获得想要的新闻话题信息,然后对这些话题信息进行布局,呈现在页面中。与此同时,这边需要做一个发送微博的功能,因为后面的话题跟踪测试需要用到这块,不然在段时间之内,一类话题信息是不会更新的,只能通过人工的方式模拟。此外,另一个部分是信息的分词,本系统中,采用的是正向和逆向分词,都属于机械分词的方法,通过正向和逆向的对比,比较其结果的差异性,最终还需要去除停用词,以及对词的词性进行分类,尽可能的筛选出名词,动词等。最终将得到的关键词写入数据库,方便后面 *查看完整论文请+Q: 351916072 
关键字:的聚类分词以及话题提取与跟踪。以下介绍歧义介绍。
目 录
1 引言 1
1.1 课题背景 1
1.2 课题意义 1
1.3 课题研究现状 1
1.4 课题研究内容 3
2 系统的综合需求 4
2.1 功能性能需求 4
2.2 环境要求 5
2.3 开发技术 5
3 可行性分析 6
3.1 技术可行性 6
3.2 经济可行性 6
3.3 法律可行性 6
4 需求分析 6
4.1 数据字典 6
4.2 数据流图 9
5 系统设计 10
5.1 系统功能模块图 10
5.2 数据表设计 11
5.3 实体图 12
6 详细设计 12
6.1 系统处理流程 12
6.2 微博信息抓取 14
6.3 FMM算法 15
6.4 BMM算法 16
6.5 界面设计 16
7 测试用例 20
7.1 登录模块 20
7.2 发送微博模块 20
7.3 分词模块 21
7.4 新闻筛选模块 22
总 结 23
致 谢 24
参 考 文 献 25
附 录 A 26
1 引言
1.1 课题背景
随着计算机技术的不断发展,这时候人们的生活也在发生日新月异的变化。计算机技术为人们的生活带来了很大的便利,体现在方方面面,比如人们可以上网,聊天,查看朋友圈等等。其实这些都是计算机技术的应用,根据移动互联网传播领域的“3-周期传播原理”[1-2],仿佛拉近了人与人之间的距离,同时也增加了人们的交流,更进一步说这些聊天的方式就是对数据的处理。说到这边,不得不提及到微博,微博的用户量已经超过了5亿,所以管理起来也越来越麻烦,对于开发者的要求也越来越高,特别是面对越来越多的新闻话题信息,虽然现在能够方便的查看各大热门话题信息[3],但是对于热门话题的提取与跟踪这块还不是太完善。所以借助本次毕业设计的机会,我们将尝试对微博的热点话题进行提取与跟踪,我们大概先把功能分为两大块,一个是提取,另一个是跟踪,我主要负责的是提取,分词部分和新闻筛选部分。本次毕业设计主要利用的开发平台是.NET FrameWork4.0,利用的开发语言是C#,使用的数据库是SQL2005。
1.2 课题意义
1.3 课题研究现状
对于微博信息的提取,只要拥有一个微博的账号,成为其开发平台的开发者,申请一个对应的应用,比如网站应用,就可以调用其api文档中的相关函数,这边的技术已经相对比较成熟,对于不同语言的开发包,都有一些与之对应的demo,所以在信息抓取这一块,实现起来难度不是太大。
分词算法的定义就是,通过一些编程算法,让计算机能够识别出哪些是词,哪些不是词,从而提高中文信息处理的效率。自从人们提出中文短信分词这个概念以来,很多的专家学者为此付出了太多太多的努力与艰辛。
中文分词研究的初级阶段,人们对中文分词的实际操作性有不同的看法:有人认为根据汉语词汇的声韵进行分词,有人认为使用MM算法才是最佳解决方案;还有人认为,中文短信分词是走不通的;当然,也有很多人认为中文分词是大势所趋,未来的发展一定要依靠中文分词,人们也做了很多努力。纵观前辈们的想法,第一种显然没有把握到中文分词的难度,第二种关键比较现实,他是更多的考虑到了中文分词的歧义性问题,可能会想既然连人工都不易做好的事情,计算机更加不能完成。
在具体实施的阶段进行了大量研究,同时也得出了很多分词算法[5],例如:FMM方法、RMM方法、逐词遍历法、基于词频的统计法等。后来,很多专家对歧义产生的原因、歧义的分类做了大量的研究,并且也提供了一些解决方案,但是效果依然不是太理想。还有对于一些出现的专有名词,地名等等,甚至出现了一些新词,都做了深入的讨论与研究。
目前的分词算法主要分为三类:机械性分词方法、理解性分词方法和统计性的分词方法。
图1.1 分词方法对比
1.4 课题研究内容
实验结果表明,能够处理未登录词较多的文本,切分速度约为30字/秒[6]。通常将歧义的多少称之为切分精度。下面对中文歧义字段的形成原因和处理技术等方面进行分析。
1.4.1 歧义产生的原因[7]
1) 中文文本书写格式
歧义的形成主要有以下原因:中文和英文的书写习惯不同,英文的每个单词之间是以空格为标记的,但是中文的字与字之间,词与词之间是没有明显的分割标记的,除了段落,句子之间用了换行或者标点符号。所以不同的划分理解方式也决定了句子含义的不同,这也是造成歧义的根本原因。
2) 汉语语速的构词能力
自由语素是形成歧义字段的主要原因。比如,“把手指”,可以理解为“把”和“手指”,也可以理解为“把手”和“指”。再比如“民”,在“为人民工作”这个歧义字段中,“为人”、“人民”、“民工,’.“工作”这三个词形成歧义。
3) 人名地名的问题
中国的人口众多,所以难免会产生同名的问题,名字可以是单姓,也可以是复姓,这也是歧义产生的原因。还有就是地名的大量存在,导致重复也相当严重。
下面一张图是对“中国人民万岁”的不同切分方式,也生动地展示了歧义的问题。
图1.2 词语切分方式
1.4.2 歧义的处理技术
1) 交集型歧义字段的统计分析
进行了大量交集型字段实际研究后,发现了一些交集型字段的特点[8]。以有约77,000词语的字典作为词库,对从网上随机找到的词语进行处理,从而统计出各种交集歧义的字段,总次数共7.8万余次。
2) 交集型歧义字段的切分方法
在以AB形式的组合型字段中,无法用歧义词语来获取到正确的信息,只能通过考察组合型歧义字段AB与前驱字串或后继字串之间的关系才有可能找出其正确切分的条件。
2 系统的综合需求
2.1 功能性能需求
2.1.1 登录模块
首先,用户得先谁申请属于自己的微博账号,然后通过该账号获得开发者权限,申请一个应用,通过该应用获取到开发者的app_key和app_secret。最终拿到accessToken,查看微博的api文档,使用api中的函数。有重要的三个参数为app_key,app_secret和callback_url。
2.1.2 微博发送模块
通过调用微博api中的Upload方法,发送微博信息,每次发送完成之后,进行页面的刷新操作,就能够展现在页面中发送微博的内容。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3200.html

好棒文