久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

基于 Google 搜索路徑的課程信息垂直搜索引擎

基于 Google 搜索路徑的課程信息垂直搜索引擎

畢業(yè)論文

【摘要】課程信息垂直搜索引擎,即在課程信息這個特定的領(lǐng)域里,讓用戶能搜索到最精準
最全面的結(jié)果。本文利用 Google 發(fā)現(xiàn)“學校-學院-教師-課程”路徑,利用 HTMLParser 進行
基于 WEB 頁面結(jié)構(gòu)的課程元數(shù)據(jù)信息抽取。為了做到信息的最準確,為每個學校的每個學 院都編寫了包裝器 (解析頁面并將得到的元數(shù)據(jù)內(nèi)容的抽取器)。在精確的課程領(lǐng)域元數(shù)據(jù) 信息支持下,本搜索引擎支持簡單檢索、元數(shù)據(jù)高級檢索、導(dǎo)航等綜合的檢索功能。 關(guān)鍵詞:垂直搜索;搜索路徑;元數(shù)據(jù)抽。话b器
1.引言
隨著因特網(wǎng)(Internet)和萬維網(wǎng)(World Wide Web)技術(shù)的發(fā)展,全球共享學習資料和 知識使得傳統(tǒng)意義上的教育向遠程教育和自主學習轉(zhuǎn)變,這就需要提供對學習資源的全球共 享和在線訪問,需要為資源的擁有者提供學習資料發(fā)布和共享的支持,需要為學習者提供獲 取知識的有效手段。
但是,由于因特網(wǎng)具有較大的自由性,教課老師可以按照任意形式在因特網(wǎng)上發(fā)布其與 課程有關(guān)的信息;沒有固定、標準的信息發(fā)布格式,且信息發(fā)布主要注重視覺效果,缺少語 義信息;信息源變化頻繁,信息源的和產(chǎn)生沒有規(guī)律性。因此,如何在海量的、多變的、缺 乏固定格式的因特網(wǎng)學習資源中查找需要的課程信息,并將這些信息快速而準確地抽取出 來、進行有效的整合并提供高質(zhì)量的服務(wù),具有重大的科研價值和現(xiàn)實意義。
課程信息垂直搜索引擎,通過對課程網(wǎng)頁的元數(shù)據(jù)信息進行自動提取和結(jié)構(gòu)化的組織, 使用戶通過關(guān)鍵字搜索能得到最全面最精準的.學習資源,為高校教師、學生等教育領(lǐng)域用戶 提供更好的服務(wù)。
目前國外比較成功的垂直搜索引擎包括:專門提供法律信息的 LawCrawler (www.lawcrawler.com);專門提供家居信息檢索服務(wù) BuildingOnline(www.buildingonline.com) 等等。國內(nèi)比較出名并且得到用戶認可的垂直搜索引擎包括:生活信息搜索引擎酷訊 (www.kooxoo.com),面向商業(yè)的天網(wǎng)商搜(sunsou.tianwang.com),電視精品節(jié)目搜索平臺 TV 貓(www.tvmao.com)以及面向餐飲的咕嘟媽咪(www.gudumami.cn)等等。
構(gòu)建垂直搜索引擎,“爬蟲”(spiders)是不可缺少的部分。目前,為了獲得特定領(lǐng)域內(nèi)的 相關(guān)信息,有兩種流行的方法來確保爬蟲抓取內(nèi)容的相關(guān)性和質(zhì)量:1. 讓爬蟲只抓取特定 的網(wǎng)域的內(nèi)容。例如,在豐田汽車公司的網(wǎng)站 www.toyota.com 中抓取到的信息必定是和汽 車相關(guān)的;2. 根據(jù)領(lǐng)域的特定需要來過濾抓取到的內(nèi)容。例如,編寫1個程序來過濾數(shù)量 關(guān)鍵字沒有達到1定數(shù)量的網(wǎng)頁。
目前有3種爬蟲能分析基于內(nèi)容/基于鏈接的網(wǎng)頁,并把對這些網(wǎng)頁的分析與圖搜索算 法相結(jié)合。1. 廣度優(yōu)先搜索的爬蟲(breadth-first search spider) [1],按照圖遍歷算法 BFS 來工 作。由于最重要的頁面往往含有指向其他頁面的大量鏈接,breadth-first search spider 在有效 組織的網(wǎng)站中有很高的抓取效率和準確率。2. 頁面權(quán)重爬蟲,結(jié)合了基于鏈接的分析與基
于遍歷的算法,采用了 Junhoo Cho 和他的實驗室成員發(fā)明的算法[2]。3. Hopfield Net Spider,
將 Web 看作為1個加權(quán)單層神經(jīng)網(wǎng)絡(luò),然后利用包含激活擴散算法的爬蟲來完成信息發(fā)現(xiàn) 和檢索的工作[3,4]。
命名實體識別(Named Entity Recognition,NE)作為信息抽取中的子任務(wù),其主要目的 是從文本中檢測出專有名詞并進行分類,如人名、地名、公司名、日期等。很多知名研究機 構(gòu)都致力這方面的研究,多個國際會議也舉辦了命名實體識別的評測活動,如 MUC[5]、 CoNLL[6]、ACE[7]、SIGHAN[8]等。
就本文而言,實體“課程”包括以下屬性:課程名稱、學院、學校、教師、教師主頁 URL, 課程鏈接以及課程簡介。本文的 NE 識別方法為基于 WEB 頁面結(jié)構(gòu)分析的包裝器。
本文介紹了構(gòu)建課程信息垂直搜索引擎的基本理論和實用方法。先利用 Google 按照“學
校-學院-教師-課程”發(fā)現(xiàn)搜索路徑,然后利用 HTMLParser 編寫包裝器進行基于 WEB 頁面結(jié) 構(gòu)分析的課程元數(shù)據(jù)信息抽取。
第 2 節(jié)介紹了本文的總體思路與核心算法,重點介紹了抓取網(wǎng)頁的基類,并以卡耐基-
梅隆大學的生態(tài)環(huán)境研究學院為例,具體敘述了專門為該學院編寫的包裝器。
第 3 節(jié)評測了算法的查全率,查準率和 F-度量,分析了本文算法的性能。 第 4 節(jié)簡單介紹了本文涉及的實現(xiàn)技術(shù)。
最后,對本文的性能和擴展做了小結(jié),指出了針對本文改進和發(fā)展的方向。
2.1 利用 Google 發(fā)現(xiàn)搜索路徑
課程的自然組織形式為從大學、學院、教師再到課程或者從大學、學院直接到課程。因 此,本文利用 Google AJAX Search API 以及 Google 的高級搜索語法按以下兩種順序之1來 發(fā)現(xiàn)課程信息:
(1) 學校→學院→教師→課程
(2) 學!鷮W院→課程
2.1.1 Google API 和高級搜索語法
如圖 1 所示,為本文設(shè)計的基于 Google 的路徑發(fā)現(xiàn)頁面有兩個輸入框,keyword 和 site。
用戶分別輸入關(guān)鍵字后,利用 Google AJAX Search API ,將 site 的 值 提交給 GwebSearch.setSiteRestriction,將 keyword 的值提交給 GwebSearch.execute,得到 Google 返 回的搜索結(jié)果。由于本文只需要搜索路徑,因此只顯示和保存 URL 地址(result.unescapedUrl), 通過 XMLHTTPRequest 發(fā)送給服務(wù)器,在服務(wù)器端保存需要的 URL 地址。
Google 的 高級搜索語 法 [9]“inurl:someKeyword” , 表 示只搜 索 URL 地址中含 有
“someKeyword”的頁面!-filetype:someType ”,表示過濾文件類型為“someType”的結(jié)果。
“intitle:someKeyword”, 表示只搜索頁面標題中含有“someKeyword”的頁面!発ey1 OR key2”
表示搜索包含關(guān)鍵字“key1”或者“key2”的結(jié)果。 
 
