解决方法:如何解决PDF表格、图片扫描件表格无法复制的问题
优采云 发布时间: 2022-10-12 00:40解决方法:如何解决PDF表格、图片扫描件表格无法复制的问题
多年来,我在复制 PDF 表单和扫描图像表单时遇到了问题。这个工具可以完美地解决它们。
前言
前几天推荐了一个文档对比工具,得到了很多粉丝的点赞,尤其是今天的今日头条粉丝,于是就去官网看看有没有好用的工具,找到了。,一个生产力工具,解决了多年来处理 PDF 文档的棘手问题。
关于
它是一个功能强大的富格式文档解析工具。基于AI识别技术,深度解析PDF文档,扫描PDF、图片等文档格式提取数字,复制这些格式的丰富内容,尤其是准确识别提取这些文档中的内容。表格,让我们轻松粘贴到 Word、Excel 中。
目前有/macOS客户端下载,当然我们也可以使用具有相同功能的在线版本,无需下载安装,打开浏览器即可使用,特别适合偶尔紧急使用。
亲身体验的特点
当你拿到PDF文档或者扫描的图片时,最大的麻烦就是里面的内容不能编辑和复制。让我们看看如何解决这个问题。
轻松识别文档段落、表格和副本
在数据提取模块中,将文档解析为文本段落、表格等元素块信息,鼠标悬停可复制、修改、翻译、保存对应的元素块信息,也可将整个页面内容复制。
准确的文档内容提取和识别
识别效果非常准确,尤其是对表格内容的识别,厉害了!您甚至可以跨页面自动合并表格的内容并进行比较。例如下图中的红框直接识别为“.92”:
准确识别效果
布局复杂的表格信息采集器多少,拥挤紧凑的表格内容和没有边框的表格内容也可以轻松识别,都不是问题。
复制表识别效果
有时在工作中,会遇到一些扫描文件,文件歪斜,字迹模糊,印章被打乱。手动识别和输入需要花费大量时间。您现在可以轻松识别它。
文件歪了,模糊了,有印章,容易复制,支持翻译
关闭显示元素块功能,支持用快捷键智能选择单词、句子、段落,支持跨行、跨栏、跨页自动识别和合并内容,支持一键复制和翻译选中的内容,在浏览外国文档和其他文档时非常有用。特别实用,让PDF内容提取像Word一样流畅流畅,简单方便。
易于复制,支持翻译开发和访问支持
作为一个效率工具,我们可以直接下载安装包,也可以直接使用在线版软件进行解压,可以满足我们日常的工作需求。如果企业有大量的识别和提取需求,也支持两种接入方式:
SaaS服务:通过调用API接口将PDF文档批量解析成文本段落、表格、图片等内容块,序列关联、注释、协作、阅读行为统计等多种功能可以无缝集成到现有系统中
如果要处理的文档涉及机密,开发访问也支持私有部署,文档在自己的服务器上处理,保证安全。
免费说明
和之前推荐的文档内容对比神器一样,也是由国内软件厂商保定科技研发的。它也是一个从PDF/图像中提取富文本和表格的应用程序,具有免费的基本功能和需要“*敏*感*词*”的高级功能。
根据官网的说明,大部分功能都是免费的,部分功能由于消耗计算资源,需要少量的*敏*感*词*(1元=10*敏*感*词*)。每天登录,邀请好友获得*敏*感*词*奖励。
归纳总结:「论文阅读」FUNDED:利用图神经网络和自动收集数据来进行代码漏洞检测
论文标题:将基于图的学习与自动数据采集相结合进行代码漏洞检测
发表于:TIFS 2021
论文链接:将基于图的学习与自动数据采集相结合进行代码漏洞检测
1 快速认识
FUNDED(Flow-sensitive vUlNerability code Detection)是一项使用 GNN 进行源代码漏洞检测的工作。它不同于前面对程序序列的处理。它是在源代码图上学习和处理的。通过捕获程序和流信息的语法和语义,为下游任务生成更好的代码标识。同时,为了有足够的训练数据,FUNDED 有一个数据采集工具来采集开源代码中的漏洞。
FUNDED是功能级漏洞检测,支持多语言检测。本文测试的语言有C、Java、Php、Swift。
作者将本文的研究贡献总结如下:
2 方法概述
FUNDED 由两个关键部分组成:(1)自动采集开源库的易受攻击代码以增强训练数据(2)基于 GNN 的模型以识别可能的软件漏洞
(1)看第一部分,采集训练数据:
从 GitHub 采集代码以补充来自 CVE、SARD 的标准漏洞数据。使用 ensemble learning 使用一组模型来预测 git commit 中是否有补丁,并通过检查补丁的位置找到之前的易受攻击的代码部分,从而使易受攻击的代码在那里。
(2) 第二部分,做嵌入和预测:
该过程如下图1所示。首先解析目标函数生成AST和PCDG,然后结合AST和PCDG提取的信息形成程序图,其中语句、标识符和直接值是图节点,节点之间的关系表示为边,因为一对节点之间可能存在多个关系,所以用一个关系图来记录每一个关系,并将关系图中的连接以程序矩阵的形式编码。
GNN 模型被输入程序矩阵和初始节点表示以学习代码表示,然后将其输入下游神经网络以进行预测。
图 1:漏洞检测模块流程,代码片段 -> 增强 AST -> 矩阵 -> GNN 模型 -> 预测
3 训练集集合
本文通过构建数据采集工具,从一个开源项目构建数据集。该工具的核心是一个专家混合模型(图 2),它由 5 个不同的分类器组成。每个分类器的输入是从提交消息中提取的一组特征(参见表 1)。
图 2:模型注释提交
表 1:用于标记提交的功能
作者在这里使用CP(Conformal Prediction)来过滤一些不确定性较高的输出。对于 CP,参见 /detecting-weird-data-conformal-anomaly-detection-20afb36c7bcd 这个介绍。专家模型的训练和使用详见原文。
4 漏洞检测部分 4.1 GNN的模型结构
基于作者及其团队之前的工作(Deep program structure modeling through multi-relational graph-based learning),将GGNN扩展为对从源代码中提取的多个代码关系进行建模,GGNN堆叠了4个基于GRU的模型,包括更高层次的邻居关系,通过将关系图的邻接矩阵和初始节点作为输入来学习嵌入向量,然后将其传递给标准的全连接网络进行分类。
4.2 图表表示
该图显示了以下操作
(1)代码预处理:不断重命名繁琐的变量名,好像改成a、b、c等,避免变量命名带来的麻烦
(2)程序图:程序图是基于AST构建的。AST 中有非叶节点(如 if 语句、函数声明)和叶节点(变量值、标识符名称)。标准 AST 中只有简单的父子关系。,但是作者想添加一些额外的关系来捕获额外的语法、数据、控制信息,所以作者添加了8种额外的边:
4.4 图形节点表示
使用Word2Vec分别嵌入节点类型和节点,连接生成的节点类型和节点表示,然后传递给后续网络。
4.5 学习多关系图
给定一个邻接矩阵和初始节点嵌入,GGNN 生成一个 100 维向量
(1) 增强邻里关系
如图 x(a) 所示,邻居节点用于更新目标节点的嵌入值。这个过程是递归计算、递归聚合和传递的
重复固定次数后,进行读数
(2) 多关系建模
(3) 读出
5 实验 5.1 评估集成学习方法的漏洞采集
数据集:来自 GitHub、SAP、ZvD 的 C、C++、Java 代码
比较方法:VCCFINDER、SABETTA 等人、VULPECKER、ZvD、ZHOU 等人
实现:使用 scikit-learn 包
比较结果:看论文中的图,展示了不同方法之间的比较以及模型集成与单个模型的比较
5.2 漏洞检测效果评估
数据集:来自 SARD、NVD 和 GitHub
比较方法:VULDEEPECKER、VULDEEPECKER、Lin
实现:使用 tensorflw v1.8,使用 Soot (Java)、ANTLR (Swift、PHP)、Joern (C/C++) 构建 AST
比较结果:
(1) 在大型代码库上进行实验
最左侧表示每种方法识别出的漏洞数量,实心圆圈表示成功检测到的 NVD 和 CVE 报告的漏洞,实心方块表示未报告的漏洞。
FUNDED 检出最多,Devig 也比其他方法好。能证明GNN方法真的更好吗?
(2) 在单个数据集上进行实验
(3) 跨语言学习(迁移学习)
多语言学习是可能的,主要是经过前几层抽象之后,输入变得与任务无关,而网络的后面几层更具体到任务,