劉 剛
(大連外國語大學(xué),遼寧 大連 116000)
在信息時(shí)代中,互聯(lián)網(wǎng)深刻改變了人們的生活和工作,它給人們提供了開展工作、表達(dá)自我的平臺(tái),短短數(shù)十年間,在互聯(lián)網(wǎng)上產(chǎn)生的自然語言文本數(shù)量就遠(yuǎn)遠(yuǎn)超過了人類歷史發(fā)展中所有保存下來的語言文本總和。這些文本以各種各類語言為載體,為我們提供了“規(guī)模最大,可公開獲取的,自發(fā)生成的真實(shí)語言文本集合。具有可機(jī)讀、多語種、即時(shí)性、語料真實(shí)、規(guī)模龐大、自我更新等特點(diǎn),堪稱一個(gè)取之不盡的語料富礦”①。
近年來,隨著數(shù)據(jù)挖掘技術(shù)、大數(shù)據(jù)技術(shù)的不斷發(fā)展,通過現(xiàn)代技術(shù)手段,發(fā)掘網(wǎng)絡(luò)自然語言文本資源,依托網(wǎng)絡(luò)作為主要來源,構(gòu)建專業(yè)的語料庫成為了研究熱點(diǎn),這些語料庫具有著資源豐富、獲取便捷、存儲(chǔ)方面、利用范圍廣泛等諸多優(yōu)點(diǎn),它們可以為語言學(xué)研究、語言教學(xué)與學(xué)習(xí)、人工智能、商業(yè)應(yīng)用等諸多領(lǐng)域提供資源,本文以網(wǎng)絡(luò)文本資源為對象,探討建設(shè)多語種資源庫,該資源庫主要為區(qū)域國別等學(xué)科的教學(xué)、研究和學(xué)習(xí)提供資源支撐,在實(shí)踐中具有重要的應(yīng)用價(jià)值。
多語種網(wǎng)絡(luò)文本資源庫的概念源自于網(wǎng)絡(luò)驅(qū)動(dòng)型語料庫(Web Driven Corpus),是一種針對網(wǎng)絡(luò)自然語言文本采集與利用的新型資源庫,與傳統(tǒng)語料庫無論在采集、存儲(chǔ)、規(guī)模、分析、使用等各個(gè)方面都有所區(qū)別,相對于傳統(tǒng)的語料庫而言,多語種網(wǎng)絡(luò)文本資源有以下幾個(gè)重要優(yōu)點(diǎn):(1)以網(wǎng)絡(luò)自然語言文本為主要采集對象;(2)較傳統(tǒng)語料庫數(shù)據(jù)量要大幾個(gè)數(shù)量級,涵蓋面廣、更新及時(shí);(3)主要以網(wǎng)絡(luò)自動(dòng)抓取為主,建庫耗時(shí)短、成本低;(4)數(shù)據(jù)在本地可供用戶使用,并且可以用語言對其進(jìn)行后處理,并使用其首選工具進(jìn)行查詢②。
相較傳統(tǒng)語料庫,它又有以下不足:(1)準(zhǔn)確性和代表性相對于經(jīng)過人工加工的傳統(tǒng)預(yù)料庫而言有所不足,盡管通過數(shù)據(jù)清洗的方法可以去除大部分?jǐn)?shù)據(jù)噪聲,但是自動(dòng)生成的冗余內(nèi)容或拼寫錯(cuò)誤依然會(huì)存在;(2)版權(quán)問題依然不清,語料庫的推廣會(huì)受到版權(quán)制約③。
多語言網(wǎng)絡(luò)文本資源庫建設(shè)目標(biāo)是基于網(wǎng)絡(luò)自然語言文本資源,采集對象國家的語言網(wǎng)絡(luò)文本,分類構(gòu)建多語種資源庫,存儲(chǔ)在本地硬盤或者網(wǎng)絡(luò)云端之中,滿足教師、學(xué)生利用自己熟悉的分析工具對語言對象國原始文本進(jìn)行查詢、分析,從而提升區(qū)域國別學(xué)科的教學(xué)、科研、學(xué)習(xí)能力。
網(wǎng)絡(luò)數(shù)據(jù)采集是建庫中的重點(diǎn)工作,一般分為以下步驟:
1.將要采集的網(wǎng)頁地址存入網(wǎng)址列表(URL采集池);
2.確定要提取的內(nèi)容,并設(shè)置篩選條件;
3.采集軟件的配置,包括鏈接延時(shí)、采集者信息等;
4.運(yùn)行采集軟件,
目前,全球互聯(lián)網(wǎng)中充斥著數(shù)萬億個(gè)網(wǎng)頁,這些網(wǎng)頁內(nèi)容名目繁多、形式各異,如何能最有效率的匹配要搜索的內(nèi)容是非常關(guān)鍵的,這就需要根據(jù)一定的機(jī)制來將時(shí)間成本和資源成本降至最低,我們通常將用下面公式表示:
式中,WC在t時(shí)間內(nèi)采集認(rèn)為的最大加權(quán)完成率,其中C(t)和W分別表示在t時(shí)間內(nèi)的采集頁面數(shù)和權(quán)重函數(shù),確定每個(gè)頁面相對于搜索目標(biāo)的相關(guān)性④。
采集器的設(shè)計(jì)無論采用何種計(jì)算機(jī)語言搭建,一般都包括待采集URL池、DNS解析模塊、抓取模塊、分析模塊、URL去重模塊等五個(gè)部分,其基本架構(gòu)如圖1所示:
圖1 采集器的基本構(gòu)架
圖1所示的采集器的工作原理是設(shè)定一個(gè)或者多個(gè)URL為采集的種子集合,接著,從種子集合中選擇一個(gè)URL進(jìn)行采集,然后對采集到的頁面進(jìn)行分析,并抽取出頁面中的文本和鏈接(每個(gè)鏈接都指向其他的URL)。抽取出的文本輸給文本索引器,而抽取出的URL則加入到待采集URL池中,任何時(shí)URL池中放的都是所有待采集網(wǎng)頁的URL。一旦某個(gè)URL被采集,那么就從池中刪除這個(gè)地址,整個(gè)采集過程可以看成是Web圖的遍歷過程。
多語言網(wǎng)絡(luò)文本資源庫數(shù)據(jù)采集過程中主要針對Python軟件來進(jìn)行開發(fā),主要運(yùn)用的模塊有Scrapy、Requests、Beautifulsoap、Selenium等,在實(shí)際運(yùn)用中根據(jù)網(wǎng)頁頁面的結(jié)構(gòu)來進(jìn)行選擇,一般靜態(tài)頁面多使用Requests來發(fā)送請求,大批量的采集一般使用Scrapy等框架爬蟲來進(jìn)行采集,而對于網(wǎng)頁較復(fù)雜的或者動(dòng)態(tài)較多的頁面則使用Selenium來進(jìn)行采集,這些模塊都有各自的優(yōu)缺點(diǎn),再使用中會(huì)根據(jù)使用需求來進(jìn)行選擇。選擇合適的采集模塊后,會(huì)進(jìn)行相應(yīng)的代碼編寫。
以Requests模塊為例,首先應(yīng)該對頁面進(jìn)行分析,找出多頁面之間的跳轉(zhuǎn)機(jī)制,根據(jù)頁面跳轉(zhuǎn)機(jī)制編寫代碼,獲取所有目標(biāo)頁面的網(wǎng)址數(shù)據(jù);接下來再編寫內(nèi)容頁代碼塊,提取所頁面中所需要的內(nèi)容信息;必要時(shí)要設(shè)置重復(fù)數(shù)據(jù)檢查機(jī)制,自動(dòng)過濾掉重復(fù)的網(wǎng)址或者頁面內(nèi)容。
在網(wǎng)絡(luò)數(shù)據(jù)的采集過程中常常會(huì)遇到的問題是目標(biāo)服務(wù)器會(huì)識(shí)別采集程序并對本機(jī)IP地址進(jìn)行封禁,解決的辦法一是引入代理服務(wù)器的機(jī)制,可以編寫專門的代理服務(wù)器獲取代碼獲得免費(fèi)的代理服務(wù)器網(wǎng)址或者購買代理服務(wù)器網(wǎng)址,這樣就達(dá)到了不斷更換IP進(jìn)行采集的目的;另外的解決辦法是通過降低目標(biāo)服務(wù)器的連接頻率和速度,降低目標(biāo)服務(wù)器運(yùn)行的壓力等措施。
總體來說,推薦使用第二種解決方法,在不影響目標(biāo)服務(wù)器正常運(yùn)行的情況下來進(jìn)行數(shù)據(jù)采集,做文明的數(shù)據(jù)采集者。在網(wǎng)絡(luò)采集中遇到另一個(gè)問題是如何保證采集的速度或效率,區(qū)別于傳統(tǒng)的單機(jī)采集器,我們可以將采集程序布置到服務(wù)器端,并設(shè)置定時(shí)采集方法,如果需要我們還可以構(gòu)建服務(wù)器分布采集系統(tǒng),來達(dá)到提高采集效率的目標(biāo)。最后,由于我們要進(jìn)行多語種的文本數(shù)據(jù)采集,在文本編碼格式上要特別注意選擇合適的文本編碼,已避免亂碼的出現(xiàn)。
網(wǎng)站內(nèi)容采集以后,接下來的工作是進(jìn)行數(shù)據(jù)清洗,數(shù)據(jù)清洗第一個(gè)目的是去除噪聲,噪聲主要包括頁面中的網(wǎng)絡(luò)標(biāo)記符號,網(wǎng)頁的頁眉、頁腳,導(dǎo)航欄,以及主要內(nèi)容之外的一些其他數(shù)據(jù),這些噪聲會(huì)對將來的數(shù)據(jù)文本分析產(chǎn)生干擾,所以要在數(shù)據(jù)清洗的第一個(gè)階段清理干凈,只保留網(wǎng)頁中的主要內(nèi)容的純文本信息。數(shù)據(jù)清洗的另一項(xiàng)主要任務(wù)是將內(nèi)容文本中的標(biāo)點(diǎn)符號、停頓詞等沒有意義的詞匯和標(biāo)點(diǎn)去除,以提高教學(xué)資源庫在運(yùn)行時(shí)統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
數(shù)據(jù)清洗過程中較常使用的工具有Python、R、Microsoft word、Microsoft excel、Openrefine等軟件,這些軟件在功能上都能滿足數(shù)據(jù)清洗的需要,綜合比較各軟件的功能、學(xué)習(xí)的難易程度、操作的便捷程度等因素,推薦使用Openrefine軟件來進(jìn)行數(shù)據(jù)清洗工作。Openrefine軟件是由原Googlerefine軟件繼承而來的一款基于java語言的開源軟件,該軟件功能強(qiáng)大、體積小、簡單易學(xué),能滿足絕大多數(shù)的數(shù)據(jù)清洗工作。尤其是該軟件支持正則表達(dá)式和內(nèi)置大量函數(shù),對處理文本數(shù)據(jù)具有非常大的優(yōu)勢。
在數(shù)據(jù)存儲(chǔ)方面,可采取兩種選項(xiàng):一種是將經(jīng)過數(shù)據(jù)清洗后的文本獨(dú)立存儲(chǔ)到文件夾下,每篇文章一個(gè)文檔,在使用時(shí)運(yùn)用Python軟件nltk語料庫模塊進(jìn)行數(shù)據(jù)的讀取和分析,該方法的優(yōu)點(diǎn)是簡便快捷,節(jié)省了大量的時(shí)間,語料存儲(chǔ)成txt文檔,可以很方便的進(jìn)行查看,缺點(diǎn)是需要掌握nltk語料庫模塊或其他語料庫軟件的使用方法,在利用文本的過程中也需要付出一定時(shí)間的學(xué)習(xí)。
數(shù)據(jù)存儲(chǔ)的第二種選項(xiàng)是利用文本挖掘軟件將清洗后的網(wǎng)絡(luò)文本轉(zhuǎn)換成文檔-詞項(xiàng)矩陣(DMT)的形式進(jìn)行存儲(chǔ),該矩陣中每一行代表一個(gè)文檔,每一列代表一個(gè)詞項(xiàng),可以將文檔存入到Redis、Mangodb等關(guān)系型數(shù)據(jù)庫或本地硬盤中,優(yōu)點(diǎn)是提取將文本歸類并進(jìn)行了初步處理,使用時(shí)只需調(diào)用文檔即可進(jìn)行分析。以上兩種方式都是來進(jìn)行數(shù)據(jù)的存儲(chǔ),具體采用哪種方式可以根據(jù)不同的需求進(jìn)行選擇。
本文認(rèn)為基于網(wǎng)絡(luò)的多語種教學(xué)資源庫必然會(huì)對區(qū)域國別學(xué)科的教學(xué)和研究產(chǎn)生重要的意義和變革,介紹了基于多語種網(wǎng)絡(luò)自然語言文本的教學(xué)資源庫相對于傳統(tǒng)語料庫的優(yōu)勢和不足,認(rèn)為基于網(wǎng)絡(luò)的自然語言文本庫對語言研究和教學(xué)有著重要的推動(dòng)和改革,并結(jié)合實(shí)際情況介紹了構(gòu)建多語種資源語言教學(xué)資源庫的基本原理、數(shù)據(jù)采集、數(shù)據(jù)清洗和存儲(chǔ)的原理和方法,對現(xiàn)實(shí)應(yīng)用有較全面的指導(dǎo)。
未來,在基于網(wǎng)絡(luò)自然語言資源庫的數(shù)據(jù)采集效率、數(shù)據(jù)精確識(shí)別和分發(fā)版權(quán)方面,還要繼續(xù)深入研究。
注釋:
①夏立新,楚林,王忠義,等.基于網(wǎng)絡(luò)文本挖掘的就業(yè)知識(shí)需求關(guān)系構(gòu)建[J].圖書情報(bào)知識(shí),2016(001):94-100.
②魏順平,何克抗.基于文本挖掘的領(lǐng)域本體半自動(dòng)構(gòu)建方法研究——以教學(xué)設(shè)計(jì)學(xué)科領(lǐng)域本體建設(shè)為例[J].開放教育研究,2008(05):95-101.
③王妍,王原,大學(xué)英語網(wǎng)絡(luò)教學(xué)平臺(tái)的設(shè)計(jì)[J].現(xiàn)代教育技術(shù),2005(03):45-48.
④高利明.教育技術(shù)對教育改革的支持作用[J].開放教育研究,1997(02):19-22+49.