基于语义web的涉鄂网络舆情分析系统.doc_第1页
基于语义web的涉鄂网络舆情分析系统.doc_第2页
基于语义web的涉鄂网络舆情分析系统.doc_第3页
基于语义web的涉鄂网络舆情分析系统.doc_第4页
基于语义web的涉鄂网络舆情分析系统.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉科技大学本科毕业论文本科毕业论文题目:基于语义web的涉鄂网络舆情分析系统学 院:计算机科学与技术专 业: 日 期:二一一年六月 46摘 要随着网络的普及和网民数量的快速增长,网络舆情已经成为映射社会舆情的实时晴雨表,最直接、最快速地反映了经济、政治、文化的状况和发展态势。网络舆情分析平台成为了解社情民意的有力工具之一。然而,监管机构往往更关注某个领域、层次的舆情情况,从基于关键词的搜索结果中的海量信息中找到与特定领域的相关的局部信息是非常困难的,另一方面,由于互联网的开放性、共享性、扁平性使得网络舆情的出现和监管不再具有地域性,不再具有边界,使关键词在正确表达搜索期望时总显得力不从心,容易产生语义漂移现象。本文提出了一个基于语义web的网络舆情分析系统,系统主要包括网络舆情信息采集,舆情智能分析和处理,信息的分词索引,舆情简报和舆情检索,以及本体知识构建等功能,通过建立领域本体,采集网络舆情信息,并利用本体对舆情信息进行分析和聚类,实现舆情的垂直化、专业化分析,解决了舆情分析中的语义漂移问题。该系统以湖北省相关领域为样本,重点采集了湖北省地域比较活跃的论坛上舆情信息,对湖北省舆情信息进行监测分析,发现湖北地域比较热门的事件,并将基于关键词的搜索结果与基于语义的搜索结果进行对比,发现基于语义的搜索结果更加准确可靠,验证了系统模型的有效性。关键词: 语义Web;本体;网络舆情;Web信息挖掘AbstractWith the pervasion of Internet and the sharp increase of the number of netizens , Network public opinion has been serving as an effective method in the monitoring and reflection of social public opinion . However, Regulatory Authorities are inclined to concern more about public opinion in a special field while it is too difficult to acquisite the expected information that relates to a special area from the massive searching results based on key words, on the other hand , the characteristics of openness ,sharability and flatness of Internet deprive the network public opinion of its localization and boundaries to a great extent and lead to the fact that it is powerless for the key words to express the searching desire since its easiness of generating semantic drift phenomenon. This article introduced a semantic Web - based Network public opinion analysis system which includes many functions,such as Network public opinion gathering, Information intelligence analysis and processing , Information participle and index, Public opinion briefing, Public opinion retrieval and Ontology knowledge construction etc.Also this system realizes the vertical search of public opinion ,and the analysis of specialization ,besides ,itcompletely solve the semantic drift phenomenon problem inpublic opinion analysis by establishing domain ontology .Taking public opinion in colleges and universities of Hubei Province for sample,we succeed in extracting the information in the active BBS of hubei province, analyzing the information, finding hubei regional hot events.Also we compared the result of semantic search with the result of keywords search and found that the Semantic search was more accurate as well as demonstrated the effectiveness of the model. Key words: semantic web; ontology; network public opinion; web information mining. 目 录1 绪论11.1 选题背景11.2 研究现状11.3 开发平台21.4 论文组织结构22 研究现状32.1 技术介绍32.2 产品现状42.3 本章小结53 系统结构与功能设计63.1 系统结构设计63.2 系统功能设计73.2.1 信息采集73.2.2 信息索引73.2.3 本体信息组织83.2.4 舆情分析83.2.5 舆情统计93.2.6 舆情追踪93.2.7 舆情展示93.2.8 舆情预警103.3 本章小结104 采集与调度114.1 采集范围114.2 基于模板的信息采集114.2.1 采集异构网页信息的难点114.2.2 基于模板的信息采集方案114.2.3 模板的配置与解析124.3 信息采集调度164.3.1 信息采集中的任务划分164.3.2 多线程采集调度164.3.3 数据采集流程与策略184.4 本章小结185 本体信息组织与使用195.1 本体概述195.2 构建本体的动机205.3 本体信息组织205.3.1 本体存储结构205.3.2 本体逻辑结构215.3.3 层次的定义及计算方法215.4 基于语义的舆情分析225.5 本章小结236 存储与界面设计246.1 数据库设计246.2 界面设计276.3 本章小结297 系统测试307.1 数据来源307.2 测试平台部署结构317.3 测试结果327.4 本章小结358 结论36参考资料37致谢38附录A:攻读学位期间的科研情况39附录B:数据库表逻辑结构401 绪论1.1 选题背景网络作为社会舆情的重要载体,由于其具有的广泛性、开放性和共享性等特点导致网络舆情成为社情民意中最活跃、最尖锐的一部分。现阶段的网络舆情研究不仅体现在体制建设上,还体现在如何充分利用高效的信息技术手段实现舆情的有效监控和分析上。特别是对突发事件舆情信息的监测与分析,必须要浏览和查找海量的网络信息,范围包括网络新闻报道、相关评论、网络论坛等等,仅依靠人工的方法难以实现信息的快速处理,因此需要形成一套自动化的网络舆情分析系统,及时应对网络舆情,由被动防堵,化为主动梳理、引导。高效、准确的把握舆情要求未来的系统朝着专业化、地域化、智能化方向发展。现实社会中,行政管理往往是根据地域划分的,但是互联网的开放性、共享性、扁平性使得网络舆情的出现和监管不再具有地域性,不再具有边界。这就使得面向领域的网络舆情分析变得困难,例如:以湖北省为例,网上舆情哪些和湖北相关?湖北舆情的整体态势如何?这些无法通过简单的、部分的网上记录实现,因为湖北的舆情涉及方方面面,孤立的词汇无法反映这一千丝万缕的联系。另外,目前,大多数工具是基于关键词技术,缺乏语义,产生的“语义漂移”问题使得舆情分析的有效性大大的降低,因为不同的语境下,关键词有不同的含义。如:湖北是一个教育大省,要了解湖北的大学的舆情,若采用关键字匹配,则变成了湖北大学的舆情搜索了。1.2 研究现状近年来,越来越多的研究者开始关注网络舆情分析的研究。从技术层面看,舆情监测分析主要涉及到的技术有:信息采集技术、自然语言处理技术、自动分词技术、自动摘要技术、信息检索技术、文本分类与聚类、主题检测与跟踪、观点倾向性识别等 1。一些公司也推出了相应的产品,如:Goonie网络舆情监控分析系统2,中科院的天玑舆情监测系统3等。然而,当前大多数舆情系统都是基于关键词技术的,通过基于字符串匹配的全文检索技术,来搜索用户提交的关键词,检索过程是把用户的查询关键词与全文中的每一个词进行比较,而不考虑查询请求与文档语义上的匹配 ,缺乏语义之间的约束与联系,很容易产生的“语义漂移”问题,使得舆情分析的有效性大大的降低。 因此,国内外很多专家开始关注面向语义的舆情分析。自从万维网之父Tim Berners-Lee于2000年提出语义web的概念以来,实现面向语义的web搜索成为了未来的发展趋势,W3C组织在2004年就发布了OWL描述语言,对网络资源进行语义描述,使得计算机能够理解“语义”并实现自动处理。因此,研究基于语义舆情分析系统,将为解决目前舆情分析提供一个新的思路。1.3 开发平台系统利用java语言在myeclipse6.0开发环境下开发,采用当前比较流行的SSH框架开发一个web网站,采用的具体版本为:struts2.1.16,hibernate3.0,spring2.0。采用的web服务器为tomcat6.0。1.4 论文组织结构本文共分为8个章节,第1章为绪论,概要说明项目背景现状及开发环境等。第2章介绍舆情监控当前的研究现状,包括技术现状和产品现状。第3章介绍了系统结构和功能,重点介绍了系统的分层架构及主要功能设计,包括信息采集、信息索引、信息分析、本体组织、信息展示等。第4章介绍了舆情信息的采集与调度,重点阐述了异构网页上的舆情信息的通用采集机制与多线程任务调度模型。第5章介绍了本体信息的组织与使用,重点介绍了本体基本概念和描述语言,本系统的本体信息组织方案以及本系统利用本体信息的方法。第6章则介绍了系统的存储与界面设计。第7章介绍了系统的测试情况。第8章则给出了本文所得出的结论,总结本文的工作,提出不足及下一步要继续完成的工作。其中第3章,第4章,第5章为本文讨论的重点。2 研究现状2.1 技术介绍从技术层面看,舆情监测分析主要涉及到的技术有:信息采集技术、自然语言处理技术、自动分词技术、自动摘要技术、信息检索技术、文本分类与聚类、主题检测与跟踪、观点倾向性识别等1。(1)信息采集技术当前网络环境下,由于网页设计比较灵活,造成网页结构复杂多样,且用户需求的快速变化使网页的更新频率也比较快,网页结构的多样性,动态性以及存在网页技术屏障使得通过链接网页浏览或关键词检索等方式来获取信息的手段显示出缺陷。针对这个问题,出现了网络信息采集与提取技术用以整合网络上复杂多样的信息资源。当前国内外在网络信息采集的重点集中在如何建立针对各类网站的自动化信息抽取工具,并以一定的格式存储信息。传统的信息抽取方法就是针对抽取对象写一段被称之为Wrapper的程序。近年来很多网络数据抽取工具被开发出来,参考文献1将这些工具归纳总结为六大类:开发wrapper的专用语言、以HTML为中间件的工具、基于NLP的工具、 Wrapper的推导工具、基于模型的工具、基于本体的工具。(2)主题发现与追踪话题发现与跟踪是一项旨在依据事件对语言文本信息流进行组织、利用的研究,也是为应对信息过载问题而提出的一项应用研究。目前研究中采用的主要表示方法多种多样,但主流的模型有两种:基于向量的模型和基于概率的模型1。(3)观点倾向性识别倾向性分析是为了明确传播者的意图和倾向,试图根据文本的内容提炼出作者的情感方向,挖掘出网络信息中所包含的各种观点,喜好,态度,情感等信息。当前倾向性分析可以归纳为客观性分类、词的极性判别、语气分类1这几个方面。(4)自动分词技术分词技术就是搜索引擎针对用户提交查询的关键串进行的查询处理后根据用户的关键词串用各种匹配方法进行的一种技术4。分词技术现今非常成熟了。分为3种技术:字符串匹配的分词方法、词义分词法、统计分词法。(5)信息检索技术计算机信息检索是利用计算机系统有效存储和快速查找的能力发展起来的一种计算机应用技术。计算机信息检索包含“信息分析”,“信息存储”,“信息检索”等方面。信息分析的目的是分析信息条目的格式和内容,为信息索引作准备。信息存储的目的是建立信息库以被检索。计算机信息检索系统的效能通常根据漏检索、误检率、检全率、检准率和响应时间等来衡量5。(6)自动摘要技术自动摘要的研究是自然语言处理领域的一项重要且具有实践意义的工作,其作用就是从信息中抽取出信息的中心内容。常用的方法有位置法、提示字串法、频率统计法,信息提取法、框架法、理解分析法、仿人算法等6。(7)文本分类与聚类将文本集中的每个文本分到某个或者某几个类别中,这个过程称为文本分类,将文本聚集分组成多个类或簇,使得在同一个簇中的文本内容具有较高的相似度,而不同簇中的文本内容差异较大,这个过程称为文本聚类7。参考文献7给出了文本分类和聚类的一些算法,有兴趣的读者可以参阅。2.2 产品现状(1)天玑舆情监测系统天玑舆情监测系统由中科院研发,实时定向采集互联网新闻、论坛、博客等通道的信息, 抽取舆情要素,发现舆情热点,挖掘舆情敏感话题,研判舆情态势,能快速有效地提升政府机构以及企业的舆情掌握与危机公关能力。参考文献3给出了改系统的软件结构图,天玑舆情监测系统各部分的主要功能是: 舆情采集与存储:实现多通道、定向、实时、准确的信息采集,以一定的格式存储数据,并对数据建立索引。 舆情分析与处理:对舆情信息进行处理,包括文字关键词提取,关注信息的自动发现,倾向性定位,综合自能搜索等功能。 网络舆情服务:利用舆情应用技术提供一些适用的服务功能,包括热点排名监测,趋势分析,热点话题监测,热点人物监测,最新话题监测等。(2)军犬网络舆情监控系统军犬网络舆情监控系统是中科点击公司开发的一个体系结构先进、功能强大的面向政府、企业提供网络舆情监测和决策参考的应用系统,广泛地用于舆情监控监测,竞争情报以及风险预警等领域。它的核心技术为互联网信息采集技术、自然语言智能处理技术(文本挖掘技术)、全文检索技术和舆情应用技术。参考文献8给出了该系统的软件结构图。军犬网络舆情监控系统采用B/S与C/S结构相结合的系统架构,利用先进的系统架构,并形成了优势互补,实现基于浏览器的廋客户端或者普通客户端、服务器模式。在军犬网络舆情监控系统中,各部分的主要功能是: 军犬网络信息采集系统从互联网采集新闻、论坛、博客、评论等舆情信息,并存储到舆情数据库中,并通过军犬舆情搜索引擎对海量的舆情数据进行实时索引。 舆情分析引擎负责对舆情数据库进行智能分析和加工。 舆情服务平台把舆情数据库中经过加工处理的舆情数据发布到Web界面上。 用户通过舆情服务平台浏览舆情信息,简报生成等功能完成对舆情的深度加工。(3)Goonie网络舆情监控分析系统Goonie网络舆情监控分析系统依托自主研发的搜索引擎技术和文本挖掘技术,通过网页内容的自动采集处理、敏感词过滤、智能聚类分类、主题检测、专题聚焦、统计分析,实现各单位对自己相关网络舆情监督管理的需要,最终形成舆情简报、舆情专报、分析报告、移动快报,为决策层全面掌握舆情动态,做出正确舆论引导,提供分析依据。参考文献2给出了系统的软件结构图,系统各部分的主要功能为: 配置管理:管理系统运行时所依赖的指导信息,包括“分类管理”、“URL管理”、“词典管理”等。 监控处理:采集网络舆情,对信息进行一定的处理,并将处理后的数据存储。 舆情表现层:提供舆情服务,包括“热点发现”、“RSS阅读”、“舆情报告”等。(4)产品现状总结 前面1到3小节介绍了当前舆情监控领域比较有代表性的几款软件产品,通过对它们所采用的关键技术的分析,发现这些产品基本上都采用了信息采集技术,自然语言处理技术,信息检索技术,文本分类聚类技术,主题发现与跟踪技术以及趋势分析技术,实现了舆情信息的采集,分析处理和展示, 但是它们存在一个共同的不足:都是从舆情原始数据中抽取关键词来代表舆情信息,并根据关键词对信息进行的聚类,索引,检索,由于关键词是孤立性导致的漏检与二义性导致的误检滋生了语义漂移的问题,使信息的健全率与检准率大大降低。虽然有的产品建立了关键词的同义词,反义词的字典来提高信息的检全率,但是这种关系还是比较单一,并不能从根本上解决语义漂移问题。要解决“语义漂移”问题,一个当前比较效的途径就是构建本体知识库,组织领域词汇之间的关系,使用知识库指导信息的分析和检索。2.3 本章小结 本章首先介绍了舆情监测分析领域用到的一些关键技术,如信息采集技术、自动摘要技术、主题发现与追踪技术、倾向性识别技术等,简要说明了这些技术的基本概念与常用实现方法,接着介绍了当前具有代表性的几款舆情分析监测软件,发现大部分系统都采用的是基于关键词的全文检索技术,存在关键词语义漂移问题。3 系统结构与功能设计3.1 系统结构设计本舆情分析系统的体系结构是一个柔性的分层结构,具有良好的扩展性和适应性,具体包含了四个层次:采集层、调度层、语义层、功能层。描述如下:(1)采集层:采集层主要是通过“网络爬虫”实现对网络舆情数据的自动捕获,包括各种论坛,政府网站、贴吧、博客等。(2)调度层:实现采集任务的下发和采集数据的去重,采集的范围、频率等参数可以通过采集任务进行配置,在采集时间和采集效果上取得平衡。 (3)语义层:系统的核心层,其中建立的知识库存储了和湖北相关的词汇及其关系,是语义处理的核心。包括:根据知识库对数据进行语义抽取、聚类、检索、汇聚。(4)功能层:包含各种复杂的业务逻辑。如主题跟踪、自动摘要、舆情追踪、趋势分析、舆情统计、突发事情分析、舆情预警。图 3.1 系统体系结构3.2 系统功能设计3.2.1 信息采集图 3.2 舆情采集功能设计 节点模板管理:包含对节点模板的增删改查功能 数据源模板管理:包含对数据源模板的增删改查功能 网络社区管理:包含对网络社区(如“天涯”)的增删改查功能。 社区版块管理:包含了对社区版块的增删改查功能。一个网络社区往往包含不同类别的多个版块,每一个版块都是本系统关注的一个数据源,我们需要配置每一个数据源,要配置的信息主要包括:数据源名称、所属社区、入口地址、数据源模板、采集深度、采集广度、是否为当前任务、介绍信息等。 数据采集:调度执行采集个数据源的舆情信息。配置数据源告诉系统到哪里去采集数据,要采集多少数据,但如何采集到这些被关注的数据,这正是本部分需要关注的问题。3.2.2 信息索引(1)功能设计图 3.3 数据索引功能设计 添加索引数据:将新采集到的数据添加到文件索引中。 删除文件索引:当删除在数据库中的数据记录,也应同时调用删除掉在外部文件索引中的记录。 更新文件索引:当采集到舆情的最新动态时,在外部索引中应该及时修改索引的数据,使数据库和外部索引保持一致。(2)分词索引方案 本部分设计到的比较核心的技术就是对信息的分词和索引的构建的方法。在本系统中,我们借助开源搜索引擎框架Lucene来实现我们的分词和索引的。Lucene中的分词建索和检索的模型图如图3.4所示。为实现较好的分词效果,我们采用了中科院的中文分词器,那么中科院的分词器是如何与lucene进行结合的呢?原来lucene提供了一个基类的Analyzer,该类是所有分词器类的基类,所有继承了该类的实现均可作为lucene中的分词器使用,而中科院提供实现Analyzer的分词器,我们可以直接使用。图 3.4 Lucene信息索引检索模型3.2.3 本体信息组织图 3.5 本体维护功能设计 属性信息维护:对本体域设计的属性进行“增删改查”。 领域信息维护:对舆情所关注的领域进行维护。 实例信息维护:对各领域的实例信息进行维护。3.2.4 舆情分析图 3.6 舆情分析功能设计 实例相关舆情分析:在本体中组织了比较关注的一些涉鄂信息,其中一些实例如“武汉”,“武汉科技大学”等,在本功能模块要做的就是将与这些实例相关的帖子信息挖掘并存储起来,以便后续的统计与上层查询。 话题相关舆情分析:用户可以设置一些自己关心的话题,如“日本地震核辐射”,本模块要完成的功能就是分析出那些舆情信息是和这些话题相关的。 热帖条件维护:热帖条件设置了鉴定热帖的参数,本模块完成了对热帖条件的增删改查操作。 热贴分析:根据热帖条件分析那些舆情是当前比较热门并记录下来。3.2.5 舆情统计图 3.7 舆情统计功能设计 实例相关信息统计:统计本体组织的实例在各段时间内的各类信息量。 领域相关信息统计:统计各领域在各段时间内的各类信息量。 作者信息统计:统计作者的发帖量、出度、入度等信息。 话题相关信息统计:统计用户关注话题在各段时间内的各类信息量。 3.2.6 舆情追踪 追踪话题维护:决定哪些话题是需要被追踪的。 执行主题追踪:挖掘主题最新的动态,包括评论、热度变化等。 追踪作者维护:决定哪些作者是需要被追踪的。 执行作者追踪:挖掘作者最近动态,包括发帖、交互关系等。图 3.8 舆情追踪功能设计3.2.7 舆情展示图 3.9 舆情展示功能设计 日常简报:展示了各地域各领域的最热帖。 关系网络:展示了网络写手之间的交互关系。 预警简报:展示了个挖掘出来的各种预警信息。 追踪简报:展示了主题追踪信息和作者追踪信息。 统计简报:展示各地域各领域的舆情统计信息。 舆情检索:分为“常规检索”、“语义检索”、“关键词检索”三个类型,“常规检索”综合帖子的基本进行检索,“语义检索”指利用了本体知识库的推理行为进行的检索,“关键词检索”是传统的基于关键词检索行为,在本实验中作对比之用。3.2.8 舆情预警 预警条件维护:预警条件设定了在指定时间内实例的负面信息达到相应数目时的预警等级,本模块完成了对预警条件的增删改查功能。 识别实例预警等级:根据预警条件鉴定各实例的预警等级。3.3 本章小结 本章介绍了系统的总体架构和功能的设计,使读者一目了然系统的结构和所完成的工作。系统分为四个层次,分别为采集层、调度层、语义层、服务功能层,各层分工协作,具有比较好的柔韧性和扩展性。系统完成的主要功能包括信息采集、舆情分析、本体知识的构建和维护以及舆情信息的展示,其中舆情采集和舆情分析是我们关注的重点,本体知识是系统的重要支持信息。4 采集与调度4.1 采集范围(1)比较热门的网络社区如“天涯社区”、“强国社区”等。(2)湖北地域网络社区,如“东湖社区”、“汉网”、“得意生活”等。4.2 基于模板的信息采集4.2.1 采集异构网页信息的难点不同的网络社区上的网页承载舆情信息的页面组织结构不同,给抽取网页上的舆情信息带来了障碍,有一种最直接的方法就是为每一个网络社区书写一段信息采集程序,但这样做极大地影响了系统的可扩展性, 每次添加一个数据源必须有程序员的参与,这样的方案是不可取的,如何利用一段通用的程序完成对不同站点数据的采集是本系统关注的重点,针对该问题提出了“基于模板的信息采集方案”。4.2.2 基于模板的信息采集方案数据库中定义了一个表来存储帖子的相关信息,不论页面承载结构如何变化,我们所关注的信息字段始终是不变的,为了避免通过修改程序来适应不同的承载结构,我们必须在更高的层次上屏蔽这种结构上的差异,本文提出了一种解决方案。以下我们首先介绍了相关概念和使用到的工具包,最后阐述了解决方案的思路。(1)相关概念 节点模板:包含网页上一类节点的定位信息的模板叫做节点模板。 数据源模板:数据源模板是节点模板的一个有限集合,它包含了采集一个数据源所需要的模板的信息。 采集过程中会用到的节点模板。 过滤器:由节点模板解析而来,是程序可以识别的网页节点定位信息对象。 采集器:信息采集的执行者,可以利用不同的过滤器采集到不同的信息。 解析器:负责将节点模板转换成对应的过滤器。(2)htmlparser工具包介绍htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。毫不夸张地说,htmlparser就是目前最好的html解析和分析的工具。htmlParser的基本功能就是网页信息的提取和转换,本系统所使用的就是其信息提取功能,该工具包提供了多种过滤器(Filter),利用这些过滤器我们可以很方便的设定条件并找到我们所关注的信息。在本系统中我们就是将配置的节点模板转换成htmlparser中所拥有的这些过滤器。(3)解决方案思路本文提出的解决方案的思路为:利用htmlparser实现采集器,为每一个数据源配置一个数据源模板,当采集器在执行一个数据源的信息采集时,根据数据源模板获取到所需的节点模板,然后将节点模板利用解析器解析成对应的过滤器,这样采集器就可以利用过滤器过滤到我们所需要的信息了。4.2.3 模板的配置与解析在以上提出的解决方案中比较重要的就是数据源模板及将节点模板解析成过滤器,而要配置一个数据源模板首先得配置节点模板,以下先介绍了节点模板的配置,数据源模板的配置,接着介绍了如何将节点模板解析得到对应的过滤器,最后介绍了信息采集的流程。(1)配置节点模板 节点模板类型本系统关注网络舆情中的网络发帖,主要要获取每个发帖的如下信息:地址、标题、作者、访问量、回复量、发表日期、内容、评论等,要获取到这些信息我们不得不分析网页上承载这些信息的结构,通过观察总结分析得知网络上承载这些发帖信息的结构主要分为两个层次(以下成第一层和第二层),第一层一般以列表的形式给出了到帖子详细信息的链接,所以在该层次上我们可以获取到多个帖子的地址,第二层则一般包含帖子的发表日期,访问量,回复量,作者,内容,评论等,当不管是第一层还是第二层都有分页,所有在获取这些信息的时候还会涉及到对信息分页的处理。为采集到这些承载在不同节点上的字段信息,我们必须配置多个不同的节点模板,通过分析总结可以知道一般需要的几种模板为:地址模板、地址分页模板、内容模板、作者模板、日期模板、访问回复量模板、评论分页模板等。 节点模板的配置(如图4.1)网页中的标签很多,一般包含注释节点、标签节点、字符串节点,我们本系统中只关注标签节点和字符串节点,假定我们所要的信息存储在“关注节点”中,一般我们通过该“关注节点”本身的特征信息,如节点名称、包含属性、包含的字符串等就可以很方便地定位到该节点上,但有时由于同时存在多本身特征相同的节点但我们只是需要其中的一个或一类,这个时候仅由节点本身不能精确定位到我们的“关注节点”,所以需要借助“关注节点”的父节点,子节点,兄弟节点来精确定位。当我们取到关注节点中的信息以后有时还需要在信息前面加上相关前缀,如在取得帖子地址时,由于网页上只给出了一个相对路径地址,但我们需要在本地数据库中存储一个绝对路径地址,所以我们需要在地址信息的前面加上站点前缀。综上所述我们的节点模板信息主要包含了的信息由:关注节点信息,父节点信息(可选),子节点信息(可选),兄弟节点信息(可选),前缀信息(可选)以及其他一些信息,节点模板信息的配置界面如图4.1所示,并在表4.1中对相关信息进行了简要解释。图 4.1 节点模板配置界面表 4.1 节点配置信息说明信息解释模板名称节点模板的名称模板类型根据该模板所知道采集信息来分为不同的类型前缀在抽取到的信息前面需要添加的统一前缀约束组成决定是否添加父节点,子节点,兄弟节点约束节点类型描述节点是标签节点还是一般的字符串节点节点描述描述节点的特征由节点名称和相关属性或包含的字符串组成在描述节点的时候,为便于理解,我们定义自己的语法如下:当要描述的节点为字符串类型时非常简单是需要提上该节点包含的特征字符串即可无任何格式限;当要描述的节点为标签类型时,需要给出节点的标签名称及标签具有的相关属性信息,并且这些信息需要按照严格的格式填写,格式为:标签名称(属性1,属性值1,属性2,属性2.属性n,属性值n),如:table(clas,post,border,1)。(2)配置数据源模板数据源一般指的是网络社区中的一个版块(如“天涯社区”中的“国际观察”版块),数据源模板指导我们在数据源中采集到我们需要的舆情数据,由于一个完整的舆情数据对象包含了多个不同的数据字段,这些数据字段存在于网页中不同的的节点中,所以一个数据源模板包含了多个节点模板,也就是说数据源模板由节点模板构成。通常一个数据源模板需要且只需要一个各类型的节点模板(因为在这些数据源中其网页承载信息的结构是一致的),但在有些情况下即使是在同一个数据源中其网页承载信息的结构仍然存在差异,此时其中的某些数据字段的采集需要利用多个节点模板以供选择,所以一个数据源模板包含多个节点模板且可以包含多个同类型的节点模板;有时不同数据源的网页承载信息的结构可能相同或相似,这些不同的数据源所配置的模板包含同一个节点模板的情况是存在的也就是说一个节点模板可以被多个数据源模板共享。综上所述我们得到结论:数据源模板与节点模板间的关系是“多对多”的,一个数据源模板可以包含多个节点模板(可以是相同类型的模板),一个节点模板可以属于多个数据源模板。(3)解析器的实现通过以上节点模板和数据源模板的描述我们可以知道节点模板描述了我们需要的舆情信息在网页上承载的节点的特征,我们最终需要解析的模板就是节点模板了,我们需要解析节点模板所描述的信息构建一个采集过滤器以供在网页上过滤到我们需要的节点并提取其中的信息。在本系统中,我们采用了开源的网页信息分析提取工具HtmlParser来采集网页信息,我们利用了该工具中的一系列过滤器对象这些过滤器类都是过滤器接口NodeFilter,的实现,在本系统中我们主要用到的过滤器类有:StringFilter,TagNameFilter, HasAttributeFilter, AndFilter。表4.2介绍下这几个类的作用:表4.2 过滤器功能过滤器作用简介StringFilter过滤到包含指定特征字符串的字符串类型节点TagNameFilter指定标签名称,可以过滤到指定名称的标签节点HasAttributeFilter指定标签包含的属性,可以过滤到包含指定属性的标签HasParentFilter描述关注节点所拥有的父节点信息HasChildFilter描述关注节点所拥有的子节点信息HasSiblingFilter描述关注节点所拥有的兄弟节点信息AndFilter由多个过滤器组合而成的一个综合型的过滤器,通常用来过滤满足多个条件的节点在节点模板中,需要解析转换为过滤器的信息主要有关注节点描述、父节点描述、子节点描述、兄弟节点描述,解析转换过程步骤如图4.2所示:(a)(b)图 4.2 模板解析过程4.3 信息采集调度4.3.1 信息采集中的任务划分本系统采用多线程并发采集网络上的帖子信息,合理划分采集任务对提高采集效率是十分重要的。为了采集帖子信息首先地获取到指向帖子的地址,然后根据地址采集到帖子的各种属性信息,所以从总体上看采集帖子信息的步骤分为两步:1.采集帖子地址 2. 采集帖子属性信息。帖子的属性信息分为可变和不可变两种类型,比如“标题”,“作者”,“发表日期”是不变的,“访问回复量”及“评论”是可变的,不可变数据只需在第一次采集中采集到即可,可变数据在以后的每次更新中都有必要重新采集,所以有必要将可变数据和不可变数据分开来采集。在可变的属性中“访问回复量”始终存在于帖子首页,而“评论”分布在多页中,每次更新时我们只需接着上次采集的末页进行采集而不需要从首页开始,所以在可变数据中,系统将“访问回复”和“评论”分开采集。出于以上种种考虑系统将采集任务划分为以下几种类型:(1)收集地址任务:在地址列表页采集到指向帖子首页的地址(2)基本信息采集任务:采集“访问回复量”和“评论”以外的一些基本属性信息。(3)统计信息采集任务:采集帖子的“访问回复量”信息。(4)评论信息采集任务:采集帖子的“评论”信息。4.3.2 多线程采集调度(1)java并发技术简介线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程9。多个线程并发执时通过竞争CPU及其他资源,提高了CPU及其他系统资源的利用率9。并发应用程序一般围绕任务进行管理的,任务是逻辑上的工作单元,线程是使任务异步执行的机制9,在java中,Executor框架是一个多线程任务调度框架,它支持很多种不同类型的任务调度策略,该框架是基于生产者-消费者模式的,提交任务的线程是生产者,执行任务的线程是消费者。线程池是一个管理工作者线程的同构池8。线程池是与工作队列紧密绑定的。工作队列持有所有等待执行的任务,工作者线程不断从工作队列中取得任务执行。作为Executor框架的一部分,java.util.concurrent提供了一个灵活的线程池实现和一些有用的预设配置。通过调用Executors中的一些静态工厂方法可以创建一个线程池。(2)本系统采用多线程技术的动机本系统的一个核心部分就是采集网络上各个论坛的帖子信息,每一个帖子信息的采集工作就是一个逻辑上的任务单元,系统将会有成千上万个这样的任务单元,而且每一个任务都涉及到了网络收发数据及IO操作,可以想象,如果我们利用单线程顺序执行这些采集任务,由于网络阻塞等问题会导致线程在一部分时间里处于等待数据状态,使CPU闲置,这种情况下单线程显然不能充分利用CPU及其他系统资源,要执行这些任务将会耗费相当长的时间,甚至在更糟糕的情况下,由于网络上的异常会导致工作线程直接坏死,那样就不再有线程工作了。而采用多线程工作时,如果一个线程在等待数据,可以把CPU让出给其他线程继续工作,即使一个线程坏死了还有其他线程可以继续工作,不会导致任务的执行被停止,所以为了提高系统资源的利用率,缩短任务执行周期,使系统遇到异常时时能够平缓地劣化,利用多线程是本系统理所当然的选择。(3)本系统的多线程调度方案本系统仍然利用Executor框架来进行多任务并发调度执行,采用的方案:该系统中,任务单元初始是存储在数据库中的,可以看出数据库表其实就是一个天然的任务队列,表中有一个字段记录了任务最近一次被执行的时间,根据该字段可以判断任务在当天是否被执行过,直接从数据库取得其中的任务比较慢,所以在内存中开辟了一个缓存空间进行中转,工作者线程只是不断地从缓冲空间中取得任务进行执行,当缓存空间中不存在任务时再从数据库中批量取得一定量的当天未未执行过的任务缓存进来,这样不断进行直到所有的任务当天都被执行过为止。图 4.3 任务调度模型可以看出在这样一个方案中我们并没有发现生产者线程,但是并不代表并没有生产者的存在,只不过在这样的一个实现方案中,我们将生产者和消费者进行分离了,生产者预先收集了帖子的地址装配成帖子存储到数据库中,然后才启动工作者线程开始采集数据,在这个整体过程中生产生和消费者不是实时进行协调,而且是消费者线程主动从任务缓存空间取得任务执行,从而避免了资源浪费和线程饥饿的问题。4.3.3 数据采集流程与策略(1)数据采集总体流程图 4.4 数据采集流程(2)数据采集策略 地址采集策略只取得当前需要采集的数据源进行采集:不同数据源的活跃程度不同,相同的数据源在不同的时间内活跃程度也不一样,人们往往关注那些人气比较旺的站点,这使得采集无流量的站点的信息变得没有什么意义,因此在采集帖子地址时只取得当前需要采集的数据源进行采集。每个数据源只检测其配置的前N个地址:每个配置的数据都有一个分页的帖子列表,一般站点自动将最近比较热门的帖子排在前面,将不受关注的或距今时间较久的帖子排在后面,这些排在后面的帖子并不是本系统关注的信息,对我们有实际价值的只是前面那些比较活跃的帖子。这样避免采集大量无价值的数据,减轻了系统的工作量。 基本信息采集策略在执行该任务时并没有用到什么特别的策略,只是考虑到帖子需要采集的帖子单元较多,一次性加载到内存中非常浪费空间,故每次只加载100帖子配置信息到内存,减少了内存的开销,在统计信息采集任务调度中也用到了。 评论信息采集策略只采集热门帖子的评论信息:用户一般关注热门话题的评论,那些非热门帖子的评论没有什么实际价值,这样减少了系统采集工作量。4.4 本章小结本章分析了舆情采集的难点,其难点在于不同论坛的网页的异构性导致不能用一个采集器来采集数据,针对这一问题,我们提出了基于模板的信息采集方案,通过上层配置信息指导采集器进行采集,重点方案的实现过程,最后对采集的调度作了一些介绍,重点介绍了多线程调度模型及调度任务的划分及任务的执行过程和策略。5 本体信息组织与使用5.1 本体概述(1)本体的概念在人工智能界,最早给出Ontology定义的是Neches等人,他们将本体定义为“给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义”10。Neches认为:“本体定义了组成主题领域的词汇表的基本术语及其关系,以及结合这些术语和关系来定义词汇表外延的规则”10。(2)本体的作用本体的目标是捕获相关领域的知识,提供对该领域知识的共同理解,确定该领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇(术语)和词汇间相互关系的明确定义11。总的来说,构造本体可以实现某种程度的知识共享和重用,以及提高系统通讯、互操作、可靠性的能力10。(3)本体的描述语言本体描述语言主要是为领域模型编写清晰的、形式化的概念描述12,目前已诞生了许多种本体描述语言,如SHOE、XOL、RDF、RDF-S、OIL、DAML、OWL等,本文着重介绍其中具有代表的两种:RDF,RDF-S及OWL。 RDF,RDF-SRDF(资源描述框架,ResourceDescriptionFramework)、RDF-S(RDFSchema)是W3C在XML的基础上推荐的一种标准,用于表示任何的资源信息。RDF提出了一个简单的模型用来表示任意类型的数据。这个数据类型由节点和节点之间带有标记的连接弧组成。节点用来表示Web上的资源,弧用来表示这些资源的属性。因此,这个数据模型可以方便的描述对象(或者资源)以及它们之间的关系。RDF的数据模型实质上是一种二元关系的表达,由于任何复杂的关系都可以分解为多个简单的二元关系,因此RDF的数据模型可以作为其他任何复杂关系模型的基础模型11。 OWL OWL(Web本体语言,WebOntologyLanguage)是W3C推荐的本体描述语言的标准,它是为了在WWW上发布和共享本体而提供的语义标记语言。OWL是在DAML+OIL的基础上发展起来的,作为RDF(S)的扩展,目的是提供更多的元语以支持更加丰富的语义表达,并更好的支持推理。OWL提供大量的基于描述逻辑的语义原语来描述和构建各种本体,例如类型之ICJ的不相交性(disjointness),基数(cardinality),等价性,属性特征(如对称性symmetry),以及枚举类型(enumeratedclasses)等11。OWL相对XML,RDF和RDFSchema拥有更多的机制来表达语义,从而OWL超越了XML,RDF和RDFSchema仅仅能够表达网上机器可读的文档内容的能力11。 5.2 构建本体的动机传统的信息检索技术都是基于关键词技术的,只有包含某一关键词的信息才与该关键词相关,这种方法虽然简单但包含明显的缺陷,看看下面这个例子:有两条信息:A:湖北某高校学生昨日跳楼自杀 B 武汉一公司昨日上市现输入“湖北”检索要查到与湖北相关的信息,在关键词检索技术之下,只会得到A信息,因为只有A信息中包含“湖北”这个关键词,而实际上B信息也是跟湖北相关的,因为B信息与武汉相关,而武汉是属于湖北的。从上例可以看出基于关键词技术的信息检索并不能体现出词汇与词汇之间的关联,信息之间的这种不相互关联共享的现象被我们称之为信息孤岛。要使上例中的两条信息都被检索出与湖北相关,首先得描述出“湖北”与“武汉”这两个词汇之间的关系,从以上本体的定义和作用中可以知道本体正是可以描述词汇之间关系的一种方式,我们可以利用本体描述出“武汉”其实是属于“湖北”的这一事实,并且这一事实能被计算机所识别。在本系统中,我们正是要利用本体描述出涉鄂领域词汇与词汇之间的关联,避免语义漂移与信息孤岛的产生,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论