劉明潔,李 珅,梁 毅
(1. 北京工業大學信息學部計算機學院,北京 100124;2. 中國司法大數據研究院有限公司,北京 100043)
隨著我國法制進程的突飛猛進,促使法律案件數量迅速增長。伴隨信息化的普及,法律文本數字化已經成為趨勢。由于數字化的過程千差萬別,最終導致信息化形成的文本需要糾正字詞的誤識別情形。中文文本校對與英文文本校對十分不同,特別是法律文本,其兼具中文語法特性和領域專業性。為了能夠精準的識別文本錯誤,首先要有一套詳盡準確的詞庫數據,其既可以是句法分析、語義分析的基礎,也是錯誤判斷、糾錯識別的依據。因此,構建詞庫對數字化法律文本的校對識別十分重要。
近年來,網絡爬蟲技術作為自動化獲取信息的得力助手正在迅猛發展。網絡爬蟲能夠根據指定規則實現自動化的與網絡應用交互,其已經被應用到了各個領域[1]-[2]。Distil Networks 2018的研究報告指出,在互聯網中約有40%-60%的流量來自網絡爬蟲應用,充分證明網絡爬蟲技術已經廣泛地使用。本文采用網絡爬蟲技術,通過爬取和分析網絡上大量存在的文本數據,結合使用數據清洗策略對爬取數據進行篩選,最終生成專業性詞庫數據供法律文本糾錯使用。
自從20世紀60年代開始,國外已經開啟了對英文文本拼寫校對的研究工作[3]。在研究的最初階段,主要方式還是以建立概率模型和字詞詞典來進行校對。近年來,字詞級校對的技術研究漸趨成熟,但在不限制給定語境情形下的真詞錯誤校對方面仍然很難保證文本校對的可靠性。因此,學者們紛紛在基于語義的文本校對方向上面展開研究。
Sikl等[4]將校對問題等價于翻譯問題,其把錯誤文本看作源語言,糾正文本作為目標語言進行文本拼寫檢查。張仰森等[5]提出一種基于語義和知識庫互相融合的錯誤偵測模型,其構建了搭配知識庫的三層語義模型并形成了一個基于該知識庫的語義偵測算法用來識別語義級錯誤。陶永才等[6]在詞語搭配知識庫的基礎上,綜合使用互信息和聚合度來計算詞語關聯度進行詞語搭配關系的偵測校驗。曹存根等[7]面向非多字詞錯誤提出基于模糊分詞的自動校對方法。
綜合上述工作可以發現,中文文本自動校對方法中均包含知識庫的構建準備工作,因此,知識庫的完善程度對校對結果有很大的影響。一個充分的知識庫可以使校對結果獲得較高的正確率,而如何構建一個質量高得知識庫一直是文本校對研究中不可或缺的一部分。
網絡爬蟲,也稱作Web信息采集器,它是可以自動執行互聯網頁面下載的計算機自動化運行腳本[8]。網絡爬蟲程序通常從一個稱為種子的網頁地址集合開始,它首先將這些地址全部放入到待爬行隊列中,然后按序從中取出地址并下載相關頁面及解析頁面內容,提取內容信息以及內嵌未爬取過的頁面鏈接地址,將新發現地址存入待爬行隊列中,如此重復上述過程,直至待爬行隊列為空而終止[9-11]。此過程可以稱為網絡爬蟲。
在用網絡爬蟲對頁面信息進行采集時,頁面信息的抽取是重要組成部分。如何準確的將目標信息從頁面中提取出來一直都是重要研究課題。陳俊彬[12]指出Web信息抽取策略根據實現原理的不同可以分為基于自然語言理解方式的信息抽取、基于ontology方式的信息抽取、基于網頁結構特征的信息抽取以及基于統計學習的信息抽取。同時,在網絡信息資源巨量增長的情況下,為了迅速獲取指定領域信息,主題爬蟲越來越多的受到關注。而影響主題爬蟲抓取效率的關鍵因素就是爬行策略[13]。史寶明等[14]提出一種基于鏈接模型的相關判別算法,綜合了待分析網頁地址之間的相關性分析,提高主題爬蟲的效率。杜曉旭[15]等人將新浪微博內容視為主題,利用Python原始的第三方庫進行數據獲取和分析,使計算更簡潔和明了。
總體來說,爬蟲技術日趨成熟,但也存在實現復雜的一面,在具體的設計實現中應以具體問題為導向,融合多種技術策略的優勢,以便快速高效的完成信息獲取和解析。
本文設計的方案為,通過網頁地址提取網頁內容,根據數據屬性篩選頁面信息,既包括了標題和內容,同時還包括含有該頁面內嵌其他鏈接地址的集合,以此來全面爬取與該頁面有關的各種信息。在獲取信息后,對數據進行清洗篩選以最終獲得專業性詞庫數據。
本文中設計的爬蟲以普通爬蟲為基礎,同時在功能上進行了適當擴充。在整個爬蟲處理過程中,增加主題確立、種子優化、內容排序等功能模塊。其中,主題確立模塊用于選取主題,以便爬蟲程序更具有針對性的析取內容;種子優化模塊用于生成面向指定主題的優秀站點,以便爬蟲程序能順利獲取內容;內容排序是對頁面內容的綜合處理,此模塊計算出每個頁面的權重價值,并與主題內容進行比較形成全面的評價排序結果,供程序篩選選取用。下圖是爬蟲的系統組成圖。

