“平民化”非结构数据处理

        在全球信息产业高速发展的背景下,IDC预测,2018 到 2025 年之间,全球产生的数据量将会从 33 ZB 增长到 175 ZB, 复合增长率27%,其中超过 80%的数据都会是处理难度较大的非结构化数据,如文档、文本、图形、图像、音频、视频等。非结构化数据在大数据时代的重要地位已成为共识。近些年,伴随着大数据存储、人工智能(AI)等技术的蓬勃发展,非结构化数据的价值得到了巨大的发挥。如:自然语言处理、图像识别、语音识别等技术,已在各行业得到广泛应用,并不断的提炼数据中的价值。

        非结构化数据的处理与分析目前主要通过两种形式提供:一种是将能力封装在应用系统中,一体化交付给最终用户,如:人脸身份验证系统、手持翻译机等;一种是以PAAS形式,将能力以开发接口的形式暴露给用户,比较有代表性的有百度AI智能云、阿里云等。前者通过应用封装,最终用户感受不到非结构化数据的处理过程,也无需关注。而后者,给了使用者更大的发挥空间,让用户可以随心所欲的应用这些能力。但前提是用户必须掌握一定的编程能力,才能够调用平台提供的接口。这就使得相当一部分拥有数据处理需求而没有开发能力的用户被挡在了门外。他们需要去学习一种编程语言或者额外支付开发费用才能实现对非结构化数据处理的需求。

        需要二次开发才能使用非结构化数据处理与分析能力的方式显然不符合近年来热推的“技术平民化”趋势。“技术平民化”即“低代码”技术,在数据处理领域其实并不陌生。早在“小”数据时代,对于结构化数据处理与分析就有SAS、SPSS Modeler等一众知名的商业工具,也有诸如Kettle、RapidMiner等开源工具。这些工具都支持使用者通过可视化交互的方式,实现对结构化数据的ETL(抽取、转换、装载)处理及分析建模。进入大数据时代后,在数据科学领域,这种低代码设计理念得以保留。SAS等公司纷纷转型,将其技术架构迁移到以Spark为代表的一众大数据计算框架下。同时,该领域也涌入了许多新晋玩家,如阿里的DataWorks等。但这些工具基本还是面向结构化数据的,只是转换了计算架构,使得工具能够支持更大规模的结构化数据处理与分析的需求。而对于规模早已超过数据总量80%的非结构化数据,目前却鲜有低代码工具,这也使得大数据处理与分析远未进入“平民化”阶段。

        一年多前,接到一个朋友的项目需求。在这个项目中,朋友除了有海量的结构化数据需要处理外,还有大量的诸如文档、图片、音频、视频类数据处理的需求。由于数据种类庞杂,处理需求多样,采用交付定制系统的方式根本无法满足用户不断演进的数据使用需求。因此,一个能够让用户参与的,可随用户需求演进的“平民化”数据处理平台成为了最佳解决方案。

        有别于传统的面向结构化数据的低代码工具,非结构化数据其内容更多样,处理手段更专业、存储方式的选择也更丰富。如前文所讲,非结构化数据包括文档、文本、图片、音频、视频等不同内容;对于这些不同类型的内容,分别有不同的专业处理需求。对于文本有实体识别、关系识别、文本摘要,图片有OCR识别、物体识别,音频有语音识别,视频有关键帧识别等一众需求。这些需求的专业能力要求很高,除了少数大厂有比较全面的能力覆盖外,很多公司都只能在其中的一个或几个方向构建其专业能力;由于非结构化数据没有模式,其拥有了更广泛的存储选择,其可以存储在文件系统中,也可以存储在数据库中,对于其数据的应用场景而言,没有本质的差别。

        针对非结构化数据的存储及处理特点,笔者和团队经过一年多的开发,实现了一个能够给予用户更多的存储及处理技术选择的低代码工具平台。该平台很好的支撑了朋友项目的各类非结构化数据处理需求。比如下面的一个简单场景。

        朋友项目中有一些档案处理的需求,档案格式有word、pdf等。希望能够对这些档案进行自动化处理,抽取档案中的文字及头像,构建基础档案信息。并意图在后续的处理流程中进一步分析文本,获得更有效的内容。(注:为展示系统能力,本文例子中选取了一个台湾政客的简历,该简历采用的是繁体字)。档案原文为一个两页的pdf文件,内容如下:

        (注:这里删除了一页违规的图片信息,内含个人隐私信息)

        我们的第一个任务是抽取文档中的文字。在该任务的实现路径中,有一种是直接抽取pdf中文字的解决方案。但经过测试,发现效果不好。于是尝试了第二种技术路线,就是先将pdf转为图片,然后再使用OCR技术,识别图片中的文字。由于前文有提到,OCR是一个专业的方向,要训练一个好的OCR模型是一个非常困难的事,尤其该文档是繁体字体,就变的更为困难。因此,笔者的平台采用了开放的态度,集成第三放能力供用户选择使用。在该任务中,笔者平台选择了百度的OCR识别能力,用它来实现图片中文字的提取。效果如下图:

        如图所示,这是一个从左到右的数据处理流程。文件输入算子负责读入档案文件;pdf转换算子负责将pdf转换为图片;百度OCR算子负责识别图片中的文字并将结果输出到输出端口。其运行后的效果为:

        在这里能够看到pdf被转成了2个图片,2个图片中的文本也被识别并输出。

        我们的第二个任务是从档案中挑出人的头像图片,并将其存储到指定的目录中。在这里我们集成了百度的物体与场景识别能力。数据流程的效果图如下:

        如图所示,从左至右的流程,文件输入算子负责读入档案文件;图片抽取文件抽取文档中的图片;复制数据流,流的一个分支转交给百度物体与场景识别算子,另一分支转交给联结算子。百度物体与场景识别算子输出识别到的图片的各种标签;过滤算子过滤掉不是人物头像的标签,输出人物头像标签并于另一个分支输出的流在联结算子处联结计算,联结算子只输出与人物头像标签对应的图片,并经过重新打包转换后,将头像写出到文件系统。其运行后的效果如下:        通过流程执行输出的数据我们可以看到,从pdf文件中共抽出三张图,Image1, Image2和Image3,只有Image2被识别为人物类型。下面我们再看流程的输入/输出信息。

        以上图1展示的是流程读入及写出的相关文件。其中OUTPUT记录项的Image2文件即流程识别出的头像文件。点击查看,效果如图2,可以看到抽取到的头像与最初档案中的头像一致。本示例给出的读取和写出数据源皆为文件系统,使用者可根据实际需要进行调整,平台目前支持的部分数据源如下图:

        笔者团队提供的低代码平台,目前已具备将非结构化数据处理“平民化”的能力,对于结构化数据有同样友好的支持。可以帮助更多的业务人员、数据研究人员方便的处理及分析数据;便捷的使用第三方的技术能力;真正进入大数据处理的“平民化”时代。

        追逐同款工具,猛戳以下链接:HuggingFists

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/418431.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据分享】2000~2023年MOD15A2H 061 叶面积指数LAI数据集

