真实标书查重系统中的技术复杂度 标书查重工具
csdh11 2024-12-22 15:00 2 浏览
一.使用场景
为了体现招投标交易过程中公平,公正,公开的原则,需要针对投标文件环节,对各家单位制作的投标文件进行重复度的判断。以防止单位之间进行不正当的投标行为。
对投标标书查重或相似度对比检查,是非常重要的工作,如果两份标书存在较多内容相似,基本会被废标,所以需引起重视,需认真查看。除了依靠人工查询外,也可以通过标事通标书检查服务进行快速检查。 标书检查服务可以检查包括: 错漏项检查、算术性错误检查、不平衡报价检查、商务标模拟得分、招标控制价检查、雷同性检查;资质检查、业绩检查、相似度检查、人员检查等数十项易废标点,还将有问题部分提取标注出来,并进行可视化对比,可以大大提高工作效率。
二.技术方案
2.1规范标书格式
尽可能规范标书格式,严格按照既定格式构建标书结构,所有标书文件均需提供对应电子版,减少扫描版识别异常等带来的影响,减少标书结构化时人工干预,提高标书审计准确度。
提供对应的标书模板,标书文件需严格、清晰的包含目录、方案、主体、资质、案例、商务条款、报价等章节。
2.2标书文件数据结构化
文件结构化需区分电子原始文件及扫描文件,原始电子文件采用流式数据处理法结构化文档,如基于xreader版式数据的Retype流式数据以及基于ooxml的BDJson流式数据。而扫描文件等非原始电子文档因无法使用常规的文件标准进行解析,故扫描文件的结构化将基于BERT等模型来实现。
实现过程中,将所有文件预处理为统一格式,如PDF或者Word进行后续处理,便于整个系统功能的模块化以及文件处理的标准化,如PDF的xreader版式数据,版式数据指的是每个元素(文字、图片)都有一个坐标信息和元素的宽高信息,以及其他的描述信息。Word也有完成的数据结构可以遵循,
文档内容“版式转流式”的方案,遍历xreader版式数据中的每个元素,提取坐标信息x,y和元素的宽高w,h信息。比较接近的y认为是同一行数据,y接近的情况下,根据x和w拼接相邻的文本元素、连接相邻的文本和图片。
OOXML基于zip+xml的格式,普通文本及其字符属性、段落属性的读取和解析较为方便,其自带章节、段落和表格等结构化信息,便于流式排版。基于本次排版需求,以及考虑到将来有word在线编辑的场景,方案设计为语义级别的精确解析文档,抽取内容和属性,组建office数据结构,章节、段落等数据结等均遵循ooxml标准,word中支持的多套公式数据“域公式、mathtype公式,omath公式”统一转码成LaTex数据格式,不仅便于后续编辑,而且可以适配正文的字体和大小,整体排版效果更统一。
利用BERT模型实现抽取文档信息抽取及文档结构化,模型可以分为两个部分:实体抽取模块和关系分类模块。
1、实体抽取模块主要涉及一下五个步骤:
(1)processors初始化
(2)estimator配置
(3)加载训练数据
(4)利用model_fn_builder构造模型,加载模型参数等。利用Tensorflow中新的架构方法,通过定义model_fn函数,定义模型。然后用Estimator API进行模型的训练,预测,评估等。
(5)调用Estimator进行训练过程的控制及正式开始训练等。
2、文档结构化数据的提取与分类的主要难点在于,其不仅仅依赖于两个目标实体的信息,还依赖于句子本身的语义及语法信息,利用BERT强大的编码能力,预期能够同时抽取到文本中的两种特征,因此为了使BERT模型能够定位两个实体的位置,我们将在每个句子的开头添加特殊标志,如 "[CLS]" ,在第一个实体前后添加特殊字符 "#34; ,在第二个实体前后添加特殊字符"#";
3、使用BERT三部分特征进行最后的关系分类:
(1)[CLS]最终隐含状态向量,这部分提取了句子的语义特征
(2)两个实体的隐含状态向量,这部分提取了实体特征
4、利用拼接三个特征进行关系分类,接一个softmax进行分类基于BERT模型实现对文档进行目录提取、段落提取、图片提取、签名提取、印章提取、报价提取、法人信息提取、资质提取。
2.3、文字比对
1、首先从数据库中导出提取出来的原始核心字段数据,例如subject代表标题名称,summary代表项目简介等等;
2、通过算法完成语料标记工作;
3、对数据进行预处理,其中包括正则匹配、文本分词、停用词处理、字符串操作、规约化数据等;
4、采用余弦相似度进行相似算法处理,以测试数据和训练的每条数据的词项构建文本向量,通过文本向量的夹角即判断文本相似度,并反馈出结果;
5、对查重后的结果进行处理,可以保存到本地,也可以直接输出,由于本项目主要提供接口调用,调用执行py文件之后,对输出结果不能换行处理,所以本项目添加一些html标签和css样式。
2.4、文本相似度计算
相似度计算涉及分词、去停用词、TF-IDF模型向量化文本、计算相似度
1、分词
一个词的权重由TF * IDF 表示,其中TF表示词频,即一个词在这篇文本中出现的频率;IDF表示逆文档频率,即一个词在所有文本中出现的频率倒数。因此,一个词在某文本中出现的越多,在其他文本中出现的越少,则这个词能很好地反映这篇文本的内容,权重就越大。
2、系统实现:
(1)分词上使用结巴分词,词袋模型、TF-IDF模型、LSI模型的实现均使用了gensim库,需要引入对应库;
(2)构建停用词表;
(3)结巴分词后的停用词性 [标点符号、连词、助词、副词、介词、时语素、‘的’、数词、方位词、代词];
(4)对一篇文章分词、去停用词;
(5)选取三篇文章,前两篇有一定相似度,第三篇是相似度低的;
(6)建立TF-IDF模型;
(7)构建一个query文本,是高血压主题的,利用词袋模型的字典将其映射到向量空间;
(8)用TF-IDF模型计算相似度,相对于前两篇相似度较高的文本,第三篇文本与query的相似度很低。可见TF-IDF模型是有效的,然而在语料较少的情况下,与前两篇文本相似度也不高。
2.5图片相似度计算
实现方式为通过感知哈希算法 获得图像的图像指纹,然后比较两个哈希值之间的汉明距离来获得图片的相似度。
主要步骤如下:
1、缩小尺寸。将图片缩小到 8x8 的尺寸,总共 64 个像素,是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异;
2、简化色彩。将缩小后的图片,转为 64 级灰度,所有像素点总共只有 64 种颜色;
3、计算平均值。计算所有 64 个像素的灰度平均值。比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为 1 ;小于平均值,记为 0。
4、计算哈希值。将上一步的比较结果,组合在一起,就构成了一个 64 位的整数,这就是这张图片的指纹。注意保证所有图片都采用同样次序。
2.6 印章识别及相似度计算
采用OCR技术识别标书中的印章,并将印章进行归类,在识别过程中,设计多种形态的印章,如:
1、圆形(企业章、公章)
2、椭圆形(财务章、合同专用章等)
3、正方形(法人章)
4、长方形(专用章等)
通过识别出的OCR参数还原出电子印章及展示OCR识别数据,印章坐标位置及如下印章内容要素,如:
印章图片获取并保存后,使用SIFT算法和文字相似度检测算法,使用已有的图片相似度检测组件进行印章相似度检测,其主要步骤如下:
(1)图像预处理,主要是印章图片区域提取、常规灰度二值、对于形态不好的图片进行腐蚀;
(2)构建一个霍夫圆打开,以便进行后续的文字识别;
(3)构建图像标准名称库;
(4)识别文字,识别文字部分使用的已有的组件化的OCR工具组件进行文字识别;
(5)计算文字的相似度,同样基于已有的文字相似度组件进行文字相似度计算;
(6)图片相似度计算,同样使用已有的图片相似度计算组件进行印章相似度计算。
三、系统介绍
将标书的主要内容分为三大部分:程序条款、技术条款、商务条款。其中主要包含下列九项内容:招标邀请函;投标人须知;招标项目的技术要求及附件;投标书格式;投标保证文件;合同条件(合同有一般条款及特殊条款);技术标准、规范;投标企业资格文件;合同格式等等内容。
标书查重原理是上传多份投标书进行篇篇对比,找出相似内容,发现和规避风险。公司内部人员可以无障碍通过系统进行标书互检。
系统所涉及内容为:
1、核心服务:相似度检测,标段报告生成、对比报告生成,文档内容提取;
2、用户功能:提交标书查重、查看标段报告、查看对比报告;
3、系统为B/S架构,并适配主流浏览器。
3.1系统功能:
1、系统可识别并支持PDF、WORD等格式的文件批量上传。
2、查重结果所包含内容应参照目前主流查重报告内容,包括总相似比等结果,同时附上每一结果计算说明,并列举出相似片段详情,即检测文档片段与相似内容来源的对比,查重结果可支持批量导出。
针对红色或者橙色的句子,点击能够详细的看到具体重复的细节,和另外一份文档中的哪个句子相似了,并且显示相似度是多少。
3、白名单过滤功能,过滤掉部分商务条款等,通过设置或者上传白名单文档,检测的时候文档中和白名单相同的内容将被过滤掉,不参与检测。
4、阀值设置,用于判断内容、图片等对比预警阀值;
5、关键词设置:地名、供应商、关联公司等,很容易在复制时被遗漏,通过将这类关键词添加至重点关注列表;
6、标书库,记录历史标书,丰富后续查重样本
3.2 文档检测:
1、文本检测,包含:完全相同的句子,近似的句子(修改了几个字,或者前后顺序颠倒,但是意思是一致的),如下图所示为相似的句子。
2、标题目录摘要
3、签名及印章图片
4、报价波动,报价清单价异常,报价清单中,报价项呈规律性递减或递增。
5、图片相似度,提取文件中图片,设置图片分类,对同类图片进行相似度对比,并显示对比重复率。
相关推荐
- Micheal Nielsen's神经网络学习之二
-
依然是跟着MichaelNielsen的神经网络学习,基于前一篇的学习,已经大概明白了神经网络的基本结构和BP算法,也能通过神经网络训练数字识别功能,之后我试验了一下使用神经网络训练之前的文本分类,...
- CocoaPods + XCTest进行单元测试 c单元测试工具
-
在使用XCTest进行单元测试时,我们经常会遇到一些CocoaPods中的开源框架的调用,比如“Realm”或“Alamofire”在测试的时候,如果配置不当,会导致“frameworknotfo...
- Java基础知识回顾第四篇 java基础讲解
-
1、&和&&的区别作为逻辑运算符:&(不管左边是什么,右边都参与运算),&&(如果左边为false,右边则不参与运算,短路)另外&可作为位运算符...
- 项目中的流程及类似业务的设计模式总结
-
说到业务流程,可能是我做过的项目中涉及业务最多的一个方面了。除了在流程设计之外,在一些考核系统、产业审批、还有很多地方,都用到相似的设计思路,在此一并总结一下。再说到模式,并不是因为流行才用这个词,而...
- 联想三款显示器首批获得 Eyesafe Certified 2.0 认证
-
IT之家7月31日消息,据外媒报道,三款全新联想显示器是全球首批满足EyesafeCertified2.0的设备。据报道,联想获得EyesafeCertified2.0认证的显...
- maven的生命周期,插件介绍(二) 一个典型的maven构建生命周期
-
1.maven生命周期一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都...
- 多线程(3)-基于Object的线程等待与唤醒
-
概述在使用synchronized进行线程同步中介绍了依赖对象锁定线程,本篇文章介绍如何依赖对象协调线程。同synchronized悲观锁一样,线程本身不能等待与唤醒,也是需要对象才能完成等待与唤醒的...
- jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
-
1jquerymobile+百度地图+phonegap写的一个"校园助手"的app,使用的是基于Flat-UI的jQueryMobile,请参考:https://github.com/...
- Apache 服务启动不了 apache系统服务启动不了
-
{我是新手,从未遇到此问题,请各位大大勿喷}事由:今天早上上班突然发现公司网站出现问题。经过排查,发现是Apache出现问题。首先检查配置文件没有出问题后,启动服务发现Apache服务能启动,但是没法...
- 健康债和技术债都不能欠 公众号: 我是攻城师(woshigcs)
-
在Solr4.4之后,Solr提供了SolrCloud分布式集群的模式,它带来的主要好处是:(1)大数据量下更高的性能(2)更好扩展性(3)更高的可靠性(4)更简单易用什么时候应该使用Sol...
- Eye Experience怎么用?HTC告诉你 eyebeam怎么用
-
IT之家(www.ithome.com):EyeExperience怎么用?HTC告诉你HTC上周除了发布HTCDesireEYE自拍机和HTCRE管状运动相机之外,还发布了一系列新的智能手机...
- Android系统应用隐藏和应用禁止卸载
-
1、应用隐藏与禁用Android设置中的应用管理器提供了一个功能,就是【应用停用】功能,这是针对某些系统应用的。当应用停用之后,应用的图标会被隐藏,但apk还是存在,不会删除,核心接口就是Packag...
- 计算机软件技术分享--赠人玫瑰,手遗余香
-
一、Netty介绍Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty...
- Gecco爬虫框架的线程和队列模型 爬虫通用框架
-
简述爬虫在抓取一个页面后一般有两个任务,一个是解析页面内容,一个是将需要继续抓取的url放入队列继续抓取。因此,当爬取的网页很多的情况下,待抓取url的管理也是爬虫框架需要解决的问题。本文主要说的是g...
- 一点感悟(一) 初识 初读感知的意思
-
时间过得很快,在IT业已从业了两年多。人这一辈子到底需要什么,在路边看着人来人往,大部分人脸上都是很匆忙。上海真是一个魔都,它有魅力,有底蕴,但是一个外地人在这里扎根置业,真的是举全家之力,还贷3...
- 一周热门
-
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
IDC机房服务器托管可提供的服务
-
详解PostgreSQL 如何获取当前日期时间
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
流星蝴蝶剑:76邵氏精华版,强化了流星,消失了蝴蝶
-
PhotoShop通道
-
查看 CAD文件,电脑上又没装AutoCAD?这款CAD快速看图工具能帮你
-
WildBit Viewer 6.13 快速的图像查看器,具有幻灯片播放和编辑功能
-
光与灯具的专业术语 你知多少?
-
- 最近发表
-
- Micheal Nielsen's神经网络学习之二
- CocoaPods + XCTest进行单元测试 c单元测试工具
- Java基础知识回顾第四篇 java基础讲解
- 项目中的流程及类似业务的设计模式总结
- 联想三款显示器首批获得 Eyesafe Certified 2.0 认证
- maven的生命周期,插件介绍(二) 一个典型的maven构建生命周期
- 多线程(3)-基于Object的线程等待与唤醒
- jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
- Apache 服务启动不了 apache系统服务启动不了
- 健康债和技术债都不能欠 公众号: 我是攻城师(woshigcs)
- 标签列表
-
- serv-u 破解版 (19)
- huaweiupdateextractor (27)
- thinkphp6下载 (25)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- sql 日期比较 (26)
- document.appendchild (35)
- 头像打包下载 (61)
- oppoa5专用解锁工具包 (23)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- f12019破解 (20)
- np++ (18)
- 魔兽模型 (18)
- java面试宝典2019pdf (17)
- beamoff下载 (17)
- unity shader入门精要pdf (22)
- word文档批量处理大师破解版 (36)
- pk10牛牛 (22)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- pcm文件下载 (23)
- jemeter官网 (31)
- iteye (18)