Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符

浏览: 4351

在文本清洗的过程,特殊符号的不规范是比较麻烦的事情,所以需要把文本中的特殊符号按照统一的标准处理。以下代码的作用就是将中文的特殊符号统一转成英文的,以及将全角符号转换成半角符号。

  • 参考代码
# -*- coding: GBK -*-
import re

def strQ2B(ustring):
"""中文特殊符号转英文特殊符号"""
#中文特殊符号批量识别

pattern = re.compile('[,。:“”【】《》?;、()‘’『』「」﹃﹄〔〕—·]')

#re.compile: 编译一个正则表达式模式,返回一个模式(匹配模式)对象。
#[...]用于定义待转换的中文特殊符号字符集

fps = re.findall(pattern, ustring)

#re.findall: 搜索string,以列表形式返回全部能匹配的子串。

#对有中文特殊符号的文本进行符号替换

if len(fps) > 0:
ustring = ustring.replace(',', ',')
ustring = ustring.replace('。', '.')
ustring = ustring.replace(':', ':')
ustring = ustring.replace('“', '"')
ustring = ustring.replace('”', '"')
ustring = ustring.replace('【', '[')
ustring = ustring.replace('】', ']')
ustring = ustring.replace('《', '<')
ustring = ustring.replace('》', '>')
ustring = ustring.replace('?', '?')
ustring = ustring.replace(';', ':')
ustring = ustring.replace('、', ',')
ustring = ustring.replace('(', '(')
ustring = ustring.replace(')', ')')
ustring = ustring.replace('‘', "'")
ustring = ustring.replace('’', "'")
ustring = ustring.replace('’', "'")
ustring = ustring.replace('『', "[")
ustring = ustring.replace('』', "]")
ustring = ustring.replace('「', "[")
ustring = ustring.replace('」', "]")
ustring = ustring.replace('﹃', "[")
ustring = ustring.replace('﹄', "]")
ustring = ustring.replace('〔', "{")
ustring = ustring.replace('〕', "}")
ustring = ustring.replace('—', "-")
ustring = ustring.replace('·', ".")

"""全角转半角"""
#转换说明:
#全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)
#半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)
#空格比较特殊,全角为 12288(0x3000),半角为 32(0x20)
#除空格外,全角/半角按unicode编码排序在顺序上是对应的(半角 + 0x7e= 全角),所以可以直接通过用+-法来处理非空格数据,对空格单独处理。

rstring = ""
for uchar in ustring:
inside_code = ord(uchar)
if inside_code == 12288: #全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化
inside_code -= 65248
rstring += chr(inside_code)
return rstring
  • 测试代码
if __name__ == "__main__":
str = '这是一个,【个人】deboke'
str_q2b = strQ2B(str)
print(str)
print(str_q2b)
  • 测试结果

image.png

  • 参考链接:
  1. https://www.cnblogs.com/kaituorensheng/p/3554571.html?utm_source=tuicool&utm_medium=referral
  2. https://blog.csdn.net/qq_21808961/article/details/78706499
推荐 2
本文由 林同学 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册