張云洋


摘 要: 通過分析藏文網站中藏文字符的編碼特點,結合搜索引擎的特點對藏文網頁搜索的關鍵技術進行了研究。對藏文網頁的URL處理技術、限定爬蟲、藏文網頁倒排索引的建立、網頁的檢索和結果排序等進行了詳細地闡述,提出了較完整的藏文網頁搜索方法,對于藏文網頁信息的搜索和利用有一定的實用價值。
關鍵詞: 藏文編碼; 搜索引擎; 倒排索引; 網頁爬蟲
中圖分類號:TP393.4 文獻標志碼:A 文章編號:1006-8228(2017)06-22-04
Research on key technologies of Tibetan web search
Zhang Yunyang
(Library of Tibet University, Lhasa, Tibet 850000, China)
Abstract: Through analyzing the characteristics of the Tibetan characters' coding in Tibetan website, and introducing the characteristics of the search engine, this paper studies the key technologies of Tibetan web search. The technologies of URL processing, the qualified crawler, inverted index, words' retrieval, sorting for results and the others for Tibetan web are discussed in detail. This paper proposes a relatively complete method for Tibetan web search, which has certain practical value for Tibetan web's information search and use.
Key words: Tibetan coding; search engine; inverted index; Web crawler
0 引言
藏族是我國民族大家庭的重要成員,藏語言文字是藏族同胞在日常工作/生活中廣泛使用的文字。幾千年以來,藏文字作為信息文化的傳播載體,對于傳承藏民族傳統文化、傳播現代科技知識和促進地區經濟的發展都發揮著重要的作用。在計算機世界中,藏文字區別于漢字和英文的最主要特征是字符編碼,目前國內網站多數使用GBK編碼存儲信息,使用基于GBK的字體顯示文字。而目前的藏文網站,為了方便兼容和統一檢索,主要使用基于國際標準編碼的Microsoft Himalaya字體和珠穆朗瑪系列字體。
1 藏文網站字符編碼技術
藏文在計算機和國際互聯網的使用,在輸入法和字體方面采用基于Unicode字符集的方法較為合理,方便信息共享,方便藏文廣泛交流。互聯網世界的藏文網站和網頁,現在都傾向于使用基于Unicode的藏文字體。
通過對國內比較著名的藏文網站源碼分析發現,主要的藏文網站均采用utf-8編碼,即藏文字符采用國際標準編碼Unicode字符集,而藏文字體采用基于Unicode的珠穆朗瑪系列字體和 Microsoft Himalaya字體。國內部分藏文網站和網站的字符編碼及字體分析如下。
2 網頁URL處理
2.1 URL簡述
URI:Universal Resource Identifier,通用資源標志符。URI通常由三個部分組成:訪問資源的命名機制,存放資源的主機名,資源自身的名稱[1]。
URL是URI的一個子集,它是Uniform Resource Locator的縮寫,譯為“統一資源定位符”,即通常說的網址。URL是Internet上描述信息資源的字符串,主要用在各種WWW客戶程序和服務器程序上。采用URL可以用統一的格式來描述各種信息資源,包括文件、服務器地址和目錄等[2]。URL的格式由三部分組成:第一部分是協議(或稱為服務方式);第二部分是存有該資源的主機IP地址(有時也包括端口號);第三部分是主機資源的具體地址,如目錄和文件名等。
2.2 URL處理流程
網頁搜索并不是對實時的網站信息進行檢索,在用戶提交檢索提問詞后,實際上是轉入搜索引擎的索引數據庫檢索,這些索引數據庫通常是由網絡搜索引擎的爬蟲進行采集、更新從而建立起來的。爬蟲最主要的處理對象是URL,它根據URL地址取得所需要的文件內容,然后對它進一步處理,網頁爬蟲URL處理流程如圖2所示。
3 藏文網頁爬蟲
3.1 爬蟲“黑洞”
爬蟲在搜集藏文網頁的過程中,必須考慮可能出現的“黑洞”情況。爬蟲黑洞是指,在抓取一張網頁的鏈接時,鏈接本身是一個無限循環,導致爬蟲抓取時跟著循環,浪費資源。有時一些URL看起來不同,但實際指向同一張網頁,也會使爬蟲陷入重復抓取的境地。
為了避免爬蟲誤入黑洞,一般采取兩種策略。一是爬蟲回避動態網頁,因為動態網頁常常會把爬蟲帶入黑洞。識別動態網頁時,只需要判斷URL中是否出現問題,含問號的就是動態網頁。二是使用Visited表記錄已經訪問過的URL,凡是遇到新的URL存在于Visited表,就放棄對該URL的繼續處理。例如:當遇到a→b→c→d→c→e這樣的環路鏈接,爬蟲就會掉進去,反復抓取c、d對應的頁面。使用Visited表,就能避免這個問題。
3.2 限定爬蟲
藏文網頁搜索使用的爬蟲,是一種限定爬蟲,在爬蟲的功能定位上只抓取藏文的網頁,本質是對網頁文本所用語言的限定。藏文網頁的限定爬蟲,表面上是限定語言,具體操作層面需要通過限定IP、限定URL、限定charset來實現。
限定爬蟲就是對爬蟲所爬取的主機的范圍做一些限制,通常,限定爬蟲包含以下幾個方面[3]:①限定域名的爬蟲。比如,只抓取edu.cn結尾的域名;②限定爬取層數的爬蟲。比如,限定只抓取2層的數據;③限定IP的抓取。比如,只抓取西藏自治區內的IP;④限定語言的抓取。比如,只抓取中文漢字頁面。
抓取藏文網頁一方面要設計限定爬蟲,另一方面建立動態更新的藏文網站域名庫、藏文網站主機IP庫,配合限定爬蟲工作。目前已有部分藏文網站在頁面中加入了標記,如中國藏學網采用的是,西藏IT網采用的是,瓊邁藏族文學網采用的是。可以根據網頁代碼中的標記來識別判斷藏文網站。藏文網站域名庫和藏文網站主機IP庫,需要人工操作,人為添加一些地址,這方面參照現在互聯網廣泛使用的“純真IP數據庫”實現。
3.3 藏文網頁倒排索引
藏文網頁倒排索引的建立流程如下。
第一步:抽取網頁正文。網頁正文是相對網頁噪聲而言。當今的互聯網網頁上,頁面的很多篇幅用在廣告、搜索推薦和其他鏈接上。網頁搜索工具關注的是網頁本身要表達的信息,所以在通過爬蟲獲取到頁面源碼之后,要去除那些與本文無關的噪聲,抽取到網頁正文。
第二步:分字。藏文文字區別于漢文,漢文是一個字使用一個編碼,而藏文是對組成字的基字編碼,一個完整的藏文字可能存在多個編碼,這些編碼按組成藏文字的方法順序排列。藏文的分字通過藏文字分隔符 ‘ 來實現,如
第三步:對全文以字建索引。以字建索引,雖然檢索過程的匹配計算量會更大,但考慮到目前藏文網頁總體數量不大,應該是一種可行的提高查全率的辦法。根據上一步得到的字,記錄每個字在文中出現的位置,計算每個字出現的次數,建立鏈表。位置用于檢索時的準確定位,次數用于計算字對文檔的重要性,也用于相關性排序計算。
第四步:對標題建索引。大部分的Web文檔有文檔標題TITLE,標題反映了文檔的主要內容,是搜索和導航的重要依據。標題索引以詞、短語或句子為索引單位,具體根據詞表匹配情況確定,如果標題匹配詞表中的規范詞則使用規范詞,如果沒有則直接以標題建索引。藏文規范詞表是動態更新的。檢索時以匹配標題索引為優先策略,先查詢標題索引庫,再查詢全文索引庫。
第五步:索引庫更新。網站的頁面信息是動態更新的,由網絡爬蟲抓取得到的藏文網頁倒排索引庫也需要更新。搜索引擎的倒排索引更新有多種方式,包括修改更新、覆蓋更新和添加更新。鑒于目前上線的藏文網站數量少,網絡爬蟲工作周期短,藏文網頁的倒排索引庫更新可以采取添加更新加覆蓋更新的策略。每次爬蟲工作完成后,建立新的索引庫,將查詢引擎鏈接指向新的索引庫,同時保留近兩期的索引庫,將更早的索引庫刪除。每次添加新的索引庫后,先將之前近兩期的索引庫保留一段時間備用。
4 檢索
藏文網頁搜索工具為用戶提供檢索藏文網頁信息,先根據用戶提交的檢索提問標識,去匹配索引庫中的網頁信息標引標識[4],然后將匹配上的結果按相關系數降序排列,匹配出的每一項條目直接指向網頁源地址,同時在結果頁顯示每條結果的網頁快照,以高亮顯示匹配字符。
4.1 檢索詞審閱
我國于2004年和2008年先后通過的《藏文編碼字符集擴充集A》、《藏文編碼字符集擴充集B》兩套國家標準,收錄藏文字符7205個,包括現代藏文、古藏文和梵音轉寫的藏文字符,藏文覆蓋率達到99.99%[5]。在藏文網頁搜索過程中,有必要對用戶輸入的藏文字進行拼寫檢查,確認輸入的每個字是正確的藏文字。將這兩套國家標準收錄的藏文字逐一列出,查出對應的國際編碼,建立藏文國際編碼字表,在用戶輸入檢索詞時使用此表來進行文字審閱。
4.2 文字匹配
藏文網頁搜索,實質是將用戶輸入的檢索提問標識與索引庫中的網頁標引標識進行比對,找出匹配的條目。現有的字符編碼體系,對漢字是以整字編碼,如“漢”的GBK編碼是“BABA”,“漢”的unicode編碼是“6C49”;藏文字是對構成字的每個構件進行編碼,因此一個藏文字的編碼實際是由一個或多個構件的性,藏文字符匹配相對漢文和英文需要更大的計算量,比對一個字實際需要比對多個編碼。
文字匹配采取精確匹配和模糊匹配兩種策略。優先采用精確匹配,將理論上最相關的結果反饋給檢索用戶。如果精確匹配命中條目很少或者沒有命中條目,采取模糊匹配策略,將近似相關的結果反饋給檢索用戶。精確匹配是找出完全包含檢索詞的結果集,模糊匹配是找出語義上近似的相關結果集。應用檢索理論中的縮檢與擴檢,當命中結果很多時,篩選最相關結果集;當命中結果很少或完全沒有時,逐步減小相關系數閾值,或多或少地為用戶提供一些近似相關結果集,盡量滿足用戶的檢索需求。
4.3 結果排序
檢索結果排序是網頁搜索的重要一環,一般的全文檢索系統,是按更新時間和點擊率對結果集排序,如利用文獻管理系統查閱圖書時,查詢結果根據圖書出版時間降序排列,或者根據外借次數降序排列,突出顯示熱門圖書。但是,用戶的網頁搜索需求不完全是將時效性排在第一位,網頁爬蟲在抓取網頁更新索引時對每個網站的更新周期不一樣,等級高的網站被爬取的頻次高,等級低的小型網站被爬取的頻次低。因此,網頁搜索結果不能按網頁發布時間排序,用戶普遍更關注的是相關度[6]。
Google等大型搜索引擎使用復雜的PageRank算法進行鏈接分析,遞歸地計算網絡上的全部站點排名[7]。藏文網頁搜索的規模較小,可以采取簡單的策略。以檢索詞的匹配程度作為主列排序,以信息發布時間作為次列排序,按相關度從大到小排序,相關度相同的按更新日期從晚到早排序。
5 結論
互聯網世界的藏文字符已經趨向于使用基于Unicode的字符集和基于utf-8編碼的字體,這有利于人們更多地使用藏文進行交流。目前,Google搜索已經開發了針對藏文網頁的搜索功能,國內多家單位也正在研發本地化的藏文網頁搜索引擎。總體來講,藏文網頁搜索還處在探索階段,究其原因,主要有三個方面:一是多年來藏文字符編碼不統一,一些藏文軟件還沿用著基于國家標準的藏文字體,不兼容當前國際標準編碼;二是藏文網頁/網站數量較少,用藏文記述的文獻信息體量巨大,但目前“搬”上網的還很少;三是藏文與漢文的混排、混檢技術還處于發展中,最直接的解決辦法是平臺上的藏文和漢文都使用基于Unicode的字符編碼,但會額外增加大量的漢文字符存儲開銷和網絡流量開銷,這也是一些大型站點保持使用GBK的原因。目前針對藏文信息處理的研究有很多,我們期待將來藏文在互聯網世界更廣泛更靈活的應用。
參考文獻(References):
[1] 謝玉開.基于JAX-RS的面向資源架構應用研究[D].浙江理
工大學碩士學位論文,2011.
[2] 范劍波.網絡數據庫技術及應用[M].西安電子科技大學出版
社,2004.
[3] 王娟,吳金鵬.網絡爬蟲的設計與實現[J].軟件導刊,2012.4:
136-137
[4] 王灃.運用信息技術保護莽人語言文化的研究[J]. 科技情報
開發與經濟,2014.11:144-145
[5] 普頓.移動電話上實現藏文信息處理的方法研究[D].西藏大
學碩士學位論文,2009.
[6] 呂月娥,李信利.基于信息類別的網頁過濾算法[J].福建電腦,
2007.2:99,122
[7] 周浩.基于決策樹的搜索引擎惡意網頁檢測研究與實現[D].
湖南大學碩士學位論文,2013.