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