?

一種利用網絡爬蟲技術提高多語種術語庫校審效率的方法

2023-05-24 04:51劉雯
科技資訊 2023年8期
關鍵詞:網絡爬蟲

劉雯

摘要:為保障多語種智能翻譯系統充分發揮其標準化、快速翻譯的作用,必須構建高質量的多語種術語庫,不斷充實翻譯系統的后臺詞匯。在多語種術語庫的構建過程中校審是保證術語庫質量的關鍵環節。然而,與運用數萬詞條量、甚至體量更為龐大的待校審術語庫對比,單純使用傳統的人力校審方式,已經不能滿足為智能翻譯系統及時擴充術語庫的需求。針對上述問題,文章提出了一種網絡爬蟲技術在多語種術語庫校審中的應用方法,并介紹了網絡爬蟲技術的概念、原理、分類、特點,詳細闡述了該技術在多語種術語庫校審中的應用實踐,最后對網絡爬蟲技術在翻譯和情報專業領域的應用進行了展望。

關鍵詞:網絡爬蟲??多語種術語庫??校審??多語種智能翻譯系統

中圖分類號:TP393.09????文獻標識碼:A

A?method?for?Improving?the?Efficiency?of?Proofreading?Multilingual

Terminology?Databases?by?Using?Web?Crawler?Technology

LIU?Wen

(Beijing?Institute?of?Aerospace?Information,?Beijing,?100854?China)

Abstract:?In?order?to?guarantee?the?multilingual?intelligent?translation?system?to?give?full?play?to?its?standardized?and?fast?translation?function,?it?is?necessary?to?build?a?high-quality?multilingual?terminology?database?and?continuously?enrich?the?background?vocabulary?of?the?translation?system.?In?the?process?of?building?the?multilingual?terminology?database,?proofreading?is?the?key?link?to?ensure?the?quality?of?the?terminology?database.?However,?compared?with?the?use?of?tens?of?thousands?of?terms?or?even?a?larger?volume?of?the?terminology?database?to?be?proofread,?the?simple?use?of?the?traditional?manual?proofreading?method?can?no?longer?meet?the?demand?for?expanding?the?terminology?database?in?time?for?the?intelligent?translation?system.?In?response?to?the?above?problems,?this?paper?proposes?an?application?method?of?web?crawler?technology?in?proofreading?multilingual?terminology?databases,?introduces?the?concept,?principle,?classification?and?characteristics?of?web?crawler?technology,?elaborates?the?application?practice?of?this?technology?in?proofreading?multilingual?terminology?databases,?and?finally?looks?forward?to?the?application?of?web?crawler?technology?in?translation?and?intelligence?professional?fields.

Key?Words:?Web?crawler;?Multilingual?terminology?database;?Proofreading;?Multilingual?intelligent?translation?system

在大數據時代,信息采集是一項非常重要的工作,如果單純靠人力采集信息,不僅效率低,采集成本也很高。為了從海量的網絡信息中快速、準確地獲取需要的信息,網絡爬蟲應運而生,其不僅可以抓取網頁、提取信息并保存,而且還具有極高的可擴展性[1]。目前,網絡爬蟲技術已經廣泛地應用到眾多領域,如金融、醫療、旅游、教育等行業[2]。

1?網絡爬蟲概述

1.1?網絡爬蟲的概念

網絡爬蟲技術是指一種按照一定的規則,自動地抓取互聯網信息的程序或是腳本[3]。它作為搜索引擎的信息采集器,是搜索引擎技術的最基礎部分,能幫助人們在互聯網的海量數據中自動、高效地獲取感興趣的信息[4]。

1.2?網絡爬蟲的工作原理

網絡爬蟲通過請求站點上的HTML文檔訪問某一站點。它爬行Web空間,不斷從一個站點移動到另一個站點,自動建立索引,并加入到網頁數據庫中。當網絡爬蟲進入某個超級文本時,利用HTML語言的標記結構來搜索信息并獲取指向其他超級文本的URL地址,無需用戶干預就能實現網絡上的自動“爬行”和搜索。

1.3?網絡爬蟲的分類

網絡爬蟲按照技術和結構可分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲和深層網絡爬蟲等類型[5]。

1.3.1?通用網絡爬蟲

