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