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

        在全球信息产业高速发展的背景下,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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索题解

单词方阵 - 洛谷 思路:在字符方阵中找到y并将其坐标存入数组,再找其八个方向是否有目标字符,有的话就深搜一个方向,能搜完就将数组标记,最好标记的就输入字符,没标记的就输出*。 代码如下: #…

linux 拷贝文件到指定目录 命令

在 Linux 中,使用 cp 命令可以拷贝文件到指定目录。下面是 cp 命令的基本用法: bash cp [选项] 源文件 目标目录 - 选项:可以是一些附加的选项,例如 -r 表示递归拷贝(用于复制目录)。 - 源文件&#xff1a…

javascript中的class基础入门(1)

javascript中的class start 最近在学习:cocos ,准备自己制作小游戏。过程中遇到不少疑问,我计划将这些疑问写成一个系列博客,用以记录。这篇文章来了解 class 1. 前言 1. 前言 本文对应版本 Cocos Creator 3.8。Cocos Creato…

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

2_SQL

文章目录 SQL数据完整性实体完整性域完整性参照完整性default(默认值)comment(注释) 多表设计一对一一对多多对多数据库三大范式第一范式:原子性第二范式:唯一性第三范式:数据的冗余 多表查询连…

JQMobile Loader Widget 遮罩层改造

最近在用jqmobile 做一个混合APP项目时候用到 jqmobile1.4.3提供的Loader Widget控件,但是这个控件本身是一个loading弹出层,这个弹出层弹出之后,用户还是可以去点击按钮,重复发送请求,为了防止重复提交,我想了两种办法, 1,在loading弹出层弹出之后,让按钮不可用.但是form表单…

记录SSM项目集成Spring Security 4.X版本 之 加密验证和记住我功能

目录 前言 一、用户登录密码加密认证 二、记住我功能 前言 本次笔记的记录是接SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示-CSDN博客https://blog.csdn.net/u011529483/article/details/136255768?spm1001.2014.3001.5502 文章之后补…

Python列表的合并、重复、判断与切片操作你学会了吗

1.合并列表 通过 实现 list1 ["佛跳墙", "肠粉", "刀削面", "烤鸭"]list2 [32, 4, 5, 7.43, True]list3 list1 list2print(list3) # [佛跳墙, 肠粉, 刀削面, 烤鸭, 32, 4, 5, 7.43, True] 2.重复输出列表中的元素 通过 * 实…

fastadmin 前端日期字段的添加和编辑

引言 fastadmin 项目中如果需要用到datetime字段的维护&#xff0c;可做如下处理&#xff1a; 1. add.html <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(开始)}:</label><div class"col-x…

vue3 中 主题定制

vue3 中 主题定制 背景 做多主题定制&#xff0c;黑/白 &#xff0c;里面还要再分各种颜色&#xff0c;每次进来都要记住上次的主题设置 效果图 一、目录结构 ├── generated │ ├── theme │ │ └── dark-yellow.ts │ │ └── dark-orange.ts │ │…

C++考试成绩统计(类实现)

题目&#xff1a;有三名同学&#xff0c;在一次考试中三科成绩分别如下表&#xff0c;请输出三名同学的平均成绩&#xff1a; 语文数学英语张三100100100李四9050100王五607080 #include <iostream> #include <string> /*考试成绩统计*/ using namespace std;cla…

力扣:120. 三角形最小路径和

动态规划 1.先定义dp数组在下标i和下标j时的最小路径和 &#xff0c;之后初始化dp数组值dp【0】【0】triangle.get(0).get(0)。再用for循环来遍历数组dp【】的i&#xff0c;并赋值每行的下标为0的dp数组。之后再用for循环遍历dp【i】【】的j&#xff0c;递推公式来计算dp【i】…

「算法」常见位运算总结

位运算符 异或 按位异或可以实现无进位相加&#xff0c;所谓无进位相加&#xff0c;就是在不考虑进位的情况下将两个数相加&#xff08;后面有道题需要用到这种操作&#xff09; 异或的运算律 ①a ^ 0 a ②a ^ a 0 ③a ^ b ^ c a ^ ( b ^ c ) 有符号右移>> 将一个…

IDEA切换 Springboot初始化 URL

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

Android基础控件介绍

在Android应用程序开发中&#xff0c;使用基础控件是非常常见的。这些控件允许您在用户界面中显示文本、图像、按钮等元素&#xff0c;以及接收用户输入。本文将介绍几种常见的基础控件&#xff0c;并给出每个控件在示例XML中使用的属性的详细说明。 1. TextView TextView 是…

云计算 2月20号 (认识操作系统)

1、认识操作系统 计算机系统的组成 知识点1&#xff1a;没有软件系统的计算机称之为"裸机" 知识点2&#xff1a;裸机提供基本的可计算性资源 知识点3&#xff1a;操作系统是最靠近硬件的软件层&#xff0c;负责管理和控制计算机硬件。 计算机硬件组成五大部件 运算器…

Chat GPT:智能对话的下一步

Chat GPT&#xff1a;智能对话的下一步 介绍 Chat GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的强大对话模型&#xff0c;可以产生自然流畅的回答&#xff0c;并实现人机对话的感觉。本文将探讨Chat GPT在智能对话领域的影响和…

代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II

代码随想录算法刷题训练营day29&#xff1a;LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II LeetCode(491)递增子序列 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; im…

2024年AI全景预测

欢迎来到 2024 年人工智能和技术的可能性之旅。 在这里&#xff0c;每一个预测都是一个潜在的窗口&#xff0c;通向充满创新、变革、更重要的是类似于 1950 年代工业革命的未来。 20 世纪 50 年代见证了数字计算的兴起&#xff0c;重塑了行业和社会规范。 如今&#xff0c;人工…

老卫带你学---leetcode刷题(242. 有效的字母异位词)

242. 有效的字母异位词 问题 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: t…