通用網絡爬蟲又稱為全網爬蟲,其爬取的目標資源在全互聯網中,主要由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數據庫、鏈接過濾模塊等構成。其在爬行時采取深度優先、廣度優先的策略,適用于某一主題的廣泛搜索,一般應用于搜索引擎和大型Web服務商[6]。

1.3.2?聚焦網絡爬蟲

聚焦網絡爬蟲根據內容評價、鏈接結構評價,按照預設的主題,有選擇性地爬行[6],可將爬取目標網頁定位在與主題相關的頁面中,可以節約帶寬資源和服務器資源。聚焦網絡爬蟲主要由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數據庫、鏈接過濾模塊、內容評價模塊、鏈接評價模塊等構成。內容評價模塊和鏈接評價模塊能夠分別分辨內容和鏈接的重要性,以確定優先訪問哪些頁面。聚焦網絡爬蟲采取的主要策略包括基于內容評價的爬行策略、基于鏈接評價的爬行策略,基于增強學習的爬行策略和基于語境圖的爬行策略。

1.3.3?增量式網絡爬蟲

增量式網絡爬蟲在爬行過程中,網頁會發生增量式的更新[6]。增量式更新是指在更新的時候只更新改變的地方,未改變的地方不更新。所以,增量式網絡爬蟲在爬取網頁的時候只爬取內容發生變化的網頁或新產生的網頁,它在一定程度上能夠保證所爬取的頁面盡可能是新頁面。

1.3.4?深層網絡爬蟲