圖 1 基于 Google API 的頁面
Fig1 Page base on Google API

[NextPage]

2.1.2 搜索路徑的發(fā)現(xiàn)步驟
通過對各個學啊院的觀察,可以發(fā)現(xiàn)以下兩個重要規(guī)律:1.集中含有課程信息的頁面 URL 地址中含有關(guān)鍵詞“course”或者“courses” 2.集中含有教師信息的頁面 URL 地址中含有關(guān)鍵 詞“faculty”;谝陨蟽蓚規(guī)律,按以下步驟來發(fā)現(xiàn)搜索路徑,其中(3)(4)的搜索結(jié)果以 txt 形式保存于服務(wù)器上,為包裝器提供路徑。
(1) 大學主頁:在 keyword 中鍵入關(guān)鍵詞<大學名稱>“cmu”,site 留空。第1個得到的 結(jié)果即為 http://www.cmu.edu/
(2) 學院地址:在 keyword 中鍵入關(guān)鍵詞<學院名稱+大學名稱>“Civil and Environmental cmu”,site 留空。第1個結(jié)果即為 http://www.ce.cmu.edu/
(3) 課程信息頁面:在 keyword 中鍵入關(guān)鍵詞<inurl:course OR courses -filetype:pdf>,表 示搜索 URL 地址中含有 course 或者 courses 且文件類型不是 pdf 的結(jié)果,site 中鍵入<(2)中 獲得的學院地址>“www.ce.cmu.edu”。得到 2007-course-list 和 2008-course-list 的 URL 地址。
(4) 教師信息頁面:在 keyword 中鍵入關(guān)鍵詞 <inurl:faculty -filetype:pdf>,表示搜索 URL 地址中含有 faculty,且文件類型不是 pdf 的結(jié)果,site 中鍵入<(2)中獲得的學院地址> “www.ce.cmu.edu”。得到 falculty 的 URL 地址。
2.2 WEB 頁面的分析和信息提取
基于 WEB 頁面結(jié)構(gòu)分析的包裝器利用 Apache 的開源項目——HTMLParser,使用的版 本為 1.6。HTMLParser 是1個簡單而功能強大的 Java HTML 解析器庫,可以分析和處理 WEB 文檔的內(nèi)容,包括1些通用的服務(wù)器端標簽。
2.2.1 基類:Extractor.java
基類主要包括3個函數(shù):
(1) insert(),向 Lucene 的索引插入課程信息的函數(shù)
(2) count(),統(tǒng)計 Lucene 的索引收錄的項(document)的數(shù)目,以便看出1次運行添加了 多少個課程
(3) getDescription(String url),通過分析指定 link 在 Schedule Of Classes 的 WEB 頁面結(jié)
構(gòu)來獲得課程簡介,算法偽代碼見圖 2:
(4)1. 根據(jù) 2.1 獲得的 URL 地址初始化 HTMLParser 的分析器 parser,設(shè)置編碼方式
2. 根據(jù) WEB 頁面結(jié)構(gòu)選擇適合的 Filter,比如本頁面要提取課程簡介,則該節(jié)點必定含有關(guān)鍵詞
Description,因此選用 StringFilter coursefilter = new StringFilter("Description")
3. NodeList nodelist =過濾得到的所有 Description 節(jié)點
4. if (nodelist.size() == 0) {
//dexcription 不存在,相當于本頁不存在,因為只要頁面存在就必定含有 Description 結(jié)點
return null; //說明本 URL 地址的頁面不存在}
5. else(dexcription 存在) {
重置 HTMLParser 的 parser,根據(jù) WEB 頁面結(jié)構(gòu)選擇更加精確的 filter
//通過對頁面的源碼分析發(fā)現(xiàn)課程簡介的源碼組織方式都為
//<P><font size="2" face="helvetica,arial">課程簡介</font>
//因此設(shè)置用 AndFilter 將 filter 設(shè)置為必須同時滿足3個條件
AndFilter andfilter =結(jié)點名為<font>+有父結(jié)點<p>+有 size=2 的屬性
nodelist = 過濾得到的符合 andfilter 的所有節(jié)點
foreach(符合條件的節(jié)點)
if (長度(String.length)大于 50) {
//課程簡介長度字數(shù)必大于 50,過濾字數(shù)小于 50 的節(jié)點
return des; }
圖 2 getDexcription()函數(shù)偽代碼
Fig2 pseudocode of function getDescription()
2.2.2 學院包裝器類
CivilAndEnvironmental.java 繼承(extends)于 Extractor.java 主要包括兩個函數(shù):
(1) getTeachers(),通過分析 WEB 頁面結(jié)構(gòu)獲得教師信息,并存儲于 teacherList,
偽代碼見圖 3:

1.  初始化 teacherList,數(shù)據(jù),類型為 ArrayList

2.  根據(jù) WEB 頁面結(jié)構(gòu)選擇 filter,教師名的結(jié)點形式為< strong >教師名< /strong >,因此選用含有 strong

屬性的 TagNameFilter filter = new TagNameFilter("strong")

3. NodeList nodelist =過濾得到的所有<strong>節(jié)點

4. foreach(節(jié)點)

String temp=<strong>節(jié)點的 firstChild

if (temp 是教師名字,要過濾掉不以字母開頭的節(jié)點) {

if(有教師主頁信息){

teacher = temp; //提取教師姓名元數(shù)據(jù)

teacherHome = prefix + first name +后綴.htm; //提取教師主頁地址元數(shù)據(jù)

} else(沒有教師主頁信息) {

教師主頁地址默認為 prefix,不為 teacherHome 賦值

teacher =temp; //提取教師姓名元數(shù)據(jù)}

將提取到的該名教師的信息加入到 teacherList 中去

圖 3 getTeachers()函數(shù)偽代碼
Fig3 pseudocode of function getTeachers()
(2) getCourses(String page, String suffix),通過分析 page 的頁面結(jié)構(gòu)獲得課程名稱以及
教授該門課程的教師的 First Name,然后在 teacherList 中查找教師的全名及教師主頁。對每
1個課程,調(diào)用基類的 getDescription()獲得課程簡介。當課程的所有信息都取到值后,調(diào)用 基類的 insert()函數(shù),將該課程插入到索引中去。算法偽代碼見圖 4:
2.2.3 索引維護類
抽取 WEB 頁面數(shù)據(jù)并將寫入 Lucene 的索引之后,為了提高精度和準度,編寫了索引
維護類。 遍歷索引 , DeleteRepeated 刪除 name 和 url 兩 個值都相 等的項;

[1]  

【基于 Google 搜索路徑的課程信息垂直搜索引擎】相關(guān)文章:

基于Google 搜索路徑的課程信息垂直搜索引擎09-01

垂直搜索引擎發(fā)展策略探討10-17

如何用url路徑優(yōu)化來吸引搜索引擎?10-18

Molecular Cell:類似Google的蛋白功能搜索引擎研究進展11-18

提高網(wǎng)站在Google中的排名-面向搜索引擎的網(wǎng)站設(shè)計10-06

基于信息技術(shù)的工程數(shù)學網(wǎng)絡(luò)課程建設(shè)的路徑構(gòu)論文06-15

WEB搜索引擎09-01

求職路徑大搜索02-24

搜索引擎使用技巧,高級搜索方法10-18