楊 珺
(上海電力學(xué)院計算機與信息工程學(xué)院,上海 200090)
隨著互聯(lián)網(wǎng)絡(luò)技術(shù)的發(fā)展,人們需要在繁多的網(wǎng)上資源中獲得想要的信息[1],現(xiàn)在很多人都在使用像Google這樣的搜索引擎,以及Altavista,CNN,Babelfish,F(xiàn)reeTranslation等完成對信息的獲取.在線翻譯的優(yōu)點很明顯,它并不需要客戶端,直接在網(wǎng)頁上使用就可以了,但隨著打開網(wǎng)頁所需要的瀏覽器功能的逐漸增多,耗費在打開網(wǎng)頁上的時間對用戶來說常常是不能忍受的,用戶每次使用在線翻譯都需要尋找翻譯網(wǎng)站,浪費了用戶的時間和費用.
因此,如何在提供網(wǎng)上在線翻譯服務(wù)的基礎(chǔ)上進行數(shù)據(jù)的二次利用,是值得研究的問題.本文通過建立一種在線翻譯服務(wù)的集成框架,實現(xiàn)多種在線翻譯程序的集成使用,提高了用戶使用此類服務(wù)的可操作性和實用性.
當(dāng)前,網(wǎng)上數(shù)據(jù)的提供方式大都使用Web頁面形式進行用戶操作,當(dāng)用戶為了得到相關(guān)信息時,其操作步驟為:打開網(wǎng)頁,在網(wǎng)頁中輸入具體內(nèi)容,提交,最后得到結(jié)果[2].例如,Google 的翻譯頁面如圖1所示.
這是一種典型的網(wǎng)上用戶信息獲取方法,但這種方法對于訪問頻度較高的用戶而言,顯得不是很方便.如果能夠向用戶提供一種不需要通過瀏覽器瀏覽網(wǎng)頁獲取信息,而是通過簡潔的客戶端方式并具有一定的數(shù)據(jù)挖掘分析能力的使用方式獲取信息的話,則將大大方便用戶使用.兩種使用模式的基本流程對比如圖2所示.
圖1 Google網(wǎng)上翻譯屏幕
圖2 兩種不同的處理模式對比
圖2 b通過前端的用戶信息處理,對網(wǎng)上Web數(shù)據(jù)提供的信息在內(nèi)部進行二次數(shù)據(jù)的加工處理.在此模式下,客戶端實施數(shù)據(jù)統(tǒng)計、挖掘等處理方法,并對已有數(shù)據(jù)引擎的提供者進行數(shù)據(jù)的二次處理.但對利用他人提供的信息進行信息處理時必須考慮合法性,以及道德等相關(guān)問題.基于第3方信息提供的網(wǎng)絡(luò)信息數(shù)據(jù)的挖掘,網(wǎng)絡(luò)通訊可以采用定量(不返回所有搜索信息)、定期(有限時間周期)等方法來緩解Web數(shù)據(jù)信息提供服務(wù)器運行時的壓力.
信息的傳遞通過網(wǎng)頁數(shù)據(jù)的形式進行.網(wǎng)頁處理的兩大部分包括:網(wǎng)頁數(shù)據(jù)內(nèi)容獲取;數(shù)據(jù)內(nèi)容解析.網(wǎng)頁數(shù)據(jù)內(nèi)容獲取主要完成具體網(wǎng)頁內(nèi)容的下載和內(nèi)部網(wǎng)頁內(nèi)容的下載;數(shù)據(jù)內(nèi)容解析,主要用于解析網(wǎng)頁中感興趣的內(nèi)容[3-5].
具體的解析過程如圖3所示.其數(shù)據(jù)解析大致框架流程包括以下幾個方面:
圖3 框架流程
(1)初始化 包括一些特定數(shù)據(jù)信息服務(wù)的連接信息、本地功能性連接的初始過程;
(2)判斷是否繼續(xù)連接Web數(shù)據(jù)服務(wù) 對于向特定的Web數(shù)據(jù)提供服務(wù),有必要判斷是否為可使用數(shù)據(jù)源信息;
(3)繼續(xù)解析要連接的提供信息服務(wù)的網(wǎng)絡(luò)地址 考慮到地址樹的各個數(shù)據(jù)源不同,對提供的不同信息、不同地址實施具體的數(shù)據(jù)解析工作;
(4)數(shù)據(jù)獲取的post方法 對于不同的數(shù)據(jù)信息,不采用http的get方法實施數(shù)據(jù)的獲取,而是使用post向數(shù)據(jù)源請求數(shù)據(jù),并在此過程中解析網(wǎng)絡(luò)數(shù)據(jù)源反饋的數(shù)據(jù);
(5)繼續(xù)獲取下一個數(shù)據(jù)網(wǎng)絡(luò)URL地址 一個網(wǎng)頁中的信息可能通過URL標(biāo)記到其他數(shù)據(jù)源的URL中,因此有必要通過當(dāng)前的URL網(wǎng)頁內(nèi)容來獲得此類完整的數(shù)據(jù)源URL樹.
(6)繼續(xù)下一個操作 通過迭代方法獲取下一個數(shù)據(jù)源URL的數(shù)據(jù)內(nèi)容.
模型的具體實現(xiàn)采用VC編碼實現(xiàn),表1描述了對于一網(wǎng)頁內(nèi)容所采用的一些關(guān)鍵解析方法.
表1 客戶端連接時的一些典型方法
采用以上框架模型的設(shè)計方法可以實現(xiàn)網(wǎng)上在線翻譯的集成應(yīng)用.
基本處理步驟如下:通過HTTP數(shù)據(jù)交互方法將客戶端信息發(fā)送到服務(wù)器端,Google翻譯時發(fā)送和接受具體標(biāo)簽,然后對返回數(shù)據(jù)進行數(shù)據(jù)內(nèi)容解析,取得要獲得的具體內(nèi)容.Google翻譯時發(fā)送和接受的具體標(biāo)簽內(nèi)容描述如下.
<select name=langpair>:選擇性標(biāo)簽.用以標(biāo)記相互翻譯的轉(zhuǎn)換語言對,例如英文到中文的翻譯,其值為en|zh,英文對法文則是en|fr等.
<text area name=text rows=5 cols=45 wrap=PHYSICAL>文本框內(nèi)容,具體標(biāo)記的是要被翻譯的內(nèi)容.
<input type=hidden name=hl value="zh-CN">隱藏域內(nèi)容,用以標(biāo)記具體瀏覽器字符,顯示屬性.
<input type=hidden name=ie value="UTF8">隱藏域內(nèi)容,用以標(biāo)記具體發(fā)送的字符編碼.
通過以上數(shù)據(jù)包發(fā)送到數(shù)據(jù)信息提供服務(wù)器,會返回相關(guān)的狀態(tài)和數(shù)據(jù)信息,要想獲取相應(yīng)的數(shù)據(jù)就必須解析返回的數(shù)據(jù)內(nèi)容.需要解析的標(biāo)簽如下:
<textarea name=q rows=5 cols=45 wrap=PHYSICAL>文本框內(nèi)容,為服務(wù)器返回時的具體被翻譯的內(nèi)容.
(1)取用戶端數(shù)據(jù) 用戶界面輸入;
(2)構(gòu)造要發(fā)送的網(wǎng)絡(luò)地址 如對應(yīng)Google翻譯服務(wù)的發(fā)送地址 http://translate.google.com/translate_t;
(3)構(gòu)造客戶端要發(fā)送的內(nèi)容 取客戶輸入時的相應(yīng)數(shù)據(jù),構(gòu)造對應(yīng)的發(fā)送參數(shù),如langpair=en|zh&hl=en&ie=UTF8&text=I am graduate student;
(4)發(fā)送數(shù)據(jù) 通過地址和地址參數(shù)發(fā)送到具體的服務(wù)器;
(5)接收返回的數(shù)據(jù) 通過解析接收到的文本內(nèi)容(解析標(biāo)簽<textarea name=q rows=5 cols=45 wrap=PHYSICAL>),獲得相應(yīng)的翻譯后內(nèi)容;
(6)解析返回數(shù)據(jù)的內(nèi)容 顯示具體的翻譯內(nèi)容.
多個網(wǎng)絡(luò)翻譯服務(wù)的客戶端界面如圖4所示.主要包括了一組兩個大的文本框:一個用于讓用戶輸入原文;一個用于顯示翻譯結(jié)果.兩個文本框都支持多行文本的輸入.
下面有3個按鈕:一個是“雅虎翻譯”的按鈕,點擊此按鈕可通過雅虎在線翻譯處理數(shù)據(jù);一個是“金山翻譯”的按鈕,點擊此按鈕,數(shù)據(jù)則通過金山翻譯的網(wǎng)站來處理數(shù)據(jù);一個是“退出”按鈕,以方便用戶退出.此外,還有3個網(wǎng)站超鏈接.這3個網(wǎng)站都是在線翻譯網(wǎng)站,以便用戶在得不到想要結(jié)果的時候直接登錄網(wǎng)站進行查詢.下面以金山翻譯為例說明在線翻譯服務(wù)的客戶端工作原理.
圖4 多個在線翻譯服務(wù)的客戶端集成
金山翻譯主要是通過金山詞霸的在線翻譯網(wǎng)站來處理用戶想要翻譯的數(shù)據(jù),其功能主要分成兩個部分:一是數(shù)據(jù)請求部分,先由程序發(fā)送請求并傳遞參數(shù),然后再接收返回的數(shù)據(jù)流;二是數(shù)據(jù)截取部分,根據(jù)數(shù)據(jù)流內(nèi)的特定標(biāo)記來截取需要的數(shù)據(jù).
數(shù)據(jù)請求部分的代碼:
該部分程序首先確定了一個url就是http://www.iciba.com/而 其 中 的 參 數(shù) 為 texts,用Webrequest類向服務(wù)端發(fā)送請求,服務(wù)端在接收請求之后便會響應(yīng)客戶的請求,服務(wù)端返回響應(yīng)的數(shù)據(jù)流,然后對接收到的數(shù)據(jù)流進行處理,通過wireshark工具進行分析,得知服務(wù)端返回的數(shù)據(jù)流都是文本數(shù)據(jù),因此使用streamreader類來處理文本文件,并對接收到的數(shù)據(jù)流進行編碼.此時,就處理好了接收到的數(shù)據(jù),但所得到的數(shù)據(jù)中絕大部分是不需要的,因此需要對這些數(shù)據(jù)進行篩選.
使用這段代碼的主要目的是進行數(shù)據(jù)篩選,主要的工作過程如下:首先是準(zhǔn)備工作,可以通過查看網(wǎng)頁的源文件以及wireshark抓包工具來分析服務(wù)器響應(yīng)所返回的數(shù)據(jù),通過多次實驗可以發(fā)現(xiàn),需要的數(shù)據(jù)均存在于字符串<ul class="tab_c_ul font_black marginleft10 margintop10 font14"> <li>"和字符串" </span> <divclass="show_exp"style="color:#888888">"之間,再截取這兩個字符串作為標(biāo)記來定位光標(biāo),可以得到結(jié)果前面的光標(biāo)位置begin,以及結(jié)果的長度j-begin,最后通過substring函數(shù)截取結(jié)果.
本文建立了一種基于框架的在線翻譯服務(wù)客戶端應(yīng)用集成,實現(xiàn)了多種在線翻譯程序的集成使用,提高了用戶使用此類服務(wù)的可操作性和實用性.如何使用已有數(shù)據(jù)信息提供引擎提供的數(shù)據(jù),來實現(xiàn)具體的數(shù)據(jù)應(yīng)用,以及如何利用框架進行數(shù)據(jù)的處理加工是一個很有研究價值的課題.
[1]CHANG Wei-lun,YUAN Soe-tsyr.A synthesized learning approach for Web-based CRM[J/OL].[2001-12-12].http://robotics.stanford.edu/users/ronnyk/WEBKDD2000/.
[2]譚瓊,李曉黎,史忠植.一種實現(xiàn)搜索引擎?zhèn)€性化服務(wù)的方法[J].計算機科學(xué),2002,29(1):232-235.
[3]李昌清,李艷霞.基于動態(tài)異構(gòu)的Web信息集成網(wǎng)頁分析方法[J].計算機應(yīng)用研究,2007,24(12):204-206.
[4]LAENDER AH F,R1BElRO-Neto B A.A brief survey of web data extraction tools[J].SIG2MOD,Record,2002,31(2):84-93.
[5]李寶利,陳玉忠.信息抽取研究綜述[J].計算機工程與應(yīng)用,2003,39(10):1-5.