互聯網的網頁按照存在方式可以分為表層頁面和深層頁面。表層頁面指的是不需要提交表單、使用靜態的鏈接就能夠到達的靜態頁面;深層頁面則隱藏在表單后,不能通過靜態鏈接直接獲取,需要提交一定的關鍵詞才能獲取得到的頁面。在互聯網中,深層頁面的數量更多,所以我們要想辦法爬取深層頁面。深層網絡爬蟲主要由URL列表、LVS列表(填充表單的數據源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應分析器等部分構成。深層網絡爬蟲表單的填寫類型分為兩種。一種是基于領域知識的表單填寫:進行語義分析,獲取關鍵詞,提交關鍵詞后,獲取Web頁面。另一種是基于網絡結構分析的表單填寫:利用DOM樹形式,表示HTML網頁。

1.4?網絡爬蟲的特點

網絡爬蟲具有高性能、可擴展性、健壯性等特點[7],具體如下。

1.4.1?網絡爬蟲具有高性能

網絡爬蟲的高性能是指爬蟲的信息抓取速度高。在互聯網的海量信息中,爬蟲的高性能是保證高效率信息采集的關鍵因素,通常以爬蟲每秒能夠下載的網頁數量作為性能指標,單位時間能夠下載的網頁數量越多,爬蟲的性能越高。

1.4.2?網絡爬蟲具有可擴展性

網絡爬蟲的可擴展性指通過增加抓取服務器和爬蟲數量來盡可能縮短抓取周期。單個爬蟲的性能雖然很高,但是要將全部網頁都下載到本地,仍需要相當長的時間周期,所以網絡爬蟲的擴展性有利于提高爬蟲系統的整體性能。

1.4.3?網絡爬蟲具有健壯性

爬蟲訪問的網站服務器類型繁多,所以有時可能會遇到HTML編碼不規范、被抓取服務器突然死機等異常情況,為了避免爬蟲程序在抓取過程中死掉,或者其所在的服務器宕機,爬蟲應該具有一定的健壯性,再次啟動爬蟲時,能夠恢復之前抓取的內容和數據結構,而不是每次都需要把所有工作完全從頭做起。

2?多語種術語庫的校審問題

多語種智能翻譯系統以術語庫和語料庫為基礎,借助機翻引擎,能夠實現快速機器翻譯、人機協同翻譯等功能,為翻譯人員賦能,大幅提高翻譯效率。多語種術語庫是多語種智能翻譯系統的重要組成部分,其為智能翻譯系統提供了大規模、強有力的詞匯后臺支持,是多語種智能翻譯系統充分發揮其標準化、快速翻譯作用的重要基礎。多語種術語庫的構建工作包括搜集專業詞匯、翻譯、校審、入庫等環節。為保證多語種術語庫的正確性、權威性,術語在入庫前必須經過嚴格的校審程序,這是保證術語庫質量的關鍵環節。術語校審流程如圖1。

校審人員在校審術語庫時需要在互聯網中搜索術語,查找包含術語的文獻例句,以驗證術語是否正確、地道,并將例句和來源網址粘貼留存,以保證術語驗證可溯源。為縮短多語種術語庫校審周期,提升多語種術語庫建設水平,進一步釋放多語種智能翻譯系統的效能,必須尋求具有可操作性的實用手段來提高多語種術語詞條的校審效率。而網絡爬蟲就是一個快速得到有效信息的重要手段,我們可以編寫輔助術語庫校審的網絡爬蟲程序,實現多語種術語例句和來源網址的自動抓取和匯總。

3?網絡爬蟲技術在多語種術語庫校審中的應用

網絡爬蟲技術的常規應用場景通常以收集資料為重點,側重于數量,如搜索引擎場景,可通過深度遍歷HTML超鏈接收集盡可能多的頁面。多語種術語庫校審場景對術語相關例句的數量要求較低,通常只需要3~5條,但是對術語在例句中的語義準確性和表達地道性要求較高。針對多語種術語庫校審工作的特點,下文論述了一種專門的聚焦式爬蟲程序——校審輔助爬蟲程序。

3.1?校審輔助爬蟲程序的應用對象

文章將俄語專業技術術語庫作為校審輔助爬蟲程序的應用對象。俄語專業技術術語庫的全部俄文術語詞條已經翻譯完畢,進入正式入庫前的校審環節,剩余待校審詞條量為61?385條。

3.2?校審輔助爬蟲程序的數據來源

俄文搜索引擎yandex中的網頁信息。

3.3?校審輔助爬蟲程序的工作流程

校審輔助爬蟲程序使用開發語言go1.17.5,它能夠解析校審人員提供的包含待校審術語的Excel文件,從約定的位置提取需要校審的術語詞條,然后模擬校審人員的操作習慣,自動打開本地運行的瀏覽器,使用搜索引擎查詢目標術語,將搜索引擎送回的前三條非廣告搜索結果采集并錄入到校審人員使用的Excel文件中,最終生成包含術語例句和例句來源網址的匯總Excel文件。爬蟲程序可以對復制詞條、搜索詞條、抓取例句、粘貼例句和來源網址等機械性重復勞動進行自動化批量操作,校審人員只需在生成的文件中篩選例句,從而簡化校審環節,提高了校審的效率。以俄語專業技術術語庫為例的校審輔助爬蟲程序的工作流程如圖2。

在使用校審輔助爬蟲程序時,校審人員需要將待查驗的術語詞條粘貼進input文件里的相應位置(見圖4),一次可以粘貼至少200條術語。

校審輔助爬蟲程序的運行流程和關鍵代碼邏輯如下。

第一,雙擊啟動校審輔助爬蟲程序(見圖5),程序開始解析包含俄語專業技術術語的Excel文件。

//?準備輸入文件解析引擎

parseEngine,?err?:=?parser.NewExcelParseEngine(ctx)

if?err?!=?nil?{

utils.FatalReport(fmt.Errorf("init?ExcelParseEngine?fail?fail:?err=%v",?err))?os.Exit(-1)

}

俄語專業技術術語詞條的解析引擎的接口設計:

type?TargetWord?struct?{

OriginalChinese string //中文原文

CandidatesRussian string //候選的初譯俄文:分隔符號支持三種(/;,)?QcSelectedRussian string //QC選中的俄語譯問:初譯俄文的第一個詞?QcReferRussianTexts []string?//QC獲取的參考文獻:yandex?搜索結果的摘要?QcReferRussianLinks []string?//QC獲取的文獻鏈接:yandex?搜索結果的鏈接?QcReferYandexSearchLink?string //QC使用的Yandex搜索地址

}

type?ParseEngine?interface?{

ParseTargetWords(inputFile,?sheet?string)?([]*TargetWord,?error)

}

func?NewExcelParseEngine(ctx?context.Context)?(*ExcelParseEngine,?error)???{

return?&ExcelParseEngine{ctx:?ctx},?nil

}

第二,初始化網站。

//?準備術語詞條搜索引擎

searchEngine,?err?:=?search.NewYandexSearchEngine(ctx)

if?err?!=?nil?{

utils.FatalReport(fmt.Errorf("NewYandexSearchEngine?fail:?err=%v",?err))?os.Exit(-1)

}

俄語搜索引擎yandex的接口設計:

type?SearchEngine?interface?{

Prepare(resetPageStat?func(),?isInteractiveTime?func()?bool)?chromedp.Tasks?????SearchWord(targetWord?*parser.TargetWord,?abstracts?*[]string,?absLinksAttr?*[]map[string]string,

resetPageStat?func(),?waitPageFinished?func(duration?time.Duration))?chromedp.Tasks

}

func?NewDefaultSearchEngine(ctx?context.Context)?(SearchEngine,?error)?{?return?NewYandexSearchEngine(ctx)

}

func?NewYandexSearchEngine(ctx?context.Context)?(*YandexSearchEngine,?error){

return?&YandexSearchEngine{ctx:?ctx},?nil

}

第三,爬蟲程序執行搜索動作,搜索包含術語的例句(見圖6),提取搜索結果,生成包含術語例句和例句來源網址的Excel文件(見圖7)。

//?執行?QC?校對任務

go?Execute(InputExcelFile,?InputExcelSheet,?parseEngine,?searchEngine,?outputFileHandler,?signalChan)

//?QC校對任務執行

func?Execute(fileName,?sheetName?string,?parseEngine?parser.ParseEngine,?searchEngine?search.SearchEngine,

outputFileHandler?*excelize.File,?signalChan?chan?os.Signal)?{

var?err?error

var?input?string

//?設置QC任務執行標記

if?err?=?utils.MarkExecuteStat(outputFileHandler);?err?!=?nil?{

utils.FatalReport(fmt.Errorf("MarkExecuteStat?fail:?err=%v",?err))

os.Exit(-1)

}

//?程序退出時取消QC任務標記

defer?func()?{

if?err?=?utils.UnMarkExecuteStat(outputFileHandler);?err?!=?nil?{

utils.FatalReport(fmt.Errorf("UnMarkExecuteStat?fail:?err=%v",?err))

os.Exit(-1)

}

}()

//?解析輸入文件中的目標詞匯

targetWords,?err?:=?parseEngine.ParseTargetWords(fileName,?sheetName)

if?err?!=?nil?{

utils.FatalReport(fmt.Errorf("ParseTargetWords?fail:?err=%v",?err))

os.Exit(-1)

}

//?初始化瀏覽器

taskCtx,?taskCancel?:=?utils.InitChromeCtx()

defer?taskCancel()

fmt.Printf("確認已安裝?chrome?瀏覽器?[按回車鍵確認]:")

_,?_?=?fmt.Scanf("%s",?&input)

fmt.Printf("確認需要校對的目標數量(%d個)?[按回車鍵確認]:",?len(targetWords))

_,?_?=?fmt.Scanf("%s",?&input)

chromedp.ListenTarget(taskCtx,?utils.TargetEvent)

glog.Infof("Yandex準備中...")

……(過程代碼省略)

//獲取搜索結果頁地址

chromedp.Location(&targetWord.QcReferYandexSearchLink),

//獲取首頁結果地址

chromedp.AttributesAll(resultLinkSel,?absLinksAttr,?chromedp.ByQueryAll,?chromedp.AtLeast(0)),

//獲取首頁結果摘要?chromedp.Evaluate(resultTextSelFunc,?abstracts),

}}

