一、需求背景
数据检查方案中,对文本属性值的检查一般包括以下内容:
-
检查属性值中不能含有不合理的标点符号(“,”、“?”、空格、换行符等);
-
确认全部属性字段是否为半角;
-
名称简称中不能出现异常字符;
……
而我们在属性表中处理文本类型字段属性值时,也常碰到这样的烦恼:
-
一次只能处理一个字段;
-
一次只能处理一种非法字符类型;
-
字段计算器一运算,想反悔已经来不及;
-
文本查找与替换,又不能支持字符串两端或中间模糊匹配;
……
二、为什么要对文本属性值规范化处理?
属性值规范化处理是数据预处理的一部分,通常在数据清洗和准备阶段进行。这种处理是为了确保数据的一致性和可用性,以减少错误和提高数据的质量。以下是针对属性值规范化处理的不同需求及其原因:
-
全角转半角:这需求的原因是全角字符在计算机系统中通常占用更多的存储空间,并且在一些应用程序中可能会引起字符编码问题。将全角字符转为半角字符可以减小存储开销,提高数据的兼容性和可移植性。
-
半角转全角:有时,特定的应用程序或系统可能要求文本中的字符都是全角字符。半角字符转为全角字符可以确保数据的一致性和符合系统的要求。
-
值替换:有时,需要将某些特定的属性值替换为其他值,以满足特定需求。例如,将"男"替换为"1",将"女"替换为"2",以便进行数据分析或模型训练。
-
异常字符剔除:异常字符通常是那些与特定应用不兼容或无法正确处理的字符。剔除这些字符可以确保数据的质量和可用性。
-
删除英文标点符号:在一些自然语言处理任务中,英文标点符号可能无关紧要或干扰数据处理。删除这些标点符号有助于提高文本处理的效率。
-
删除中文标点符号:与英文标点符号类似,中文标点符号在某些任务中可能无关紧要或干扰数据处理。删除它们可以净化文本数据。
-
删除英文:有时,数据中可能包含不需要的英文文本。删除英文可以减少干扰和降低数据维度。
-
删除中文:类似于删除英文,如果数据中包含不需要的中文文本,可以删除以简化数据。
-
删除数字:在某些情况下,数字可能不重要或干扰数据分析。删除数字可以净化文本或属性值,使其更适合某些任务。
-
删除空格:额外的空格可能会导致数据处理问题,特别是在文本匹配和搜索方面。删除空格有助于确保文本的一致性。
这些需求的具体原因取决于数据的特点和所执行的任务。属性值规范化处理的目标是提高数据的质量、一致性和适用性,以便于后续的分析、建模和应用。
归纳一下:
要素类文本字段属性值,在多种场景下需要对属性值规范化处理。
(1) 全角转半角;
(2) 半角转全角;
(3) 值替换;
(4) 异常字符剔除;
a) 删除英文标点符号;
b) 删除中文标点符号;
c) 删除英文;
d) 删除中文;
e) 删除数字;
f) 删除空格。
三、要素类文本属性值规范化处理工具
要素类文本属性值规范化处理工具,用于处理输入要素文本字段值中,存在的全角半角、空格、数字、中文、中文标点、英文、英文标点以及值替换等文本规范化需求。
3.1 工具概述
支持功能:
(1)全角、半角互转;
(2)值替换;
支持“*”模糊查找,如“*ABC”,“*ABC*”和“ABC*”,“*”代表任意多个连续的字符。
(3)异常字符剔除。
(4)支持多个文本字段一起处理,支持多种属性值规范化方法一起处理;
3.2 功能流程
(1)工具打开界面如下图所示
(2)工具测试数据运行过程如下所示
(3)工具测试数据运行结果示意如下
(4)工具参数介绍如下
(5)工具输出
当选中“是否另存规范化后的结果”,即默认值情况下,输出要素类(FeatureClass)“输入要素类名称+ _format”为修复后的结果。
若scratch.gdb不存在,则自动创建,若已存在,不会覆盖其中已有的要素。
(6)注意事项
当可选参数“是否另规范化后的结果”未被选中时,将在输入要素中直接修复要素,应注意备份。