垃圾微博过滤系统的研究与开发

  • 格式:doc
  • 大小:904.50 KB
  • 文档页数:7

垃圾微博过滤系统的研究与开发刘超1宁慧1,岳国栋1(1.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨150001)摘要:互联网时代的一种重要的信息传播媒体—微博,给人们提供了一种重要的信息分享手段。

但是,由于微博原理上的缺陷,垃圾微博日益泛滥,已经引起了人们的高度重视。

垃圾微博是指微博用户不希望关注但是用户仍然会收到的微博信息。

微博过滤技术己经成为当前研究的热点之一。

本论文利用新浪开放平台API技术、java开发技术、以及txt文本存储技术等,实现了一种基于新浪微博开放平台的垃圾微博过滤软件系统。

该系统主要是将中文文本分类思想应用到垃圾微博过滤领域,其中主要使用了朴素贝叶斯方法和中文分词方法。

最后,通过实验证明了系统的对垃圾微博过滤的有效性。

关键字:垃圾微博过滤;新浪微博API;贝叶斯算法;中文分词中图分类号:Research and Development of Rubbish MicroBlog Filter SystemL IU Chao1 ,NING Hui1,YUE Guodong1(1 Department of computer Science and Technology of Harbin Engineering University, Harbin 150001,China)Abstract:As an important information media at the age of internet time , MicroBlog provides people with an important means of information sharing. However, due to defects on the principle of MicroBlog, rubbish MicroBlog messages have aroused great attention. rubbish MicroBlog messages are that MicroBlog users do not want to focus on but users will still receive. The MircroBolg filter technology has become a current research focus. In this thesis, author use the Sina open platform API, java development techniques and txt text storage technology design a system of rubbish filter software based on the open platform of Sina Weibo . The system is mainly in Chinese Text Categorization thought applied to the field of rubbish MicroBlog message filter, which uses the Naive Bayes algorithm and Chinese word segmentation algorithm. Finally, author uses experiments to prove the validity of the system to filter spam MircoBlog.Key words:rubbish MircoBlog message filter;Sina Weibo Api;Bayes algorithm;Chinese word segmentation基金项目:国家自然科学基金资助项目(60975071)作者简介:刘超,哈尔滨工程大学学生,宁慧(1964-),女,副教授,硕士生导师1 引言微博,即微博客(MicroBlog)的简称,它是一个基于用户关系的信息分享、传播以及获取的平台。

微博用户可以通过WEB、W AP以及各种客户端组建个人社区,随时更新微博信息,并实现即时分享。

微博给人们的信息传播与分享带来了方便,广泛被个人、政府部门、大学等用于传播信息。

然而,作为其发展的副产品—垃圾微博,却给信息海洋中的用户、网络管理员和网络服务提供者带来无尽的烦恼。

根据微博运营商公布的数据,全世界的微博用户每天都要面对扑面而来的海量微博信息,然而其中却包含了相当一部分他们不希望关注的微博信息。

当前,信息开放时代的到来,垃圾微博正越来越严重困扰微博用户,这也为信息的有效传播带来了严重阻碍。

垃圾微博的主要内容不仅包含大量的无价值信息,还包含一些不法分子利用微博传播的一些反动、虚假、迷信等不良信息。

这样的垃圾微博无休止出现在个人社区中,一方面浪费了用户宝贵的网络资源,另一方面还带来严重的社会问题。

用户不希望关注的信息冲击着用户,使他们获得有效信息受到阻碍。

因此,如何帮助用户有效地反垃圾微博,营造一个健康、和谐、有序的信息传播环境,成为一个新的研究热点。

微博过滤是反垃圾微博的一种重要方法,而其中基于微博内容的过滤是一种颇为有效地过滤手段。

基于微博信息是一种半结构化的数据,并且,微博信息中主要包含的是文本信息。

因此,本文将文本分类技术引入垃圾微博处理领域,采用以朴素贝叶斯文本分类算法为基础的垃圾微博过滤方法,提高了效率,改善了垃圾微博的过滤精度。

2 相关技术为了顺利的完成垃圾微博过滤系统,本文主要使用的新浪微博API、贝叶斯文本分类技术、中文分词等技术。

2.1 新浪微博API微博开放平台是一个基于新浪微博客系统的开放的信息订阅、分享与交流平台。

微博开放平台为您提供了海量的微博信息、粉丝关系、以及随时随地发生的信息裂变式传播渠道。

平台用户可以登录平台并创建应用,使用微博平台提供的接口,创建有意义的应用。

新浪微博API[1]是一套由几种当前使用广泛的程序语言将新浪微博相关信息嵌入到应用程序接口,它能够帮助您在微博开放平台中构建功能丰富、交互性强的微博应用程序。