各位同学们好,今天和大伙儿交流的是2000~2013年MOD15A2H 061 LAI数据集。如果大家有下载处理数据等方面的问题,您可以私信或评论。 Myneni, R., Y. Knyazikhin, T. Park. MODIS/Terra Leaf Area Index/FPAR 8-Day L4 Global 500m SIN Grid V061. 2021, d…

RK3568平台开发系列讲解(基础篇)互斥锁实验

🚀返回专栏总目录 文章目录 一、互斥锁二、驱动案例沉淀、分享、成长,让自己和他人都能有所收获!😄 一、互斥锁 互斥锁为资源引入一个状态:锁定或者非锁定。某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将…

C++ //练习 10.7 下面的程序是否有错误?如果有,请改正。

C Primer&#xff08;第5版&#xff09; 练习 10.7 练习 10.7 下面的程序是否有错误&#xff1f;如果有&#xff0c;请改正。 (a) vector<int>vec; list<int> lst; int i;while(cin>>i)lst.push_back(i);copy(lst.cbegin(), lst.cend(), vec.begin());(b) …

第三百七十三回

文章目录 1. 概念介绍2. 实现方法2.1 基本用法2.2 特殊用法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享三个使用TextField的细节"相关的内容&#xff0c;本章回中将介绍如何让Text组件中的文字自动换行.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1.…

Redis性能攻略:Redis-benchmark工具与实用性能优化技巧

Redis作为一种高性能的内存数据库&#xff0c;广泛应用于各种业务场景。然而&#xff0c;随着业务规模的扩大和数据量的增长&#xff0c;Redis的性能问题逐渐凸显出来。为了提高Redis的性能&#xff0c;本文将深入探讨Redis性能优化方案&#xff0c;包括参数配置、数据结构、多…

华为HarmnyOS TypeScript基础语法快速入门

华为HarmnyOS TypeScript基础语法快速入门 一、JavaScript、TypeScript、ArkTS二、TypeScript基础语法1. 基础类型2. 条件语句3. 函数4. 类5. 模块6. 迭代器 一、JavaScript、TypeScript、ArkTS ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&am…

js方法 提前结束循环

http://t.csdnimg.cn/j0gkOhttp://t.csdnimg.cn/j0gkO 一、各种循环方法如何跳出整个循环&#xff1f; 对于forEach()方法&#xff0c;目前似乎没有比较优雅的跳出整个循环的方法&#xff0c;如果你实在要用forEach()方法并且需要在某种条件下跳出整个循环提高遍历效率&#x…

react路由基础

1.目录 A. 能够说出React路由的作用 B. 能够掌握react-router-dom的基本使用 C. 能够使用编程式导航跳转路由 D. 能够知道React路由的匹配模式 2.目录 A. React路由介绍 B. 路由的基本使用 C. 路由的执行过程 D. 编程式导航 E. 默认路由 F. 匹配模式 3.react路由介绍 现代…

