如何将非结构化数据转换为结构化数据?
发布网友
发布时间:2024-09-27 17:22
我来回答
共1个回答
热心网友
时间:2024-10-21 06:45
随着机器学习的发展,过去传统的结构化数据分析方法已经不能满足我们的需求了。如何在神经网络中利用非结构化数据是很重要的一点。所以很多研究者致力于将非结构化数据处理成结构化数据的工具开发。将非结构化数据转化为结构化数据有以下几个方法:
1. 传统方法——树
虽然绝大多数数据是非结构化格式的,但是结构化数据普遍存在于各类商业应用软件和系统中,例如产品数据存储,交易日志,ERP和CRM 系统中都存在大量结构化数据,这些结构化数据仍应用着陈旧的数据技术处理,如基于规则的系统,决策树等。这样的方法需要人工进行特征提取,操作繁琐且需要耗费大量人力进行数据标签。
非结构化数据,也就是通常使用的杂乱无章的文本数据。非结构化数据通常是不能用结构化数据的常规方法以传统方式进行分析或处理的,所以这也成为AI领域一个常见的难题,要理解非结构化数据通常需要输入整段文字,以识别其潜在的特征,然后查看这些特征是否出现在池中的其他文本中。因此,在处理此类任务时,深度学习以其出色的特征提取能力一骑绝尘,于是所有人都开始想着把神经网络用在结构化数据上——建个全连接层,把每一列的内容作为输入,再有一个确定好的标签,就可以进行训练和推理了。
2. 新型利器——深度学习
需要寻找结构化数据的语义,目前要解决的问题主要有:
①数据清洗。要在结构化数据 AI 应用上有所成果,首先需要解决人工数据清洗和准备的问题,找到极少或者没有人为干预的自动化方法,才能使得这一应用可落地可拓展。
②异构数据。处理结构化数据的其中一大挑战在于,结构化数据可能是异构的,同时组合了不同类型的数据结构,例如文本数据、定类数据、数字甚至图像数据。其次,数据表有可能非常稀疏。想象一个 100 列的表格,每列都有 10 到 1000 个可能值(例如制造商的类型,大小,价格等),行则有几百万行。由于只有一小部分列值的组合有意义,可以想象,这个表格可能的组合空间有多么「空」。
③语义理解。找到这些结构化数据的语义特征。处理结构化数据并不仅仅依赖于数据本身的特征 (稀疏,异构,丰富的语义和领域知识),数据表集合 (列名,字段类型,域和各种完整性约束等)可以解码各数据块之间的语义和可能存在的交互的重要信息。也就是说,存储在数据库表中的信息具有强大的底层结构,而现有的语言模型(例如 BERT)仅受过训练以编码自由格式的文本。
3. 结构化数据清洗
除了某些特定的需求外,经过预处理之后的结构化数据,应该满足以下特点:
①所有值都是数字–机器学习算法取决于所有数据都是数字;
②非数字值(在类别或文本列中的内容)需要替换为数字标识符;
③标识并清除具有无效值的记录;
④识别并消除了无关的类别;
⑤所有记录都需要使用相同的一致类别。