新浪微博API 为开发者提供丰富的函数、控件、事件和封装的类,提供很多的信息服务,如微博、评论、关系、收藏等接口供用户使用。

它尽量将复杂的底层逻辑进行隐藏和封装,以一种便于您理解的方式提供。

使用者只需要按照新浪微博开放平台的要求进行注册、获得授权然后使用。

开发者只需要通过其API,利用平台提供的各种语言的SDK版本开发自己的应用。

本文需要使用新浪微博开放平台调用API接口下载用户以往微博信息和需要过滤的微博信息。

2.2 贝叶斯文本分类技术从内容上看,垃圾微博过滤可以看成一个二分值分类问题,把微博信息分为垃圾微博和推荐微博。

因此,各种文本分类方法都可以用于垃圾微博的过滤,其中贝叶斯分类方法表现了良好的性能,得到了最广泛的运用。

贝叶斯分类算法[2]是一种广泛运用的分类算法,应用于文本分类时,通过计算文本属于每个类别的概率,将文本归为概率最大的一类,朴素贝叶斯分类算法建立在贝叶斯假设的基础上,假定所有的特征之间相互独立。

实际上,在生活中这种独立性很难存在,但从目前的实验结果来看。

基于这个假设的朴素贝叶斯分类算法效果还不错,而且计算也比较简单,因此在很多场合得到应用。

本文需要使用朴素贝叶斯算法进行微博过滤之前的用户行为机器训练。

2.3基于字符串匹配的中文分词分词就是将连续的字符串或字符序列按照一定的规范分割成单个词汇序列的过程。

因为中文只有在句与句之间才通过标点符号或段落来简单划界,但是词与词之间则没有自然分界符。

例如,英文的句子“I ama student ”,其翻译为中文则为“我是一个学生”。

在英文文本处理中,计算机可以通过空格和标点确定“student ”为一个词。

但是同样在中文中若“我是一个学生”,让计算机来处理该文本,要理解“学”和“生”也是一个词就不会太容易。

中文分词就是要把中文的这种序列切分成有意义的词,以便于机器理解。

本文采用中文分词中较为常见的机械分词[3]中一种-基于字符串正向最大匹配的中文分词算法[4](简称FMM)。

该分词算法对于待切分的一段字符串,算法首先以该段语句的首字为起点进行搜索,直到找到以该首字为起点,在词典中出现的最长的词,并以此为标记切出第一个词,并将剩余字符串作为另一待切分文本进行相同处理。

例如,对于语句“你是个好人”,首先以“你”为起点进行搜索,在词典中找到以“你”开头的词,将语句中的词与词典中的词进行匹配,直到找到“你”是最长的词,将其切分出来。

接着对剩余字符串“是个好人”做同样处理,得到最终的结果。

算法实现的逻辑图2.1:初始化待切分字串s1待输出字串s2最大切分词长MaxLenS1是否为空从s1左边开始,取出候选字符串中w,w 的长度不能大于MaxLen查字典,看w 是否在词典中将W 最右边的一个字去掉w 是否为字串S2=s2+w+”/”S1=s1-w输出结果NY NNYY图2.1 中文分词逻辑图3 系统设计与实现本系统对用户的要求不高,希望用户能在任何地方用任意一台能够联网的电脑就能登录系统。

所以提供给用户的系统形式为客户端,是基于B/S 架构的软件。

3.1 拓扑结构整个系统将按照功能不同部署在Web 服务器、微博应用服务器和本地机器上。

微博应用服务器和Web 服务器负责相应数据的下载和处理用户的请求,包括训练微博下载、数据处理、微博过滤等。

所有的用户微博信息数据以及应用程序都放在服务器端;客户机只是提出请求,获取数据的响应都在服务器端完成,即所谓的“瘦客户机模式”。

同时客户机需要对用户行为进行训练获取用户习惯。

用户仅仅需要登陆软件来访问系统。

系统的拓扑结构如图3.1。

Web 服务器客户机客户机客户机新浪微博服务器图3.1 系统拓扑结构图3.2 自动下载微博信息该系统使用新浪微博开放平台提供的开放接口进行微博数据的下载。

新浪微博开放平台为开发者提供了第三方应用开发的各种流行语言的SDK(SoftwareDevelopment Kit, 即软件开发工具包)。

开发者通过平台授权获得权限调用微博接口下载用户以往发布和接收的微博信息。

下载微博数据,开发者首先需要获得注册平台用户,然后创建一个平台应用并申请授权,最后根据获得权限下载微博信息。

1、创建应用申请授权下载微博数据的第一步就是要创建微博应用申请授权[5]。

在新浪微博开放平台注册开发者用户之后创建应用获取该应用的App Key和Secret Key可以通过这两个Key数据开始进行相关的技术开发工作。

App Key 是应用的唯一标识,开放平台通过App Key来鉴别应用的身份。