基于Google 搜索路径的课程信息垂直搜索引擎(第2页)
本文共计7493个字,预计阅读时长25分钟。【 字体:大 中 小 】
就本文而言,实体“课程”包括以下属性:课程名称、学院、学校、教师、教师主页 URL, 课程链接以及课程简介。本文的 NE 识别方法为基于 WEB 页面结构分析的包装器。
本文介绍了构建课程信息垂直搜索引擎的基本理论和实用方法。先利用 Google 按照“学
校-学院-教师-课程”发现搜索路径,然后利用 HTMLParser 编写包装器进行基于 WEB 页面结 构分析的课程元数据信息抽取。
第 2 节介绍了本文的总体思路与核心算法,重点介绍了抓取网页的基类,并以卡耐基-
梅隆大学的生态环境研究学院为例,具体叙述了专门为该学院编写的包装器。
第 3 节评测了算法的查全率,查准率和 F-度量,分析了本文算法的性能。 第 4 节简单介绍了本文涉及的实现技术。
最后,对本文的性能和扩展做了小结,指出了针对本文改进和发展的方向。
2.1 利用 Google 发现搜索路径
课程的`自然组织形式为从大学、学院、教师再到课程或者从大学、学院直接到课程。因 此,本文利用 Google AJAX Search API 以及 Google 的高级搜索语法按以下两种顺序之1来 发现课程信息:
(1) 学校→学院→教师→课程
(2) 学校→学院→课程
2.1.1 Google API 和高级搜索语法
如图 1 所示,为本文设计的基于 Google 的路径发现页面有两个输入框,keyword 和 site。
用户分别输入关键字后,利用 Google AJAX Search API ,将 site 的 值 提交给 GwebSearch.setSiteRestriction,将 keyword 的值提交给 GwebSearch.execute,得到 Google 返 回的搜索结果。由于本文只需要搜索路径,因此只显示和保存 URL 地址(result.unescapedUrl), 通过 XMLHTTPRequest 发送给服务器,在服务器端保存需要的 URL 地址。
Google 的 高级搜索语 法 [9]“inurl:someKeyword” , 表 示只搜 索 URL 地址中含 有
“someKeyword”的页面。“-filetype:someType ”,表示过滤文件类型为“someType”的结果。
“intitle:someKeyword”, 表示只搜索页面标题中含有“someKeyword”的页面。“key1 OR key2”
表示搜索包含关键字“key1”或者“key2”的结果。
图 1 基于 Google API 的页面
Fig1 Page base on Google API 2.1.2 搜索路径的发现步骤
通过对各个学啊院的观察,可以发现以下两个重要规律:1.集中含有课程信息的页面 URL 地址中含有关键词“course”或者“courses” 2.集中含有教师信息的页面 URL 地址中含有关键 词“faculty”。基于以上两个规律,按以下步骤来发现搜索路径,其中(3)(4)的搜索结果以 txt 形式保存于服务器上,为包装器提供路径。
(1) 大学主页:在 keyword 中键入关键词<大学名称>“cmu”,site 留空。第1个得到的 结果即为 http://www.cmu.edu/
(2) 学院地址:在 keyword 中键入关键词<学院名称+大学名称>“Civil and Environmental cmu”,site 留空。第1个结果即为 http://www.ce.cmu.edu/
(3) 课程信息页面:在 keyword 中键入关键词
(4) 教师信息页面:在 keyword 中键入关键词
2.2 WEB 页面的分析和信息提取
基于 WEB 页面结构分析的包装器利用 Apache 的开源项目——HTMLParser,使用的版 本为 1.6。HTMLParser 是1个简单而功能强大的 Java HTML 解析器库,可以分析和处理 WEB 文档的内容,包括1些通用的服务器端标签。
2.2.1 基类:Extractor.java
基类主要包括3个函数:
(1) insert(),向 Lucene 的索引插入课程信息的函数
(2) count(),统计 Lucene 的索引收录的项(document)的数目,以便看出1次运行添加了 多少个课程
(3) getDescription(String url),通过分析指定 link 在 Schedule Of Classes 的 WEB 页面结