[Vulnhub]靶场 Web Machine(N7)

kali:192.168.56.104 主机探测: arp-scan -l 靶机ip:192.168.56.104 端口扫描 nmap -p- 192.168.56.106 看一下web 目录扫描 gobuster dir -u http://192.168.56.106 -x html,txt,php,bak,zip --wordlist/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt exp…

R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础

第1章 R语言编程与绘图基础 目录 第1章 R语言编程与绘图基础前言1.1 学术图表的基本概念1.1.1 学术图表的基本作用1.1.2基本类别1.1.3 学术图表的绘制原则 1.2 你为什么要选择R1.3 安装 前言 这是我第一次在博客里展示学习中国作者的教材的笔记。我选择这本书的依据是作者同时…

认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解

目录 引出认识通讯协议1、TCP/IP协议&#xff0c;UDP协议的区别2、HTTP通讯协议的讲解 Redis冲冲冲——缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 认识通讯协议——TCP/IP、UDP协议的区别&#xff0c;HTTP通讯协议的理解 认识通讯协议 …

【脑切片图像分割】MATLAB 图像处理 源码

1. 简单图像处理 加载图像 Brain.jpg&#xff0c;使用直方图和颜色分割成区域这些区域有不同的颜色。 这是一个更高级的问题&#xff0c;有多个解决它的方法。 例如&#xff0c;您可以计算具有特定数字的图像的直方图&#xff08;例如 16 - 32&#xff09;&#xff0c;找到直方…

黑马JavaWeb开发跟学(二)Web前端开发JavaScript、Vue基础

黑马JavaWeb开发跟学二.Web前端开发JavaScript、Vue基础 前言1 JavaScript1.1 介绍1.2 引入方式1.3 基础语法1.3.1 书写语法1.3.2 变量1.3.3 数据类型和运算符 1.4 函数1.4.1 第一种定义格式1.4.2 第二种定义格式 1.5 JavaScript对象1.5.1 基本对象1.5.1.1 Array对象语法格式特…

论文笔记:基于互信息估计和最大化的深度表示学习

整理了ICLR2019 LEARNING DEEP REPRESENTATIONS BY MUTUAL INFORMATION ESTIMATION AND MAXIMIZATION&#xff09;论文的阅读笔记 背景模型 论文地址&#xff1a;DIM code&#xff1a;代码地址 背景 发现有用的表示是深度学习的一个核心目标&#xff0c;由于之前的工作已经可以…

RocketMQ—RocketMQ集成SpringBoot

RocketMQ—RocketMQ集成SpringBoot 新建生产者的boot项目和消费者的boot项目&#xff0c;pom文件重点如下&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</arti…

[RoarCTF 2019]Easy Calc

这题考查的是: 字符串解析特性目录读取文件内容读取 字符串解析特性详解&#xff1a;PHP字符串解析特性 &#xff08;$GET/$POST参数绕过&#xff09;&#xff08;含例题 buuctf easycalc&#xff09;_参数解析 绕过-CSDN博客 ascii码查询表&#xff1a;ASCII 表 | 菜鸟工具 …

ubuntu 20.04下查找pycharm-vscode-qtcreator安装路径-查快捷方式路径-pycharm要以root权限运行脚本

环境&#xff1a;ubuntu20.04 两个用户&#xff1a;root ips3000 qtcreator和pycharm是用户ips3000从软件商店中安装的。1.快捷键和启动方式注意关键词&#xff0c;名字不一样。 桌面快捷方式 启动方式 Pycharm Pycharm-community.desktop Pycharm.sh Qtcreator **qtcrea…

程序媛的mac修炼手册-- Node.js入门篇

最近因为参与一个微信小程序的开发&#xff0c;开始摸索JavaScript。期间&#xff0c;需要基于Node.js安装微信开发工具的依赖项&#xff0c;所以又顺带学习了Node.js的包管理工具npm&#xff08;Node Package Manager&#xff09;。不过&#xff0c;之前看到国外的全栈大佬​​…

GEE入门篇|图像处理(二):在Earth Engine中进行波段计算

目录 波段计算 1.NDVI的计算 2.NDVI 归一化差值的单次运算计算 3.使用 NDWI 的归一化差值 波段计算 许多指数可以使用 Earth Engine 中的波段运算来计算。 波段运算是对图像中两个或多个波段进行加、减、乘或除的过程。 在这里&#xff0c;我们将首先手动执行此操作&#x…

政安晨:【掌握AI的深度学习工具Keras API】(二)—— 【使用内置的训练循环和评估循环】

渐进式呈现复杂性&#xff0c;是指采用一系列从简单到灵活的工作流程&#xff0c;并逐步提高复杂性。这个原则也适用于模型训练。Keras提供了训练模型的多种工作流程。这些工作流程可以很简单&#xff0c;比如在数据上调用fit()&#xff0c;也可以很高级&#xff0c;比如从头开…