数据清洗之如何用一行Python代码去掉文本中的各种符号

作者:coder1479 时间:2023-10-04 12:39:25 

前言

在搜集了很多文本语料之后,会开始漫长的数据清洗过程,通常要不断迭代。

1. 问题描述

有些文本数据中,会包含一些特殊符号。

猜想可能是从某些富文本编辑器中直接粘贴到了网页。

如果要清除这些特殊符号,就需要专门的工具。

2. 相关知识

Unicode标准把符号分为四大类,分别是:

缩写详情
[Sc]Symbol, Currency
[Sk]Symbol, Modifier
[Sm]Symbol, Math
[So]Symbol, Other

一般需要清理掉的符号会是So类型的,但还是要根据自己的数据情况具体分析

3. 解决方案

在数据清洗过程中遇到的符号可能包括:杂项符号、几何形状、箭头、心形、星形、表情Emoji、货币符号等。

如果以上这些符号都要删除,可以用下面的代码。

text = "".join(ch for ch in text if unicodedata.category(ch)[0]!= 'S')

如果需要单独去除某一类,或者希望知道某个符号所属的具体类别,就需要到这个网站:

https://www.unicode.org/charts/charindex.html

查找对应的符号类型。

以箭头符号为例。

先用Arrow搜索上面的网页,找到纯粹的箭头项Arrows,对应的文档是:https://www.unicode.org/charts/PDF/U2190.pdf

找到自己需要的箭头,并查看对应的名字。

举例:箭头

RIGHTWARDS ARROW,然后用python提供的unicodedata标准库,查找这个符号的类别。

unicodedata.lookup('RIGHTWARDS ARROW')
'→'
unicodedata.category('→')
'Sm'

这样,就知道要查找的箭头符号,属于Sm类别(数学符号)。

举例:黑色方块

BLACK SQUARE ■ U+25A0

unicodedata.lookup('BLACK SQUARE')
'■'
unicodedata.category('■')
'So'

举例:黑色心形

unicodedata.lookup('BLACK HEART SUIT')
'♥'
unicodedata.category('♥')
'So'

举例:黑色星形

unicodedata.lookup('BLACK FOUR POINTED STAR')
'✦'
unicodedata.category('✦')
'So'

如果只需要去除杂项符号,可以用下面的python代码。

text = "".join(ch for ch in text if unicodedata.category(ch) != 'So')

另一个有用的网址:

https://www.fileformat.info/info/unicode/category/index.htm

来源:https://blog.csdn.net/m0_48742971/article/details/123117893

标签:python,文本,符号
0
投稿

猜你喜欢

  • ASP正则表达式验证域名是否合法

    2010-01-02 20:44:00
  • python微信跳一跳系列之棋子定位颜色识别

    2023-01-16 04:52:49
  • 用ASP设计购物车

    2008-04-17 13:52:00
  • python解析html提取数据,并生成word文档实例解析

    2023-10-19 13:50:38
  • 利用python为运维人员写一个监控脚本

    2021-01-19 16:12:37
  • python字典key不能是可以是啥类型

    2022-12-28 20:54:04
  • 对python中array.sum(axis=?)的用法介绍

    2021-10-27 20:37:04
  • MySQL数据库优化经验详谈

    2009-12-15 10:34:00
  • python 限制函数调用次数的实例讲解

    2023-11-11 00:34:23
  • Python 中的参数传递、返回值、浅拷贝、深拷贝

    2022-10-12 12:59:16
  • ORACLE8的分区管理

    2023-07-13 14:42:43
  • 浅谈Selenium 控制浏览器的常用方法

    2022-03-30 04:40:33
  • 利用xslt对xml进行缩进格式化处理

    2008-09-04 10:34:00
  • django重新生成数据库中的某张表方法

    2024-01-23 01:14:45
  • 在ASP.NET 2.0中操作数据之二十七:创建自定义排序用户界面

    2023-06-25 21:01:05
  • 也谈access数据库的防下载保护

    2007-08-28 13:01:00
  • js+html5实现手机九宫格密码解锁功能

    2024-05-09 15:02:36
  • asp.net微信开发(永久素材管理)

    2023-07-21 13:02:45
  • python统计RGB图片某像素的个数案例

    2021-09-30 11:25:56
  • SQL Server 2022 AlwaysOn新特性之包含可用性组详解

    2024-01-26 07:51:49
  • asp之家 网络编程 m.aspxhome.com