版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京理工大学本科生毕业设计(论文)PAGE40摘要RSS(普遍被解释为ReallySimpleSyndication)是一种消息来源格式规范,被广泛应用于各信息更新速度比较快的服务站点,用以发布网站中经常更新的内容。网络用户可以很方便的订阅各种网站的RSS内容,从而可以及时的获得网站的更新信息。但是,在现存的RSS阅读器中普通存在订阅信息冗余的问题。针对用户在订阅RSS频道过程中所遇到的信息冗余问题,本文将提出一个基于用户兴趣模型的个性化信息匹配方案。通过该方案,RSS订阅系统可以根据用户的兴趣模型自动向用户推送其可能感兴趣的信息,提高用户的阅读效率。利用本文所提出的方案,作者建立了一个个性RSS聚合阅读网站模型,并介绍了该网站的详细架构和实现方法。关键词:RSS、兴趣模型、关键词提取、相似度计算
AbstractRSS(mostcommonlytranslatedas"ReallySimpleSyndication")isafamilyofpublishmassageformats,bewidelyusedininformationservicesthatupdatesfaster,topublishfrequentlyupdatedworks.
InternetuserscaneasilysubscribetovariouswebsitesoftheRSScontentandtimelyaccessestothesitegetthenewestinformation.However,almostalltheRSSReadertoolscannotallowuserstoefficientlyaccesstheinformationtheyaregenuinelyinterested.
FortheproblemofinformationredundancygeneratedwhileusersinthesubscriptionRSSchannels,thisarticlewillproposeamodelbasedonuserinterestinpersonalizedinformationmatchingprogramtoresolveit.Throughthisprogram,RSSsubscriptionscanbebasedonuserinterestmodelautomaticallytotheusermaybeofinteresttopushtheinformationtoenhancetheuser'sreadingefficiency.Finally,apersonalizedRSSaggregationreadingwebsitemodelbasedontheproposedmethodinthisarticlewillbegivenandintroduceforthearchitectureandimplementationdetails.KeyWords:RSS,Interestmodel,KeywordsExtraction,Similaritycalculation
目录摘要 IAbstract II目录 III第1章概述 11.1背景 11.2RSS相关简介 11.2.1RSS的介绍 11.2.2RSS的应用 31.3本论文探讨的内容 31.4本论文的组织结构 4第2章对RSS订阅的处理机制 52.1RSS的格式规范 52.2内容的解析 62.3信息的处理和净化 72.4RSS订阅更新的机制 82.4.1设置不同更新机制的原因 82.4.2采用的更新预测方法 92.5本章小结 11第3章用户兴趣建模 123.1文本向量化处理 123.1.1分词 123.1.2ICTCLAS分词系统 133.1.3关键词提取 153.2系统词典的设计 163.2.1词典的作用 163.2.2词典的设计 173.3相似度计算 183.3.1算法介绍 183.3.2文档的相似匹配计算 193.4用户兴趣模型的完善 203.5本章小结 23第4章系统的设计和实现 244.1系统的功能需求 244.2系统的整体设计 254.2.1系统框架结构设计 254.2.2系统逻辑结构设计 264.3具体模块的设计 274.3.1信息抓取模块的设计 274.3.2信息处理模块的设计 294.3.3相似度计算模块的设计 324.3.4兴趣模型维护模块的设计 334.4数据层的设计 344.5界面设计 374.5.1设计原则 374.5.2设计实例 384.6本章小结 39总结和展望 40致谢 41参考文献 42第1章概述1.1背景基于互联网技术的迅速发展,网络名词也是日新月异,最近被炒得最热的莫过于Web2.0。RSS,作为Web2.0的重要组成部分,我们称之为简单信息聚合技术,是目前最为广泛的XML应用,用于不同网站信息的共享和发布。如今网络已经成为人们获得外界信息的主要来源,RSS作为一种发布网站及时信息的规范格式,被各大网络公司所采用。RSS能够用于共享各种各样的信息,包括新闻、简讯、网站更新、博客、及时资讯、电子商务、数字图书馆等。网络用户可以使用RSS阅读器,根据自己的喜好订阅不同站点的RSS频道,当阅读器检测到用户订阅的信息有更新时,会自动下载更新的内容呈现给用户。通过这种阅读器,任何网络用户都可以将不同网站的新闻订阅到本地,而不必再被动的在网络中搜集希望了解的信息,各种RSS服务商会主动的将用户感兴趣的内容推送给订阅者。对于经常使用常规RSS阅读器的用户不难发现,这些阅读器确实给用户带来了不小的便利,但是随着时间的延长,用户会发现出现了一个新问题,那就是用户订阅的RSS频道越来越多,加之各种RSS提供商的高速信息更新率,呈现在用户面前的数据已经臃肿不堪,或许每天更新的信息就有上百甚至几百条。如果以这个角度来看,RSS阅读器并没有给用户带来多少便利,RSS提供商的这种信息推送行为,在一定程度上也并不能称之为很好的个性化服务。1.2RSS相关简介1.2.1RSS的介绍RSS是一种消息来源格式规范[1],用以发布经常更新资料并且以一些规范格式发布信息的网站,例如博客、新闻标题、音讯或视讯的网摘。RSS文件(或称为摘要、网络摘要、或频道)包含了全文或是摘要,再加上发行的资料和授权的元数据。网络摘要使得信息发布者可以按照规范自动地发布他们的资料。同时也使读者能更够定期更新他们喜欢的网站或是聚合不同网站的网摘。RSS摘要可以借由RSS阅读器、feedreader或是aggregator等网页或以桌面为架构的软件甚至是基于移动设备的阅读器去阅读。标准的XML文档可以允许资讯在一次发布后通过不同的应用程序阅览。使用者通过在阅读器中输入网摘的URI(通常不规范的称为URL,尽管在技术层面上这两个术语并不同义)或者点击在网页中的那种RSS订阅图标来订阅该摘要。RSS阅读器定期检查用户的订阅是否有更新,下载任何订阅的更新,然后为用户提供使用界面去监视或阅读这些摘要。RSS文档采用XML进行格式化。尽管RSS规范从1999年3月开始,已经经过了很大的发展,但是RSS的图标(和)被广泛的应用却是在2005至2006年之间。RSS的第一个版本为RDFSiteSummary,在1999年3月由美国网景公司的Guha为了用在My.Netscape.Com入口网站而开发。这个版本开始以RSS0.9为名。在1999年七月,美国网景公司的DanLibby发明了新版本RSS0.91,此版本简化了形式,撤去RDF元素。Libby并且将其重新命名为RSS,全名"RichSiteSummary",并且在"futuresdocument"论述了未来的发展形式。在2002年9月Winer发布了RSS2.0(ReallySimpleSyndication)这一新规范,在该版本中删除了RSS0.94草图中的一些属性类型,同时添加了对名字空间的支持。因为Winer和RSS-DEV工作组都不是网景公司所支持的,所以他们都不能使用官方声明的RSS这个名字和规范。这更加促进了商业共同体关于哪个试题才是RSS最合适的公布者的争论。其中备受争议的就是一种从2003年6月开始便出现的一种新的RSS商业规范——Atom。Atom的产生在一定程度上是由于人们在渴望得到一种清晰的免费的关于RSS规范的要求,现在Atom的格式规范已经被IETF标准所采用,其规范号为RFC4287。在2005年的12月,微软的InternetExplorer小组和Outlook小组在他们的博客上声明采用了在MozillaFirfox浏览器上首先使用的RSS网络文摘图标。几个月之后,OperaSoftware也做了和微软一样的决定。这样就有效的使得那个橘红色带白色声波条文的方块图标成为了RSS和Atom文摘的代表符号,替代了以前使用的种类繁多的网络文摘图标。在2006年的1月RogersCadenhead为了继续发展RSS规范和消除规范中的歧义,在没有DaveWiner的参与下重新开通了RSS咨询平台。在2007年6月,该咨询平台改进了他们的规格说明书的版本以证明用命名空间的属性可以扩展RSS的核心元素,与此同时微软已经在将该方法应用到了InternetExplorer7之中。这些大公司的行为留下了很多争议,因为网络文摘的发行者不能确定这些新的改进在未来是可以得到商业规范组织的允许还是禁止。[1]1.2.2RSS的应用(1)、新闻或者订阅提供商可以利用RSS来发布网站内容。一个网站可以利用RSS元数据规范描述网站内容,创建并在网站中发布RSSFeed从而发布网站内容。(2)、内容整合服务商可以利用RSS来聚合多个网站的内容。聚合是一种自动收割、解析和整合多个网站中发布的RSSFeed的过程。内容整合者可以通过RSS搜索引擎和RSS桌面聚合工具来收割多个网站上的RSSFeed并根据RSS元数据规范来解析Feed,从而整合相应的网站内容。(3)、门户平台可以利用RSS来直接嵌入某个网站上的内容。嵌入是指绑定他人的RSSFeed、通过XLST等技术直接将其转换成HTML格式的信息嵌入本地网站的页面,这是一种实时的、实用的内容整合方式。许多门户平台所提供的RSSportlet(导入组件)能够直接将来自多个网站的RSSFeed嵌入到本地页面,并且转换成HTML的格式显示。(4)、个人用户可以利用RSS来直接发现感爱好的网站内容。用户在网站中点击某个页面中的XML或RSS标志可以直接浏览RSSFeed,从而发现RSSFeed中感爱好的网站内容。此外,假如事先已经知道该RSSFeed的地址时,也可以直接在浏览器地址栏输入RSSFeed的路径后按回车,也能直接浏览RSSFeed从而发现网站内容。[4]1.3本论文探讨的内容对于普通用户来说,长时间使用传统的RSS订阅器很容易产生信息冗余的问题。针对普通RSS阅读器的这一个缺陷,有必要在RSS提供商和普通用户之间建立一个中间服务站。该中间站的作用就是分析用户的行为,建立并维护符合用户自己的兴趣模型,然后以该模型来匹配所有用户订阅的信息并向用户推荐其可能感兴趣的信息,从而减少信息冗余给用户带来的麻烦。在本文中,我们将分析RSS的规范格式,并针对不同的数据源格式来对数据进行格式化处理,对于不同类型的订阅建立不同的更新机制以提高系统效率;讨论对于每一篇文章提取关键词,并将文章向量化的算法;同时提出一种建立和维护用户的兴趣模型的方法,以该模型来和每篇文章的向量进行匹配和进行相似度的计算,以便于向用户推荐阅读。最后将详细介绍基于本文理论所建立的一个RSS订阅网站。1.4本论文的组织结构第一章介绍了本论文所研究的背景,RSS的特殊发展历史,RSS的主要应用和前景以及本文的组织结构。第二章讨论了不同版本的规范格式,在本系统中对于RSS内容的解析和格式化方法,杂质内容的过滤,对于所有用户订阅频道的更新策略。第三章为本论文核心章节,重点讨论了分词,关键词提取,文档向量化的处理,系统词典的功能和维护,相似度的计算。第四章为该论文理论方法的应用章节,介绍了基于本文方法建立的RSS阅读网站,包括其需求分析,整体设计,各模块的详细设计以及系统数据层的设计和界面设计。总结和展望对本论文做了总结并且阐述了作者对于未来RSS个性订阅功能的展望。最后为对本论文研究有重要指导和帮助的人的致谢以及参考文献列表。
第2章对RSS订阅的处理机制2.1RSS的格式规范正如第一章所述,RSS有多个不同的版本,但是主要有两个分支(RDF和RSS2.*)。RDF和RSS2.*的分支包含如下基本版本[1]:RSS0.90,起源于网景公司开发的RSS规范,这里的RSS为RDFSiteSummary的简称,是基于一种早期的工作草案RDF规范而开发,但是和这个早期版本并不兼容。RSS1.0,由RSS-DEV工作组开发的开源规范,同样是代表RDFSiteSummary。RSS1.0的规范类似于RSS0.90,但是并非完全相同,因为1.0是基于RDF1.0Recommendation最终版而开发。RSS1.1同样是一个开源的规范,它的诞生是刻意的要替代RSS1.0版本,但是该版本只是一个独立的草案,并不受到RSS-Dev工作组和其他任何组织的支持和认可。RSS2.*分支(最初归属于UserLand,现在归属于哈佛大学)包含以下版本:RSS0.91是一个精简的RSS形式,由美国网景公司所发行,同时也是原创的排行第一的版本编号,由DaveWiner从Userland软件所制作。网景公司的版本现在被称为RichSiteSummary;这个是不久前的RDF格式,但是相对而言比较不方便使用。RSS0.92透过0.94被扩大为RSS0.91版本,更容易与其他相容以及和Winer的RSS0.91版本,但仍然和RSS0.90不相容。RSS2.0.1是2.0的内部版本编号。RSS2.0.1虽被声称冻结,但是仍是一个网页然可以快速下载,之后再声称没有改变版本编号。RSS现今代表着简易供搞系统。主要的改变是在这个版本里使用XML命名空间。对大部分版本而言,在每个分支中,新的版本和较早的版本都可以兼容,(除了在0.90中的无兼容性的RDF语法),以及大部分的版本严格上来说包括以延伸机构使用XMLNamespaces来证明,另一方面正好(在2.*分支)或透过RDF(在1.*分支),大部分的企业联合组织化软件都有支持这两种分支。表2-1为针对各种RSS版本规范的部分元素的详细标注[2][3]。表2-1常用RSS版本格式规范元素版本号0.901.00.910.922.0关键RSS元素Channel<channel>RRRRR<title>RRRRR<description>RRRRR<link>RRRRR<copyright>NNOOO<lastBuildDate>NNOOO<pubDate>NNOOO<ttl>NNNNO<category>NNNOOdomainNNNOOItem<item>RRRRR<title>RRROR<description>NOOOR<link>RRROO<author>NNNNO<comments>NNNNO<pubDate>NNNNO<category>NNNOO<guid>NNNOO备注:R-必须元素O-可选元素N-不支持元素2.2内容的解析至2007年一月,据网站的统计,当时使用的RSS版本主要有0.91,1.0和2.0三个版本。在世界范围中RSS的使用情况看1.0占到17%,2.0占到67%。到2008年的八月,索引了546,069个网络摘要,其中86,496个为Atom格式,438,102个为RSS格式。至2009-5-2日共索引了567.233个网络摘要,其中438,102个为RSS格式,86,496个为Atom格式在实际应用中有的RSS服务商并不是完全的按照RSS规范发布信息,有可能自己定义部分格式。再根据以上数据并结合本论文所研究的主要方向,我们有选择的屏蔽掉了一些非关键因素以简化设计方案。在本系统中,我们解析的RSS频道主要模式按照图2-1的格式进行转换:这样做可以消除各种版本之间的差异,方便了后期的数据处理。2.3信息的处理和净化随着时间的推延,有些数据源并不能永久存在,这样就要求我们的信息抓取系统能够识别这些情况,对于作废的数据源予以处理。在服务器中增添错误频道计数功能,这样在每次遇到更新错误时,自动计数。对于长久没有更新的数据源,提示给用户,以提高系统效率。服务商为了更好的显示其提供的内容,往往会在发布信息中添加HTML标记信息或者图片链接等附属信息。这些信息对于我们的计算是没有意义的,甚至属于有害信息,这样就需要将其屏蔽。所以在抓取信息时,保留一份原数据的同时,将会对抓取内容进行处理对于所有HTML标签中的数据进行删除,对连续的多余空格进行删除,对网页标记元素进行删除或者替换。这样处理后输出的数据既不影响原有含义,又可以方便下一步的关键词提取、分词相似度计算等操作。2.4RSS订阅更新的机制2.4.1设置不同更新机制的原因对于不同的RSS数据源,它们的更新时间和更新频率并不相同,甚至相差很大。例如门户网站或者大型新闻网站的RSS源在新闻发布高峰每小时都可以更新十几条信息,而个人博客数据源甚至一周之内只会更新一两篇文章。如果我们的中间站以相同的更新间隔去访问和下载数据源,那样不仅浪费不必要的网络资源也会大量消耗系统的计算资源。站系统为了得到最新的内容就要不断的抓取新信息,由于上面提到的更新时间不确定性,所以有必要针对不同的数据源设计出不同的更新策略。图2-1RDF和RSS转换为系统格式2.4.2时间序列预测法[6]是一种定量分析方法,它是在时间序列变量分析的基础上,运用一定的数学方法建立预测模型,使时间趋势向外延伸,从而预测未来数据更新的发展变化趋势,确定变量预测值。时间序列预测法也叫历史延伸法或外推法。时间序列预测法的基本特点是:假定事物的过去趋势会延伸到未来;预测所依据的数据具有不规则性;撇开了数据变化之间的因果关系时间序列是指同一变量按事件发生的先后顺序排列起来的一组观察值或记录值。构成时间序列的要素有两个:其一是时间,其二是与时间相对应的变量水平。实际数据的时间序列能够展示研究对象在一定时期内的发展变化趋势与规律,因而可以从时间序列中找出变量变化的特征、趋势以及发展规律,从而对变量的未来变化进行有效地预测。时间序列的变动形态一般分为四种:长期趋势变动,季节变动,循环变动,不规则变动。下面着重介绍和本文有关系的两种预测法。(1)简单平均数预测法,是用一定观察期内预测目标的时间序列的各期数据的简单平均数作为预测期的预测值的预测方法。该方法常应用于近期短期数据的预测。在简单平均数法中,极差越小、方差越小,简单平均数作为预测值的代表性越好。简单平均数法的预测模型如式(2-1)所示。(2-1)注释:为预测值,为计算平均值,为样本值,为样本容量(2)加权算术平均数法,是简单算术平均数法的改进。它根据观察期内各个时间序列数据的重要程度,分别对各个数据进行加权,以加权平均数作为下期的预测值。对于离预测期越近的数据,可以赋予越大的权重。加权算术平均数法的预测模型如式(2-2)所示。(2-2)注释:wi为权重,Google资讯RSS频道(中国版)2009-5-30RSS更新时间和次数数据如表2表2-2Google资讯RSS频道2009-5-30日频道更新统计简单平均数预测法对于方差比较大,极差比较大的样本数据的预测性不是很好,而加权算术平均数法通过对不同样本数据引入不同权值的概念,可以适当的消除预测误差。综合考虑两种预测法的优势,在本系统中将折中使用两种预测法。由图3-2的数据可以看出,对于该频道而言,其更新的高频阶段为上午的10点到下午3点,如果将N取值为24小时则似的系统的预测性能偏差较大。为了减小这样的误差,我们现将N定义为12,只针对6点到18点之间的数据进行预测。这样计算出的预测值为:13.9条/小时。根据这样的计算方法,可以求得每个频道的更新频率,并针对不同的频率进行不同的更新策略以提高系统效率:对于每小时更新频率大于10的订阅,每小时更新一次;对于每小时更新频率小于10大于1的订阅,3小时更新一次;对于每天更新频率大于1小于24的订阅,每天更新一次;对于其他更新频率的订阅,2天更新一次。由于大型门户的数据更新速度比较快,如果刷新频率过高,势必会严重降低系统的效率,所以对于更新频率过高的RSS订阅,规定每小时更新一次;而其他的普通订阅更新频率则可以设置为参数,在实践应用中改变以达到最佳效率,本文仅给出一个参考值。2.5本章小结由于历史的原因,RSS在不断的发展完善之中产生了不同的几个版本,而不同的版本又都被不同的网站广泛使用,因此一个RSS阅读器必须能够做到解析不同格式规范的RSS数据源,由于对RSS的解析并非本论文的讨论重点,因此,本文中根据RSS发布版本的比例,采用了RSS1.0和RSS2.0两个主流版本作为解析对象,摒弃了Atom格式的解析。在本章中,介绍了如何将多种不同的RSS格式转换为本系统所采用的格式(如图2-1所示),这样做可以消除各种版本之间的差异,方便了后期的数据处理。在处理完版本差异之后,下载的数据将被进行过滤以消除杂质信息。不同的RSS频道,它们的更新时间和更新频率并不相同,甚至相差很大。如果RSS阅读器以相同的更新间隔去访问和下载数据源,那样不仅浪费不必要的网络资源也会大量消耗系统的计算资源。为了得到最新的内容就要不断的抓取新信息,由于上面提到的更新时间不确定性,所以有必要针对不同的数据源设计出不同的更新策略以提高系统效率。在本章中,讨论了简单平均数法、加权算术平均数法两种常用预测法,并综合了实际需要和复杂度,在本系统中采用了两种算法的折中。
第3章用户兴趣建模3.1文本向量化处理3.1.1分词在英文的行文中[9],单词之间是以空格作为自然分界符的,而中文只是字、句和段,可以通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,但是在词这一层上,所以中文的分词要比英文分词复杂一些。中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。由于本系统采用的分词系统为中科院的基于多层隐马模型的汉语词法分析系统ICTCLAS,该系统是基于字符串匹配的分词方法,所有在此仅对该方法进行介绍。字符串匹配的分词[10]又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个充分大的机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:正向最大匹配法(由左到右的方向)逆向最大匹配法(由右到左的方向)最少切分(使每一句中切出的词数最小)还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。3.1.2ICTCLAS分词系统ICTCLAS分词的总体流程包括:1)初步分词;2)词性标注;3)人名、地名识别;4)重新分词;5)重新词性标注这五步。就第一步分词而言,又细分成:1)原子切分;2)找出原子之间所有可能的组词方案;3)N-最短路径中文词语粗分三步。在所有内容中,词典库的读取是最基本的功能。ICTCLAS中词典存放在Data目录中,常用的词典包括coreDict.dct(词典库)、BigramDict.dct(词与词间的关联库)、nr.dct(人名库)、ns.dct(地名库)、tr.dct(翻译人名库)。由于本系统使用的是ICTCLAS开源程序SharpICTCLAS,所以这里只给出其中的WordDictionary类的结构(如图3-1所示)和词典结构(如图3-2所示)。图3-1WordDictionary类结构下面内容节选自词库中CCID2单元,CCID的取值范围自1~6768,对应6768个汉字,所有与该汉字可以组成的词均记录在相应的单元内。词库中记录的词是没有首汉字的(用带括号的字补上了),其首汉字就是该单元对应的汉字。词库中记录了词的词长、频率、词性以及词。另外特别需要注意的是在一个单元内,词是按照CCID大小排序的。图3-2‘埃’字在词典中的结构在这里还应当注意的是,一个词可能有多个词性,因此一个词可能在词典中出现多次,但词性不同。若想从词典中唯一定位一个词的话,必须同时指明词与词性。具体的分词算法请参见ICTCLAS官方说明书。在文档中,实词往往可以代表文档要表达的意思。在经过分词之后,将文档分成了原子词汇,为了提高系统的运算效率,仅对实词(名词、动词、形容词)和英文字符串进行保存处理。ICTCLAS中对词性的标注如表3-1所示。表3-1部分实词词性符号标注词性字符词性字符名词n动词v时间词t形容词a处所词s字符串x方位词f3.1.3关键词提取在进行文档匹配的时候,我们并不能以整个文档对其进行比较,只有把该文档分割成一个一个的语义元,由这些语义原子来表示该文档。而一篇几百字甚至上千字的文章,可以用不到其文章总数的10%甚至更少的词汇来对其唯一性进行标注,这些词汇就是关键词。例如在短语“统计学的应用”可以分成三个关键词:统计学、的、应用。我们可以很清楚的想到,包含这三个词多的文章应该比包含它们少的文章相关。当然,这个办法有一个明显的漏洞,因为网页的长短会对比值有较大的影响。因此我们需要根据网页的长度,对关键词的次数进行归一化,也就是用关键词的次数除以网页的总字数。我们把这个比值称为“关键词的频率”,或者“单文本词汇频率”(TermFrequency,TF),比如,在某个一共有一千词的网页中“统计学”、“的”和“应用”分别出现了2次、35次和5次,那么它们的词频就分别是0.002、0.035和0.005。在上面的例子中,词“的”站了总词频的80%以上,而它对确定文章的主题几乎没有用。我们称这种词叫“应删除词”(Stopwords),也就是说在度量相关性是不应考虑它们的频率。在汉语中,应删除词还有“是”、“和”、“中”、“地”、“得”等等。忽略这些应删除词后,上述网页的相似度就变成了0.007,其中“统计学”贡献了0.002,“应用”贡献了0.005。经过上面的信息屏蔽后,还会遇到另外一个问题,在汉语中,“应用”是个很通用的词,而“统计学”则相对是个比较特别的专业词汇,后者在相关性排名中比前者重要。因此我们需要给汉语中的每一个词给一个权重,这个权重的设定必须满足下面两个条件:(1)一个词的预测主题能力越强,权重就越大,反之,权重就越小。我们在网页中看到“统计学”这个词,或多或少地能了解网页的主题。我们看到“应用”一次,对主题基本上还是一无所知。因此“统计学”的权重就应该比“应用”大。(2)应删除词的权重应该是零。我们很容易发现,如果一个关键词只在很少的文档中出现,我们通过它就容易锁定搜索目标,它的权重也就应该大。反之如果一个词在大量文档中出现,我们看到它仍然不很清楚要找什么内容,因此它应该小。概括地讲,假定一个关键词w在Dw个网页中出现过,那么Dw越大,w的权重越小,反之亦然。在信息检索中,使用最多的权重是“逆文本频率指数”(Inversedocumentfrequency缩写为IDF),它的公式为log(D/Dw)其中D是全部网页数。比如,我们假定中文网页数是D=10亿,应删除词“的”在所有的网页中都出现,即Dw=10亿,那么它的IDF=log(10亿/10亿)=log(1)=0。假如专用词“统计学”在两百万个网页中出现,即Dw=200万,则它的权重IDF=log(500)=6.2。又假定通用词“应用”,出现在五亿个网页中,它的权重IDF=log(2)则只有0.7[11]。最后对所有关键词的IDF*TF值进行倒序排序,截取部分关键词和其权重将用以代表文章。由于实验环境和数据源的局限性,在本系统中并不能大范围的索引词汇,所以引入了一个词典模块,以辅助记录词汇的热度,下面章节会有详细介绍。3.2系统词典的设计3.2.1词典的作用在上面提到“逆文本频率指数”,它的公式为log(D/Dw)其中D是全部网页数。我们名不能抓取所有的网页数,只能在可操作的范围内尽量的使D更接近实际值。在本系统中,以每篇文章为一个文档,对文档进行分词,去掉重复词汇。对于分词结果,如果该词已经在词典中出现,则将其计数加1,表示在所有网页中出现的次数,如果在词典中没有该词的记录,则将其加入词典并置出现次数为1。由以上描述不难看出,在系统使用初期,词典所给出的数据并不是很准确,但是随着使用时间的延长,其数据也会越来越接近实际值,系统计算的精度也会随之提高。3.2.2词典的设计在词典系统中主要包含两个类,一个词典类,一个关键词类。词典是由关键字所组成,对词典的操作主要表现在对关键词的操作上面。Keyword类,该类具有该系统中关键词的必备属性,其详细介绍如下属性:HotCount:词汇的热度HotWeight:词汇在词典中的权重IDF:逆文本频率指数OccurTimes:在文档中出现的次数PartOfSpeech:词汇的词性图3-3KeyWord类结构TF:单文本词汇频率Value:词汇值(内容)Weight:词汇在文档中的权重WID:词汇ID方法:IsExist:判断词汇是否存在于词典SaveToDictionary:将词汇保存至词典图3-4Dictionary类结构图Dictionary类包含了对关键词类的维护和对数据库词典的维护功能。方法:AddKeyWordsWeight:对于需要增加权重的词汇将其权重值加1;GetHotKey:获得热门关键词;GetKeyMsg:按照关键词的内容或者关键词的ID获得其全部属性;InsertToDictionary:将关键词插入数据库;IsExsit:判断关键词是否存在于词典中;ReduceKeyWordsWeight:降低关键词的权重;3.3相似度计算3.3.1算法在文本分析计算中,通过文本向量的Cosine夹角来计算文档的相似度,是比较常用的算法。它的思想就是计算两个向量的夹角,如果两个向量夹角的cosine值越接近1,表明两个向量夹角越小,相似度越大;如果两个向量的相似性越小,则其cosine值越接近0[12],如图3-5所示。通过这个方法可以按照和比较文档之间的相似度进行方便的排序。例如,点A(x1,y1)代表要比较的主文档,点B(x2,y2),C(x3,y3),D(x4,y4),E(x5,y5)代表和A相比较的文档,我们依次将BCDE和A进行cosine角的计算(cosinesimilarity)如式(3-1),这样的操作可以扩充到集合内的所有文档的比较。图3-5Cosine角的计算(3-1)3.3.2文档的相似匹配计算每个文档可以作为一个向量,向量的维数是特征集项的个数(在本论文中,特征集就是文档的关键字),向量的每个分量是特征集在文档中出现的次数[8]。现具体定义如下:假设文档集D={di},|D|=S,(|D|表示集合D中元素的个数),其特征项集T={tj},|T|=M。定义特征项tj在文档di中的权重如式(3-2)所示。(3-2)TFij为特征项tj在文档di中出现的频率;IDFj是文档集D中特征项tj的逆文本频率指数。现在建立文档的向量模型,以t1,t2…tM为坐标轴,把文档di表示为M维向量(wi1,wi2,…wiM),文档di和文档dj之间的相似度Sim(di,dj)可以表示为公式(3-3)。(3-3)为了比较用户的兴趣模型和文档的相似度,我们将建立和文档向量类似的用户兴趣向量U。通过计算ui(用户i的兴趣向量)和di(文档i的特征向量)的cosine值来计算其相似度。现定义u和d的格式为:ui=word1<weight1>word2<weight2>…wordn<weightn>di=word1<weight1>word2<weight2>…wordm<weightm>3.4用户兴趣模型的完善本系统的一个核心就是建立用户的兴趣模型,该模型的好坏直接影响到匹配的效果和用户体验。在此,本文主要从三个方向来完善用户的兴趣模型,其详细介绍如下。(1)兴趣模型的初始化。当用户初次注册系统时,我们并不能很好的获得有关用户的兴趣信息,因此无法建立比较完善的兴趣模型。为了弥补这样的缺陷,结合系统词典中统计的数据,在本系统中,我们抽取比较热门的系统关键词作为用户的兴趣关键词,但是考虑到用户兴趣模型的个性化和不断变化发展的趋势,现规定热门关键词的权值设为一个容易改变但是同时可以反映该词特征的权重,这里暂定其为1(可根据实验效果而改变)。兴趣模型的初始化流程如图3-6所示。图3-6兴趣模型初始化流程(2)兴趣模型的自动完善。兴趣模型的自动完善可以从多个方面进行,可以记录用户的操作行为并分析,对于浏览时间长的文章提取其主要关键词,并设置一个规定的权重,将其附加到用户的兴趣模型;对用户新添加的频道进行分析,对该频道内Item中的摘要信息进行主要关键词提取,设置一个较低的权重并附加到用户兴趣模型;在向用户推荐文章的时候,对每篇文章提供一个用户评价接口,使用户可以直接对系统为自己的正确推荐做出反馈,并对正确推荐的文章提取关键词并赋予较高权重,附加到用户兴趣模型。详细算法如图3-7所示。图3-7更新用户兴趣模型详细算法其流程为:i.关键词集合排序ii.关键词权重计算iii.关键词更新iv.保存至数据库(3)兴趣模型的手动设置系统自动完善用户兴趣模型的过程具有渐变性和非偶然性,即用户模型在短时间内并不能发生根本性的改变,其改变多是来自用户对模型日积月累的微小影响。如果用户需要其兴趣模型在短时间内发生较大的改变,那么仅仅依靠兴趣模型的自动完善并不能满足要求。为了解决这个问题,本系统引入了手动设置用户模型的接口,这样用户可以自行添加或者更改其兴趣模型中的关键词和权重,增加了系统的灵活性。详细算法如图3-8所示。图3-8向用户兴趣模型中插入特征值的详细算法其流程为:i.初始化词典ii.将新词插入词典iii.对用户兴趣模型中的关键词排序iv.判断需要保存的关键词v.保存至用户兴趣模型3.5本章小结针对中文分词的复杂性,本论文引入了中科院的ICTCLAS分词程序。介绍了改分词程序的核心分词算法机械分词法。在ICTCLAS的分词系统章节,介绍了系统中的关键模块数据保存格式、词典类的结构,以及对所需要处理的词汇的词性进行了解释。介绍了TF和IDF的概念以及本论文采用的关键词提取算法;因为文档向量相似度计算的需要,引入了系统词典,词典的作用就是便于统计词汇频率并对词汇进行排序对比,并介绍了系统词典的作用和设计方法;在相似度计算章节讨论了通过文本向量的Cosine夹角来计算文档的相似度算法,并将用户兴趣模型以文档向量来表示应用到该算法最后,针对用户兴趣模型的维护和实际需要,提出了兴趣模型初始化、兴趣模型的自动维护、兴趣模型的手动维护三种方式,详细介绍了其中自动维护和手动维护两种方式的算法。
第4章系统的设计和实现4.1系统的功能需求在快节奏的现代生活中,面对浩如烟海的互联网信息,快速、高效、全面地获取最新咨询,把握时代先机,成了各类人士的普遍需求。在互联网上,该类产品中具有代表性的主要有抓虾、鲜果、GoogleReader、周伯通RSS阅读器等。其主要特点是提供大量服务频道供用户订阅,内容涉及新闻、博客、视频等诸多领域。然而这些产品虽然用户众多,但其分类繁琐、来源复杂、更新缓慢(对于即时新闻),达不到信息及时、全面、高效的要求。而专业新闻类用户对这方面的要求又非常迫切。同时,这些系统的设计都是基于用户添加RSS订阅,系统根据用户的订阅按时更新数据,对于所有的用户提供的都是千篇一律的服务。面对大量的数据,用户必须要花费相对很长的时间去查找自己感兴趣的新闻和订阅,RSS阅读器运营商仅仅是一味的推送所有的订阅信息。对于服务商和用户来说,这样的行为都是比较浪费资源的,因为服务商要存储大量的数据和消耗大量的计算资源,而用户要浪费很多的时间并且得不到较好的用户体验。为改进了以上现有系统的不足,现定义该系统的需求功能如下:(1)用户信息维护功能需求 i.新用户注册(用户名、密码、密码确认、性别、职业、年龄) ii.用户个人信息和兴趣模型中关键词其权重值的查看 iii.用户密码的修改(2)数据源维护功能需求 i.添加、删除订阅频道 ii.添加、删除、修改频道所属分组 iii.计算统计各个频道的更新频率,和下次更新时间 v.手动更新某频道,按照指定算法自动更新所有频道(3)个性化信息服务方面功能需求 i.初始化用户的兴趣模型 ii.手动修改用户兴趣模型中的关键词和权重 iii.系统根据用户的操作记录自动维护用户的兴趣模型 iv.安装频道名称、文章标题、内容、发布日期、截止日期进行检索;对于信息查看页,提供无刷新即时显示检索。 v.统计用户订阅频道的信息和阅读情况,包括:订阅频道总数,频道包含文章总数,阅读文章数,尚未阅读文章数,整体阅读比例,各个频道的文章数和阅读比例 vi.根据用户兴趣模型,向用户推荐用户可能感兴趣的文章 vii.用户评价系统推荐的文章,反馈给系统以改进该用户的兴趣模型 viii.按照阅读比例和时间限制用户设定对过时信息的操作(删除),显示系统下次对订阅信息的操作时间。(4)用户界面功能需求 i.采用网页浏览器作为查看工具 ii.操作简便,使用户点击次数尽可能少而完成的功能尽可能的多 iii.使用AJAX无刷新机制,增强用户体验效果 v.色彩搭配合理,各种网页元素的显示和位置规范4.2系统的整体设计4.2.1系统框架结构设计本系统采用BS结构,之所以采用这样的结果是因为用户不需要为了订阅信息而付出额外的存储资源,有利于系统对用户兴趣模型的维护。RSS订阅服务器可以分为三大服务模块。(1)Web服务器,直接面向客户,为客户呈现订阅的数据和提供界面的操作服务;(2)应用程序服务器,负责与网络上的其他RSS服务商取得联系并获取RSS资源,整理数据,在数据库服务器和Web服务器之间建立联系;(3)数据库服务器,负责存储数据。其结构如图4-1所示。
图4-1系统架构图4.2.2系统逻辑结构设计系统的整个逻辑架构如图4-2。RSS源为网络上RSS订阅内容的提供商,每个用户可以同时订阅多个RSS数据源,一个数据源可以同时被不同的用户订阅。数据处理器主要的功能根据已经设定好的规范配合信息抓取器来获得新的RSS数据。信息抓取器的任务就是完成从网上下载RSS频道,并对频道进行解析,转换为本系统适用的格式并保存。更新监视器的任务是监视数据库中的RSS订阅,并针对不同的订阅按照不同的更新方案控制信息抓取器进行RSS新信息的拉取。数据呈现即数据和用户的交互界面。用户操作并不是一个实体,是联系用户兴趣模型维护器和用户之间的一个桥梁。兴趣模型维护器的任务是维护用户的兴趣模型,直接控制每个用户兴趣向量。各个模块的详细算法和操作在本文后面将给出详细介绍。图4-2系统逻辑结构图4.3具体模块的设计在本节中,将针对信息抓取模块、信息处理模块、相似度计算的主要算法、兴趣模型的维护模块给出详细介绍。4.3.1信息抓取模块的设计本系统采用开源的RSS.Net作为主要的RSS解析器,可以完成RSS0.9、0.91、0.92、1.0、2.0的解析。处理后的RSS规范请参阅章节3.1的介绍。RSS信息抓取器主要配合数据处理器和更新监视器进行工作,完成下载、解析不同格式、格式转换、预测并更新下次下载时间。其主要流程图如图4-3。频道内容被下载下来后,经过处理得到规范格式的Channel类型传送给下一个处理单元。下载模块的主要类成员为Collector类。下面为类Collector的介绍:属性: ChannelID:需要更新的频道列表,保存期ID值,集合类型。 Channels:更新后的频道,集合类型。 URLS:要更新频道的URL,集合类型。图4-3信息抓取模块流程图图4-4Collctor类结构图方法:CollectChannel:完成频道的下载和转换。Collector:构造函数。CollectRssFeeds:完成频道的下载。4.3.2信息处理模块的设计信息处理模块的主要功能为截取过长信息,对于要求向量化的Description内容进行HTML标记的清除,去掉多余的空白符号,替换网页标记,去掉空行,进行汉字的繁简转换等等操作,其流程如图4-5。图4-5信息处理模块流程图 该模块内两个关键类CheckString和TextAndVector的说明。图4-6CheckString类结构图CheckString类的主要工作是对字符串的检查和转换,其方法介绍如下。方法:Check:替换数据库敏感字符;CnChar2EnChar:将全角字符转换为半角字符;HtmlToText:预处理,去掉不必要的HTML信息。包括去掉所有HTML标记,去掉多余空白符号,替换英文字符,去掉空行,将多个连续空格替换成一个空格,去掉行首尾的空格;ToSimplifyString:将GB2312中的繁体字转换为简体字。图4-7TxtAndVector类结构图TextAndVector类的主要作用是对关键词、字符串、向量的操作,其具体方法介绍如下。方法:KeyWordsToString:将集合类型的关键词转换为字符串向量;StringToKeyWords:将字符串类型的向量转换为集合类型的关键词;StringToKeyWordsValue:将字符串类型的向量转换为具有完整属性的关键词集合;StringToKeyWordsValuetb:将字符串类型的向量转换为具有完整属性的关键表;TextToVector:将字符串转换为字符串向量。对Item中关键词的提取和对文档的向量化需要的类和关键算法如图4-10,在图4-10中myseg的定义语句为:WordSegmentsmyseg=newWordSegments(DictPath,2);其中WordSegments类的定义为如图4-9。图4-9WordSegments类结构图图4-10关键词提取算法该类的主要功能是提供分词。器属性和方法介绍如下:属性: nKind:在NShortPath方法中用来决定初步切分时分成几种结果。方法: WordSegments:构造函数,在没有指明nKind的情况下,nKind取1; Segment:分词主方法。4.3.3相似度计算模块的设计用户兴趣模型向量和文本特征向量的相似度计算是个性化服务的重要组成部分,其计算结果是向用户进行信息推荐的关键参考值。图4-11为相似度计算模块用到的主要类,图4-12详细描述了相似度计算算法的流程。图4-11PersonalityCalc类结构图PersonalityCalc类的主要功能就是完成向量间相似度的计算。包含如下方法: CalcSimilarity:被重载四次,根据不同的传入参数,进行不同的计算,该函数是相似度计算的主要函数。 Split:完成字符串转换为List<KeyWord>的功能,其输入格式为字符串向量,详细请参见4.3.2章节。4.3.4兴趣模型维护模块的设计在本文前面详细介绍了兴趣模型的维护方法,主要包括初始化、自动维护、手动维护三种方法,其各个方法的详细算法请参考章节4.3。图4-13是在整个环境中三种方法操作的流程图。图4-12相似度计算算法图4-13兴趣模型维护流程图该流程的主要过程为:(1)判断所要采取的模型维护方法;(2)采用选择的方法获得一个新的特征向量;(3)将该特征向量附加到用户的兴趣模型。(4)保存至数据库4.4数据层的设计本系统的数据库包含表:Catalog、Category、Channel、dictionary、Items、Job、Users。其中主表的关系如图4-14。图4-14数据库主表ER图下面是各表的详细说明:表4-1用户信息表(Users)字段名数据类型允许空约束备注UIDintNPK用户IDNamevarchar(50)NUNIQUE用户名Passwordvarchar(50)N密码GenderbitY性别BirthdaydatetimeY出生日期JobIDintYFK–Job-JID工作类型外键Vectornchar(2000)Y用户兴趣向量DelPChntinyintY最低删除比例DelChnsmallintY删除比例DelRItemsmaillintYItem删除比例DelURItemsmaillintY未读Item比例表4-2RSS频道表(Items)字段名数据类型允许空约束备注ChIDintNPK频道IDCURLvarchar(200)N频道的xml地址UIDintNFK-Users-UID用户IDCtIDintNFK-Category-CtID所属分类IDMyTitlevarchar(200)N自定义标题Titlevarchar(200)N频道名字Linkvarchar(200)N频道链接Descriptionvarchar(500)Y频道描述PubDatedatetimeY发布时间TtlintY生命期LastUpdateTimedatetimeN上次更新时间CopyRightvarchar(200)Y版权所有表4-3目录表(Catelog)字段名数据类型允许空值约束备注CIDintNPK目录编号UIDintNFK-Users-UID归属用户的ID外键FatherIDintNFK-Catelog-CID父级目录ID外键Namevarchar(100)N目录名字Discriptionvarchar(200)Y目录项的描述TotalCountintN子目录项计数ReadedCountintN已读项的数量TypetinyintY是否为叶子节点表4-4频道项Item表(Items)字段名数据类型允许空值约束备注IIDintNPKItem的IDChIDintNFK-Channel-ChID所属频道IDTitlevarchar(200)NItem标题Linkvarchar(300)N链接Authorvarchar(100)Y作者Descriptionvarchar(8000)N摘要内容PubDatedatetimeY发布时间Commentsvarchar(300)Y评论URLHasReadedBooleanN是否已经阅读Guidvarchar(300)NItem唯一标识Vectornchar(2000)N文章特征值向量FlagbitY标记WeightfloatN文章权重4.5界面设计4.5.1设计原则根据用户心理学和认知科学,提出如下四个基本原则用以指导人机界面交互设计[13]。(1)一致性原则:即从任务、信息的表达、界面控制操作、色彩搭配等方面与用户理解熟悉的模式尽量保持一致。(2)兼容性:在用户期望和界面设计的现实之间要兼容,要基于用户以前的经验。例如按钮图片样式的规范设计以及按钮位置的选择。(3)适应性:用户应处于控制地位,因此界面应在多方面适应用户。使得用户在使用本系统时能够顺利舒畅的进行日常操作。(4)结构性:减少页面复杂度,使用户可以一目了然的知道该如何去操作就可以简便的达到目的。4.5.2设计实例(1)各个网页的导航栏:从左至右,依次显示用户尚未阅读的订阅和总订阅文章数,网站各个网页的链接按钮,滚动的及时新闻,当天和第二天的天气情况。这些设计都可以使用户很直观的进行操作,如图4-15所示。图4-15网站模板头样式(2)个人主页:用以显示和阅读所有个人的订阅信息。该页面基于AJAX无刷新技术,使得用户在切换频道时能够流畅的显示新的信息,给用户以较舒适的体验(图4-16)。图4-16新闻阅读主页样式(3)检索界面设计如图4-17,4-18所示。考虑到RSS新闻的简短性,将检索结果设计为滑动窗口的模式,这样用户在得到检索结果之后,不需要点击链接进入新的界面去阅读,可以直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PB-22-5-Hydroxyquinoline-isomer-生命科学试剂-MCE-7761
- 1-Boc-4-carboxymethyl-piperazine-生命科学试剂-MCE-6310
- 2025年度公共停车场车位使用权抵押合同范例
- 二零二五年度离婚后小孩抚养费及生活费用监管协议
- 二零二五年度早餐车餐饮合作经营协议
- 施工现场施工排水排泥管理制度
- 施工现场施工防地震灾害制度
- 教育领域中的学生心理健康研究
- 小学数学新课程教学法复习题课件
- DB6103T 34-2025奶山羊选种选配技术规范
- 中国储备粮管理集团有限公司兰州分公司招聘笔试真题2024
- 第1课 隋朝统一与灭亡 课件(26张)2024-2025学年部编版七年级历史下册
- 提高金刚砂地坪施工一次合格率
- 【历史】唐朝建立与“贞观之治”课件-2024-2025学年统编版七年级历史下册
- 产业园区招商合作协议书
- 2025新译林版英语七年级下单词默写表
- 盾构标准化施工手册
- 天然气脱硫完整版本
- 中欧班列课件
- 2025届高三数学一轮复习备考经验交流
- 人教版八级物理下册知识点结
评论
0/150
提交评论