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

目录
  • 前言
  • 1. 问题描述
  • 2. 相关知识
  • 3. 解决方案
  • 总结

前言

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

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

总结

到此这篇关于数据清洗之如何用一行Python代码去掉文本中的各种符号的文章就介绍到这了,更多相关Python去掉文本各种符号内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python文本处理的方案(结巴分词并去除符号)

    看代码吧~ import re import jieba.analyse import codecs import pandas as pd def simplification_text(xianbingshi): """提取文本""" xianbingshi_simplification = [] with codecs.open(xianbingshi,'r','utf8') as f: for line in f : line = lin

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

    目录 前言 1. 问题描述 2. 相关知识 3. 解决方案 总结 前言 在搜集了很多文本语料之后,会开始漫长的数据清洗过程,通常要不断迭代. 1. 问题描述 有些文本数据中,会包含一些特殊符号. 猜想可能是从某些富文本编辑器中直接粘贴到了网页. 如果要清除这些特殊符号,就需要专门的工具. 2. 相关知识 Unicode标准把符号分为四大类,分别是: 缩写 详情 [Sc] Symbol, Currency [Sk] Symbol, Modifier [Sm] Symbol, Math [So] S

  • 教你如何用一行Python代码实现GUI图形界面

    目录 1.选择文件夹 2.选择文件 3.选择日期 4.输入文本 5.弹窗无按钮 6.弹窗无标题 7.弹窗只有OK按钮 8.弹窗只有Error按钮(红色) 9.显示通知窗口 10.弹窗选择 11.自定义弹窗 12.实战 GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观. 一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率. 比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的. 所以开发一个图形化的小窗口,就变得很有必要.

  • 一行Python代码制作动态二维码的实现

    在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码.艺术二维码(黑白/彩色)和动态GIF二维码. GitHub网站参加:https://github.com/sylnsfar/qrcode 用法比较简单,直接通过pip安装即可. pip3 install myqr 安装过程如下所示: 安装完成后,就可以基于命令指令生成想要的二维码了,myqr模块参数说明如下: 主要参数翻译如下: -v :定义二维码的大小,范围为 1 ~ 40,默认大小取决于输入的

  • 教你使用一行Python代码玩遍童年的小游戏

    写在前面 贪吃蛇,吃豆人,迷宫,井字游戏......这些小游戏我相信大家小的时候肯定玩过,或许在某个时段还沉迷过. 随着年龄的增长,这些小游戏离我们越来越远,但是我相信大家的童心还是一直在的 今天就分享一个真正可以玩耍的GitHub项目 --- free-python-games 安装与使用 python大家都懂的,安装第三方库非常简单 pip install freegames Python 由于该项目中的所有游戏均是基于Python内置模块Turtle制作,所以没有太多依赖,安装不会有困难

  • 50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)

    目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection)应用非常广泛,比如自动驾驶.视频监控.工业质检.医疗诊断等场景. 目标检测的根本任务就是将图片或者视频中感兴趣的目标提取出来,目标的识别可以基于颜色.纹理.形状.其中颜色属性运用十分广泛,也比较容易实现.下面就向大家分享一个我做的小实验---通过OpenCV的Python接口来实现从视频中进行颜色识别和跟踪. 下面就是我们完整的代码实现(已调试运行): i

  • python统计一个文本中重复行数的方法

    本文实例讲述了python统计一个文本中重复行数的方法.分享给大家供大家参考.具体实现方法如下: 比如有下面一个文件 2 3 1 2 我们期望得到 2,2 3,1 1,1 解决问题的思路: 出现的文本作为key, 出现的数目作为value,然后按照value排除后输出 最好按照value从大到小输出出来,可以参照: 复制代码 代码如下: in recent Python 2.7, we have new OrderedDict type, which remembers the order in

  • Python 删除整个文本中的空格,并实现按行显示

    希望以后每天写一篇博客,总结一下每天用到的基本功能,不然项目做完也就做完了,给自己留下的资料太少了. 今天需要造大量的姓名和家庭住址的数据,因此根据读取文件中现有的lastname.firstname以及省.市.道路等随机生成大量的模拟姓名和住址.其中用python进行了简单的文本处理,去掉文本中的空格,数字或者没用的字符等. example 1: 从ifn文件中读取数据,根据空格进行逐个读取,并进行换行显示. #encoding = utf-8# ifn = r"firstname.txt&q

  • python 去除txt文本中的空格、数字、特定字母等方法

    使用场景:需要去除txt文本中的空格.数字.特定字母等. 需要修改的txt文本叫做:train.txt 修改之后保存成:train_output.txt # ecoding=utf-8 ifn = r"train.txt" ofn = r"train_output.txt" infile = open(ifn,'rb') outfile = open(ofn,'wb') for eachline in infile.readlines(): #去掉文本行里面的空格.

  • 教你用一行Python代码实现并行任务(附代码)

    Python在程序并行化方面多少有些声名狼藉.撇开技术上的问题,例如线程的实现和GIL,我觉得错误的教学指导才是主要问题.常见的经典Python多线程.多进程教程多显得偏"重".而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容. 传统的例子 简单搜索下"Python多线程教程",不难发现几乎所有的教程都给出涉及类和队列的例子: #Example.py ''' Standard Producer/Consumer Threading Pattern ''' imp

  • 使用Python代码实现Linux中的ls遍历目录命令的实例代码

    一.写在前面 前几天在微信上看到这样一篇文章,链接为:https://www.jb51.net/it/692145.html,在这篇文章中,有这样一段话,吸引了我的注意: 在 Linux 中 ls 是一个使用频率非常高的命令了,可选的参数也有很多, 算是一条不得不掌握的命令.Python 作为一门简单易学的语言,被很多人认为是不需要认真学的,或者只是随便调个库就行了,那可就真是小瞧 Python 了.那这次我就要试着用 Python 来实现一下 Linux 中的 ls 命令, 小小地证明下 Py

随机推荐