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