肖招娣
(廣東電網(wǎng)有限責任公司 佛山供電局, 佛山 528000)
對企業(yè)的審計,已經(jīng)成為常態(tài)化工作,故企業(yè)內(nèi)部常態(tài)化的審計和監(jiān)察也成為必要。在企業(yè)的生產(chǎn)、經(jīng)營、管理過程中,產(chǎn)生大量的非結(jié)構(gòu)化文本。傳統(tǒng)的企業(yè)文件監(jiān)察與審計通過人工完成,需要投入大量的人力、物力、財力,無法避免人的主觀因素的影響,面對海量的企業(yè)文件只能采用抽查的方式開展,難免留有死角和潛在的風險。本文提出基于NLP(Natural Language Processing,自然語言處理)的企業(yè)文件智能監(jiān)察系統(tǒng)。其核心技術(shù)是使用NLP算法,把非結(jié)構(gòu)化的文檔轉(zhuǎn)換為結(jié)構(gòu)化的數(shù)據(jù),存儲在數(shù)據(jù)庫中;將相關(guān)的企業(yè)的規(guī)章制度、管理辦法以及國家的法律法規(guī)拆分成一條條審計規(guī)則,存放在知識庫中;基于知識庫,使用專家系統(tǒng)及統(tǒng)計分析,對企業(yè)文件進行智能監(jiān)察。
該企業(yè)文件智能監(jiān)察系統(tǒng)包括3個核心功能模塊:
非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化處理模塊,該模塊主要使用自然語言處理技術(shù),借助R語言或者Python的函數(shù),將文檔轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)存放在數(shù)據(jù)庫中,減少數(shù)據(jù)的體量,大幅度降低數(shù)據(jù)處理的技術(shù)難度。
文件監(jiān)察規(guī)則管理模塊:該模塊主要運用知識庫管理系統(tǒng),實現(xiàn)對監(jiān)察規(guī)則的管理。這也是智能監(jiān)察功能的基礎。
智能監(jiān)察模塊:通過運用專家系統(tǒng)或者統(tǒng)計建模分析,實現(xiàn)對文件的智能監(jiān)察。
如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
2.1.2 數(shù)據(jù)去重
從非結(jié)構(gòu)化數(shù)據(jù)中結(jié)構(gòu)化處理過程得到的數(shù)據(jù)最終將存儲在關(guān)系型數(shù)據(jù)庫中。為了避免數(shù)據(jù)冗余,為了避免重復對一個文件進行兩次或者兩次以上的結(jié)構(gòu)化處理(該處理過程需要花費一定的時間和計算資源),需要進行必要的去重。文檔查重常用的算法有simHash和minHash算法,通常使用局部敏感散列LSH。其中simHash是Google提出并且使用查重的算法。
本文使用simHash算法查重,如圖2所示。
圖2 simHash原理圖
簡單說來,simHash的原理是:將一份文檔轉(zhuǎn)換為64字節(jié)的特征字,然后判斷重復只需要判斷他們的特征字的距離是不是 2.1.2 數(shù)據(jù)轉(zhuǎn)換 由于結(jié)構(gòu)化數(shù)據(jù)的處理相對半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)的處理更為簡單,且有不少現(xiàn)成的工具和方法可用。為了降低非結(jié)構(gòu)化文件的智能監(jiān)察的技術(shù)難度,也為了減少數(shù)據(jù)的量體,本文首先對非結(jié)構(gòu)化數(shù)據(jù)進行結(jié)構(gòu)化處理。非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化處理的過程,其核心為正則表達式的使用,從海量的非結(jié)構(gòu)化數(shù)據(jù)中提取出關(guān)鍵信息。R語言和Python均提供了一系列的方法幫助實現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)化處理。 在R語言中,需要用到幾個重要的函數(shù),包括gregexpr( )、substring( )、strsplit( )和grep( )函數(shù)。其中,gregexpr( )、strsplit( )和grep( )函數(shù)是正則表達式相關(guān)的函數(shù)。而substring( )函數(shù)為字符串函數(shù),用于提取字符串子集。 在Python中,更是提供了強大的正則表達式功能,相關(guān)函數(shù)有match( )、search( )、split( )、group( )、compile( )、sub( )和subn( )等函數(shù)。同時,在處理海量文本時,由于單純使用正則表達式的效率較低,可以使用Python的開源庫FlashText提取關(guān)鍵字,提高效率。 對企業(yè)文件的審計和監(jiān)察,無非是對海量的企業(yè)文件進行合規(guī)性和合法性的審查,及時發(fā)現(xiàn)存在審計風險的問題,第一時間提醒相干人在文檔修訂過程中完成整改,防患于未然。本文使用Wiki的知識庫管理系統(tǒng)進行審查規(guī)則的管理,包括添加、修改、刪除和查詢等功能。知識庫分主題進行規(guī)則管理,對于每一類文件的審查,均會將相應的法律法規(guī)、公司內(nèi)部的規(guī)章制度和管理辦法拆分成一條條規(guī)則。 專家系統(tǒng)是一個智能計算機程序系統(tǒng),基于其內(nèi)部存放的大量的某個領域?qū)<业慕?jīng)驗及知識,應用人工智能技術(shù)和計算機技術(shù),模擬人類專家的決策過程,進行推理和判斷,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。 本文應用的是基于規(guī)則的專家系統(tǒng),如圖3所示。 圖3 專家系統(tǒng)架構(gòu)圖 專家系統(tǒng)通常由人機交互界面、知識庫、綜合數(shù)據(jù)庫、推理機、解釋器、知識獲取等6個部分構(gòu)成。在本系統(tǒng)中,知識數(shù)據(jù)庫有專門的功能模塊,其中包括了知識獲取的功能;綜合數(shù)據(jù)庫即用于存放非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化處理后得到的數(shù)據(jù)的數(shù)據(jù)庫。系統(tǒng)需要著重實現(xiàn)的功能是解釋器和推理機部分,為了簡化開發(fā)過程,本系統(tǒng)使用了開源的專家系統(tǒng)。 在智能審查方面,涉及兩類的主要的方法。大部分情況下,使用專家系統(tǒng),結(jié)合知識庫固化的規(guī)則,即可完成智能審查。但是專家系統(tǒng)具有其優(yōu)點的同時,也具有其缺點,具體說來包括: (1) 規(guī)則之間的關(guān)系不透明。在基于規(guī)則的系統(tǒng)中,由于基于規(guī)則的專家系統(tǒng)缺乏分層的知識表達,難以觀察單條規(guī)則如何對整個策略起作用。 (2) 低效的搜索策略。推理引擎在每個周期中搜索所有的規(guī)則。當規(guī)則很多時,系統(tǒng)速度會很慢。 (3) 沒有學習能力。修改和維護系統(tǒng)的任務仍然由知識工程師來做。 故而對于一些審計規(guī)則較為復雜的情形,本文使用統(tǒng)計建模進行分析,通過編程為特定的審計規(guī)則實現(xiàn)專用的功能,以此提高系統(tǒng)的效率。 發(fā)現(xiàn)問題最終是為了解決問題。智能監(jiān)察模塊的存在,主要是為了及時發(fā)現(xiàn)企業(yè)文件編寫過程中存在的風險,將監(jiān)察結(jié)果及時反饋到合同起草、項目文檔審查等過程中相關(guān)干 系人環(huán)節(jié),提出問題及整改意見,避免錯誤成為定局,避免給企業(yè)和個人帶來不必要的風險,實現(xiàn)安全從業(yè)。 為了實現(xiàn)輔助整改的功能,該系統(tǒng)在開發(fā)的過程中,開發(fā)了一系列的API供各信息系統(tǒng)在流程中調(diào)用。同時,為了提高系統(tǒng)的實時計算的性能和效率,負責計算的應用服務器采用負載均衡的方式進行部署。 針對企業(yè)日常生產(chǎn)、經(jīng)營、管理活動過程中產(chǎn)生了大量的文件,僅依靠法務工作者及監(jiān)察審計人員肉眼審閱,已經(jīng)無法滿足監(jiān)管需求的現(xiàn)狀,本文研發(fā)了一套基于人工智能技術(shù)的企業(yè)文件智能監(jiān)察系統(tǒng)。該系統(tǒng)首先利用自然語言處理技術(shù)對非結(jié)構(gòu)化數(shù)據(jù)進行結(jié)構(gòu)化處理;再結(jié)合知識庫對審計規(guī)則進行管理;最后使用專家系統(tǒng)及統(tǒng)計建模分析,完成對企業(yè)文件的智能審查。 通過該系統(tǒng)的研發(fā)與應用,使得對企業(yè)文件實現(xiàn)全面監(jiān)察成為可能,解放了勞動力,保證了監(jiān)察結(jié)果的客觀性,提升了工作效率,為企業(yè)員工的安全從業(yè)提供了技術(shù)保障。 [1] Rishi Nalin Kumar.從原始數(shù)據(jù)到數(shù)據(jù)科:使非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化,以推動產(chǎn)品開發(fā)[EB/OL].周元昊,譯.(2016-12-28). http://www.infoq.com/cn/articles/raw-data-to-data-science. [2] 文檔去重算法:SimHash和MinHash[EB/OL].[2017-01-01].http://m.blog.csdn.net/lafeedfh/article/details/51997814. [3] simhash算法原理及實現(xiàn)[EB/OL].(2014-01-30).https://yanyiwu.com/work/2014/01/30/simhash-shi-xian-xiang-jie.html. [4] 使用SimHash進行海量文本去重[EB/OL].[2016-05-30].https://www.cnblogs.com/maybe2030/p/5203186.html. [5] 基于規(guī)則的專家系統(tǒng)的優(yōu)點和缺點[EB/OL].(2012-09-13).http://book.51cto.com/art/201209/356613.htm. [6] 丁世飛.人工智能(第二版)[M].北京:清華大學出版社,2015. [7] 蔡自興,(美)約翰·德爾金,龔濤.高級專家系統(tǒng):原理設計及應用(第2版)[M].北京:科學出版社,2017. [8] 王眾托,吳江寧,郭崇慧.信息與知識管理(第2版)[M].北京:電子工業(yè)出版社,2014. [9] Steven Bird.Python自然語言處理[M].北京:人民郵電出版社.2014. [10] 章宗慶.統(tǒng)計自然語言處理(第2版)[M].北京:清華大學出版社,2013:73-104. [11] [印度] Deepti Chopra, Nisheeth Joshi, Iti.精通Python自然語言處理[M].北京:人民郵電出版社.2017. [12] [印度]Deepti Chopra, Nisheeth Joshi,Iti Mathur. Mastering Natural Language Processing with Python[M].Packt Publishing,2016:79-103. [13] 鄭捷.NLP漢語自然語言處理原理與實踐[M].北京:電子工業(yè)出版社,2017. [14] 張文宇,薛昱,蘇錦旗,等.知識發(fā)現(xiàn)與智能決策[M].北京:科學出版社有限責任公司,2017. [15] Yoshua Bengio.人工智能中的深度結(jié)構(gòu)學習[M].北京:機械工業(yè)出版社,2017.2.2 審查規(guī)則管理
2.3 智能監(jiān)察
2.4 輔助整改
3 總結(jié)