点击上方↑↑↑蓝字关注我们~

2019 Python开发者日」7折优惠最后1天,请扫码咨询 ↑↑↑

本文转载自微软研究院AI头条(ID:MSRAsia)

近年来,自然语言处理(NLP,Natural Language Processing)技术的快速发展大力推动了人工智能的整体进展。尤其是在过去三年,机器学习给NLP所带来的进步,使计算机在机器翻译、阅读理解、语法检查等任务上,都达到了可以媲美人类的水平。

不过相比现实世界中的实际应用环境,研究中的NLP任务相对单纯。事实上,在NLP已经取得很多突破的今天,机器却连企业文档中最常见的Word、PDF也无法从头“读”到尾。如何能够让机器理解文档中的标题、段落、脚注、图片、表格等内容信息,是NLP能够处理更多实际应用场景的第一步。

最近,微软亚洲研究院自然语言计算组发表了一篇论文——TableBank: Table Benchmark for Image-based Table Detection and Recognition,致力于解决文档中的表格检测与表格信息识别,并首次在业界同时开源表格检测和表格结构识别数据集,供研究人员使用。


TableBank:高质量的标注表格数据集

虽然人类在视觉上可以很容易地判断出一个表格,但由于表格的布局、样式多种多样,对于机器而言判断“何为表格”以及表格中内容之间的关系却并不容易。传统的基于规则的表格识别方式,一旦换一份文档就需要大量在文档后台的手工操作;而现有的机器学习方法,又无法获得大量有效的标注数据,很难支持实际场景中的应用。于是,TableBank应运而生。

TableBank是一个表格检测与识别的数据集,基于公开的、大规模的Word文档和LaTex文档,通过弱监督方法创建而来。与传统的弱监督训练集不同,TableBank不仅数据质量高,而且数据规模比之前的人工标记的表格分析数据集大几个数量级,其表格数据量达到了41.7万。

然而要让机器读懂表格,首先要能够从文档中识别哪些是表格,随后再去识别表格区域内的信息。因此TableBank的实现主要分两步走:一,表格检测(Table Detection);二,表格结构识别(Table Structure Recognition)。

表格检测

如何能自动检测到文档中的表格?

通常每个Word文档都有一个对应的Office XML源代码文件,在代码中对应表格的位置,可以对其进行修改,让表格加上边框,以此来区分表格与文档的其他部分。对于LaTex文档(由LaTex编辑器生成的文档),则可以直接使用特殊命令将边界框添加到表格中,以此来确定表格在文档中的位置。

然后再将Word和LaTex文档中的表格转化为相对应的PDF页面(如下图所示),便可获得带有表格信息的PDF页面,且该文档对表格的位置已经进行了标注。这些标注过的表格,都可以放到训练数据集中,并且越来越多。目前,该表格检测模型采用了计算机视觉研究中常用的Faster R-CNN 算法。

表格结构识别

表格结构识别的目的是识别表格文档中的文字信息、表格中行和列的布局信息,以及理解行与列之间的关系。从PDF或图像中识别出文字,大家的第一反应都是使用OCR(光学字符识别)技术,确实OCR技术可以识别出文字,但它只能将其转换成文本格式,再按照在图像中出现的先后顺序依次填入到可编辑的文档中,而无法确定文字之间的逻辑关系,更难于理解表格的行、列信息。

在TableBank的论文里,研究员们一方面结合OCR技术,识别出表格里每个单元格中的文本内容,另一方面,使用了创新方法去自动识别出表格在文档中的位置,以及行与列的布局,明确表格中行列交叉所形成的单元格之间的关系。

对于形式、来源不同的表格,研究员们给出了相应的方法来实现表格结构的识别。Word文档中的表格可直接将XML源代码文件转换为HTML标记序列;LaTex文档则先生成XML再转换为HTML,然后框定表格中行和列的位置。这样表格中的行、列信息也就有了标注数据。

目前,TableBank数据集已经在GitHub社区开源,其中表格检测数据有41.7万个,表格结构识别数据有14.5万个。

数据集地址:https://github.com/doc-analysis/TableBank。

表格检测与识别:  文档智能分析的第一步

高质量、大规模、带有标注的表格数据集的建立,意味着表格识别相关的机器学习训练可大规模开展,并将逐步提升表格识别的准确率。集成了计算机视觉、OCR等跨领域技术的TableBank为NLP在实际场景中的应用,做好了智能分析表格数据的前期准备。

未来,在企业文档分析中,无论是扫描件还是纸质文件中的表格识别,都可以基于TableBank训练的模型进行。同样的场景也可以延伸到由PDF转成Word的文档中的表格转换,企业年报、员工报销发票中的表格信息提取等等。

当然,表格只是各类文档中的一小部分,表格检测与识别是NLP在文档分析研究领域的第一步,文档中的标题、段落、脚注、图片等其他非结构化数据的检测与识别,也是微软亚洲研究院自然语言计算组的研究范畴。要想真正实现对文档里的内容的智能分析和理解,还有很多研究课题亟待解决。

(*本文由 AI科技大本营转载,转载请联系原作者)

精彩推荐

