


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Google搜索路径的课程信息垂直搜索引擎
【摘要】课程信息垂直搜索引擎,即在课程信息这个特定的领域里,让用户能搜索到最精准最全面的结果。本文利用Google发现“学校-学院-教师-课程”路径,利用HTMLParser进行基于WEB页面结构的课程元数据信息抽取。为了做到信息的最准确,为每个学校的每个学院都编写了包装器(解析页面并将得到的元数据内容的抽取器)。在精确的课程领域元数据信息支持下,本搜索引擎支持简单检索、元数据高级检索、导航等综合的检索功能。关键词:垂直搜索;搜索路径;元数据抽取;包装器AbstractThispaperproposesaVerticalSearchEngineaimingtoprovidethemostaccurateandcomprehensiveresultsinthespecificfieldofcourseinformation.AfterfindingsearchpathsbyGoogleaccordingtotheorder"university-school-teacher-Course",weuseHTMLParsertoextractmetadatainformationbasedonwebpagestructures.Differentwrappers(analyzingwebpagesandextractingmetadatainformation)fordifferentschoolsarewrittenforthesakeofaccuracy.Bythesupportofprecisemetadatainformation,thissearchenginesupportsintegratedsearchfunctions,suchassimpleretrieval,metadataadvancedsearch,andnavigation.Keywords:verticalsearch;searchingpath;metadataextraction;wrapper1.引言随着因特网(Internet)和万维网(WorldWideWeb)技术的发展,全球共享学习资料和知识使得传统意义上的教育向远程教育和自主学习转变,这就需要提供对学习资源的全球共享和在线访问,需要为资源的拥有者提供学习资料发布和共享的支持,需要为学习者提供获取知识的有效手段。但是,由于因特网具有较大的自由性,教课老师可以按照任意形式在因特网上发布其与课程有关的信息;没有固定、标准的信息发布格式,且信息发布主要注重视觉效果,缺少语义信息;信息源变化频繁,信息源的和产生没有规律性。因此,如何在海量的、多变的、缺乏固定格式的因特网学习资源中查找需要的课程信息,并将这些信息快速而准确地抽取出来、进行有效的整合并提供高质量的服务,具有重大的科研价值和现实意义。课程信息垂直搜索引擎,通过对课程网页的元数据信息进行自动提取和结构化的组织,使用户通过关键字搜索能得到最全面最精准的学习资源,为高校教师、学生等教育领域用户提供更好的服务。目前国外比较成功的垂直搜索引擎包括:专门提供法律信息的LawCrawler();专门提供家居信息检索服务BuildingOnline()等等。国内比较出名并且得到用户认可的垂直搜索引擎包括:生活信息搜索引擎酷讯(),面向商业的天网商搜(),电视精品节目搜索平台TV猫()以及面向餐饮的咕嘟妈咪()等等。构建垂直搜索引擎,“爬虫”(spiders)是不可缺少的部分。目前,为了获得特定领域内的相关信息,有两种流行的方法来确保爬虫抓取内容的相关性和质量:1.让爬虫只抓取特定的网域的内容。例如,在丰田汽车公司的网站中抓取到的信息必定是和汽车相关的;2.根据领域的特定需要来过滤抓取到的内容。例如,编写一个程序来过滤数量关键字没有达到一定数量的网页。目前有三种爬虫能分析基于内容/基于链接的网页,并把对这些网页的分析与图搜索算法相结合。1.广度优先搜索的爬虫(breadth-firstsearchspider)[1],按照图遍历算法BFS来工作。由于最重要的页面往往含有指向其他页面的大量链接,breadth-firstsearchspider在有效组织的网站中有很高的抓取效率和准确率。2.页面权重爬虫,结合了基于链接的分析与基于遍历的算法,采用了JunhooCho和他的实验室成员发明的算法[2]。3.HopfieldNetSpider,将Web看作为一个加权单层神经网络,然后利用包含激活扩散算法的爬虫来完成信息发现和检索的工作[3,4]。命名实体识别(NamedEntityRecognition,NE)作为信息抽取中的子任务,其主要目的是从文本中检测出专有名词并进行分类,如人名、地名、公司名、日期等。很多知名研究机构都致力这方面的研究,多个国际会议也举办了命名实体识别的评测活动,如MUC[5]、CoNLL[6]、ACE[7]、SIGHAN[8]等。就本文而言,实体“课程”包括以下属性:课程名称、学院、学校、教师、教师主页URL,课程链接以及课程简介。本文的NE识别方法为基于WEB页面结构分析的包装器。本文介绍了构建课程信息垂直搜索引擎的基本理论和实用方法。先利用Google按照“学校-学院-教师-课程”发现搜索路径,然后利用HTMLParser编写包装器进行基于WEB页面结构分析的课程元数据信息抽取。第2节介绍了本文的总体思路与核心算法,重点介绍了抓取网页的基类,并以卡耐基-梅隆大学的生态环境研究学院为例,具体叙述了专门为该学院编写的包装器。第3节评测了算法的查全率,查准率和F-度量,分析了本文算法的性能。第4节简单介绍了本文涉及的实现技术。最后,对本文的性能和扩展做了小结,指出了针对本文改进和发展的方向。2.1利用Google发现搜索路径课程的自然组织形式为从大学、学院、教师再到课程或者从大学、学院直接到课程。因此,本文利用GoogleAJAXSearchAPI以及Google的高级搜索语法按以下两种顺序之一来发现课程信息:(1)学校→学院→教师→课程(2)学校→学院→课程2.1.1GoogleAPI和高级搜索语法如图1所示,为本文设计的基于Google的路径发现页面有两个输入框,keyword和site。用户分别输入关键字后,利用GoogleAJAXSearchAPI,将site的值提交给GwebSearch.setSiteRestriction,将keyword的值提交给GwebSearch.execute,得到Google返回的搜索结果。由于本文只需要搜索路径,因此只显示和保存URL地址(result.unescapedUrl),通过XMLHTTPRequest发送给服务器,在服务器端保存需要的URL地址。Google的高级搜索语法[9]“inurl:someKeyword”,表示只搜索URL地址中含有“someKeyword”的页面。“-filetype:someType”,表示过滤文件类型为“someType”的结果。“intitle:someKeyword”,表示只搜索页面标题中含有“someKeyword”的页面。“key1ORkey2”表示搜索包含关键字“key1”或者“key2”的结果。图1基于GoogleAPI的页面Fig1PagebaseonGoogleAPI2.1.2搜索路径的发现步骤通过对各个学啊院的观察,可以发现以下两个重要规律:1.集中含有课程信息的页面URL地址中含有关键词“course”或者“courses”2.集中含有教师信息的页面URL地址中含有关键词“faculty”。基于以上两个规律,按以下步骤来发现搜索路径,其中(3)(4)的搜索结果以txt形式保存于服务器上,为包装器提供路径。(1)大学主页:在keyword中键入关键词<大学名称>“cmu”,site留空。第一个得到的结果即为/(2)学院地址:在keyword中键入关键词<学院名称+大学名称>“CivilandEnvironmentalcmu”,site留空。第一个结果即为/(3)课程信息页面:在keyword中键入关键词<inurl:courseORcourses-filetype:pdf>,表示搜索URL地址中含有course或者courses且文件类型不是pdf的结果,site中键入<(2)中获得的学院地址>“”。得到2007-course-list和2008-course-list的URL地址。(4)教师信息页面:在keyword中键入关键词<inurl:faculty-filetype:pdf>,表示搜索URL地址中含有faculty,且文件类型不是pdf的结果,site中键入<(2)中获得的学院地址>“”。得到falculty的URL地址。2.2WEB页面的分析和信息提取基于WEB页面结构分析的包装器利用Apache的开源项目——HTMLParser,使用的版本为1.6。HTMLParser是一个简单而功能强大的JavaHTML解析器库,可以分析和处理WEB文档的内容,包括一些通用的服务器端标签。2.2.1基类:Extractor.java基类主要包括三个函数:(1)insert(),向Lucene的索引插入课程信息的函数(2)count(),统计Lucene的索引收录的项(document)的数目,以便看出一次运行添加了多少个课程(3)getDescription(Stringurl),通过分析指定link在ScheduleOfClasses的WEB页面结构来获得课程简介,算法伪代码见图2:(4)1.根据2.1获得的URL地址初始化HTMLParser的分析器parser,设置编码方式2.根据WEB页面结构选择适合的Filter,比如本页面要提取课程简介,则该节点必定含有关键词Description,因此选用StringFiltercoursefilter=newStringFilter("Description")3.NodeListnodelist=过滤得到的所有Description节点4.if(nodelist.size()==0){//dexcription不存在,相当于本页不存在,因为只要页面存在就必定含有Description结点returnnull;//说明本URL地址的页面不存在}5.else(dexcription存在){重置HTMLParser的parser,根据WEB页面结构选择更加精确的filter//通过对页面的源码分析发现课程简介的源码组织方式都为//<P><fontsize="2"face="helvetica,arial">课程简介</font>//因此设置用AndFilter将filter设置为必须同时满足三个条件AndFilterandfilter=结点名为<font>+有父结点<p>+有size=2的属性nodelist=过滤得到的符合andfilter的所有节点foreach(符合条件的节点)if(长度(String.length)大于50){//课程简介长度字数必大于50,过滤字数小于50的节点returndes;}图2getDexcription()函数伪代码Fig2pseudocodeoffunctiongetDescription()1.初始化teacherList,数据,类型为ArrayList2.根据WEB页面结构选择filter,教师名的结点形式为<strong>教师名</strong>,因此选用含有strong属性的TagNameFilterfilter=newTagNameFilter("strong")3.NodeListnodelist=过滤得到的所有<strong>节点4.foreach(节点)Stringtemp=<strong>节点的firstChildif(temp是教师名字,要过滤掉不以字母开头的节点){if(有教师主页信息){teacher=temp;//提取教师姓名元数据teacherHome=prefix+firstname+后缀.htm;//提取教师主页地址元数据}else(没有教师主页信息){教师主页地址默认为prefix,不为teacherHome赋值teacher=temp;//提取教师姓名元数据}将提取到的该名教师的信息加入到teacherList中去图3getTeachers()函数伪代码Fig3pseudocodeoffunctiongetTeachers()(2)getCourses(Stringpage,Stringsuffix),通过分析page的页面结构获得课程名称以及教授该门课程的教师的FirstName,然后在teacherList中查找教师的全名及教师主页。对每一个课程,调用基类的getDescription()获得课程简介。当课程的所有信息都取到值后,调用基类的insert()函数,将该课程插入到索引中去。算法伪代码见图4:2.2.3索引维护类抽取WEB页面数据并将写入Lucene的索引之后,为了提高精度和准度,编写了索引维护类。遍历索引,DeleteRepeated删除name和url两个值都相等的项;SelectRealOnesForCMU根据卡耐基梅隆大学课程编号的统一形式,用正则匹配[0-9]{2}-[0-9]{3},(即判断索引中的name域的值是否以“两个数字”+“-”+“三个数字”开头),如果不是,说明不是卡耐基梅隆大学课程的索引项,删除该项。1.调用setInfor()函数,设置了每一门课程的公共信息,本例为学校和学院2.初始化HTMLParser的分析器parser,并设置编码方式3.分析WEB页面结构来选择合适的filter,课程编号均含有12-,因此选用StringFiltercourseFilter=newStringFilter("12-");4.NodeListnodelist=过滤得到的所有课程编号节点;5.foreach(课程编号节点)提取元数据课程名称=课程编号节点+“”+课程名节点;提取元数据教师firstname=课程编号节点之后的nextSlibing节点,即教师firstname节点;教师名=根据firstname在teacherList中查找得到的教师全名;教师主页=根据firstname在teacherList中查找得到的教师主页;提取元数据课程链接=prefix+课程编号(不带“-”)+suffix;提取元数据课程简介=getDescription(课程链接);调用基类中的函数将抓取到的课程信息插入Lucene的索引图4getCourses()函数伪代码Fig4pseudocodeoffunctiongetCourses()3.算法性能以卡耐基-梅隆大学的三个学院为例,来分析本系统算法的查全率P(Precision),F度量(F-measure)。F度量让用户在查全率和查准率上求得平衡。我们认为垂直搜索应该给用户提供准确的信息,因此查准率的重要性大于查全率。据此,选择查准率和查全率的重要程度值=0.5,代表P的重要程度是R的2倍。图5为F度量柱状图的比较。表1为R,P,F具体的值。从图5可以看出,由于本文利用HTMLParser进行基于WEB页面结构的课程元数据信息抽取,查准率很高,均接近100%,查全率均在95%以上。但是在“课程介绍”这个元数据项上,F度量明显低于其他域。分析其原因是课程介绍比其他项在WEB页面上的结构有更多变化。表1中,元数据项学校和学院是预设的,因此不作为性能分析的参考项。第一行数据为CarnegieInstituteofTechnology(CIT,样本432),第二行数据为MellonCollegeofSciences(MCS,样本600,未提供教师信息),第三行数据为CollegeofFineArts(CFA,样本120)。表1查全率,查准率,F-度量的比较Tab.1ComparisonofRecall,Precision,F-measure4.系统实现本文的Model-View-Controller框架的实现基于Struts1.1。Struts是开发基于MVC模式的应用架构的经典开源框架,是利用JavaServlet和JSP构建Web应用的一项非常有用的技术。并且利用AjaxTags(AjaxTags项目是在现有的StrutsHTML标记库的基础上,添加对Ajax支持)的autocomplete实现类似于GoogleSugget的即时搜索功能;利用dom4j通过对xml文件的读写实现实现“LatestKeywords”(最近搜索关键词)的功能。索引的建立和搜索基于Apache的开源项目——Lucene,使用的版本为2.2。Lucene是一个开放源代码的全文检索引擎工具包,即一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。本文查询的实现调用和扩展于Lucene的查询函数,如IndexSearcher的TermQuery词条搜索,QueryParser字串搜索,BooleanQuery布尔搜索等等。分词基于Lucene的中文分词软件—JE分词。本搜索引擎同时支持中文和英文搜索。图5各个学院的F度量Fig5F-measureofdifferentcolleges5.总结和展望本文提出了利用Google按照“学校-学院-教师-课程”发现搜索路径,然后利用HTMLParser编写包装器进行基于WEB页面结构分析的课程元数据信息抽取,从而建立课程信息垂直搜索引擎的实用方法。采用包装器的方法,对于不同的信息源都需要编写不同的包装器。作者将研究采用适用性更好的HMM、CRF等统计模型的元数据算法。并且将利用WEB2.0的各项技术继续探索实时垂直搜索的概念和实现,运用Ajax技术完善课程垂直搜索引擎。参考文献M.ChauandH.Chen.PersonalizedandFocusedWebSpiders.In:Zhong,N.,Liu,J.,YaoY.(eds):WebIntelligence.Springer-Verlag(2003)197-217.M.NajorkandJ.L.Wiener,“Breadth-FirstSearchCrawlingYieldsHigh-QualityPages,”Proc.10thWWWConf.,2001;/cdrom/papers/208/.J.Cho,H.Garcia-Molina,andL.Page,“EfficientCrawlingthroughURLOrdering,”Proc.7thWWWConf.,1998;.au/programme/fullpapers/1919/c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025试用期间劳动合同模板》
- 2025年山西信息职业技术学院高职单招(数学)历年真题考点含答案解析
- 2025年宜春职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年安徽机电职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 肺癌肺外症状护理学
- BIM理论知识课件
- 湖北黄冈应急管理职业技术学院《临床技能学一》2023-2024学年第二学期期末试卷
- 2025年山东省德州市武城二中高三下学期第一次高中毕业生复习统一测试生物试题试卷含解析
- 内蒙古能源职业学院《高级英语AⅢ》2023-2024学年第一学期期末试卷
- 闽江师范高等专科学校《法语语法与写作II》2023-2024学年第二学期期末试卷
- 宠物殡葬创新创业
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(801-900题)
- 2024年黑龙江出版集团招聘笔试真题
- 2024年4月27日浙江省事业单位招聘考试《职业能力倾向测验》真题及答案
- 【初中历史】辽宋夏金元时期经济的繁荣 课件 2024-2025学年统编版七年级历史下册
- 2025-2030中国橄榄球行业市场全景调研及投资价值评估咨询报告
- 砌体结构检测试题及答案
- DB32T 5061.1-2025 中小学生健康管理技术规范 第1部分:心理健康
- 2025年宁波职业技术学院单招职业倾向性测试题库审定版
- 2025年洛阳科技职业学院单招职业技能测试题库及答案(考点梳理)
- 二零二五年度商业地产租赁合同模板:详细条款与风险防范指南3篇
评论
0/150
提交评论