3.4?校審輔助爬蟲程序的效果和特點

文章選取了200個術語詞條,分別計算了純人工校審所需的時間和使用爬蟲程序輔助校審所需的時間。結果顯示,在校審環節完成一次“從校審表里復制詞條→在互聯網中搜索詞條→復制詞條例句→在校審表中粘貼例句和來源網址”的操作,純人工平均用時為30?s,應用校審輔助爬蟲程序后,批量抓取200條詞條需要約15?min,完成一次上述操作僅需要約5?s,搜索術語、摘取例句并粘貼例句和來源網址的時間大幅縮減。而且,爬蟲抓取例句的精準度較好,校審人員從抓取結果中基本上能篩選出合適的例句,但在術語翻譯錯誤的情況下可能出現人工重新搜索的情況??梢?,校審輔助爬蟲程序可以大幅降低校審的操作時間,其例句抓取精準度受術語詞條翻譯質量的影響,對于翻譯正確的術語可以實現準確的例句抓取。此外,校審輔助爬蟲程序還有以下特點。

3.4.1?支持多語種術語校審

校審輔助爬蟲程序支持英語、法語和俄語術語例句的搜索和抓取,根據不同語種,校審輔助爬蟲程序將啟動該語種的主流搜索引擎進行搜索。例如:搜索俄語術語時啟動俄語的主流搜索引擎yandex(https://ya.ru/),搜索英語術語時啟動英語的主流搜索引擎Google(https://www.google.cn/),搜索法語時啟動法語的主流搜索引擎Yahoo(http://search.yahoo.com)。此外,校審輔助爬蟲程序具有擴展性,可按需要增加其他語種術語的搜索功能。

3.4.2?適應反爬蟲機制

針對目前互聯網的反爬蟲機制,校審輔助爬蟲程序設置了隨機等待時間,這使爬蟲的運行更像人的操作,在一定程度上降低了人工驗證非機器人行為的頻率,保證了程序運行的流暢性。

3.4.3?自動跳過敏感詞

在校審輔助爬蟲程序的實踐應用過程中,由于正值俄烏沖突局勢緊張時期,俄語專業技術術語庫中的某些詞條成為了敏感詞,在俄文搜索引擎中的查詢結果為空白頁,此種情況出現時,程序運行中斷。鑒于該情況,爬蟲程序中增加了自動跳過敏感詞的搜索功能,防止出現卡頓現象。

3.4.4?具有一鍵搜索功能

在生成的例句和網址匯總文件中,設置了搜索直達鏈接功能。如果校審人員在自動搜索給出的3個例句中沒有找到合適的例句,可以點擊該鏈接,自動打開對應的搜索引擎,實現一鍵搜索術語,節約搜索時間。

4?結語

文章從多語種術語庫的校審問題入手,以俄語專業技術術語庫為例,詳細介紹、分析了網絡爬蟲技術在多語種術語庫校審中的應用方法,展示了網絡爬蟲技術從海量信息里獲取有效信息的能力和優勢。作為一種強大的信息搜集工具,爬蟲技術在翻譯專業和情報專業領域有很大的應用潛力。在翻譯專業方面,爬蟲技術的應用可以替代人工語料搜集,從廣度和精確度上提升語料庫的建設水平。在情報專業方面,可以將爬蟲技術和AI技術結合,爬取關鍵情報信息,自動分析并生成情報信息簡訊,高效地為情報研究工作提供可參考的信息資料。

參考文獻

[1] 鄭苗.基于網絡爬蟲的北京市房價研究[D].荊州:長江大學,2018.

[2] 鄭鑫臻,吳韶波.基于網絡爬蟲技術的時令旅游信息獲取[J].物聯網技術,2018(5):83-87.

[3] 顧勤.網絡爬蟲技術原理及其應用研究[J].信息與電腦(理論版),2021(4):174-176.

[4] 繆治.網絡爬蟲技術的研究與實現[J].中國新通信,2019(6):70.

[5] 傅一平.詳解4種類型的爬蟲技術[J].計算機與網絡,2021(6):37-38.

[6] 李文華.解析網絡爬蟲技術原理[J].福建電腦,2021(1):95-96.

[7]?Kevin.網絡爬蟲技術原理[J].計算機與網絡,2018(10):38-39.

猜你喜歡
網絡爬蟲
基于分布式的農業信息檢索系統的設計與實現
微信平臺下的教務信息獲取和隱私保護方法研究
基于網絡爬蟲的電子易購軟件設計與實現
搜索引擎技術的發展現狀與前景
煉鐵廠鐵量網頁數據獲取系統的設計與實現
基于社會網絡分析的權威網頁挖掘研究
主題搜索引擎中網絡爬蟲的實現研究
淺析如何應對網絡爬蟲流量
基于淘寶某商品銷售量監控系統
網絡爬蟲針對“反爬”網站的爬取策略研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合