孫夢蝶
隨著大數據技術的發展,各行業的信息化程度大大提高,審計工作涉及行業廣,這就要求審計工作必須發展大數據技術。近年來相關文件也做出了指示,如《國務院關于加強審計工作的意見》在2014年10月提出要在審計實踐中運用信息化技術審查問題的能力,探索大數據技術的運用。國務院2015年8月頒布的 《關于促進大數據發展行動綱要》中的國家大數據戰略,促進我國大數據發展。同年12月,構建大數據審計工作模式的要求在《關于完善審計制度若干重大問題的框架意見》文件中被明確。劉家義提出:“推進以大數據審計是實現審計全覆蓋的必由之路。”
在此情況和背景下,如何獲取、存儲和使用大數據技術進行數據分析是審計部門和審計機構面臨的重大挑戰。在審計研究領域,許多機構和學者對大數據對審計的影響進行了闡述。大數據環境下開展審計工作已引起了廣泛關注。因此,對大數據審計的展望也十分有研究價值,本文將重點分析Python語言在大數據環境下實施審計的可行性,為審計人員在大數據環境下實施審計,獲取數據和進行數據分析挖掘數據價值提供理論參考。
一、大數據審計特征
維基百科把“無法在一定時間內用常規軟件工具對其內容進行抓取、管理和處理的數據集合”稱為大數據。大數據環境下非格式化數據比例非常大,如何審計非格式化數據,發現審計線索,是值得研究的。大數據4V的特點給電子數據審計帶來機遇的同時又帶來了挑戰。
從數據層次來看,審計大數據涉及廣泛的數據來源,結構化數據是當前被審計數據的主要類型,但半結構化數據、非結構化數據越來越多。數據類型的多樣化與以往便于存儲、分析的結構化數據相比,對大數據的處理能力提出了更難的挑戰。被審計單位的財務數據和業務數據,數據不僅產生于組織內部運作的各個環節,也來自于組織外部。這些數據的價值對審計工作來說也是不可否認的。因此,被審計數據作為各種數據集合,自然具有體量大、多樣化、價值高等大數據特征。
從技術層次來看,大數據審計技術是一系列具體的技術和方法,用于挖掘和呈現審計大數據,收集、存儲、分類和分析挖掘以及可視化來實現數據的價值,審計的多樣化使得審計數據更加復雜,不難想象與大數據應用在單一行業相比,審計數據獲取,分配和存儲技術面臨的挑戰。
從應用層次來看,大數據審計在應用中的實踐主要體現在深度挖掘審計證據,跨部門、多行業開展數據分析,關聯分析財務與業務數據、挖掘過去數據與實時數據的相關性,以發現審計問題、得出合理的審計結論。
大數據技術可以助推實現審計全覆蓋。并且大數據審計可以推進制度完善,即通過挖掘某種社會現象的潛在規律,作為政策制定的依據,針對問題進行大數據分析、不斷完善政策,推動國家治理現代化。同時,有部分政府審計領域的學者認為大數據審計的目標之一使政府審計揭示宏觀經濟社會運行風險的能力和效率大大提高,以揭露重大違法違紀問題,最終實現審計全覆蓋、維護國家經濟安全的目的。大數據審計的應用,十分符合推行現代審計綜合模式的要求,符合數字化審計方式的特征。
二、Python的特點及其優勢
Python是一種面向對象的計算機程序設計語言,它具有簡單、解釋型、交互式和可移植的特點,在數據分析領域正在得到越來越多的應用(官網:https://www.python.org)。隨著其數據科學計算庫的升級,Python程序設計語言越來越適用于分析數據科學。Python是一門真正的通用設計語言, Python編程語言的通用性,腳本語言應用的廣范性,有眾多組件、擴展庫的支持,并且適用于多種平臺的操作系統,從這些方面來看Python都優于科學計算領域最流行的商業軟件Matlab。雖然目前Matlab中的某些高級數據分析功能Python還無法替代,但是對于基礎性、前瞻性的審計數據處理工作,完全可以用Python來完成。
大數據審計需要用到的Python主要包括:Numpy,Scripy,Pandas,Matplotlib等。Numpy是一個科學計算的庫,提供了矩陣運算等功能;Scripy工具包包括統計,優化,整合,線性代數模塊,常微方程求解器等,可以和Numpy數組一起工作,并提供許多像數值積分、優化這樣的對用戶友好的和有效的數值例程;Pandas是Python的一個數據分析包,最初作為金融數據分析工具被開發出來。因此,提供了能使審計人員便捷處理數據的函數和方法。
Pandas建立在Numpy之上,使以Numpy為中心的應用變得簡單,并且非常適合進行數據清洗和整理。Matplotlib是Python的一個可視化模塊,審計人員可以利用該模塊更方便的制作線條圖、柱狀圖等專業圖形。Python有著像Matlab一樣強大的計算工具包Numpy,有Matplotlib繪圖工具包能夠對數據進行可視化,有科學計算工具包Scripy,Pandas可以像SQL對數據進行控制,對于大數據環境下的電子數據審計而言,使用Python可以實現數據獲取、分析和可視化,非常有發展潛力。
1.Python數據獲取研究。使用Python內置函數讀取文本和數字,打開審計文件讀取文件內容,獲取word、excel文件指定行的內容,以實現從鍵盤、文本文件、Office 文件獲取。
Python的標準數據庫接口支持多種數據庫。接口定義了必須的對象和數據庫存取方式,以便為各種底層數據庫和數據庫接口提供一致的訪問接口,審計人員可以根據適合審計項目的數據庫下載不同的模塊,聯接數據庫后,可以通過執行SQL語句等方式完成查找和存儲。
隨著大數據時代的到來,大量的信息從網絡中涌出,爬蟲像蜘蛛一樣在網絡中穿梭,自動收集有價值的信息,使用簡單的Python腳本就能夠抓取網頁信息,滿足數據分析的需求。爬蟲前期可以使用Google Chrome的檢查功能,查看網頁的URL、請求方式、狀態碼和網站地址代理名稱等特定信息,了解網頁的構成,以便于進一步通過編寫Python腳本,實現爬蟲。
2.Matplotlib繪圖工具包。Matplotlib是Python一個可視化模塊,一個 2D繪圖庫。審計人員寫幾行代碼,便可以完成直方圖、條形圖、散點圖等基礎繪圖,根據圖像的趨勢判斷數據的合理性,以進一步做出正確的審計結論。
3.Jieba和PyTagCloud實現中文標簽云。Jieba是Python的一個中文分詞組件,支持多種分詞模式。PyTagCloud是Python的一個擴展庫,可以生成一個標簽云,當前它可以輸出圖片和網頁兩種格式。通過Jieba組件對被審計的文檔分詞,去除標點符號、“的”、“地”、“了”等停用詞,通過設置參數提取文檔內權重大、詞頻高的詞語。Jieba分詞的結果結合PyTagCloud的標簽云可視化功能,可以實現對審計文件進行充分的理解。在被審計單位提供審計數據,或已通過爬蟲技術獲取的數據的基礎上,可使用標簽云技術實現可視化分析。
4.使用gensim進行文本相似度計算。文本相似度計算的需求始于搜索引擎,它需要計算用戶查詢和爬下來的眾多網頁之間的相似度,從而把最相似的排在最前返回給用戶。使用的主要算法是tf-idf(詞頻-逆文檔頻率)。文本相似度計算主要的步驟有,首先導入jieba和gensim庫,使用jieba對文章進行分詞,然后建立TF-IDF模型,通過模型計算文本與query文本的相似度即可。
三、總結
本文研究了在大數據審計方法方面Python語言的數據獲取方式,包括從文件獲取、從數據庫獲取,介紹了利用網絡爬蟲技術抓取網頁信息,獲取外部數據以滿足數據分析的需求方式;然后介紹了幾個實用的Python模塊,Matplotlib繪圖工具包、Jieba分詞組件等,以實現審計工作的基本繪圖、中文標簽云和相似度分析功能。
值得思考的是,在“4V”的定義下,政府掌握的數據資源不太符合“價值密度低”的界定,并且審計工作中接觸到的非結構化數據還是很少,看起來不應歸為“大數據”,審計人員通過使用基本的數據處理技術就能夠對政府數據進行分析處理。但從另一個角度看,大數據不僅代表的是具有其特征的數據集,更是一項技術的集——能夠采集、存儲和關聯性分析數量巨大、來源分散、格式多樣的數據,更是一種大數據思維,審計人員利用這種創新的思維模式,得以從審計數據中發現疑點,從而提升審計人員發現數據價值、獲取知識和更新認知領域的能力。在大數據審計模式下,審計人員不僅要對大數據技術充分利用,而更應該具有系統化大數據的思維。
為有效解決當前現象,可采取以下措施實現對大數據審計發展的推動:首先,構建審計大數據信息資源平臺,通過建設大數據信息資源平臺,實現資源共享和關聯分析各被審計單位、行業、地方等多個系統間的數據。其次,創新數據分析方法,審計人員從簡單的匯總、統計數據,向運用各種深度挖掘、智能學習算法、可視化等技術實現的大數據分析。審計人員可以通過學習Python等技術,將豐富的審計工作經驗與前沿分析技術相結合,在審計過程中實現大數據技術的應用,以進一步提高審計能力和效率。再其次,完善審計制度體系,在審計數據的標準方面,設定統一標準,規范數據、統一接口,制定大數據審計工作規范,建立健全符合我國國情且系統化的準則體系。
(作者單位:南京審計大學)