●鄧矜婷 張建悅
從20世紀(jì)80年代到21世紀(jì)初,中國(guó)法學(xué)研究經(jīng)歷了從“政法法學(xué)”到“詮釋法學(xué)”,再發(fā)展到“社科法學(xué)”,并形成了三種流派并存的基本格局。這一觀察由我國(guó)學(xué)者朱蘇力提出,并被普遍接受?!?〕參見(jiàn)蘇力:《也許正在發(fā)生——中國(guó)當(dāng)代法學(xué)發(fā)展的一個(gè)概覽》,《比較法研究》2001年第3期。近些年來(lái),更是出現(xiàn)了“社科法學(xué)”與“教義法學(xué)”相互爭(zhēng)論、評(píng)價(jià)比較的局面?!?〕參見(jiàn)侯猛:《社科法學(xué)的傳統(tǒng)與挑戰(zhàn)》,《法商研究》2014年第5期;陳柏峰:《社科法學(xué)及其功用》,《法商研究》2014年第5期;張翔:《形式法治與法教義學(xué)》,《法學(xué)研究》,2012年第6期;孫海波:《論法教義學(xué)作為法學(xué)的核心——以法教義學(xué)與社科法學(xué)之爭(zhēng)為主線》,《北大法律評(píng)論》2016年第1期。然后,隨著互聯(lián)網(wǎng)向社會(huì)各方面的不斷滲透,互聯(lián)網(wǎng)技術(shù)的指數(shù)級(jí)發(fā)展,一類新型法學(xué)研究方法,即計(jì)算法學(xué)開(kāi)始出現(xiàn)。2009年,15位學(xué)者在《科學(xué)》雜志上發(fā)表題為《計(jì)算社會(huì)科學(xué)》的文章正式提出了計(jì)算社會(huì)科學(xué)和社會(huì)計(jì)算的概念,指出在大數(shù)據(jù)時(shí)代要結(jié)合計(jì)算機(jī)使得社會(huì)研究智能化。〔3〕See David Lazer,Alex(Sandy)Pentland,Lada Adamic,Sinan Aral,Albert Laszlo Barabasi,Devon Brewer,Nicholas Christakis,Noshir Contractor,James Fowler,Myron Gutmann,Tony Jebara,Gary King,Michael Macy,Deb Roy,and Marshall Van Alstyne, Life in the network:the coming age of computational social science, Science,2009 February, 323(5915):721-723.受益于數(shù)據(jù)處理、存儲(chǔ)能力的提高及判決文書(shū)的公開(kāi),近期我國(guó)的法學(xué)研究也建立在越來(lái)越大量的文書(shū)處理基礎(chǔ)上。褚紅麗、魏健在研究財(cái)產(chǎn)刑對(duì)貪污受賄罪量刑的影響時(shí)就分析了近兩萬(wàn)份判決書(shū);〔4〕參見(jiàn)褚紅麗、魏健:《刑期與財(cái)產(chǎn)雙重約束下的腐敗懲罰》,《社會(huì)科學(xué)戰(zhàn)線》2018年第1 期。白建軍在研究量刑中的法官集體經(jīng)驗(yàn)時(shí)利用計(jì)算機(jī)處理了十四萬(wàn)余件交通肇事罪判決書(shū);〔5〕參見(jiàn)白建軍:《基于法官集體經(jīng)驗(yàn)的量刑預(yù)測(cè)研究》,《法學(xué)研究》2016年第6期。雷鑫洪在討論中國(guó)法律實(shí)證研究的演進(jìn)時(shí)運(yùn)用BICOMB2.0軟件智能化處理了四千余篇文獻(xiàn)?!?〕參見(jiàn)雷鑫洪:《方法論演進(jìn)視野下的中國(guó)法律實(shí)證研究》,《法學(xué)研究》2017年第4期。最高院、最高檢也相繼公布了發(fā)展大數(shù)據(jù)在實(shí)務(wù)中的運(yùn)用計(jì)劃,有關(guān)智慧法院、智慧檢務(wù)的研發(fā)、試點(diǎn)實(shí)驗(yàn)和推廣落地都在不斷地推進(jìn)?!?〕更多信息參見(jiàn)左衛(wèi)民:《如何通過(guò)人工智能實(shí)現(xiàn)類案類判》,《中國(guó)法律評(píng)論》2018年第2期。法律教育界也是反響熱烈,各大知名院校都爭(zhēng)先恐后地成立了類似法律+科技的旨在培養(yǎng)計(jì)算法律人才的研究院所?!?〕北京大學(xué)、中國(guó)人民大學(xué)、清華大學(xué)、中國(guó)政法大學(xué)等幾十所大學(xué)紛紛成立了法律+科技相關(guān)的實(shí)驗(yàn)室、研究所等。參見(jiàn):http://www.xinhuanet.com/legal/2017-09/11/c_129701280.htm,http://www.raincent.com/content-10-11276-1.html,http://news.cupl.edu.cn/info/1011/26207.htm,2019年3月13日最后訪問(wèn)。
法學(xué)研究方法一般被認(rèn)為有三種:價(jià)值判斷、規(guī)范研究、實(shí)證研究。〔9〕參見(jiàn)陳柏峰:《法律實(shí)證研究的興起與分化》,《中國(guó)法學(xué)》2018年第3期。計(jì)算法學(xué)目前的價(jià)值集中體現(xiàn)在讓計(jì)算機(jī)自動(dòng)提取、處理大量數(shù)據(jù)上;而三種法學(xué)研究方法中似乎唯有實(shí)證法學(xué)中的定量研究是需要描述、分析法律在實(shí)踐中產(chǎn)生的大量數(shù)據(jù)來(lái)進(jìn)行,所以部分學(xué)者認(rèn)為計(jì)算法學(xué)是定量實(shí)證法學(xué)的一種新型研究方法?!?0〕同上注,陳柏峰文;左衛(wèi)民:《一場(chǎng)新的范式革命?——解讀中國(guó)法律實(shí)證研究》,《清華法學(xué)》2017年第3期;白建軍:《大數(shù)據(jù)對(duì)法學(xué)研究的些許影響》,《中外法學(xué)》2015年第1期。不過(guò)這些學(xué)者對(duì)于定量實(shí)證法學(xué)能否獨(dú)立于“社科法學(xué)”,或者“廣義上的實(shí)證法學(xué)”,而自成一派還存在爭(zhēng)議?!?1〕左衛(wèi)民認(rèn)為,實(shí)證法學(xué)研究?jī)H指定量實(shí)證法學(xué)研究,其獨(dú)特性和重要性可以獨(dú)立于社科法學(xué)研究之外而自成一派。陳柏峰則認(rèn)為,實(shí)證法學(xué)研究也包括定性實(shí)證法學(xué)研究,與社科法學(xué)具有類似的含義。詳見(jiàn):同上注,左衛(wèi)民文;同前注〔9〕,陳柏峰文。其中也有些學(xué)者認(rèn)為計(jì)算法學(xué),或數(shù)量法學(xué)〔12〕參見(jiàn)劉瑞復(fù):《當(dāng)代市場(chǎng)經(jīng)濟(jì)與數(shù)量法學(xué)》,《中外法學(xué)》1996年第4期?;蛴?jì)量法學(xué),〔13〕參見(jiàn)屈茂輝、張杰:《計(jì)量法學(xué)本體問(wèn)題研究》,《法學(xué)雜志》2010年第1期;屈茂輝、張杰、張彪:《論計(jì)量方法在法學(xué)研究中的應(yīng)用》,《浙江社會(huì)科學(xué)》2009年第3期。是以定量研究的方法(含計(jì)算機(jī)的方法)研究具有數(shù)量變化關(guān)系的法律現(xiàn)象?!?4〕參見(jiàn)張妮、蒲亦非,《計(jì)算法學(xué)導(dǎo)論》,四川大學(xué)出版社2015年版,第21~24頁(yè)。另有部分學(xué)者則認(rèn)為,計(jì)算法學(xué)代表著大數(shù)據(jù)時(shí)代數(shù)據(jù)科學(xué)在法學(xué)領(lǐng)域的運(yùn)用,是計(jì)算社會(huì)科學(xué)中的一種,擁有獨(dú)特的計(jì)算思維和研究手段?!?5〕參見(jiàn)錢(qián)寧峰:《走向“計(jì)算法學(xué)”:大數(shù)據(jù)時(shí)代法學(xué)研究的選擇》,《東南大學(xué)學(xué)報(bào)》(哲學(xué)社會(huì)科學(xué)版)2017年第2期。本文討論的計(jì)算法學(xué),指的是將計(jì)算機(jī)科學(xué)運(yùn)用于研究或解決法學(xué)問(wèn)題的方法,所以區(qū)別于意指計(jì)量法學(xué)的計(jì)算法學(xué)。
事實(shí)上,計(jì)算法學(xué)方法的運(yùn)用已經(jīng)呈現(xiàn)出一些問(wèn)題。比如,對(duì)海量文書(shū)是如何提取、處理的,沒(méi)有交代,僅說(shuō)明經(jīng)過(guò)人工檢測(cè),達(dá)到統(tǒng)計(jì)精度要求,但具體如何檢測(cè),沒(méi)有說(shuō)明?!?6〕同前注〔5〕,白建軍文。計(jì)算機(jī)檢測(cè)錯(cuò)誤的方法多種多樣,不同的方法得到不同的結(jié)果。即使是運(yùn)用現(xiàn)成的軟件來(lái)處理,這些軟件的底層代碼也不是公開(kāi)的,其結(jié)果的準(zhǔn)確度也是不確定的。又如,有些文獻(xiàn)研究類似的判決書(shū),運(yùn)用類似的模型但得到了相互矛盾的結(jié)果,使人懷疑底層數(shù)據(jù)提取的準(zhǔn)確性,這些研究因?yàn)樯婕按罅繑?shù)據(jù)的處理而極有可能是運(yùn)用了智能提取的方法。〔17〕王劍波、過(guò)勇和李松鋒均是研究在裁判文書(shū)網(wǎng)上公開(kāi)的2015年左右的受賄罪判決書(shū),但在地區(qū)差異是否顯著影響量刑時(shí)得到了矛盾的結(jié)果。詳見(jiàn)王劍波:《我國(guó)受賄罪量刑地區(qū)差異問(wèn)題實(shí)證研究》,《中國(guó)法學(xué)》2016年第4期;過(guò)勇、李松鋒:《貪污受賄案件刑事量刑的實(shí)證研究》,《經(jīng)濟(jì)社會(huì)體制比較》2018年第1期。而且,涉及大量數(shù)據(jù)處理的法學(xué)研究都沒(méi)有對(duì)其底層程序進(jìn)行開(kāi)源,導(dǎo)致后來(lái)的類似研究無(wú)法重復(fù)利用,不能在已有的程序基礎(chǔ)上進(jìn)一步完善,也無(wú)法檢測(cè)原程序。如此則浪費(fèi)時(shí)間和資源,重復(fù)勞動(dòng)。比如隨著裁判文書(shū)的公開(kāi)上網(wǎng),很多學(xué)者都在對(duì)已公開(kāi)的文書(shū)進(jìn)行全樣本提取、分析,這些工作有很多都是相同的,并且耗時(shí)耗力的,正如已有學(xué)者指出的,實(shí)證研究的成本是很高的?!?8〕同前注〔6〕,雷鑫洪文。這使得這類研究容易止于表面,各自為陣,難以深入和持續(xù)?!?9〕同前注〔9〕,陳柏峰文。計(jì)算機(jī)科學(xué)與生俱來(lái)的優(yōu)勢(shì)在于通過(guò)開(kāi)源,能夠讓程序在不同的計(jì)算機(jī)上重復(fù)運(yùn)行,使得后面的研究得以輕松地在前人的基礎(chǔ)上向前進(jìn),也使得后人可以檢測(cè)前人的程序,更好地實(shí)現(xiàn)優(yōu)勝劣汰,促進(jìn)知識(shí)成果之間的競(jìng)爭(zhēng)。本文旨在通過(guò)對(duì)獨(dú)特性的討論,加深對(duì)作為研究方法的計(jì)算法學(xué)的理解,嘗試提出該方法在處理大量判決書(shū)時(shí)的一些通用方法、基本步驟和要求,希望能促進(jìn)此類研究的規(guī)范化,提倡程序代碼的開(kāi)源,提高對(duì)已有研究的檢測(cè)和再利用。
計(jì)算法學(xué)方法之所以能稱為一種新的法學(xué)研究方法,而不僅是定量法學(xué)研究方法中的一種處理數(shù)據(jù)的方法,一方面是因?yàn)閺挠?jì)算社會(huì)科學(xué)延伸而來(lái)的計(jì)算法學(xué)具有獨(dú)立的研究對(duì)象、研究方法和研究領(lǐng)域,另一方面是計(jì)算法學(xué)方法具有迥異于其他法學(xué)研究方法的運(yùn)用計(jì)算機(jī)處理海量數(shù)據(jù)的顯著特點(diǎn)。正因如此,計(jì)算法學(xué)方法除了能夠獲取、處理海量判決書(shū)外,還可以在非定量法學(xué)研究問(wèn)題中發(fā)揮作用。
計(jì)算法學(xué)從計(jì)算社會(huì)科學(xué)延伸而來(lái)。而計(jì)算社會(huì)科學(xué)并不僅指一種新的研究方法。正如導(dǎo)言中提及的2009年在《科學(xué)》雜志上發(fā)表的那篇文章所述,它是指現(xiàn)代計(jì)算技術(shù)與社會(huì)科學(xué)之間的一門(mén)交叉學(xué)科,與通過(guò)調(diào)查問(wèn)卷或抽取小樣本進(jìn)行分析的傳統(tǒng)社會(huì)科學(xué)不同,是由現(xiàn)代網(wǎng)絡(luò)生活催生的,能夠通過(guò)各種新技術(shù)獲取長(zhǎng)時(shí)間的、持續(xù)的、大量人群的行為和互動(dòng)數(shù)據(jù),從而為研究動(dòng)態(tài)的大型的網(wǎng)絡(luò)社會(huì)演化等問(wèn)題提供堅(jiān)實(shí)的基礎(chǔ)?!?0〕參見(jiàn)張鑒、孔麗華:《〈Science〉雜志發(fā)表關(guān)于計(jì)算社會(huì)科學(xué)的文章:Computational Social Science》,《科研信息化技術(shù)與應(yīng)用》2010年第2期。它因?yàn)榫哂歇?dú)立的研究對(duì)象、研究方法、研究領(lǐng)域和目的而得以成為一個(gè)新的學(xué)科。其實(shí)在自然科學(xué)、經(jīng)濟(jì)學(xué)、社會(huì)學(xué)等領(lǐng)域已先后出現(xiàn)了計(jì)算物理學(xué)、計(jì)算經(jīng)濟(jì)學(xué)、計(jì)算社會(huì)學(xué)等學(xué)科概念。〔21〕同前注〔15〕,錢(qián)寧峰文。與之相應(yīng)的,計(jì)算法學(xué)也具有超過(guò)研究方法的更為廣泛的含義。它具有新的研究領(lǐng)域,包括政法輿情分析、法治國(guó)情調(diào)查、法律數(shù)據(jù)庫(kù)分析等;〔22〕同上注。具有新的研究對(duì)象,包括數(shù)據(jù)獲取的正當(dāng)途徑、數(shù)據(jù)及數(shù)據(jù)庫(kù)的權(quán)利屬性、代碼程序軟件等的權(quán)利屬性等;具有新的研究手段,包括各種計(jì)算機(jī)語(yǔ)言、不斷涌現(xiàn)的計(jì)算方法和開(kāi)源程序;具有新的研究思維,即讓計(jì)算機(jī)智能化處理大量數(shù)據(jù)的計(jì)算思維。本文討論的是計(jì)算法學(xué)的研究方法。廣義上來(lái)講,本文所指的計(jì)算法學(xué)方法和計(jì)算法學(xué)的研究方法是不同的。因?yàn)檠芯坑?jì)算法學(xué),特別是數(shù)據(jù)等權(quán)利屬性,也會(huì)用到價(jià)值判斷、規(guī)范研究和傳統(tǒng)實(shí)證研究的方法。不過(guò)計(jì)算法學(xué)的研究方法中最主要、最具特點(diǎn)的方法還是本文所指的運(yùn)用計(jì)算機(jī)科學(xué)智能化處理大量法律數(shù)據(jù)以解決法律問(wèn)題的方法。也正是因?yàn)檫@種方法的能力,使得計(jì)算法學(xué)可以具有其他法學(xué)方法難以研究的新的研究對(duì)象和研究領(lǐng)域。
計(jì)算法學(xué)方法與其他法學(xué)研究方法有兩點(diǎn)顯著不同。一是,它能處理大量的數(shù)據(jù)。這里的大量既指超過(guò)人類手工能夠處理的數(shù)量,比如十幾萬(wàn)、幾十萬(wàn)甚至幾百萬(wàn)份判決書(shū),也指能夠高效地處理手工可以處理的數(shù)量,比如用一臺(tái)普通電腦在一兩周的時(shí)間內(nèi)處理幾千份文書(shū)。而事實(shí)上對(duì)于同類的文書(shū),處理的時(shí)間主要花在編寫(xiě)和調(diào)試程序上,所以處理少量和多量的判決書(shū)所花的時(shí)間相差不多,計(jì)算法學(xué)方法因而更傾向于處理大量的數(shù)據(jù),所以往往會(huì)對(duì)全樣本進(jìn)行分析,而不再受限于隨機(jī)抽樣的要求?!?3〕同前注〔10〕,白建軍文。諸如“截止到某日之前的所有在裁判文書(shū)網(wǎng)上公開(kāi)的某一類罪名的判決書(shū)”就成為運(yùn)用計(jì)算法學(xué)方法的文章的常用表述。〔24〕同前注〔4-6〕所列諸文。而且這里的“處理”不僅指讓計(jì)算機(jī)從法律文書(shū)中提取數(shù)據(jù),還包括獲取、打開(kāi)、清洗/格式化、輸出、存儲(chǔ)、檢索、更新大量文書(shū),以及對(duì)所提取的信息進(jìn)一步批量處理等一系列的操作。二是,它對(duì)數(shù)據(jù)的處理主要是通過(guò)計(jì)算機(jī)而非人類來(lái)完成的,所以它需要項(xiàng)目人具有能夠與計(jì)算機(jī)溝通的能力,能夠理解計(jì)算機(jī)運(yùn)行的情況,并將對(duì)大量文書(shū)的處理要求轉(zhuǎn)化成計(jì)算機(jī)可以理解和執(zhí)行的命令。這要求項(xiàng)目人掌握一門(mén)高級(jí)計(jì)算機(jī)語(yǔ)言和理解計(jì)算機(jī)的運(yùn)行思維。高級(jí)計(jì)算機(jī)語(yǔ)言,并不是復(fù)雜、難懂的語(yǔ)言,而是指與人類語(yǔ)言最為接近的計(jì)算機(jī)語(yǔ)言;它便于人類掌握,從而與計(jì)算機(jī)溝通。常見(jiàn)的有python, java等。〔25〕詳見(jiàn)嵩天,《Python語(yǔ)言程序設(shè)計(jì)》慕課課程,教學(xué)課件PPT1.1第19頁(yè);關(guān)于Python的介紹詳見(jiàn):https://docs.python.org/3/tutorial/index.html,2019年3月13日最后訪問(wèn)。關(guān)于Java的介紹詳見(jiàn):https://www.runoob.com/java/java-intro.html,2019年3月13日最后訪問(wèn)。人類可以通過(guò)這類語(yǔ)言編寫(xiě)程序,進(jìn)而被編譯器轉(zhuǎn)換成匯編語(yǔ)言,再由計(jì)算機(jī)來(lái)執(zhí)行。所以法律人掌握這類高級(jí)語(yǔ)言是很容易的,它有遠(yuǎn)比中文、英語(yǔ)等人類語(yǔ)言更為簡(jiǎn)單的語(yǔ)法層次和結(jié)構(gòu),需要記憶的內(nèi)容也非常少?!?6〕像常用的高級(jí)計(jì)算機(jī)語(yǔ)言Python就只有33個(gè)保留字是需要記憶其具體含義的。掌握語(yǔ)言之后還需要能夠?qū)⒎裳芯繂?wèn)題形式化為可以被計(jì)算的問(wèn)題,或者由計(jì)算機(jī)進(jìn)行演算的過(guò)程,就像在法律實(shí)證研究中都需要把抽象的理論問(wèn)題轉(zhuǎn)化為可以被驗(yàn)證的具體的假設(shè)一樣,只是計(jì)算法學(xué)方法中要求轉(zhuǎn)化過(guò)來(lái)的是計(jì)算機(jī)能夠演算的以計(jì)算機(jī)語(yǔ)言表達(dá)出來(lái)的問(wèn)題和操作步驟。掌握這些能力是在計(jì)算法學(xué)應(yīng)運(yùn)而生后對(duì)法律人的基本要求,不應(yīng)再被當(dāng)作是非法律的技術(shù)問(wèn)題而拒之千里。〔27〕同前注〔15〕,錢(qián)寧峰文。
計(jì)算法學(xué)方法在本質(zhì)上是將一個(gè)法律研究問(wèn)題的一部分或全部形式化為可以計(jì)算的問(wèn)題,或者由計(jì)算機(jī)演算的過(guò)程;它往往是抽象、模擬人們思考和解決這一法律問(wèn)題時(shí)的過(guò)程,再由計(jì)算機(jī)執(zhí)行這一過(guò)程予以解答。所以雖然計(jì)算法學(xué)方法因其主要用于處理大量法律數(shù)據(jù)而與定量實(shí)證法學(xué)研究聯(lián)系頗緊,但若因此而認(rèn)為計(jì)算法學(xué)方法是傳統(tǒng)定量研究方法的分支,并將其局限于傳統(tǒng)定量研究的領(lǐng)域則未免狹隘了。比如,以規(guī)范研究為主的教義法學(xué)素來(lái)強(qiáng)調(diào)法律概念、形式法治、法律體系的自洽,排斥以非法律因素為由對(duì)法律規(guī)范的隨意解讀。但是由于語(yǔ)言天然的模糊性、可解釋性、語(yǔ)義的變遷等特點(diǎn),要實(shí)現(xiàn)同一時(shí)期人數(shù)眾多的社會(huì)群體對(duì)法律規(guī)范的統(tǒng)一理解是非常困難的,更別說(shuō)是不同代人的理解了。其實(shí)就是要讓同一個(gè)法學(xué)家完成我國(guó)當(dāng)今所有法律,或者某一部門(mén)法律的所有法條的全部梳理,建立起法律體系,確定每個(gè)法條在其中的坐標(biāo)與其他法條之間的聯(lián)系,消除矛盾和歧義,并能保持更新,都是過(guò)于理想化了。但是計(jì)算機(jī)在完成這類工程里卻有先天優(yōu)勢(shì),因?yàn)橛?jì)算機(jī)有巨大的存儲(chǔ)空間,知識(shí)可以不斷累加,不受記憶的限制,可以完美地傳遞和更新知識(shí)。而且計(jì)算機(jī)運(yùn)行要求百分之百的準(zhǔn)確,不允許有歧義和矛盾,對(duì)體系和結(jié)構(gòu)的要求更是不容有錯(cuò),否則就無(wú)法運(yùn)行。所以雖然暫時(shí)計(jì)算機(jī)還未用于規(guī)范研究,但可以預(yù)見(jiàn)隨著法律人更為深刻地理解計(jì)算法學(xué)方法,這類方法被用于規(guī)范研究是完全可能的。另外,目前政法實(shí)務(wù)界正在如火如荼進(jìn)行的運(yùn)用算法建立定罪量刑模型〔28〕亦有法律學(xué)者開(kāi)始關(guān)注如何建立這些模型。參見(jiàn)同前注〔5〕,白建軍文;同前注〔14〕,張妮、蒲亦非書(shū),第2、3章。其實(shí)也是運(yùn)用計(jì)算法學(xué)方法來(lái)研究和確定法律規(guī)范或概念的可解釋邊界。
具體到定量法學(xué)實(shí)證研究中,計(jì)算法學(xué)方法的作用可以細(xì)分為三大類。一是自動(dòng)獲取大量判決文書(shū)。雖然自最高院積極推行法院判決文書(shū)上網(wǎng)以來(lái),越來(lái)越多的判決書(shū)公布在中國(guó)裁判文書(shū)網(wǎng)上,也進(jìn)而被openlaw、無(wú)訟、北大法寶等第三方平臺(tái)收錄和轉(zhuǎn)載,但是若要手動(dòng)從網(wǎng)上下載則費(fèi)時(shí)無(wú)效。每篇文書(shū)下載的過(guò)程都是重復(fù)的,所以可以通過(guò)代碼讓計(jì)算機(jī)自動(dòng)重復(fù)這一過(guò)程,完成大量文書(shū)的下載。
二是自動(dòng)提取文書(shū)信息。這是將定量研究中對(duì)文書(shū)進(jìn)行編碼的過(guò)程由人力轉(zhuǎn)變?yōu)橛?jì)算機(jī)完成。計(jì)算機(jī)能夠提取的信息按其完成的難度和準(zhǔn)確度可以分為三類。第一類是在相對(duì)固定位置有相對(duì)固定表述的信息,比如案件名稱、當(dāng)事人及代理人信息、法院/公訴人信息、審判時(shí)間/地點(diǎn)、審判人員等。這些信息出現(xiàn)的位置一般在判決書(shū)標(biāo)題、開(kāi)頭或結(jié)尾,表述都有特定的詞匯,雖然偶有變化,但是可以通過(guò)少量列舉的方法讓計(jì)算機(jī)辨別。第二類是位置不太固定、表述較多變化的信息,比如受賄罪判決書(shū)處理中的受賄次數(shù)、受賄金額、行賄人數(shù)等信息。這些信息有的出現(xiàn)在總結(jié)句中,有的散落在整個(gè)文書(shū)中需要計(jì)算;信息的表述多種多樣,跨度很大。以受賄金額為例,可以有多種貨幣,還可能包括多類財(cái)物。所以難以用簡(jiǎn)單的列舉讓計(jì)算機(jī)通過(guò)搜索文書(shū)來(lái)完成,需要抽象人在閱讀文書(shū)時(shí)獲取這些信息的思考過(guò)程來(lái)讓計(jì)算機(jī)模擬進(jìn)而不斷重復(fù),遍歷所有文書(shū)予以提取。第三類是不能直接提取、需要通過(guò)構(gòu)建可提取的要素的算法或組合才能獲得的信息,比如受賄人的職級(jí)、是否積極為他人謀利、法官對(duì)證據(jù)確實(shí)充分的內(nèi)心確信程度、嫌疑人的社會(huì)危險(xiǎn)性等。這些信息不會(huì)直接在文書(shū)中載明;有些本身就足以成為一個(gè)法學(xué)研究子命題。這些信息需要轉(zhuǎn)換成若干可從文書(shū)中直接提取的信息(本文稱之為“要素”)的某種組合或者算法來(lái)由計(jì)算機(jī)獲得。〔29〕本文將可以從文書(shū)中直接提取的構(gòu)成某一更為抽象信息的信息稱為要素,將抽象信息具象化為要素的具體算法的過(guò)程稱為要素化過(guò)程。這也是目前智慧司法開(kāi)發(fā)軟件的幾大公司通用的說(shuō)法。比如元典、法信、國(guó)雙等公司在分析判決文書(shū)、構(gòu)建人工智能定罪量刑/類案推送模型時(shí)都是通過(guò)要素化過(guò)程將一些比較抽象的情節(jié)轉(zhuǎn)換成可直接提取的要素來(lái)進(jìn)行的。這些信息是由筆者在2018年4月到5月期間于北京、上海、浙江等地在上述公司和運(yùn)用這些公司研發(fā)的智慧司法軟件的法院、檢察院進(jìn)行調(diào)研時(shí)獲得的。這一轉(zhuǎn)換需要有法學(xué)理論的支持和引導(dǎo),亦是模擬符合條件的法律人思考該法律問(wèn)題的過(guò)程來(lái)得到?!?0〕筆者曾在調(diào)研北京某區(qū)級(jí)法院的某套司法輔助斷案軟件,并訪談該軟件開(kāi)發(fā)的負(fù)責(zé)人員時(shí)了解到這樣一個(gè)例子,可以較好地說(shuō)明這一過(guò)程。該例子中要提取的是既有判決中法官們是如何確定肖像權(quán)損害的賠償數(shù)額這一信息。為了提取這一信息,首先需要根據(jù)法條梳理和訪談多個(gè)法官確定法官們一般會(huì)遵守的思考這一問(wèn)題的過(guò)程,將它要素化為若干可直接提取的要素的算法,比如被侵權(quán)人的身份、被侵犯的照片的性質(zhì)、有多少人看過(guò)侵權(quán)的照片等,以及這些信息的影響權(quán)重。再通過(guò)對(duì)既有判決中這些要素的提取和分析,來(lái)增刪要素、檢驗(yàn)和修改它們的影響權(quán)重,最終得到合適的算法,并通過(guò)計(jì)算機(jī)從大量既有判決中提取這一信息。該調(diào)研由筆者在2018年4月中旬于北京某信息學(xué)院完成。與定量研究中將抽象理論形式化為可操作、可驗(yàn)證的具體假設(shè)類似,這里則是將這些更為抽象的信息轉(zhuǎn)化為可直接提取的要素的組合或算法。
三是自動(dòng)更新文書(shū)、提取的信息和用以提取抽象信息的算法。大數(shù)據(jù)時(shí)代數(shù)據(jù)的特點(diǎn)之一就是實(shí)時(shí)、持續(xù)更新;裁判文書(shū)網(wǎng)上的判決書(shū)也每天在增加。雖然法學(xué)研究都是針對(duì)截止某日期之前的固定的樣本庫(kù),但是如果計(jì)算機(jī)能夠自動(dòng)更新已有樣本庫(kù),增加新公布的判決書(shū),并及時(shí)自動(dòng)從中提取信息,那么過(guò)一段時(shí)間后研究新公布判決書(shū)與舊樣本庫(kù)之間的變化就變得非常輕松了。另外,機(jī)器學(xué)習(xí)的方法還使得計(jì)算機(jī)能夠根據(jù)新判決書(shū)的信息自動(dòng)或者提示項(xiàng)目人更新對(duì)抽象信息進(jìn)行提取的算法,包括發(fā)現(xiàn)新的要素和修改已有要素的影響權(quán)重。
前文已經(jīng)解釋了計(jì)算法學(xué)方法的含義。不過(guò),一種新的研究方法應(yīng)當(dāng)具有獨(dú)特的不同于其他研究方法的基本思維。那么,計(jì)算法學(xué)方法的基本思維是怎樣獨(dú)特的呢?本文認(rèn)為,計(jì)算法學(xué)方法體現(xiàn)了計(jì)算思維和法學(xué)思維的融合,而不是簡(jiǎn)單地拼接。計(jì)算法學(xué)思維具有獨(dú)立的復(fù)雜性和學(xué)術(shù)價(jià)值,一般有四個(gè)基本步驟:將法學(xué)問(wèn)題形式化為可計(jì)算的問(wèn)題,選擇合適的計(jì)算方法,設(shè)計(jì)需要的計(jì)算機(jī)功能,以及編寫(xiě)程序?qū)崿F(xiàn)設(shè)計(jì)的功能。
由于計(jì)算法學(xué)方法目前主要用于智能化編碼大量法律文書(shū),從中提取信息,所以很多時(shí)候計(jì)算法學(xué)方法體現(xiàn)的是一種搜索思維,即遍歷所有文檔檢索項(xiàng)目人輸入的詞語(yǔ),然后存儲(chǔ)、計(jì)算和輸出。如此直觀和簡(jiǎn)單以至于難以稱得上是一種思維。如此,計(jì)算法學(xué)方法似乎不算擁有自己獨(dú)特的思維了。顯然這種理解只停留在計(jì)算機(jī)發(fā)展初期。經(jīng)過(guò)半個(gè)多世紀(jì)指數(shù)級(jí)的發(fā)展,計(jì)算機(jī)的計(jì)算能力即將在2020年達(dá)到一個(gè)成人大腦的水平?!?1〕參見(jiàn)王文敏,《人工智能原理》慕課課程,教學(xué)課件PPTA-1-2第11頁(yè),轉(zhuǎn)引自:http://waitbutwhy.com/,2019年3月13日最后訪問(wèn)。計(jì)算機(jī)能夠完成的任務(wù)、進(jìn)行的思考和處理的問(wèn)題的復(fù)雜度都足以將其與機(jī)械化機(jī)器區(qū)別開(kāi)來(lái),而被稱為智能化的機(jī)器,又稱人工智能。而通過(guò)充分利用和發(fā)展計(jì)算機(jī)的能力來(lái)解決問(wèn)題的思維也被計(jì)算機(jī)科學(xué)界稱為人類歷史上區(qū)別于邏輯思維和實(shí)證思維的第三種思維模式,即計(jì)算思維?!?2〕同前注〔25〕,嵩天課件,PPT1.1第32頁(yè)。這種思維目前可以細(xì)分為對(duì)計(jì)算機(jī)四種能力的開(kāi)發(fā)和運(yùn)用,即檢索、推理、規(guī)劃和學(xué)習(xí)的能力?!?3〕同前注〔31〕,王文敏課件,PPTA-2-1第2頁(yè)。隨著計(jì)算科學(xué)的不斷發(fā)展,計(jì)算思維也會(huì)不斷深化和擴(kuò)展。本質(zhì)上講,計(jì)算思維就是一種通過(guò)發(fā)展和運(yùn)用計(jì)算機(jī)能力來(lái)解決問(wèn)題的思維,它需要將問(wèn)題形式化為能被計(jì)算的問(wèn)題,進(jìn)而將其求解過(guò)程抽象出來(lái),并由計(jì)算機(jī)模擬和執(zhí)行予以解決。這里的“能被計(jì)算”并不是指數(shù)學(xué)或者統(tǒng)計(jì)學(xué)運(yùn)算,而是指能被計(jì)算機(jī)運(yùn)算。計(jì)算機(jī)科學(xué)的基礎(chǔ)不僅有數(shù)學(xué)、統(tǒng)計(jì)學(xué),還有邏輯學(xué)、哲學(xué)、心理學(xué)等。
根據(jù)上文所述,由于計(jì)算法學(xué)思維是計(jì)算思維在法學(xué)問(wèn)題中的體現(xiàn),所以本文認(rèn)為計(jì)算法學(xué)思維是這樣一種思維,它以研究或解決某一法學(xué)問(wèn)題為任務(wù),通過(guò)運(yùn)用已有的計(jì)算機(jī)方法,在已有的計(jì)算機(jī)能力基礎(chǔ)上培養(yǎng)或發(fā)展完成任務(wù)所需要的計(jì)算機(jī)能力,再通過(guò)這一能力完成任務(wù),并通過(guò)任務(wù)完成的好壞檢測(cè)和完善計(jì)算機(jī)能力。它是計(jì)算機(jī)科學(xué)與法學(xué)思維的結(jié)合。它要求法律人在解析法學(xué)研究問(wèn)題時(shí)能夠意識(shí)到怎樣的法學(xué)問(wèn)題有可能并且適合通過(guò)計(jì)算機(jī)實(shí)現(xiàn),設(shè)想出將問(wèn)題分解為計(jì)算機(jī)可實(shí)現(xiàn)問(wèn)題的路徑,并能進(jìn)一步了解實(shí)現(xiàn)需要的方法和條件是否存在,以及掌握建立條件、運(yùn)用方法讓計(jì)算機(jī)實(shí)現(xiàn)研究的能力。它的基本步驟可以分為四步。
第一步,將法學(xué)問(wèn)題形式化為可計(jì)算問(wèn)題。什么是可計(jì)算的問(wèn)題至今沒(méi)有統(tǒng)一確定的答案。不過(guò),第(一)點(diǎn)討論的當(dāng)前計(jì)算機(jī)具有的四種能力在法學(xué)問(wèn)題中皆有用武之地。首先是常見(jiàn)的檢索能力,即在大量法律文書(shū)中自動(dòng)檢索需要的信息。這種能力也是目前計(jì)算機(jī)發(fā)展得最豐富的一種,包括有條件和無(wú)條件檢索、有啟發(fā)和盲目檢索、單個(gè)和群檢索等,〔34〕同前注〔31〕,王文敏課件,PPT 第 3、4章。可以用來(lái)處理不同數(shù)量、屬性、狀態(tài)和結(jié)構(gòu)的數(shù)據(jù),提取所需要的信息,以及分析直接提取的信息以發(fā)掘出隱蔽的信息。判決書(shū)只是一種法律文書(shū),還有比判決書(shū)更大量、更動(dòng)態(tài)、更交互的法律數(shù)據(jù),比如政法輿情、法治國(guó)情等領(lǐng)域研究的數(shù)據(jù),〔35〕同前注〔15〕,錢(qián)寧峰文。需要有更高級(jí)、復(fù)雜、豐富的檢索方法才能更有效地完成相關(guān)研究的任務(wù)。然后是與規(guī)范法學(xué)研究思維最接近的計(jì)算機(jī)推理能力。這種能力是建立在計(jì)算機(jī)知識(shí)庫(kù)工程建設(shè)的基礎(chǔ)上。通過(guò)計(jì)算機(jī)邏輯語(yǔ)言將知識(shí)表示出來(lái),形成知識(shí)圖譜,讓計(jì)算機(jī)能夠掌握,再通過(guò)以計(jì)算機(jī)邏輯模型表達(dá)的規(guī)則,讓計(jì)算機(jī)知道如何檢索、關(guān)聯(lián)、運(yùn)用和更新這些知識(shí)。這其實(shí)就是前一部分所說(shuō)的要素化過(guò)程:要素就是知識(shí),基于要素的算法就是規(guī)則。這正是目前智慧司法及類案智能推送軟件開(kāi)發(fā)的基本思路,即先建立法律知識(shí)圖譜,然后讓計(jì)算機(jī)根據(jù)圖譜對(duì)判決文書(shū)進(jìn)行要素化,再根據(jù)規(guī)則分析提取的要素,從而判斷法律爭(zhēng)議點(diǎn),是否為類案,以及如何判罰?!?6〕同前注〔7〕,左衛(wèi)民文。計(jì)算機(jī)規(guī)劃的能力在法學(xué)研究中的運(yùn)用尚不明顯,但是計(jì)算機(jī)學(xué)習(xí)的能力已經(jīng)得到了很多法學(xué)學(xué)者的關(guān)注,這種能力多被稱為機(jī)器學(xué)習(xí)?!?7〕參見(jiàn)左衛(wèi)民:《關(guān)于法律人工智能在中國(guó)運(yùn)用前景的若干思考》,《清華法學(xué)》2018年第2期;王利民:《人工智能時(shí)代對(duì)民法學(xué)的新挑戰(zhàn)》,《東方法學(xué)》2018年第3期。機(jī)器學(xué)習(xí)是指機(jī)器從數(shù)據(jù)或數(shù)據(jù)的計(jì)算中積累經(jīng)驗(yàn)獲取技能。〔38〕同前注〔31〕,王文敏課件,PPT9-1第14頁(yè)。被普遍認(rèn)為是這樣一種能力,即:一個(gè)針對(duì)某類任務(wù)T和性能度量P的計(jì)算機(jī)程序,如果它在完成T任務(wù)中的性能,如P度量所示,隨經(jīng)驗(yàn)E而改善的話,它就被認(rèn)為具有從經(jīng)驗(yàn)E中學(xué)習(xí)的能力?!?9〕Tom Mitchell, Machine Learning, published by McGraw-Hill Education; 1 edition(March 1, 1997), Introduction.機(jī)器學(xué)習(xí)目前的運(yùn)用場(chǎng)景主要是分類、回歸分析、聚類、對(duì)數(shù)據(jù)降維等?!?0〕同前注〔31〕,王文敏課件,PPT第10章。這些場(chǎng)景里都有各種各樣的法律問(wèn)題。比如確定某一法律概念的內(nèi)涵和外延、將某一法律現(xiàn)象歸類等就屬于分類和集合的場(chǎng)景。又如前一部分所述,機(jī)器學(xué)習(xí)既可以用來(lái)讓計(jì)算機(jī)掌握知識(shí)圖譜,又可以讓其自動(dòng)提示或直接更新已有的要素或算法。
換言之,這些法學(xué)問(wèn)題都可能轉(zhuǎn)化為可計(jì)算的問(wèn)題,讓計(jì)算機(jī)能夠派上用場(chǎng),所以不要認(rèn)為只有定量法學(xué)研究問(wèn)題才是可計(jì)算的問(wèn)題。目前學(xué)界認(rèn)為,可計(jì)算問(wèn)題的核心特點(diǎn)是其表述明確無(wú)歧義,其解決過(guò)程自洽無(wú)矛盾?!?1〕Joshua Kroll, et.al., Accountable Algorithms, 165 U.Penn L.R.633(2017), pp.695~696; Cary Coglianese & David Lehr,Regulating by Robot: Administrative Decision Making in the Machine-Learning Era, 105 Geo.L.J.1147(2017), p.105.比如,要讓計(jì)算機(jī)編碼判決書(shū),則要明確要提取的具體情節(jié),對(duì)于可以直接提取的情節(jié),則明確給出要提取的字段或表述;對(duì)于不能直接提取的,則明確給出具體的要素和算法。又如,要通過(guò)判決書(shū)研究法官理解的受賄罪保護(hù)的法益是公權(quán)力的不可收買(mǎi)性還是廉潔性〔42〕由于學(xué)界關(guān)于受賄罪保護(hù)的法益到底是公權(quán)力的不可收買(mǎi)性還是廉潔性存在爭(zhēng)議,所以這一研究是有現(xiàn)實(shí)意義的。參見(jiàn)張明楷:《受賄犯罪的保護(hù)法益》,《法學(xué)研究》2018年第1期;黎宏:《受賄犯罪保護(hù)法益與刑法第388 條的解釋》,《法學(xué)研究》2017年第1 期。,則要明確不可收買(mǎi)性和廉潔性的具體含義和不同,表現(xiàn)為可計(jì)算的問(wèn)題則是二者對(duì)應(yīng)的案件集的不相交元素的集合,再對(duì)判決書(shū)的案情和結(jié)果做歸類處理。將法學(xué)問(wèn)題轉(zhuǎn)變?yōu)榭捎?jì)算問(wèn)題的難點(diǎn)在于法學(xué)問(wèn)題往往是不明確、存在變化、可能出現(xiàn)矛盾的。特別是法學(xué)理論問(wèn)題,法律人對(duì)其的理解也是局限的、不充分的。所以在轉(zhuǎn)換時(shí)需要采取假設(shè)—檢驗(yàn)或者觀察—?dú)w納的方法,這兩種也是通用的計(jì)算機(jī)推理方法?;蛘咴诿鎸?duì)茫然無(wú)知、變化多端的情形時(shí),可以采取盲目檢索或機(jī)器學(xué)習(xí)的方法讓計(jì)算機(jī)自行發(fā)現(xiàn)一些特點(diǎn),啟發(fā)法學(xué)問(wèn)題的形式化。
第二步,選擇合適的計(jì)算方法。經(jīng)過(guò)半個(gè)多世紀(jì)的發(fā)展,目前存在著豐富多樣的計(jì)算方法。同一問(wèn)題通過(guò)計(jì)算機(jī)實(shí)現(xiàn)的路徑也有很多。應(yīng)當(dāng)根據(jù)任務(wù)的性質(zhì)、所需數(shù)據(jù)和可獲取數(shù)據(jù)的特點(diǎn)、任務(wù)完成好壞的檢測(cè)指標(biāo)選擇合適的方法或方法的組合。比如對(duì)于像判決書(shū)這類較規(guī)范文書(shū)信息的提取運(yùn)用正則表達(dá)式進(jìn)行簡(jiǎn)單、直接的檢索可以比使用如自然語(yǔ)言處理等更復(fù)雜高級(jí)的技術(shù)更加有效和準(zhǔn)確?!?3〕詳見(jiàn)本文第四部分。但是對(duì)于涉及法律概念的理解等對(duì)語(yǔ)義要求更高的問(wèn)題則需要借助更加復(fù)雜的語(yǔ)言處理技術(shù)。對(duì)于像輿情實(shí)時(shí)分析等數(shù)據(jù)海量、及時(shí)更新的情形則需要運(yùn)用大數(shù)據(jù)的處理方法。方法的選擇是一個(gè)不斷嘗試、檢測(cè)、更新的過(guò)程。方法中具體算法的選擇和優(yōu)勝劣汰更是一個(gè)需要群體性力量有效疊加的過(guò)程。這也要求并且促使計(jì)算法學(xué)思維比其他法學(xué)思維更加開(kāi)放、更加廣闊、更加需要群體力量。
第三步,設(shè)計(jì)需要的計(jì)算機(jī)功能。以造房子為例,形式化問(wèn)題、選擇好方法后只能說(shuō)是確定了房子的基本框架,獲得了可用于造房子的工具和原材料,但是房子具體怎么建起來(lái)、每一層/每個(gè)房間的具體構(gòu)造、層間的聯(lián)結(jié)等則是第三步的工作。比如:在確定需要計(jì)算機(jī)直接提取的字段后,就要對(duì)判決文書(shū)分詞;在確定運(yùn)用第三方開(kāi)發(fā)的jieba中文分詞模塊來(lái)對(duì)文書(shū)進(jìn)行分詞后,〔44〕關(guān)于jieba中文分詞模塊的介紹詳見(jiàn):https://github.com/fxsjy/jieba,2019年3月13日最后訪問(wèn)。則要在該模塊基礎(chǔ)上進(jìn)一步編寫(xiě)提取指定字段的具體功能(function),包括如何確定字段在文書(shū)中出現(xiàn)的位置、如何確定是要提取的字段而非同字異義的情況等。只有設(shè)計(jì)好具體的功能,給定這些具體的條件,才能實(shí)現(xiàn)對(duì)被選擇的方法的運(yùn)用。設(shè)計(jì)功能是將問(wèn)題與方法相連的過(guò)程。通過(guò)方法,構(gòu)造出具體的功能,一步一步地將問(wèn)題的求解路徑明確出來(lái)。
第四步,編寫(xiě)程序,實(shí)現(xiàn)設(shè)計(jì)的功能。程序是功能在計(jì)算機(jī)中具體實(shí)現(xiàn)的形式。設(shè)計(jì)好的功能需要通過(guò)程序,給定參數(shù),予以調(diào)用,確定調(diào)用的先后順序和條件,讓計(jì)算機(jī)具體執(zhí)行。實(shí)現(xiàn)功能的過(guò)程是非常煩瑣、細(xì)致的,不僅是對(duì)功能的具體調(diào)用,還需要做好至少三方面的工作。一是系統(tǒng)環(huán)境、編程環(huán)境、方法的調(diào)試。一套用高級(jí)計(jì)算機(jī)語(yǔ)言編寫(xiě)好的功能放在某個(gè)特定的操作系統(tǒng)、編譯環(huán)境中需要與這個(gè)環(huán)境銜接好才能順利被該計(jì)算機(jī)理解和執(zhí)行。同樣的,第三方研發(fā)的方法和模塊也需要與編程環(huán)境銜接好后才能被順利調(diào)用。二是清洗輸入數(shù)據(jù),設(shè)定輸出數(shù)據(jù)的格式。程序化的功能如同造好的機(jī)器,輸入的數(shù)據(jù)就像原材料,輸出數(shù)據(jù)則是原材料經(jīng)過(guò)機(jī)器運(yùn)轉(zhuǎn)加工后得到的產(chǎn)品。就像不合格的原材料無(wú)法讓機(jī)器正常運(yùn)轉(zhuǎn)一樣,不符合程序要求的數(shù)據(jù),包括格式、屬性、結(jié)構(gòu)等,是無(wú)法被計(jì)算機(jī)正常打開(kāi)和讀取的。程序還要告訴計(jì)算機(jī)如何處理新增數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)更新。功能運(yùn)轉(zhuǎn)后得到的結(jié)果是否要輸出、輸出的形式、存儲(chǔ)的路徑等也要在程序中設(shè)置清楚,以便人工查找和閱讀。三是設(shè)定錯(cuò)誤檢測(cè)和處理。由于計(jì)算機(jī)要求百分之百的準(zhǔn)確和自洽,所以極易因?yàn)殡y以預(yù)見(jiàn)的問(wèn)題或瑕疵而無(wú)法運(yùn)轉(zhuǎn)。錯(cuò)誤檢測(cè)可以將錯(cuò)誤的信息捕捉并反饋給項(xiàng)目人,以便有針對(duì)性地修改程序,提高效率。
雖然計(jì)算法學(xué)思維有上述特性,但是它目前還沒(méi)有被認(rèn)為是獨(dú)立于其他法學(xué)研究方法之外的思維。雖然法學(xué)界對(duì)計(jì)算機(jī)科學(xué)技術(shù),特別是機(jī)器學(xué)習(xí)表現(xiàn)出濃厚的興趣,但是這種興趣還停留在實(shí)踐摸索和高談闊論的階段。在嚴(yán)肅的學(xué)術(shù)討論中,計(jì)算法學(xué)方法仍被認(rèn)為是定量法學(xué)研究方法中編碼文書(shū)的一種方法。因其只關(guān)乎數(shù)據(jù)處理,或因其涉及具體的代碼編程,而不被認(rèn)為是一種獨(dú)立的法學(xué)方法。涉及計(jì)算機(jī)運(yùn)用的法學(xué)研究的思維被認(rèn)為是將計(jì)算思維和法學(xué)思維簡(jiǎn)單地拼接,由法律人提出問(wèn)題,由計(jì)算機(jī)專業(yè)人員負(fù)責(zé)編寫(xiě)代碼、讓計(jì)算機(jī)執(zhí)行,返回?cái)?shù)據(jù),再由法律人分析數(shù)據(jù)完成研究。這幾部分被認(rèn)為是相互獨(dú)立,可以分離的。這種觀點(diǎn)進(jìn)一步認(rèn)為,法律人只需要具有以往的法學(xué)思維即可,涉及計(jì)算機(jī)的部分只需通過(guò)跨學(xué)科合作研究、聘請(qǐng)第三方專業(yè)公司、組織計(jì)算機(jī)專業(yè)學(xué)生等來(lái)完成即可,從而否定計(jì)算法學(xué)思維的獨(dú)立性,否定針對(duì)算法設(shè)計(jì)、計(jì)算機(jī)功能選擇以處理基礎(chǔ)的法律問(wèn)題的研究獨(dú)立的學(xué)術(shù)價(jià)值。結(jié)合前文的定義和解釋,這種認(rèn)識(shí)顯然是不對(duì)的。原因如下:
首先,在法律人與計(jì)算機(jī)專業(yè)人員的合作研究中,各自負(fù)責(zé)的部分之間不是獨(dú)立分離的,而是互相融合的。不具有計(jì)算思維的人難以意識(shí)到怎樣的法學(xué)問(wèn)題是可計(jì)算的問(wèn)題,而沒(méi)有法學(xué)思維的人根本就提不出有法學(xué)研究意義的問(wèn)題。如此,計(jì)算機(jī)在法學(xué)研究中的運(yùn)用就只能靠偶然的機(jī)會(huì)來(lái)產(chǎn)生,只能局限在狹窄、表面的領(lǐng)域。即使在有限的運(yùn)用中,不懂計(jì)算思維的法律人無(wú)法檢測(cè)功能設(shè)計(jì)、程序編寫(xiě)的正確性和合理性,無(wú)法判斷數(shù)據(jù)的可靠性,只能被動(dòng)地接受返回的數(shù)據(jù),再進(jìn)行人工檢測(cè)。但對(duì)于海量的數(shù)據(jù),即使抽取百分之一的樣本量進(jìn)行檢測(cè),也是人力難以完成的。而沒(méi)有法學(xué)思維的人在設(shè)計(jì)功能時(shí)難以正確理解法學(xué)問(wèn)題的豐富內(nèi)涵,在具體化的過(guò)程中很容易出現(xiàn)偏差、存在偏見(jiàn)而不自知。這些都進(jìn)一步限制了計(jì)算科學(xué)在法學(xué)中的運(yùn)用。
然后,由于法學(xué)、計(jì)算機(jī)科學(xué)是兩個(gè)都很復(fù)雜、有各自話語(yǔ)體系、相差甚遠(yuǎn)的學(xué)科,讓法學(xué)學(xué)者再去掌握計(jì)算機(jī)技術(shù)實(shí)在艱難,所以當(dāng)下提倡跨學(xué)科合作研究,希望由此來(lái)解決這一困難。但是由于計(jì)算法學(xué)思維的獨(dú)立性并沒(méi)有得到法學(xué)界或計(jì)算機(jī)科學(xué)界的認(rèn)可,相關(guān)的交叉學(xué)科尚未真正建立,所以涉及計(jì)算機(jī)運(yùn)用的法學(xué)文章要么因?yàn)樯婕熬唧w的功能設(shè)計(jì)和程序編寫(xiě)而被認(rèn)為不屬于法學(xué)問(wèn)題,要么因?yàn)檠芯康膯?wèn)題法學(xué)價(jià)值不高而被拒絕。畢竟,在發(fā)展初期,能夠運(yùn)用計(jì)算機(jī)完成的法學(xué)研究還是比較簡(jiǎn)單的;這類文章的價(jià)值更多是體現(xiàn)在該研究是通過(guò)計(jì)算機(jī)完成的,而不在于其解決了怎樣的法學(xué)問(wèn)題;但這一價(jià)值目前不被學(xué)界認(rèn)可。同理可得,這類合作研究的成果也不被計(jì)算機(jī)科學(xué)界認(rèn)可。所以此類合作研究的困境在于其成果往往具有實(shí)踐意義,但卻不被認(rèn)為具有學(xué)術(shù)價(jià)值,因?yàn)檎J(rèn)可這類學(xué)術(shù)價(jià)值的學(xué)科和學(xué)術(shù)圈尚未形成。
再者,實(shí)踐先行,理論單薄。雖然理論文章難以發(fā)表,但是不影響此類合作項(xiàng)目的日益增多。正如導(dǎo)言所述,根據(jù)大數(shù)據(jù)、人工智能的國(guó)家戰(zhàn)略部署,政法實(shí)務(wù)界對(duì)智慧司法、檢務(wù)的熱情高漲,相關(guān)程序的開(kāi)發(fā)在政法部門(mén)的領(lǐng)導(dǎo)下由大數(shù)據(jù)企業(yè)具體負(fù)責(zé);一些已經(jīng)開(kāi)發(fā)好的程序都已經(jīng)在某省或某市范圍內(nèi)開(kāi)始運(yùn)行。但是由于嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)討論、體系的理論研究的缺位,這些程序到底情況如何,功能設(shè)計(jì)是否合理,可能存在的問(wèn)題等都沒(méi)有得到充分的討論,更缺少形成共識(shí)的平臺(tái)。由于這些程序是商業(yè)化開(kāi)發(fā)的結(jié)果,所以更不可能開(kāi)源和接受檢測(cè),也不利于之后的再開(kāi)發(fā)和再利用。這些程序,比如正在研發(fā)的定罪量刑模型,既應(yīng)符合規(guī)范法學(xué)研究中對(duì)法條的解釋,又應(yīng)滿足實(shí)證法學(xué)研究中對(duì)模型合理性的要求。如果在研發(fā)過(guò)程中能夠經(jīng)過(guò)嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)討論,得到理論上的指導(dǎo),則能形成更加成熟、穩(wěn)定的模型,也能減少研發(fā)過(guò)程中的彎路。而這些都要求學(xué)界能夠認(rèn)可計(jì)算法學(xué)研究的獨(dú)立價(jià)值,促進(jìn)計(jì)算法學(xué)思維的發(fā)展,產(chǎn)生指導(dǎo)計(jì)算機(jī)在法學(xué)中運(yùn)用的理論成果。
最后,計(jì)算法學(xué)思維獨(dú)立性的學(xué)術(shù)認(rèn)可對(duì)于計(jì)算法學(xué)良性生態(tài)的形成至關(guān)重要。計(jì)算生態(tài)其實(shí)早已形成,即世界各地的程序員都可以自由選擇某一合適的操作系統(tǒng)或編程環(huán)境,在其上進(jìn)一步開(kāi)發(fā)自己設(shè)想的更高級(jí)的程序,后人又能在其開(kāi)發(fā)的程序上向前進(jìn);已有的程序在被后人的使用過(guò)程中得到檢測(cè)、完善或淘汰,實(shí)現(xiàn)程序的優(yōu)勝劣汰和快速更迭。由于計(jì)算法學(xué)尚未形成有生力量,其生態(tài)自然難以形成。另外,由于計(jì)算法學(xué)研究主要以商業(yè)化的形態(tài)存在,所以成果都是商業(yè)產(chǎn)品,很難開(kāi)源。而開(kāi)源是前述計(jì)算生態(tài)得以形成的基礎(chǔ),所以如果放任計(jì)算法學(xué)研究繼續(xù)以商業(yè)化形態(tài)存在,則前述的良性生態(tài)將不可能形成。必須承認(rèn)計(jì)算法學(xué)思維的獨(dú)立價(jià)值,形成能夠認(rèn)可計(jì)算法學(xué)研究獨(dú)立學(xué)術(shù)價(jià)值的學(xué)術(shù)圈,才能促使這些研究學(xué)術(shù)化,相關(guān)研究成果才能以學(xué)術(shù)文章的形式公布,程序代碼才可能被學(xué)者公開(kāi),進(jìn)而推動(dòng)企業(yè)開(kāi)源,如此才能更好地促進(jìn)計(jì)算法學(xué)研究的有效疊加和良性競(jìng)爭(zhēng)。
既然計(jì)算法學(xué)方法具有獨(dú)特的基本思維,其獨(dú)立性得到認(rèn)可具有重要意義,那么那些討論如何培養(yǎng)計(jì)算機(jī)能力以解決某一或某類法學(xué)問(wèn)題的文章就不應(yīng)因其關(guān)注具體的算法設(shè)計(jì)或技術(shù)實(shí)現(xiàn)而被認(rèn)為是沒(méi)有價(jià)值的。相反,應(yīng)當(dāng)提倡此類文章具體地討論這些問(wèn)題,提出解決某一或某類法學(xué)問(wèn)題的通用模塊和算法。學(xué)界其實(shí)已有學(xué)者開(kāi)始討論具體的計(jì)算模型?!?5〕同前注〔5〕,白建軍文;同前注〔14〕,張妮、蒲亦非書(shū),第 2 章。只有通過(guò)學(xué)術(shù)性的公開(kāi)、具體的討論,才能讓后人在前人研究的基礎(chǔ)上繼續(xù)開(kāi)發(fā)計(jì)算機(jī)能力解決更復(fù)雜的法學(xué)問(wèn)題。本文也向著這一方向努力,所以在本部分進(jìn)行具體的討論。目前計(jì)算法學(xué)尚在發(fā)展初期,萬(wàn)事開(kāi)頭難,能夠?qū)崿F(xiàn)計(jì)算機(jī)在一些直觀、簡(jiǎn)單的法學(xué)問(wèn)題中的運(yùn)用已不容易,而且底層數(shù)據(jù)的計(jì)算化處理對(duì)于后續(xù)更深入的研究具有打基礎(chǔ)的意義,應(yīng)當(dāng)盡可能地進(jìn)行充分、嚴(yán)肅的學(xué)術(shù)推敲和討論。因而本部分就當(dāng)前計(jì)算法學(xué)的主要運(yùn)用場(chǎng)景——智能處理判決書(shū)展開(kāi)詳細(xì)地討論,并以兩萬(wàn)余份受賄罪判決書(shū)的處理為例,提出一些具體的功能、模型設(shè)計(jì)和通用的方法、程序編寫(xiě),以便后續(xù)研究使用、檢測(cè)和批評(píng)。不論是處理哪類案由的判決書(shū),運(yùn)用計(jì)算機(jī)處理都包括五個(gè)步驟。下文對(duì)各個(gè)步驟如何進(jìn)行、需要注意的問(wèn)題,以及具體情形的處理方法展開(kāi)討論。
眾所周知,中國(guó)裁判文書(shū)網(wǎng)是全國(guó)各地法院在互聯(lián)網(wǎng)公開(kāi)裁判文書(shū)的唯一官方途徑,因此,中國(guó)裁判文書(shū)網(wǎng)理論上是首選的數(shù)據(jù)源。此外,互聯(lián)網(wǎng)上還存在一些司法案例搜索引擎,例如北大法寶、威科先行、無(wú)訴案例等,它們通常能夠提供更大下載量的批量下載功能,但是為了避免在短時(shí)間內(nèi)被大量下載致使“脫庫(kù)”〔46〕“脫庫(kù)”是信息安全行業(yè)對(duì)信息系統(tǒng)數(shù)據(jù)遭受非法泄露的一種通俗稱呼?;ヂ?lián)網(wǎng)上的各種數(shù)據(jù)都是公開(kāi)的,但不意味著數(shù)據(jù)所有者(或者說(shuō)“控制者”)希望或允許任意用戶在任意時(shí)間獲取任意規(guī)模、任意形式的數(shù)據(jù),特別是具有商業(yè)價(jià)值的數(shù)據(jù)。,一般都會(huì)限制對(duì)單日最大下載量和單次下載的時(shí)間間隔,這對(duì)學(xué)術(shù)研究而言無(wú)疑提高了獲取數(shù)據(jù)的人力和時(shí)間成本。如果研究所需的判決書(shū)數(shù)量達(dá)到數(shù)萬(wàn)級(jí)別甚至更多,這種手工采集的方式可以說(shuō)根本不可能完成任務(wù)。
評(píng)價(jià)獲取判決書(shū)的手段有三個(gè)維度:一是獲取數(shù)據(jù)的完整性,即通過(guò)該種手段所能獲取的判決書(shū)數(shù)量應(yīng)當(dāng)盡可能達(dá)到可被互聯(lián)網(wǎng)檢索的全部判決書(shū)的數(shù)量;二是獲取數(shù)據(jù)的效率,即獲取一份判決書(shū)的人力、時(shí)間成本應(yīng)當(dāng)盡可能低,直至可以順利地采集超大數(shù)量的判決書(shū);三是獲取手段可重復(fù),任何研究者都可以通過(guò)該手段獲得相同的數(shù)據(jù),從而使相關(guān)的實(shí)證研究可被驗(yàn)證。本文采用一種使用電腦程序自動(dòng)、高效獲取判決書(shū)的手段,這種被稱為“爬蟲(chóng)”〔47〕爬蟲(chóng)的發(fā)生機(jī)制和互聯(lián)網(wǎng)應(yīng)用層的超文本傳輸協(xié)議(HTTP協(xié)議)密切相關(guān),更多信息可參閱[美]Clinton Wong: HTTP Pocket Reference, 2000。的數(shù)據(jù)采集技術(shù)已經(jīng)在科技、金融、醫(yī)療等眾多領(lǐng)域得到廣泛運(yùn)用?!?8〕參見(jiàn)王悅:《基于數(shù)據(jù)挖掘算法的金融數(shù)據(jù)采集與分析研究》,碩士論文,天津大學(xué),2016;卞偉瑋、王永超、崔立真等:《基于網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的健康醫(yī)療大數(shù)據(jù)采集整理系統(tǒng)》,《山東大學(xué)學(xué)報(bào)(醫(yī)學(xué)版)》2017年第6期。簡(jiǎn)言之,爬蟲(chóng)是一道計(jì)算機(jī)程序,能夠模仿和重復(fù)人類訪問(wèn)網(wǎng)站的行為(因此又被稱為“Robot”)。通過(guò)爬蟲(chóng)訪問(wèn)提供判決書(shū)的網(wǎng)站能夠快速、高效、低成本地獲取判決書(shū)。
使用爬蟲(chóng)獲取判決書(shū)的基本流程分為三步。第一步,確定一個(gè)提供判決書(shū)的網(wǎng)站作為爬取目標(biāo),了解其使用方法和一些技術(shù)參數(shù),關(guān)鍵的參數(shù)如向網(wǎng)站請(qǐng)求判決書(shū)的真實(shí)URL地址、檢索判決書(shū)時(shí)所提交的各項(xiàng)URL參數(shù)等則必須掌握,這些信息是編寫(xiě)爬蟲(chóng)的基礎(chǔ)。比如,在威科先行法律信息庫(kù)檢索包含“受賄罪”關(guān)鍵詞的裁判文書(shū),瀏覽器上方顯示的URL地址是http://law.wkinfo.com.cn/judgment-documents/list?q=受賄罪,而通過(guò)抓包軟件分析可發(fā)現(xiàn)請(qǐng)求判決書(shū)的真實(shí)地址是http://law.wkinfo.com.cn/csi/filtertree/causeOfAction?searchId=03718c7cf25448e98ca4ed5e0e021f49,使用爬蟲(chóng)訪問(wèn)該地址才能正確獲得判決書(shū)。
第二步,制定爬蟲(chóng)策略,編寫(xiě)爬蟲(chóng)程序:〔49〕筆者在此提供一個(gè)自己編寫(xiě)的爬蟲(chóng)程序供參考:https://github.com/tsfnzjy120/paper_crawler,2019年3月13日最后訪問(wèn),該爬蟲(chóng)曾在一周的時(shí)間內(nèi)爬取了三千多萬(wàn)份裁判文書(shū)和二百多萬(wàn)份法律文件。第一,對(duì)爬蟲(chóng)訪問(wèn)網(wǎng)站的速度應(yīng)當(dāng)予以控制,使爬蟲(chóng)速度不至于過(guò)快或過(guò)慢,速度過(guò)快會(huì)給目標(biāo)網(wǎng)站的服務(wù)器造成較大壓力,容易遭到封禁,速度過(guò)慢則無(wú)法順利完成采集任務(wù)。第二,設(shè)計(jì)斷點(diǎn)續(xù)傳功能,〔50〕斷點(diǎn)續(xù)傳是指計(jì)算機(jī)程序能夠保存執(zhí)行進(jìn)度,每次執(zhí)行時(shí)從上一次停止執(zhí)行的地方繼續(xù)執(zhí)行。提高程序的容錯(cuò)性。否則,爬蟲(chóng)在采集海量判決書(shū)時(shí)無(wú)法在短時(shí)間內(nèi)迅速完成,運(yùn)行過(guò)程中的一個(gè)輕微錯(cuò)誤就可能導(dǎo)致當(dāng)前采集進(jìn)度全部丟失,只能重新采集。第三,選擇適當(dāng)?shù)姆绞奖4娌杉臄?shù)據(jù)。如果對(duì)存儲(chǔ)效率要求較高可讓程序直接寫(xiě)入磁盤(pán),但更普遍的做法是存入數(shù)據(jù)庫(kù),〔51〕此處“數(shù)據(jù)庫(kù)”是一個(gè)專業(yè)術(shù)語(yǔ),指數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它是一個(gè)計(jì)算機(jī)軟件,提供一個(gè)方便、有效、安全的數(shù)據(jù)存取環(huán)境。參見(jiàn)[美]Abraham etc:《數(shù)據(jù)庫(kù)系統(tǒng)概念》(第六版),楊冬青等譯,北京機(jī)械工業(yè)出版社2012年,第1頁(yè)。有利于數(shù)據(jù)的整理、備份和轉(zhuǎn)移。
第三步,了解和規(guī)避目標(biāo)網(wǎng)站的反爬蟲(chóng)措施?!胺磁老x(chóng)”是指網(wǎng)站采取技術(shù)保護(hù)措施,甄別訪問(wèn)其網(wǎng)站的爬蟲(chóng)程序并加以限制,以防自身數(shù)據(jù)被大量下載。比如,中國(guó)裁判文書(shū)網(wǎng)在搜索結(jié)果頁(yè)下方的“公告”處聲明:“任何商業(yè)網(wǎng)站不得建立本裁判文書(shū)庫(kù)的鏡像”,并設(shè)計(jì)了非常嚴(yán)厲的反爬蟲(chóng)機(jī)制作為技術(shù)保障?!?2〕中國(guó)裁判文書(shū)網(wǎng)在HTTP請(qǐng)求中混入了vl5x、number、guid三個(gè)加密參數(shù),并且在訪問(wèn)速度稍快時(shí)會(huì)彈出驗(yàn)證碼。對(duì)用戶所能訪問(wèn)的數(shù)據(jù)總量也有控制。判決書(shū)具有一定的商業(yè)價(jià)值,而獲取大量判決書(shū)究竟是出于商業(yè)目的還是研究目的僅從行為本身來(lái)看又不可能區(qū)分,因此,絕大多數(shù)網(wǎng)站都是不做區(qū)分地設(shè)置了嚴(yán)格的反爬蟲(chóng)措施;而且,公開(kāi)程度越高的網(wǎng)站其反爬蟲(chóng)措施越嚴(yán)厲。對(duì)于非公開(kāi)的付費(fèi)網(wǎng)站,由于其訪問(wèn)用戶已經(jīng)受到一定限制,它們的反爬蟲(chóng)措施相對(duì)弱些。任何反爬蟲(chóng)措施的首要任務(wù)是區(qū)分訪問(wèn)其網(wǎng)站的正常用戶和爬蟲(chóng)程序,因此,規(guī)避反爬蟲(chóng)措施的核心在于混淆或者繞開(kāi)這種區(qū)分機(jī)制,盡可能將計(jì)算機(jī)程序偽裝成人類用戶。
爬蟲(chóng)不是對(duì)手工采集方式的徹底否定,大多數(shù)案由的判決書(shū)數(shù)量都較少,只有民間借貸、機(jī)動(dòng)車(chē)交通事故等少數(shù)民事案件和盜竊、交通肇事等少數(shù)刑事案件的判決書(shū)數(shù)量規(guī)模在數(shù)十萬(wàn)份以上,基本不可能手工采集。對(duì)于低頻案由,編寫(xiě)爬蟲(chóng)所帶來(lái)的時(shí)間成本遠(yuǎn)高于手工方式,直接使用網(wǎng)站自帶的“批量下載”功能也許更加方便。此外,手工采集的數(shù)據(jù)也可作為爬蟲(chóng)的補(bǔ)充。本文所采集的兩萬(wàn)多份受賄罪一審判決書(shū)是通過(guò)爬蟲(chóng)程序采集?!?3〕相關(guān)程序參見(jiàn)前注〔49〕。
在提取要素之前,為避免原始數(shù)據(jù)中存在的瑕疵,防止產(chǎn)生程序問(wèn)題或者得到錯(cuò)誤結(jié)論,有必要預(yù)先處理和解決一些數(shù)據(jù)本身存在的問(wèn)題。判決書(shū)的預(yù)處理過(guò)程通常包括文件格式統(tǒng)一、文本內(nèi)容清洗、數(shù)據(jù)去重、數(shù)據(jù)篩選、生成標(biāo)識(shí)碼幾項(xiàng)內(nèi)容,這些處理不僅能夠提高數(shù)據(jù)的質(zhì)量,解決原始數(shù)據(jù)中存在的數(shù)據(jù)不完整、不一致、有異常等問(wèn)題,而且能夠讓數(shù)據(jù)更好地適應(yīng)信息提取工具或技術(shù)。
第一,文件格式的統(tǒng)一。計(jì)算機(jī)程序自動(dòng)處理判決書(shū),首先要求判決書(shū)在計(jì)算機(jī)中的存儲(chǔ)格式必須一致。人工下載的判決書(shū)基本是word格式,這種文件格式便于人類瀏覽和編輯,但不適合計(jì)算機(jī)程序訪問(wèn)和處理,因此,通常的做法是將word文件轉(zhuǎn)換為txt文件,或者直接將判決書(shū)的內(nèi)容存入數(shù)據(jù)庫(kù),等到使用時(shí)再?gòu)臄?shù)據(jù)庫(kù)中取出。統(tǒng)一文件格式時(shí)還需要處理文本的編碼方式問(wèn)題,〔54〕文本編碼方式是指將計(jì)算機(jī)底層二進(jìn)制數(shù)據(jù)映射為各種字符(數(shù)字、字母、漢字等)的規(guī)則,使用錯(cuò)誤的編碼方式會(huì)導(dǎo)致二進(jìn)制數(shù)據(jù)被解釋為不正確的字符,即產(chǎn)生亂碼。使用正確的編碼方式讀取文件,并用統(tǒng)一的文件編碼存儲(chǔ)文件。本文在處理兩萬(wàn)份受賄罪判決書(shū)時(shí)將全部文件統(tǒng)一為UTF-8編碼的txt文件。
第二,文本內(nèi)容的清洗。它包括三個(gè)方面的內(nèi)容:首先,除去判決書(shū)中的商業(yè)標(biāo)識(shí)。通?;ヂ?lián)網(wǎng)上的各種案例搜索引擎都會(huì)將自身的商業(yè)標(biāo)志、標(biāo)語(yǔ)或者其他標(biāo)識(shí)信息放入判決書(shū),比如從威科先行法律信息庫(kù)下載的判決書(shū)就帶有公司的商標(biāo)、名稱和二維碼。其次,除去一些不可見(jiàn)字符,比如 (換行符)和(r回車(chē)符),這些不可見(jiàn)字符雖然實(shí)際存在,但不會(huì)顯示在電腦屏幕上,可能會(huì)影響數(shù)據(jù)提取的準(zhǔn)確性。最后,標(biāo)準(zhǔn)化標(biāo)點(diǎn)符號(hào)。由于錄入的不規(guī)范,一份判決書(shū)內(nèi)可能會(huì)大量混用中文標(biāo)點(diǎn)和英文標(biāo)點(diǎn)、半角標(biāo)點(diǎn)和全角標(biāo)點(diǎn),引發(fā)計(jì)算機(jī)程序的斷句困難。
第三,數(shù)據(jù)去重,即除去重復(fù)的判決書(shū)。即使是從同一網(wǎng)站采集的數(shù)據(jù),也無(wú)法完全保證樣本之間互不重復(fù),需要程序?qū)iT(mén)處理判決書(shū)的重復(fù)問(wèn)題。通常的做法是先提取判決書(shū)的案號(hào),根據(jù)案號(hào)判斷出重復(fù)的判決書(shū)并刪除。
第四,篩選符合條件的判決書(shū)。雖然在檢索和采集數(shù)據(jù)時(shí)已經(jīng)采用一系列檢索條件保障判決書(shū)符合標(biāo)準(zhǔn),但大多數(shù)情況下仍然會(huì)混入一些“臟數(shù)據(jù)”。比如,雖然在檢索判決書(shū)時(shí)已經(jīng)通過(guò)“高級(jí)檢索”功能將案由限制為受賄罪,但本文所采集受賄罪判決書(shū)中仍然混有大量的非國(guó)家工作人員受賄罪案件和判處其他罪名的案件。
第五,為每一份文書(shū)生成標(biāo)識(shí)碼。常用的編碼方案有多種,本文建議采用的方案是根據(jù)全部樣本的數(shù)量生成一套從0開(kāi)始的序號(hào),分配給每一份文書(shū)。這樣可以使計(jì)算機(jī)程序依次有序讀入判決書(shū)內(nèi)容,同時(shí)提取要素出錯(cuò)時(shí)能夠快速定位出錯(cuò)的判決書(shū)。
數(shù)據(jù)預(yù)處理后可以開(kāi)始提取要素了。計(jì)算機(jī)處理文書(shū)一般有兩條技術(shù)路線:第一是使用一種名為“正則表達(dá)式”〔55〕詳見(jiàn)[美]Jeffrey E?F?Friedl:《精通正則表達(dá)式》(第三版),余晟譯,電子工業(yè)出版社 2007年版。的字符匹配技術(shù),編程人員首先大量閱讀和歸納判決書(shū)中的常用表述,編寫(xiě)不同的“正則表達(dá)式”,可以直接定位判決書(shū)中的相關(guān)語(yǔ)句和提取有關(guān)要素。比如,判決的結(jié)果經(jīng)常使用諸如“根據(jù)中華人民共和國(guó)……法……判決如下:……”這樣的表述,通過(guò)正則表達(dá)式“根據(jù)中華人民共和國(guó)(.+?),判決如下:(.+?)?!薄?6〕這里的符號(hào)“.”表示任一字符,“?”表示盡可能少地匹配字符,“()”將它所括起的部分組合成一個(gè)新的整體。可以定位這一語(yǔ)句,并提取出援引的法條和判決結(jié)果。正則表達(dá)式的含義豐富、功能強(qiáng)大,不僅能夠直接定位語(yǔ)句和要素,而且可以對(duì)目標(biāo)要素周?chē)恼Z(yǔ)言表述情況展開(kāi)檢查,進(jìn)一步確認(rèn)該語(yǔ)句所表達(dá)的真實(shí)含義。比如,正則表達(dá)式在捕獲“構(gòu)成受賄罪”類似表述的同時(shí),有能力檢查它的周?chē)欠翊嬖凇安弧钡确穸ㄒ饬x的詞匯,避免對(duì)語(yǔ)句真實(shí)意思的誤解。另一條技術(shù)路線是近年來(lái)在計(jì)算機(jī)領(lǐng)域逐漸興起的“自然語(yǔ)言處理”〔57〕詳見(jiàn)俞士汶等:《自然語(yǔ)言處理技術(shù)與語(yǔ)言深度計(jì)算》,《中國(guó)社會(huì)科學(xué)》2015年第3期。技術(shù),它是人工智能學(xué)科的一個(gè)分支,以讓計(jì)算機(jī)完全理解人類語(yǔ)言的真實(shí)意圖為最終目標(biāo)。自然語(yǔ)言處理技術(shù)在判決書(shū)處理的運(yùn)用,簡(jiǎn)單來(lái)說(shuō),就是根據(jù)中文詞匯被使用的概率分布,并結(jié)合中文語(yǔ)言本身的構(gòu)詞構(gòu)句規(guī)律,對(duì)判決書(shū)文本進(jìn)行分詞、句法分析、語(yǔ)義分析等技術(shù)處理,提取語(yǔ)言所表達(dá)的邏輯和意思。自然語(yǔ)言處理技術(shù)適合處理那些表述靈活的文本,這些文本在判決書(shū)中表現(xiàn)為對(duì)案件的事實(shí)描述和說(shuō)理論證。不過(guò),由于判決書(shū)的格式較為規(guī)范、表述相對(duì)固定,提取判決書(shū)中的要素更適合采用正則表達(dá)式路線;自然語(yǔ)言處理則更廣泛地直接運(yùn)用在罪名預(yù)測(cè)、刑期預(yù)測(cè)等方面?!?8〕鄧文超:《基于深度學(xué)習(xí)的司法智能研究》,哈爾濱工業(yè)大學(xué)2017年碩士學(xué)位論文。本文處理判決書(shū)時(shí)采用了正則表達(dá)式路線。
基于正則表達(dá)式提取判決書(shū)要素的過(guò)程可以概括為讀入判決書(shū)內(nèi)容——按照文本結(jié)構(gòu)分解文本——設(shè)定待提取要素——編寫(xiě)正則表達(dá)式提取要素——輸出提取結(jié)果——準(zhǔn)確度檢查和程序改進(jìn)。下文以Python編程語(yǔ)言對(duì)兩萬(wàn)份受賄罪判決書(shū)的要素提取為例展開(kāi)詳細(xì)說(shuō)明。
Python是一門(mén)入門(mén)簡(jiǎn)單、語(yǔ)法簡(jiǎn)潔,特別適合非計(jì)算機(jī)專業(yè)人員處理文本和分析數(shù)據(jù)的編程語(yǔ)言。Python可以通過(guò)下面的語(yǔ)句將判決書(shū)文本讀入計(jì)算機(jī):〔59〕示例Python語(yǔ)句中的C:paper.txt表示判決書(shū)的文件路徑,r表示讀取文件,utf-8表示文本編碼方式。該語(yǔ)句將判決書(shū)的全部?jī)?nèi)容讀入計(jì)算機(jī),并用paper_content指代。
with open(‘C:paper.txt’, ‘r’, encoding=‘utf-8’)as f:
paper_content = f.read()
判決書(shū)由法官撰寫(xiě),遵循一個(gè)固定的寫(xiě)作范式,文本質(zhì)量非常高。本文根據(jù)受賄罪判決書(shū)的寫(xiě)作特征,將判決書(shū)分成標(biāo)題、訴訟程序、控辯理由、事實(shí)認(rèn)定、審理意見(jiàn)、判決結(jié)果和審判人員七個(gè)部分,要素提取程序首先通過(guò)捕獲對(duì)應(yīng)部分開(kāi)始和結(jié)束的標(biāo)志,實(shí)現(xiàn)對(duì)文本的分割,而后根據(jù)分割的結(jié)果在各個(gè)部分展開(kāi)要素提取任務(wù)。此時(shí),每個(gè)要素提取邏輯的作用范圍被限制在特定的文書(shū)區(qū)域,只要文本分割本身不存在較大誤差,就可以有效提高要素提取的準(zhǔn)確率(表1)。
表1 判決書(shū)分區(qū)
設(shè)定待提取要素和案件類型、研究需求有關(guān),不同類型的案件和不同的研究需求衍生了各種各樣不同的要素。有些要素如案號(hào)、法院名稱、審理程序等是通用的要素,出現(xiàn)位置比較固定,提取程序往往可以在不同類型的判決書(shū)之間復(fù)用。這些要素構(gòu)成了案件信息完整性的重要組成部分,同時(shí)有可能影響提取其他要素的準(zhǔn)確性,其研究?jī)r(jià)值雖然普遍較低,但通常不可缺少;有些要素和案件類型高度關(guān)聯(lián),尤其是涉及犯罪事實(shí)和量刑情節(jié)的要素,它們蘊(yùn)含在判決書(shū)對(duì)案件事實(shí)的描述中,根據(jù)靈活多變的研究需求而呈現(xiàn)出多種不同的形態(tài)。設(shè)定這種非通用的要素要求設(shè)定人不僅具備抽象的法律知識(shí)和實(shí)踐經(jīng)驗(yàn),而且具有一定的技術(shù)基礎(chǔ),能夠考慮計(jì)算機(jī)具體的實(shí)現(xiàn)能力和提取要素的現(xiàn)實(shí)可能性。此外,要素的取值類型和變量特征也是設(shè)定要素時(shí)應(yīng)予考慮的重要內(nèi)容。提取要素的取值有文本型、數(shù)字型和時(shí)間型三種基礎(chǔ)類型,其中,數(shù)字型和時(shí)間型要素可作為統(tǒng)計(jì)變量直接運(yùn)用于數(shù)據(jù)分析,但必須注意分類變量、順序變量和數(shù)值變量具有不同的計(jì)量意義;〔60〕參見(jiàn)賈俊平:《統(tǒng)計(jì)學(xué)》,清華大學(xué)出版社2004年版,第5頁(yè)。而文本型要素往往需要進(jìn)一步歸納和抽象,轉(zhuǎn)化為數(shù)字型或時(shí)間型要素后方可用于統(tǒng)計(jì)分析。
評(píng)價(jià)設(shè)定的提取要素有兩個(gè)指標(biāo)較為重要,可稱為提取要素的廣度和深度,即設(shè)定要素?cái)?shù)量占全部可挖掘信息數(shù)量的比例和對(duì)要素加工和延伸的程度。許多實(shí)證研究提出的量刑預(yù)測(cè)模型解釋力不足,其重要原因之一是用于解釋判決結(jié)果的變量短缺或者過(guò)于淺顯?!?1〕同前注〔5〕,白建軍文。本文結(jié)合受賄罪的案件特征和有關(guān)法律規(guī)范設(shè)定的提取要素可見(jiàn)附件?!?2〕相關(guān)文檔、數(shù)據(jù)、代碼和算法完全公開(kāi)、持續(xù)更新,詳見(jiàn):https://github.com/tsfnzjy120/extract_bribe_infos,2019年3月13日最后訪問(wèn)。下面就提取要素的具體方法和主要困難展開(kāi)討論。
1.直接提取位置相對(duì)固定的要素。位置相對(duì)固定的要素可通過(guò)正則表達(dá)式直接提取,首先確定要素在判決書(shū)中出現(xiàn)的位置,而后根據(jù)經(jīng)驗(yàn)和知識(shí)產(chǎn)生提取邏輯,提取邏輯融入用編程語(yǔ)言描述的正則表達(dá)式之中,再由計(jì)算機(jī)程序執(zhí)行和獲取結(jié)果。正則表達(dá)式形式上表現(xiàn)為一些特殊符號(hào)或者符號(hào)的組合,用以指代提取內(nèi)容。
表2 正則表達(dá)式基礎(chǔ)語(yǔ)法〔63〕同前注〔55〕,[美]Jeffrey E?F?Friedl書(shū),第 1 章。
分析正則表達(dá)式提取判決書(shū)要素的實(shí)例有助于理解這些抽象的語(yǔ)法規(guī)則以及它們實(shí)際的運(yùn)作過(guò)程,以對(duì)(2014)銅王刑初字第00014號(hào)判決書(shū)提取判決結(jié)果要素為例,該判決書(shū)的有關(guān)表述為“判決如下:一、被告人許某某犯受賄罪,判處有期徒刑八年六個(gè)月(刑期從判決之日……)”,將此語(yǔ)句(在程序中記為sentence)輸入至下述功能邏輯中,即可獲得提取結(jié)果:
import re
——導(dǎo)入正則表達(dá)式功能模塊
result_regex = re.compile(‘判決如下:一、被告人(.+?)犯(.+ 罪),判處(.+?)(’)
——編寫(xiě)正則表達(dá)式,分別對(duì)應(yīng)被告人姓名、罪名和刑罰
match = result_regex.search(sentence)
——正則表達(dá)式搜索sentence語(yǔ)句,搜索結(jié)果存入match
name, crime, penalty = match.group(1),match.group(2),match.group(3)
——從搜索結(jié)果中提取被告人姓名、罪名和刑罰,分別存入name, crime和penalty
至此,提取程序?qū)⒉糠峙袥Q書(shū)內(nèi)容轉(zhuǎn)化成為結(jié)構(gòu)化的信息,即要素。提取位置固定的要素是正則表達(dá)式作用于判決書(shū)一部分內(nèi)容的結(jié)果,因此,面臨的問(wèn)題也主要在兩個(gè)方面:一方面是編寫(xiě)的正則表達(dá)式對(duì)同一要素可能存在的其他表達(dá)方式考慮不足,導(dǎo)致無(wú)法從正確的文本中提取要素。通過(guò)分析無(wú)法正常提取要素的判決書(shū)樣本,歸納同一要素的不同表達(dá)方式,提高正則表達(dá)式的兼容性是解決本問(wèn)題的主要方法。除了考慮表達(dá)方式的多樣性,編寫(xiě)正則表達(dá)式時(shí)還應(yīng)注意兼容判決書(shū)中可能存在的錯(cuò)別字,比如“辯護(hù)”和“辨護(hù)”〔64〕判決書(shū)原件和錄入中國(guó)裁判文書(shū)網(wǎng)的判決書(shū)基本不可能存在錯(cuò)別字,但是其他案例搜索引擎上的判決書(shū)有相當(dāng)一部分是通過(guò)OCR(光學(xué)字符識(shí)別)方式掃描紙質(zhì)判決書(shū)生成,存在錯(cuò)別字的概率較高。。另一方面是輸入正則表達(dá)式的判決書(shū)內(nèi)容不準(zhǔn)確。輸入的判決書(shū)內(nèi)容過(guò)“窄”,可能其中不存在要素,或者存在的要素不完整;過(guò)“寬”,則可能獲取不必要的內(nèi)容。預(yù)先分割文本〔65〕見(jiàn)表1。并以分割結(jié)果作為輸入可以部分避免發(fā)生過(guò)窄或過(guò)寬的情況,同時(shí)根據(jù)提取要素的具體情況靈活調(diào)整輸入內(nèi)容。
提取的數(shù)字型要素或時(shí)間型要素還需格式化,統(tǒng)一表達(dá)形式和計(jì)量單位。比如,本文在提取受賄金額時(shí),就遇到“一萬(wàn)三千”“1.3萬(wàn)”“13000”“壹萬(wàn)三仟”等諸多表達(dá)形式,通過(guò)建立中文數(shù)字和阿拉伯?dāng)?shù)字之間的映射關(guān)系,統(tǒng)一轉(zhuǎn)化成阿拉伯?dāng)?shù)字,以萬(wàn)元為單位,保留兩位小數(shù);在提取主刑結(jié)果時(shí),為便于量化研究,把拘役2天折算成有期徒刑1天,無(wú)期徒刑計(jì)為人均壽命減去被告人平均年齡,死刑計(jì)為人均壽命,死緩計(jì)為無(wú)期徒刑和死刑和的一半?!?6〕定量研究中對(duì)拘役、緩刑、無(wú)期徒刑、死緩、死刑等的處理方法有多種,包括另外設(shè)置類型變量。這里僅指將其轉(zhuǎn)換為數(shù)量的一種方法。參見(jiàn)白建軍:《死刑適用實(shí)證研究》,《中國(guó)社會(huì)科學(xué)》2006年第5期;褚紅麗、孫圣民、魏建:《異地審理與腐敗懲罰:基于判決書(shū)的實(shí)證分析》,《清華法學(xué)》2018年第4期。
2.提取位置不太固定、表述多變的要素。提取固定位置的要素有時(shí)也會(huì)遇到位置不固定、表述多變的問(wèn)題,但一般可通過(guò)改進(jìn)正則表達(dá)式或精確輸入內(nèi)容解決;而對(duì)于本部分所討論的要素,單純的正則表達(dá)式無(wú)法提取,需要制定更加靈活的提取策略。
提取位置不固定的要素,基本思想是讓正則表達(dá)式在更大的文本范圍內(nèi)展開(kāi)檢索,獲取盡可能多的檢索提取結(jié)果,再根據(jù)提取結(jié)果的具體情況篩選或計(jì)算出最終結(jié)果。首先,由于要素出現(xiàn)的位置極其不固定,輸入正則表達(dá)式的內(nèi)容應(yīng)盡可能寬泛,凡是要素可能出現(xiàn)的文本區(qū)域均應(yīng)按照一定的規(guī)則組合成整體作為正則表達(dá)式的作用域,必要時(shí)也可以直接輸入判決書(shū)全文。其次,正則表達(dá)式不再試圖提取一個(gè)準(zhǔn)確的要素,而是適當(dāng)放寬提取條件,獲取更多的“模糊要素”,再?gòu)闹泻Y選符合條件的要素。本文在提取“受賄次數(shù)”要素時(shí)采用了這一方法,提取程序首先對(duì)判決書(shū)的事實(shí)認(rèn)定部分劃分句子,隨后以句子為基本單位,獲取盡可能多的有關(guān)“財(cái)物”的表述,比如“××元人民幣”“一輛轎車(chē)”“購(gòu)物卡”等,再檢查這些“財(cái)物”的周?chē)欠癯霈F(xiàn)被告方的姓名、是否有“送”“收受”等謂語(yǔ),如果存在“受賄主體”和“受賄動(dòng)作”則作為一次受賄計(jì)入提取程序?!?7〕該算法存在重復(fù)計(jì)算的問(wèn)題,在實(shí)際運(yùn)用時(shí)需要保證每次計(jì)入程序的“財(cái)物”與已計(jì)入程序的“財(cái)物”不重復(fù)。判決書(shū)在“本院認(rèn)為”部分一般對(duì)被告受賄的總金額有明確表述,但對(duì)受賄次數(shù)通常只用“多次收受”一筆帶過(guò),因此采用該算法。提取受賄次數(shù)的算法并不唯一,本算法可供參考,用以啟迪思路。在提取過(guò)程中,分析產(chǎn)生“模糊”的原因,不斷優(yōu)化篩選規(guī)則,可以逐步提高算法的準(zhǔn)確率。
提取表述多變的要素,單純的正則表達(dá)式無(wú)法處理的情形有兩種。第一,要素在不同的判決書(shū)中表述不同,且各種表述之間差異較大,無(wú)法為正則表達(dá)式所統(tǒng)籌。比如,“為他人謀取不正當(dāng)利益,致使公共財(cái)產(chǎn)、國(guó)家和人民利益遭受損失”這一法定加重情節(jié)在判決書(shū)中就有多種差異較大的表述。提取這種要素的方法是逐步積累所有的表述,編寫(xiě)多個(gè)正則表達(dá)式同時(shí)提取。第二,要素在同一判決書(shū)中的前后表述不一致。這種要素通常包含在一些意見(jiàn)性表述里,比如,公訴意見(jiàn)認(rèn)為被告不構(gòu)成自首,辯護(hù)意見(jiàn)認(rèn)為被告構(gòu)成自首,而在法院的審理意見(jiàn)里不僅有認(rèn)定被告是否構(gòu)成自首的結(jié)論,還可能有對(duì)控辯雙方“構(gòu)成自首”和“不構(gòu)成自首”的評(píng)價(jià),導(dǎo)致提取要素的不一致。解決該問(wèn)題時(shí)經(jīng)常會(huì)使用一些關(guān)聯(lián)要素對(duì)提取結(jié)果進(jìn)行驗(yàn)證,比如,在出現(xiàn)不一致的情況時(shí),“自首”可以根據(jù)“坦白”“配合追繳”等關(guān)聯(lián)要素進(jìn)一步確認(rèn)。
3.提取間接要素。提取前述兩類要素提高了數(shù)據(jù)挖掘的廣度,而提取間接要素實(shí)質(zhì)上是對(duì)已提取要素的加工和延伸,決定了數(shù)據(jù)挖掘的深度。再加工的關(guān)鍵在于如何尋找和確認(rèn)一種科學(xué)可信的算法,并通過(guò)該算法確定一個(gè)格式固定且具有研究?jī)r(jià)值的輸出。這種算法大部分和人的某些判斷邏輯相類似,但不局限于對(duì)人思維過(guò)程的模擬,也可能是數(shù)學(xué)計(jì)算、統(tǒng)計(jì)推論等,極其靈活且富有創(chuàng)造性。
提取間接要素可分成根據(jù)要素提取和根據(jù)要素組合提取兩種類型。根據(jù)要素提取的一個(gè)典型實(shí)例是提取受賄罪案件的適用法律,〔68〕2015年11月1日起實(shí)施的《刑法修正案(九)》(簡(jiǎn)稱“刑修九”)對(duì)貪污賄賂犯罪的量刑標(biāo)準(zhǔn)做出較大修改,另外2016年4月18日最高院和最高檢頒布和實(shí)施了《關(guān)于辦理貪污賄賂案件的司法解釋》。據(jù)此,受賄罪案件可分成適用原刑法、適用刑修九但不適用司法解釋、適用刑修九和司法解釋三類。它以已提取的“最后一次受賄行為發(fā)生時(shí)間”為依據(jù),遵循一個(gè)簡(jiǎn)單的時(shí)間先后判斷邏輯并根據(jù)“從舊兼從輕”的原則獲得輸出?!?9〕參見(jiàn)余亞宇、石魏:《刑法修正案(九)實(shí)施后從舊兼從輕原則的準(zhǔn)確適用》,《人民司法(案例)》2016年35期。這里也體現(xiàn)了算法設(shè)計(jì)者掌握法學(xué)知識(shí)的必要性。已有定量研究不加討論地只以審判時(shí)間為準(zhǔn)來(lái)確定該案所適用的法律。〔70〕同前注〔66〕,褚紅麗、孫圣民、魏建文;同前注〔17〕,過(guò)勇、李松鋒文。這些研究均是以審判時(shí)間為準(zhǔn)來(lái)確定所適用的法律。其原因也可能是如果要以犯罪行為發(fā)生時(shí)間來(lái)確定難以實(shí)現(xiàn),所以退而以直接、明確的審判時(shí)間為替代值。本文也不主張所有刑事領(lǐng)域的定量研究都要以最后犯罪行為發(fā)生時(shí)間為準(zhǔn)來(lái)確定,但至少這應(yīng)該是一個(gè)首選項(xiàng)。根據(jù)要素組合提取的一個(gè)實(shí)例是“量刑區(qū)間”,該要素是量刑的決定性因素,根據(jù)法律規(guī)定,〔71〕參見(jiàn)刑修九實(shí)施前的《刑法》第383條,《關(guān)于辦理貪污賄賂案件司法解釋》第1到4條。涉及適用法律、受賄金額、次數(shù)和加重情節(jié)三個(gè)直接要素,遵循一個(gè)稍顯復(fù)雜的判斷邏輯,基本上模擬了法官審理案件的思維過(guò)程。
表3 根據(jù)要素組合提取“量刑區(qū)間”〔72〕Sum表示受賄金額,以萬(wàn)元為單位;H表示法定加重情節(jié)之一。該表僅根據(jù)有期徒刑劃分量刑區(qū)間,根據(jù)研究需要可以進(jìn)一步融合其他刑罰種類,劃分更多層次的量刑區(qū)間,設(shè)計(jì)更復(fù)雜的邏輯判斷。有關(guān)代碼和算法會(huì)陸續(xù)更新,見(jiàn)前注〔58〕。這里是提出本文作者設(shè)計(jì)的有關(guān)量刑區(qū)間的算法,希望能以此為基礎(chǔ),引發(fā)大家關(guān)于該算法的邏輯是否嚴(yán)密、是否符合法律規(guī)定和審判實(shí)踐等的討論。
間接要素一般根據(jù)研究需要設(shè)定,有時(shí)提取難度很高,計(jì)算機(jī)無(wú)法返回一個(gè)完全準(zhǔn)確的結(jié)果,但可以通過(guò)一定的算法設(shè)計(jì)使提取結(jié)果逼近真實(shí)結(jié)果,將誤差控制在可接受的范圍內(nèi)。比如,要探究受賄罪中被告人的職務(wù)級(jí)別對(duì)量刑的影響,根據(jù)提取的職務(wù)判斷出對(duì)應(yīng)的級(jí)別即使是人也無(wú)法做到百分百準(zhǔn)確,職務(wù)的龐雜性又導(dǎo)致不太可能建立一個(gè)完整的職務(wù)和級(jí)別之間的映射關(guān)系庫(kù),因此,針對(duì)無(wú)法判斷的職務(wù)獲取其近似的級(jí)別是一種經(jīng)濟(jì)可行的方案,在誤差合理的條件下對(duì)研究結(jié)論的影響有限。具體做法是,如果職務(wù)名含有“科長(zhǎng)”“處長(zhǎng)”“調(diào)研員”等頭銜,可直接確定對(duì)應(yīng)的級(jí)別;如果缺少級(jí)別明確的頭銜,則可以職務(wù)名中含有的地區(qū)行政級(jí)別為基礎(chǔ),根據(jù)所在單位的性質(zhì)(國(guó)家機(jī)關(guān)、事業(yè)單位、國(guó)有企業(yè)等)確定一個(gè)修正參數(shù),經(jīng)運(yùn)算得到一個(gè)級(jí)別的近似結(jié)果。
要素被提取后要讓計(jì)算機(jī)進(jìn)行自動(dòng)輸出。提取要素的輸出主要注意要素的保存和再利用問(wèn)題,至少有兩方面的要求:第一是面向研究者友好。提高要素準(zhǔn)確率和制定數(shù)據(jù)分析策略基本上還是由研究者的思維主導(dǎo),因此要求要素的輸出清晰、直觀,易于人類理解;而人工操作在處理細(xì)粒度數(shù)據(jù)時(shí)亦有機(jī)器不可比擬的優(yōu)勢(shì),因此要求要素的手工查找和修改操作簡(jiǎn)便。第二是兼容主流的數(shù)據(jù)分析工具和軟件,比如Stata、SPSS等常用的統(tǒng)計(jì)分析軟件。結(jié)合這兩方面的原因,本文建議采用CSV格式輸出提取的要素信息,一方面,CSV可直接被Excel軟件打開(kāi),方便研究人員查看和處理;另一方面,CSV也能夠被大多數(shù)數(shù)據(jù)分析軟件直接使用。在Python程序中,CSV文件可以使用pandas類庫(kù)中的DataFrame.to_csv函數(shù)直接生成。
檢查提取要素的準(zhǔn)確率是提取判決書(shū)要素必不可少的環(huán)節(jié),直接影響研究結(jié)論的正確性。一份具有規(guī)范性和科學(xué)性的法學(xué)實(shí)證研究成果應(yīng)當(dāng)提供從判決書(shū)中提取要素的準(zhǔn)確率指標(biāo)。下面就準(zhǔn)確度檢查的原理和方法展開(kāi)討論,并就程序改進(jìn)提出一些建議。
計(jì)算機(jī)提取的要素基本不能再由計(jì)算機(jī)檢查其準(zhǔn)確性,因?yàn)橛?jì)算機(jī)程序始終按照一個(gè)預(yù)期無(wú)錯(cuò)誤的邏輯在提取要素,不具有發(fā)現(xiàn)錯(cuò)誤和糾正錯(cuò)誤的能力。因此,人工抽樣檢查準(zhǔn)確率成為必要。人工抽樣檢查方法的重點(diǎn)在于確定科學(xué)的樣本容量和抽樣方法,本文提出的方案如下:
首先,提取要素的準(zhǔn)確率定義為:對(duì)某一要素,經(jīng)人工檢查正確的要素?cái)?shù)量和要素總數(shù)之比。
其次,抽取的樣本容量和判決書(shū)總量無(wú)關(guān),它由下列公式確定:〔73〕同前注〔60〕,賈俊平書(shū),第191頁(yè)。
其中,n為樣本容量;z是由置信水平確定的一個(gè)常數(shù),科學(xué)研究中置信水平一般要求達(dá)到95%,對(duì)應(yīng)的z值為1.96;E為邊際誤差,一般要求不超過(guò)5%;π是一個(gè)對(duì)提取要素準(zhǔn)確率的先驗(yàn)估計(jì)值,根據(jù)等式,當(dāng)π取值0.5時(shí)n達(dá)到最大值,為保證更多的樣本量π取0.5。將z、E和π值代入等式,得n=385,即當(dāng)判決書(shū)總量大于385時(shí),人工抽樣檢查的樣本容量恒為385,此時(shí)有95%的把握認(rèn)為樣本準(zhǔn)確率和總量準(zhǔn)確率的誤差不超過(guò)5%。舉例來(lái)說(shuō),對(duì)于某一個(gè)要素,如果人工抽檢的樣本準(zhǔn)確率為90%,那么總體的準(zhǔn)確率應(yīng)該在90%±90%×5%之間,即85.5%到94.5%之間,這種判斷的可靠性有95%。如果人工檢查385份樣本仍有困難,則可適當(dāng)調(diào)大E值,比如調(diào)大至10%,此時(shí)只需檢查n=97份樣本,但是上例中總體準(zhǔn)確率所在區(qū)間會(huì)變成90%±90%×10%,即81%到99%之間。
最后,使用有放回的抽樣方法,即重復(fù)抽樣。這種抽樣方法是適用上述公式的前提,此時(shí)每份判決書(shū)被抽中的概率相同??赏ㄟ^(guò)計(jì)算機(jī)程序?qū)崿F(xiàn)〔74〕使用Python語(yǔ)句numpy.random.choice(n1,n2,replace=False)能夠直接返回重復(fù)抽樣結(jié)果,其中n1表示判決書(shū)總量,n2表示樣本容量385。。
人工抽樣檢查的結(jié)果為改進(jìn)準(zhǔn)確率較低的要素提取程序指明了方向。要素提取程序存在誤差的根本原因在于程序內(nèi)部的提取邏輯和判決書(shū)實(shí)際內(nèi)容的不匹配,因此,改進(jìn)提取程序可從兩方面著手:一方面可以直接手工提取判決書(shū)的內(nèi)容,如果存在誤差的判決書(shū)數(shù)量較少,不失為一種簡(jiǎn)單有效的方法;另一方面則需要修改和完善程序提取邏輯,不斷分析各種誤差的產(chǎn)生原因,形成新的提取邏輯,并整合到原有的程序邏輯中。經(jīng)過(guò)反復(fù)幾輪人工檢查和程序改進(jìn),提取要素的準(zhǔn)確率能夠逐步上升到較高水平。
本文論述了一種新型的法學(xué)研究方法,即計(jì)算法學(xué)方法的獨(dú)立價(jià)值、基本思維和特點(diǎn),指出了在這類研究領(lǐng)域存在的實(shí)踐先行、理論單薄、研究視域過(guò)窄、重復(fù)勞動(dòng)、合作困難、研究缺少接續(xù)能力等問(wèn)題,抽象了計(jì)算法學(xué)方法的一般步驟,將判決文書(shū)信息的提取分為三類要素,說(shuō)明了針對(duì)不同要素運(yùn)用計(jì)算機(jī)提取信息應(yīng)當(dāng)采取的計(jì)算方法和通用程序?!?5〕同前注〔62〕。本文也討論了計(jì)算法學(xué)生態(tài)的形成對(duì)這個(gè)領(lǐng)域的發(fā)展和計(jì)算法學(xué)方法價(jià)值的充分發(fā)揮有至關(guān)重要的作用,而實(shí)踐、具體、可傳承的嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)探討和盡可能開(kāi)源的程序才能更好地促進(jìn)生態(tài)的形成。如此,法學(xué)研究才能更好地在目前正在進(jìn)行的智慧司法軟件的研發(fā)中發(fā)揮作用。雖然這些軟件模型是用來(lái)輔助實(shí)踐的,但是標(biāo)準(zhǔn)的建立向來(lái)是應(yīng)當(dāng)接受充分的學(xué)術(shù)探討的,而不應(yīng)由某個(gè)部門(mén)或企業(yè)來(lái)決定。所以,本文提供了作為這些研發(fā)任務(wù)基礎(chǔ)的判決文書(shū)處理的一部分方法,希望能拋磚引玉,吸引更多的同仁來(lái)檢測(cè)這些方法,并進(jìn)行更為深入的研究。
計(jì)算機(jī)科學(xué)是目前將學(xué)術(shù)產(chǎn)業(yè)化做得最好的學(xué)科。計(jì)算機(jī)圖靈獎(jiǎng)得主往往都創(chuàng)辦了公司或研究院,所做的研究都能在產(chǎn)業(yè)上得到運(yùn)用,所以它是一門(mén)實(shí)踐性、專業(yè)性、技術(shù)性非常強(qiáng)的學(xué)科。而法學(xué)學(xué)科無(wú)論是規(guī)范解釋、價(jià)值判斷還是現(xiàn)實(shí)描述也具有很強(qiáng)的實(shí)踐性和技術(shù)性。雖然兩個(gè)學(xué)科有各自獨(dú)特的話語(yǔ)體系,但是二者的研究對(duì)象并不是互斥的,而是有不少重合,并會(huì)隨著虛擬世界的不斷現(xiàn)實(shí)化而越發(fā)緊密;兩種研究方法也不是不相容的,而是可以互補(bǔ)。計(jì)算法學(xué)的出現(xiàn)和發(fā)展就是為了搭建架接這兩套話語(yǔ)體系的橋梁,探索將可能需要計(jì)算機(jī)幫助的法學(xué)問(wèn)題轉(zhuǎn)化為可計(jì)算問(wèn)題的方法,尋找和培養(yǎng)能夠解決已轉(zhuǎn)化問(wèn)題的計(jì)算方法和能力,檢測(cè)、修正和更新既有的算法,從計(jì)算結(jié)果中獲得有法學(xué)價(jià)值的信息,豐富法學(xué)研究的領(lǐng)域和方法。
計(jì)算法學(xué)不只是一種法學(xué)研究方法,還有更廣泛的內(nèi)涵,有很多爭(zhēng)議的問(wèn)題需要討論厘清才能更好地促進(jìn)它的發(fā)展。比如前文所述的反爬蟲(chóng)策略,雖然其本意是網(wǎng)站為了防止用于商業(yè)目的的“脫庫(kù)”下載行為,但是卻造成了用于學(xué)術(shù)研究的下載也難以進(jìn)行,提高了判決使用的成本和難度。關(guān)于爬蟲(chóng)和反爬蟲(chóng)等攻防措施的正當(dāng)性、合法性的爭(zhēng)議,以及更深層次的數(shù)據(jù)權(quán)利屬性和數(shù)據(jù)權(quán)益分配的討論都尚未定論。我國(guó)和美國(guó)都出現(xiàn)了類似的有關(guān)公開(kāi)數(shù)據(jù)權(quán)利的案件,比如我國(guó)的大眾點(diǎn)評(píng)訴百度地圖抓取其頁(yè)面用戶評(píng)論、美國(guó)的hiQ Labs, Inc.訴LinkedIn(領(lǐng)英)設(shè)置嚴(yán)密的反爬蟲(chóng)策略妨礙其抓取領(lǐng)英用戶公開(kāi)的教育背景信息等案件,而兩國(guó)的法院目前則做出了相反的判決?!?6〕參見(jiàn)Cheryl B.Preston, Lawyers’ Abuse of Technology, Cornell Law Review Vol.103:879, p.894.領(lǐng)英案目前僅有美國(guó)聯(lián)邦基層法院作出的要求雙方友好協(xié)商的臨時(shí)禁止令(preliminary injunction order)。大眾點(diǎn)評(píng)案則已經(jīng)二審終審,終審維持了一審要求百度地圖等原告方賠償大眾點(diǎn)評(píng)323萬(wàn)損失的決定。參見(jiàn):《百度抓取大眾點(diǎn)評(píng)用戶評(píng)論, 一審被判賠323萬(wàn)》,http://www.sohu.com/a/77647804_410381,2019年3月13日最后訪問(wèn)。所以這類問(wèn)題還需進(jìn)一步的研究。隨著計(jì)算法學(xué)的發(fā)展,計(jì)算法學(xué)生態(tài)的形成,計(jì)算法學(xué)研究成果的學(xué)術(shù)化和去商業(yè)化,如果能夠建立學(xué)術(shù)圈內(nèi)共享的法律文書(shū)或數(shù)據(jù)庫(kù),便于從事學(xué)術(shù)研究的人員使用,則能更好地解決這個(gè)問(wèn)題。