<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

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

            時間:2024-09-18 13:45:29 計算機網絡畢業論文 我要投稿
            • 相關推薦

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

            畢業論文

            【摘要】課程信息垂直搜索引擎,即在課程信息這個特定的領域里,讓用戶能搜索到最精準
            最全面的結果。本文利用 Google 發現“學校-學院-教師-課程”路徑,利用 HTMLParser 進行
            基于 WEB 頁面結構的課程元數據信息抽取。為了做到信息的最準確,為每個學校的每個學 院都編寫了包裝器 (解析頁面并將得到的元數據內容的抽取器)。在精確的課程領域元數據 信息支持下,本搜索引擎支持簡單檢索、元數據高級檢索、導航等綜合的檢索功能。 關鍵詞:垂直搜索;搜索路徑;元數據抽取;包裝器
            1.引言
            隨著因特網(Internet)和萬維網(World Wide Web)技術的發展,全球共享學習資料和 知識使得傳統意義上的教育向遠程教育和自主學習轉變,這就需要提供對學習資源的全球共 享和在線訪問,需要為資源的擁有者提供學習資料發布和共享的支持,需要為學習者提供獲 取知識的有效手段。
            但是,由于因特網具有較大的自由性,教課老師可以按照任意形式在因特網上發布其與 課程有關的信息;沒有固定、標準的信息發布格式,且信息發布主要注重視覺效果,缺少語 義信息;信息源變化頻繁,信息源的和產生沒有規律性。因此,如何在海量的、多變的、缺 乏固定格式的因特網學習資源中查找需要的課程信息,并將這些信息快速而準確地抽取出 來、進行有效的整合并提供高質量的服務,具有重大的科研價值和現實意義。
            課程信息垂直搜索引擎,通過對課程網頁的元數據信息進行自動提取和結構化的組織, 使用戶通過關鍵字搜索能得到最全面最精準的學習資源,為高校教師、學生等教育領域用戶 提供更好的服務。
            目前國外比較成功的垂直搜索引擎包括:專門提供法律信息的 LawCrawler (www.lawcrawler.com);專門提供家居信息檢索服務 BuildingOnline(www.buildingonline.com) 等等。國內比較出名并且得到用戶認可的垂直搜索引擎包括:生活信息搜索引擎酷訊 (www.kooxoo.com),面向商業的天網商搜(sunsou.tianwang.com),電視精品節目搜索平臺 TV 貓(www.tvmao.com)以及面向餐飲的咕嘟媽咪(www.gudumami.cn)等等。
            構建垂直搜索引擎,“爬蟲”(spiders)是不可缺少的部分。目前,為了獲得特定領域內的 相關信息,有兩種流行的方法來確保爬蟲抓取內容的相關性和質量:1. 讓爬蟲只抓取特定 的網域的內容。例如,在豐田汽車公司的網站 www.toyota.com 中抓取到的信息必定是和汽 車相關的;2. 根據領域的特定需要來過濾抓取到的內容。例如,編寫1個程序來過濾數量 關鍵字沒有達到1定數量的網頁。
            目前有3種爬蟲能分析基于內容/基于鏈接的網頁,并把對這些網頁的分析與圖搜索算 法相結合。1. 廣度優先搜索的爬蟲(breadth-first search spider) [1],按照圖遍歷算法 BFS 來工 作。由于最重要的頁面往往含有指向其他頁面的大量鏈接,breadth-first search spider 在有效 組織的網站中有很高的抓取效率和準確率。2. 頁面權重爬蟲,結合了基于鏈接的分析與基
            于遍歷的算法,采用了 Junhoo Cho 和他的實驗室成員發明的算法[2]。3. Hopfield Net Spider,
            將 Web 看作為1個加權單層神經網絡,然后利用包含激活擴散算法的爬蟲來完成信息發現 和檢索的工作[3,4]。
            命名實體識別(Named Entity Recognition,NE)作為信息抽取中的子任務,其主要目的 是從文本中檢測出專有名詞并進行分類,如人名、地名、公司名、日期等。很多知名研究機 構都致力這方面的研究,多個國際會議也舉辦了命名實體識別的評測活動,如 MUC[5]、 CoNLL[6]、ACE[7]、SIGHAN[8]等。
            就本文而言,實體“課程”包括以下屬性:課程名稱、學院、學校、教師、教師主頁 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

            [NextPage]

            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 中鍵入關鍵詞<inurl:course OR courses -filetype:pdf>,表 示搜索 URL 地址中含有 course 或者 courses 且文件類型不是 pdf 的結果,site 中鍵入<(2)中 獲得的學院地址>“www.ce.cmu.edu”。得到 2007-course-list 和 2008-course-list 的 URL 地址。
            (4) 教師信息頁面:在 keyword 中鍵入關鍵詞 <inurl:faculty -filetype:pdf>,表示搜索 URL 地址中含有 faculty,且文件類型不是 pdf 的結果,site 中鍵入<(2)中獲得的學院地址> “www.ce.cmu.edu”。得到 falculty 的 URL 地址。
            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 頁面結
            構來獲得課程簡介,算法偽代碼見圖 2:
            (4)1. 根據 2.1 獲得的 URL 地址初始化 HTMLParser 的分析器 parser,設置編碼方式
            2. 根據 WEB 頁面結構選擇適合的 Filter,比如本頁面要提取課程簡介,則該節點必定含有關鍵詞
            Description,因此選用 StringFilter coursefilter = new StringFilter("Description")
            3. NodeList nodelist =過濾得到的所有 Description 節點
            4. if (nodelist.size() == 0) {
            //dexcription 不存在,相當于本頁不存在,因為只要頁面存在就必定含有 Description 結點
            return null; //說明本 URL 地址的頁面不存在}
            5. else(dexcription 存在) {
            重置 HTMLParser 的 parser,根據 WEB 頁面結構選擇更加精確的 filter
            //通過對頁面的源碼分析發現課程簡介的源碼組織方式都為
            //<P><font size="2" face="helvetica,arial">課程簡介</font>
            //因此設置用 AndFilter 將 filter 設置為必須同時滿足3個條件
            AndFilter andfilter =結點名為<font>+有父結點<p>+有 size=2 的屬性
            nodelist = 過濾得到的符合 andfilter 的所有節點
            foreach(符合條件的節點)
            if (長度(String.length)大于 50) {
            //課程簡介長度字數必大于 50,過濾字數小于 50 的節點
            return des; }
            圖 2 getDexcription()函數偽代碼
            Fig2 pseudocode of function getDescription()
            2.2.2 學院包裝器類
            CivilAndEnvironmental.java 繼承(extends)于 Extractor.java 主要包括兩個函數:
            (1) getTeachers(),通過分析 WEB 頁面結構獲得教師信息,并存儲于 teacherList,
            偽代碼見圖 3:

            1.  初始化 teacherList,數據,類型為 ArrayList

            2.  根據 WEB 頁面結構選擇 filter,教師名的結點形式為< strong >教師名< /strong >,因此選用含有 strong

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

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

            4. foreach(節點)

            String temp=<strong>節點的 firstChild

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

            if(有教師主頁信息){

            teacher = temp; //提取教師姓名元數據

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

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

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

            teacher =temp; //提取教師姓名元數據}

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

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

            [1]  

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

            垂直搜索引擎發展策略探討03-21

            Web搜索引擎的智能搜索設計與實現03-08

            搜索引擎技術及趨勢11-21

            CPM搜索引擎的設計與實現03-08

            搜索引擎排名與電子商務搜索營銷分析03-21

            企業搜索引擎營銷分析03-24

            學術搜索引擎的優化策略11-29

            基于自編碼神經網絡建立的搜索信息模型03-11

            談搜索引擎優化的鏈接策略03-19

            淺談搜索引擎優化的鏈接策略03-22

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看