附件 围标串标是招标投标领域中常见的违法行为,损害了招标人和其他投标人的合法权益,违反了招标投标活动中公开、公平、公正和诚实信用的原则。围标串标行为隐蔽性强、认定查处难度大,从招标投标文件异常一致或高度雷同的角度进行分析,是识别围标串标行为的有效方法之一。本文以Y地信息化项目审计为例,总结如何在招标投标文件数量庞大、内容繁杂的情况下,利用Python技术快速定位疑点,核查围标串标问题,从而提高审计工作效率。
一、审计背景 Y地信息化项目涉及数百家投标单位,招标投标资料体量庞大,单份投标文件字数通常在几万字到几百万字不等。若依靠传统的人工比对方法,不仅耗费大量的时间和人力,还难以在有限审计时间内完成对所有项目的精准核查。基于现有数据,审计人员通过Python技术将非结构化招标投标文件转化为结构化文本数据并进行分析,二次筛选数据,计算段落相似度和识别异常文本,开展数据关联比对,进行数据可视化分析,审查是否存在围标串标等违法行为。
二、审计方法(一)处理招标投标文件 首先,为适应Y地信息化项目中大量复杂文件的处理需求,审计人员搭建Python开发环境并创建虚拟环境。使用pip命令安装处理文件所需的依赖库,包括PyPDF2、Python-docx,分别用于处理PDF和Word文件。 其次,根据被审计单位提供的招标文件和投标文件,按照同一个项目将招****公司的投标文件整理在一个文件夹内。通过自定义read_file函数,根据文件类型自动调用相应的文本提取方法:对于PDF文件,使用PyPDF2.PdfReader对象逐页读取文件,利用getPage()方法获取每一页内容,并通过extract_text()方法提取文本,将每页文本存储在一个列表中,拼接成一个完整的字符串;对于Word文件,调用docx.Document对象,从文档中逐段提取文本,通过迭代paragraphs属性,获取文档中的每个段落,将其内容添加到一个列表中,使用join()方法将这些段落合并成完整字符串。 最后,运用os库中的path.basename()和path.splitext()方法提取并规范文件名。在审计过程中,采用“审计时间_招标单位名称_中标公司”的格式进行文件命名,以确保文件命名在每个审计步骤中都具备较高的可识别性且便于管理。
(二)筛选和匹配异常文本 该信息化项目招标文件和投标文件中包含大量的干扰信息,如日期格式、换行符和多余空格。在进行数据分析前,需要对文本进行清洗,利用re.sub()方法和相应正则表达式去除无效文本,确保后续比对的文本的有效性和一致性。使用difflib.SequenceMatcher和set_seqs()方法,对清洗后的招标文件和投标文件文本进行相似性分析,获取匹配块的信息,包括匹配的起始位置、结束位置和长度。为提高筛选的准确性,审计人员设定一个最小长度阈值min_len,以仅保留长度大于或等于该阈值的相似文本块。 通过观察,审计人员发现通常情况下投标文件中均包括部分招标信息。当招标文件出现文字错误时,可能会导致多个投标文件部分内容错误完全一致,因此分析时需要将招标文件的内容剔除。审计人员利用difflib提供的匹配块信息,通过迭代遍历每个匹配块,将出现在招标文件的内容排除,确保筛选结果的有效性和准确性。
(三)结果存储与可视化 在完成以Python数据处理为基础的文件获取与初步数据整理后,审计人员对结果进行可视化分析,以更直观地展示异常信息比对结果。 首先,通过pandas库将结果整理为DataFrame格式,针对异常文本的筛选结果,设置以下列名:投标文件名、异常文本、异常文本位置、文本长度和词云相似度。使用文本块的起始位置作为索引,确保每个文本块在DataFrame中的唯一性和可追溯性,利用to_excel()方法将其导出为Excel文件,便于后续的整理和分析。在命名导出文件时,使用“招标文件名_投标文件名_结果_日期”的格式,确保文件命名规范且易于识别。 其次,为进一步对数据进行直观展示,使用WordCloud,根据比对文本的词频生成词云图,突显出现频率较高的关键字。同时,利用sklearn中的CountVectorizer,将高频词汇转换为词频向量,并使用cosine_similarity函数计算余弦相似度。如在a、b两份投标文件中,词云图相似度为0.60,说明两份投标文件相似度较高,审计人员重点关注这两家投标单位,审查公司的法定代表人、主要项目管理人员等是否存在交叉重叠,投标文件是否由同一人或者同一家单位编制,以判定是否存在围标串标的违法行为。 最后,利用Jinja2生成动态报告模板,清晰呈现分析结果。报告模板包括标题、分析概述和可视化图表,审计人员将比对筛选结果、相似度分析等信息自动填入模板,用相关数据和图表替换占位符,生成完整的初始审计报告。 通过自动化的报告生成和可视化分析,审计人员高效完成投标文件异常文本的甄别,确保数据清晰、易于解读,锁定围标串标问题线索。
三、审计成效 若采用人工审查招标投标文件的方式,每位审计人员审查单个项目****公司的投标文件需要3至5天完成,通过运用上述数据分析方法,审计人员在1至2个小时内完成了对所有招标投标文件的初步分析。在数据分析过程中,系统生成约700条疑点信息,缩小了排查范围,提高了审计质效。依据上述疑点信息,审计组查阅了项目招标投标资料并结合实地调查,发现多家企业涉嫌围标串标。针对审计查出的问题,相关主管部门及时修订了信息化项目管理办法,将涉嫌围标串标的企业纳入诚信异常企业名录以及投标重点审查名单,并对相关人员进行处理,确保信息化项目招标投标工作规范、高效运行。(作者单位:****审计局)来源:中国审计2024-21
附件