圖1 爬蟲系統示意圖Fig.1 Web crawler image
主題確立模塊的主要任務就是對主題的確立,本文采用詞語頻次權重計算法來確定主題。主要方法為通過統計指定主題下不同詞匯出現的頻次,按照頻次的數值篩選關鍵詞并設定權重形成主題匹配詞庫,后續進行網頁爬取時將提取的網頁關鍵詞與匹配詞庫比對,結合權重數值的計算,從而得到網頁主題。
對于權值的設置有兩種方法:手工設置和計算賦值。計算賦值是指給定一個與主題有關的網頁集合,由程序自動提取這些網頁里面共同的特征,并根據頻率確定權值;手工設置則是依據人工經驗進行,設置需要分析和提取的主題關鍵詞并設置權值。
在執行爬蟲程序抓取網頁數據時,為了節省計算資源和耗時成本,應避免互聯網網址的大規模爬取,反之應針對性的選取質量較高、內容較全的網頁進行內容提取。這樣既可提高效率,也可提高內容質量。本文的做法是采用元搜索引擎,在其搜索結果中選取與主題相匹配的高質量地址作為種子集合供后續爬蟲程序使用。
排序模塊的作用是對網頁的重要程度進行排序,將重要程度指數高的網頁靠前排序。對網頁排序的影響因素有很多,在對網頁計算排序時,可以綜合考慮主題相關度和鏈接分析兩個因素,而鏈接分析是以PageRank算法為基礎的。因此,在計算時可對主題相關度和PageRank賦予不同的權重,網頁的重要程度可以表示為如下形式:

其中 cos是通過主題相關度計算得出的數值,R(u)是利用PageRank算法計算得到的可用于頁面排序的網頁權重值。
系統的流程示意如圖2所示。主要功能如下:

圖2 爬蟲系統流程示意圖Fig.2 Web crawler flow diagram
地址管理器,其存放已訪問過的頁面地址和待訪問頁面地址,設計此管理器的目的為防止陷入重復訪問的循環中,管理器可以添加新地址。
下載器,負責將指定地址的頁面下載到本地供后續解析提卻使用。
頁面解析器,負責提取網頁中的內容數據和其他鏈接網址。
內容輸出器,將最終的結果輸出,可以提供網頁形式輸出或數據庫形式存儲。
為了能夠快速處理鏈接和計算,需要使用地址隊列,每個隊列統一保存具有處理狀態的地址:
等待隊列,在這個隊列中存儲的都是等待爬蟲處理的頁面地址,新爬蟲分析發現的地址也放入在此隊列中。
處理隊列,在這個隊列中,程序開始處理地址對應的網頁并分析內容。在此地址處理完成后,將地址放入完成隊列中。處理完成的狀態包含成功、失敗兩類。
完成隊列,在這個隊列中存放的是已經完成提取信息的地址,包含了成功獲取數據的地址和失敗解析數據的地址。
在根據地址爬取網頁數據時,首先需要檢查網頁內容。如果此網頁是一個網絡資源,即類似文件下載鏈接等,則可以直接忽略。檢查完成網頁的合理性后,即可訪問網頁。本文使用Python第三方組件庫 urllib來獲取網頁并利用返回狀態碼判斷是否訪問成功。在成功獲取了網頁后,通過網頁標簽識別技術,結合Python第三方庫BeatifulSoup獲取想要得到的數據,可識別標簽有“
”、“結合前述章節,本文采用PageRank算法并結合主題相關度計算做了適當改進。下面對算法進行簡要說明。
PageRank算法的思想是將網頁的權重數值看作一個由網絡的超鏈接結構所產生的網頁重要性等級。所有網頁的權重值都可以根據指向它的網頁的權重值和超鏈接數來計算,即所有鏈接到它的網頁的權重值除以各自向外的鏈接數的商進行求和[16]。
在本文中,PageRank算法可以簡單描述如下:設h是要進行計算的網頁,vi是指向h的網頁,C(vi)是網頁 vi的外指向網頁鏈接數,b是權重規范化因子。因此網頁h的PageRank值計算公式表示為:


表1 系統運行環境Tab.1 System operation environment
爬蟲系統的部署環境如表1所述。
下圖展示了爬蟲運行結果示例,如圖3所示,圖 3(a)中顯示了美國法律主題有關的爬蟲聚合數據。圖 3(b)種顯示了在使用爬蟲程序獲得充分的數據后,使用數據清洗策略將重復性數據、不合主題數據進行篩選后獲得的專業詞庫數據集。

圖3 爬蟲結果示意圖Fig.3 Web crawler diagram
本文敘述了基于爬蟲的法律文本糾錯詞庫構建方法。提出了融合主題構建、種子優化和內容排序等模塊于一體的爬蟲系統,并對系統在線上進行了試運行。運行結果顯示,本爬蟲設計方案可行,在指定領域內進行面向主題的信息采集,可以為相關詞庫的構建提供大量素材。