「2019 Python开发者日」7折优惠最后1天。这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

推荐阅读:

  • 特朗普盯上谷歌在华AI中心,CEO皮查伊上演“拉锯战”

  • 教育部发文35所高校新增AI本科专业!想回去重新高考

  • 儿科医生的眼泪,全被数据看见了

  • 让苹果“沦为配角”的华为都发布了什么?

  • @程序员,编程语言大乱斗,今天你真香了吗?

  • 社交电商的诅咒

  • 人间真实!一行代码引发的恐惧

  • 阿里带火的中台,究竟是个啥?

  • 姚期智提出的"百万富翁"难题被破解? 多方安全计算MPC到底是个什么鬼?

  • 曝光!月薪5万的程序员面试题:73%人都做错,你敢试吗?

你也可以点击阅读原文,查看大会详情。

这是一份数据量达41.7万开源表格数据集相关推荐

  1. MySql下大数据量级别(1000万+)优化查询和操作方法

    MySql下大数据量级别(1000万+)优化查询和操作方法 一.[原则一]: insert into tb (...) values(...),(...)...; 要比 insert into tb ...

  2. 五行各500字,2位字符串组合,数据量大而采取分段输出表格形式方程式

    /*文字组合情况分析:缺1时取五行相生按顺序及自组合:缺>=2时按结果的前后,最多缺不会5:皆取2字名采用大名和小名并用.*/ void 五行名字(){ /*文字组合情况分析:缺1时取五行相生按 ...

  3. 机器学习 数据量不足问题----1 做好特征工程 2 不要用太多的特征 3 做好交叉验证 使用线性svm...

    来自:https://www.zhihu.com/question/35649122 其实这里所说的数据量不足,可以换一种方式去理解:在维度高的情况下,数据相对少. 举一个特例,比如只有一维,和1万个 ...

  4. 最新数据,国内5G手机出货量已超78万部!

    今天,中国通信研究院发布了2019年9月国内手机市场的数据报告,显示5G手机9月份出货量达49.7万部,新上市的5G手机有9款. 据5G产业圈统计,截至9月末,国内5G手机出货量已超78万部,已上市的 ...

  5. EasyExcel 分Sheet实现大数据量导出

    EasyExcel 分 Sheet 实现大数据量导出 [场景]平台用户导出数据量达 w 级别的数据时界面白屏或按钮无响应. [解决方案]做异步导出,用户触发点击时创建导出消息并开启单独线程处理导出,处 ...

  6. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.4 数据量太大了怎么办

    本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第3章,第3.4节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  7. MySQL大数据量分页查询方法及其优化

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:收藏了!7 个开源的 Spring Boot 前后端分离优质项目个人原创+1博客:点击前往,查看更多 链接:ht ...

  8. 千万级别数据查询优化_MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  9. mysql大数据量分页的一些做法

    随着公司业务的增长,数据库的数据也呈指数级增长,拿订单表为例,之前公司的订单表每天只有几千个,一个月下来不超过十万.而现在每天的订单大概就是2w+,目前订单表的数据已经达到了700w.这带来了各种各样 ...

最新文章

  1. Linux下mysql备份
  2. load、loads、dump、dumps的区别
  3. 消息发送 C语言版和 Visual Basic Script版
  4. RPC实现Consumer 远程调用
  5. rm删除文件显示:Operation not permitted
  6. 在 IntelliJ IDEA 中部署应用到服务器
  7. docker上传镜像到仓库
  8. jdk13.0.2安装mysql_centos下的安装mysql,jdk
  9. mathmagic_MathMagic pro
  10. SQLite Tutorial 3 : Working with important SqLite Queries (SELECT, INSERT, DELETE, UPDATE,WHERE...)
  11. [转载] python的短逻辑
  12. wireshark之不显示ip问题(五)
  13. 杨强教授领衔撰写,国内首本联邦学习实战的权威著作
  14. 2021-10-1825. K 个一组翻转链表
  15. 前端主流框架双向绑定实现原理简述
  16. @修改用户(user)信息
  17. 常见html的MIME类型
  18. 谷歌智能眼镜回归,针对商业用户售价999美元
  19. Logistic回归----葡萄酒案例
  20. 评测三款最流行的txt阅读器

热门文章

  1. mysql获取连续登陆大于等于3天的用户id
  2. 面向对象2(构造函数、实例对象、原型对象——关系理解)
  3. Java面试官最爱问的垃圾回收机制,mysqlssl连接
  4. 卢新宁:在怀疑的时代依然需要信仰
  5. python开发跟淘宝有关联微_基于Python的Apriori和FP-growth关联分析算法分析淘宝用户购物关联度...
  6. 在斜坡上哪个物体滚的最快_在斜坡上哪个物体滚的最快_上海哪个停车场是你的噩梦?日月光的绕,恒隆的窄,新世界的车库太魔鬼…......
  7. VS无法打开 NuGet包
  8. VBE_INFO(获取VBE信息)
  9. 马化腾演讲、张勇内部讲话暴露两大巨头云上端倪
  10. html5霓虹效果代码,纯CSS实现酷炫的霓虹灯效果(附demo)