审计准备阶段是指以非现场方式,基于持续审计积累的资料和信息,按照一定的流程和方法,对资料和数据进行分析、筛查,形成疑点清单的过程。审计准备阶段面临的难点包括看不清审计对象、抓不住审计重点、找不到审计疑点。笔者结合某经济技术开发区领导干部经济责任审计,介绍审计准备阶段运用Python技术快速锁定风险点,为现场检查和延伸检查提供精准定位的审计方法。
审计背景
某经济技术开发区是国家级经济技术开发区,体量庞大,经济业务活动频繁,区属二级机构和国有企业众多,审计时间跨度大,审计资料包括各类文本和表格,审计工作量大。如何对各类合同文档、会议纪要、工作报告、财务报表等文本和表格进行分析,查找关键词,梳理疑点文档,分析排查被审计单位的风险状况成为审计准备阶段面临的一大难题。
数据准备
审计人员通过Python 编程,调用win32com库完成Word文档转换,使用python-docx库处理Word文档,运用re库定义搜索文本时要匹配的一个或多个字符串,安装Jieba分词库实现对文档中语句的精确切割划分,最后借助WordCloud库对出现频率较高的关键词进行可视化展示。
由于部分Word文档为DOC格式,而python-docx库只能处理DOCX格式的Word文档,需要使用win32com库将其转换为DOCX格式。方法为:将Word文档存储在指定的目录中,遍历该目录下所有Word文档并判断文件名是否以“.doc”为扩展名,如果是则调用Word.Application对Word文档进行重命名,最后打开Word文档将其另存为DOCX格式。
锁定关键事项
审计人员利用文本数据挖掘技术对开发区会议纪要文档中的内容进行分词、词频分析和词云展示,可视化呈现审计关键事项。
第一步,编写程序代码。遍历会议纪要目录下的所有文件,将Word文档中所有的段落(paragraphs)内容保存到变量results中。第二步,利用Jieba分词库中的cut,对所有文本进行分词。第三步,基于pandas库建立一个DataFrame数据集,将所有分词长度大于2的结果存入数据集segmentSDF中,按照分词结果对数据集进行重置索引和排序,并选取前200个分词绘制词云图。第四步,使用WordCloud库绘制词云图。在实际应用过程中还会出现一些无关紧要但频次较高的词语,如“年份”“关于”“根据”等,审计人员可在程序中引入一个停止词变量,将这些词语排除在外,减少干扰。
如图1所示,从可视化结果中,审计人员可以一目了然地锁定审计重点。在审计过程中,审计人员以“奖励”“借款”“规划”“安置”“税收”“土地”“协议”等关键词为重点审计事项,发现了该经济技术开发区使用财政资金向园区企业借款、以奖励形式返还园区企业税收等问题。
定位线索关键词
基于词云图,审计组获取了经济技术区会议纪要文档中的关键词,接下来就需要准确定位关键词位置,以及与关键词关联的上下文内容。
虽然常用的办公软件Word提供了文档“查找”功能,但该功能存在一次性查询多个关键词无法准确关联上下文、无法一次性在多个文档中进行查找、无法导出查询结果等短板。
审计组利用Python改进查找功能,使用Python相关的目录库循环、正则表达式库,可以在多关键字、多文档中批量查找问题线索关键词。
第一步,导入python-docx、re正则表达式、glob和pandas、openpyxl等必需的库。第二步,使用pandas库的DataFrame生成一个名称为df的数据集,数据集中包含的列分别为“文件名”“段落”“关键字”和“上下文”。第三步,利用glob内置模块循环处理指定目录下的Word文档。第四步,设置需要查询的关键词kw,多个关键词用“|”分隔开。第五步,建立一个正则表达式规则字符串regstr_word,匹配关键词前后的所有中文,并于关键词前后各取50个字作为上下文摘要,进行编译。第六步,打开Word文档并使用docx.paragraphs提取Word文档中的所有段落,通过findall()对每个段落进行循环查找,匹配正则表达式,将查找的结果保存到列表变量results中,循环输出查找结果。第七步,设置一个空的列表变量row,用于存储“文件名”“段落”“关键字”“上下文”四个字段,并将查询结果循环写入数据框中。最后,将数据框中的查询结果保存为Excel文件,呈现关键词在哪一个文件的第几段出现,以及关键词上下文关联的前后各50个字分别是什么。
审计成效
审计组运用Python技术对被审计单位提供的非结构化数据进行分析,锁定了审计需要关注的关键事项。在审计过程中对重点审计事项进行了核查,揭示了该经济技术开发区在对外出借资金、未按规定程序改变规划、违规调整土地用途、拆迁安置严重滞后、招商引资政策执行不到位等方面存在的问题,结合会议纪要研究的内容,准确界定领导干部应承担的经济责任,取得较好审计效果。
(作者:安徽省怀宁县审计局 何红兵)
(本文转载自《中国审计》2023年第20期)