劉 剛
(大連外國語大學,遼寧 大連 116000)
在信息時代中,互聯網深刻改變了人們的生活和工作,它給人們提供了開展工作、表達自我的平臺,短短數十年間,在互聯網上產生的自然語言文本數量就遠遠超過了人類歷史發展中所有保存下來的語言文本總和。這些文本以各種各類語言為載體,為我們提供了“規模最大,可公開獲取的,自發生成的真實語言文本集合。具有可機讀、多語種、即時性、語料真實、規模龐大、自我更新等特點,堪稱一個取之不盡的語料富礦”①。
近年來,隨著數據挖掘技術、大數據技術的不斷發展,通過現代技術手段,發掘網絡自然語言文本資源,依托網絡作為主要來源,構建專業的語料庫成為了研究熱點,這些語料庫具有著資源豐富、獲取便捷、存儲方面、利用范圍廣泛等諸多優點,它們可以為語言學研究、語言教學與學習、人工智能、商業應用等諸多領域提供資源,本文以網絡文本資源為對象,探討建設多語種資源庫,該資源庫主要為區域國別等學科的教學、研究和學習提供資源支撐,在實踐中具有重要的應用價值。
多語種網絡文本資源庫的概念源自于網絡驅動型語料庫(Web Driven Corpus),是一種針對網絡自然語言文本采集與利用的新型資源庫,與傳統語料庫無論在采集、存儲、規模、分析、使用等各個方面都有所區別,相對于傳統的語料庫而言,多語種網絡文本資源有以下幾個重要優點:(1)以網絡自然語言文本為主要采集對象;(2)較傳統語料庫數據量要大幾個數量級,涵蓋面廣、更新及時;(3)主要以網絡自動抓取為主,建庫耗時短、成本低;(4)數據在本地可供用戶使用,并且可以用語言對其進行后處理,并使用其首選工具進行查詢②。
相較傳統語料庫,它又有以下不足:(1)準確性和代表性相對于經過人工加工的傳統預料庫而言有所不足,盡管通過數據清洗的方法可以去除大部分數據噪聲,但是自動生成的冗余內容或拼寫錯誤依然會存在;(2)版權問題依然不清,語料庫的推廣會受到版權制約③。
多語言網絡文本資源庫建設目標是基于網絡自然語言文本資源,采集對象國家的語言網絡文本,分類構建多語種資源庫,存儲在本地硬盤或者網絡云端之中,滿足教師、學生利用自己熟悉的分析工具對語言對象國原始文本進行查詢、分析,從而提升區域國別學科的教學、科研、學習能力。
網絡數據采集是建庫中的重點工作,一般分為以下步驟:
1.將要采集的網頁地址存入網址列表(URL采集池);
2.確定要提取的內容,并設置篩選條件;
3.采集軟件的配置,包括鏈接延時、采集者信息等;
4.運行采集軟件,
目前,全球互聯網中充斥著數萬億個網頁,這些網頁內容名目繁多、形式各異,如何能最有效率的匹配要搜索的內容是非常關鍵的,這就需要根據一定的機制來將時間成本和資源成本降至最低,我們通常將用下面公式表示:

式中,WC在t時間內采集認為的最大加權完成率,其中C(t)和W分別表示在t時間內的采集頁面數和權重函數,確定每個頁面相對于搜索目標的相關性④。
采集器的設計無論采用何種計算機語言搭建,一般都包括待采集URL池、DNS解析模塊、抓取模塊、分析模塊、URL去重模塊等五個部分,其基本架構如圖1所示:

圖1 采集器的基本構架
圖1所示的采集器的工作原理是設定一個或者多個URL為采集的種子集合,接著,從種子集合中選擇一個URL進行采集,然后對采集到的頁面進行分析,并抽取出頁面中的文本和鏈接(每個鏈接都指向其他的URL)。抽取出的文本輸給文本索引器,而抽取出的URL則加入到待采集URL池中,任何時URL池中放的都是所有待采集網頁的URL。一旦某個URL被采集,那么就從池中刪除這個地址,整個采集過程可以看成是Web圖的遍歷過程。
多語言網絡文本資源庫數據采集過程中主要針對Python軟件來進行開發,主要運用的模塊有Scrapy、Requests、Beautifulsoap、Selenium等,在實際運用中根據網頁頁面的結構來進行選擇,一般靜態頁面多使用Requests來發送請求,大批量的采集一般使用Scrapy等框架爬蟲來進行采集,而對于網頁較復雜的或者動態較多的頁面則使用Selenium來進行采集,這些模塊都有各自的優缺點,再使用中會根據使用需求來進行選擇。選擇合適的采集模塊后,會進行相應的代碼編寫。
以Requests模塊為例,首先應該對頁面進行分析,找出多頁面之間的跳轉機制,根據頁面跳轉機制編寫代碼,獲取所有目標頁面的網址數據;接下來再編寫內容頁代碼塊,提取所頁面中所需要的內容信息;必要時要設置重復數據檢查機制,自動過濾掉重復的網址或者頁面內容。
在網絡數據的采集過程中常常會遇到的問題是目標服務器會識別采集程序并對本機IP地址進行封禁,解決的辦法一是引入代理服務器的機制,可以編寫專門的代理服務器獲取代碼獲得免費的代理服務器網址或者購買代理服務器網址,這樣就達到了不斷更換IP進行采集的目的;另外的解決辦法是通過降低目標服務器的連接頻率和速度,降低目標服務器運行的壓力等措施。
總體來說,推薦使用第二種解決方法,在不影響目標服務器正常運行的情況下來進行數據采集,做文明的數據采集者。在網絡采集中遇到另一個問題是如何保證采集的速度或效率,區別于傳統的單機采集器,我們可以將采集程序布置到服務器端,并設置定時采集方法,如果需要我們還可以構建服務器分布采集系統,來達到提高采集效率的目標。最后,由于我們要進行多語種的文本數據采集,在文本編碼格式上要特別注意選擇合適的文本編碼,已避免亂碼的出現。
網站內容采集以后,接下來的工作是進行數據清洗,數據清洗第一個目的是去除噪聲,噪聲主要包括頁面中的網絡標記符號,網頁的頁眉、頁腳,導航欄,以及主要內容之外的一些其他數據,這些噪聲會對將來的數據文本分析產生干擾,所以要在數據清洗的第一個階段清理干凈,只保留網頁中的主要內容的純文本信息。數據清洗的另一項主要任務是將內容文本中的標點符號、停頓詞等沒有意義的詞匯和標點去除,以提高教學資源庫在運行時統計結果的準確性。
數據清洗過程中較常使用的工具有Python、R、Microsoft word、Microsoft excel、Openrefine等軟件,這些軟件在功能上都能滿足數據清洗的需要,綜合比較各軟件的功能、學習的難易程度、操作的便捷程度等因素,推薦使用Openrefine軟件來進行數據清洗工作。Openrefine軟件是由原Googlerefine軟件繼承而來的一款基于java語言的開源軟件,該軟件功能強大、體積小、簡單易學,能滿足絕大多數的數據清洗工作。尤其是該軟件支持正則表達式和內置大量函數,對處理文本數據具有非常大的優勢。
在數據存儲方面,可采取兩種選項:一種是將經過數據清洗后的文本獨立存儲到文件夾下,每篇文章一個文檔,在使用時運用Python軟件nltk語料庫模塊進行數據的讀取和分析,該方法的優點是簡便快捷,節省了大量的時間,語料存儲成txt文檔,可以很方便的進行查看,缺點是需要掌握nltk語料庫模塊或其他語料庫軟件的使用方法,在利用文本的過程中也需要付出一定時間的學習。
數據存儲的第二種選項是利用文本挖掘軟件將清洗后的網絡文本轉換成文檔-詞項矩陣(DMT)的形式進行存儲,該矩陣中每一行代表一個文檔,每一列代表一個詞項,可以將文檔存入到Redis、Mangodb等關系型數據庫或本地硬盤中,優點是提取將文本歸類并進行了初步處理,使用時只需調用文檔即可進行分析。以上兩種方式都是來進行數據的存儲,具體采用哪種方式可以根據不同的需求進行選擇。
本文認為基于網絡的多語種教學資源庫必然會對區域國別學科的教學和研究產生重要的意義和變革,介紹了基于多語種網絡自然語言文本的教學資源庫相對于傳統語料庫的優勢和不足,認為基于網絡的自然語言文本庫對語言研究和教學有著重要的推動和改革,并結合實際情況介紹了構建多語種資源語言教學資源庫的基本原理、數據采集、數據清洗和存儲的原理和方法,對現實應用有較全面的指導。
未來,在基于網絡自然語言資源庫的數據采集效率、數據精確識別和分發版權方面,還要繼續深入研究。
注釋:
①夏立新,楚林,王忠義,等.基于網絡文本挖掘的就業知識需求關系構建[J].圖書情報知識,2016(001):94-100.
②魏順平,何克抗.基于文本挖掘的領域本體半自動構建方法研究——以教學設計學科領域本體建設為例[J].開放教育研究,2008(05):95-101.
③王妍,王原,大學英語網絡教學平臺的設計[J].現代教育技術,2005(03):45-48.
④高利明.教育技術對教育改革的支持作用[J].開放教育研究,1997(02):19-22+49.