python 全角半角互换的实现示例
作者:王大呀呀 发布时间:2021-02-03 20:30:52
标签:python,全角,半角
在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致,因此需要统一。
有规律(不含空格):
全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)
半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)
特例:
空格比较特殊,全角为 12288(0x3000),半角为 32(0x20)
除空格外,全角/半角按unicode编码排序在顺序上是对应的(半角 + 0x7e= 全角),所以可以直接通过用+-法来处理非空格数据,对空格单独处理。
注:
1. 中文文字永远是全角,只有英文字母、数字键、符号键才有全角半角的概念,一个字母或数字占一个汉字的位置叫全角,占半个汉字的位置叫半角。
2. 引号在中英文、全半角情况下是不同的
示例
# 全角转半角
def strQ2B(ustring):
ss = []
for s in ustring:
rstring = ""
for uchar in s:
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)
ss.append(rstring)
return ''.join(ss)
# 半转全角
def strB2Q(ustring):
ss = []
for s in ustring:
rstring = ""
for uchar in s:
inside_code = ord(uchar)
if inside_code == 32:
inside_code = 12288
elif (inside_code >= 33 and inside_code <= 126):
inside_code += 65248
rstring += chr(inside_code)
ss.append(rstring)
return ''.join(ss)
if __name__ == '__main__':
b = strQ2B('王大AA')
print(b)
a = strB2Q("王大AB")
print(a)
库函数说明
chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
unichr()跟它一样,只不过返回的是Unicode字符。
ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值。
来源:https://juejin.cn/post/7080335663979036686
0
投稿
猜你喜欢
- 本文实例讲述了Python设计模式之工厂模式。分享给大家供大家参考,具体如下:工厂模式是一个在软件开发中用来创建对象的设计模式。工厂模式包涵
- 本文实例讲述了Python常见数据类型转换操作。分享给大家供大家参考,具体如下:类型转换主要针对几种存储工具:list、tuple、dict
- 一、前言很多时候,我们都有远程控制电脑的需求。比如正在下载某样东西,需要让电脑在下载完后关机。或者你需要监控一个程序的运行状况等。今天我们就
- 定义和用法strftime() 函数根据区域设置格式化本地时间/日期。语法strftime(format,timestamp)参数 描述 f
- 什么是 Goroutinegoroutine 是 Go 并行设计的核心。goroutine 说到底其实就是协程,它比线程更小,十几个 gor
- 缘起simple-todo最早是web.py一个中文教程的例子。后来Uliweb的作者limodou 认为这个教程很不错,于是有了Uliwe
- 开启debug模式在app.run()中传递参数,使用debug = True开启:app.run(debug=True)设置配置项,以配置
- js浮点数计算有时是不准确的,比如7*0.8 == 7*8/10的值为false,因为7*0.8=5.6000000000000005,乘出
- 本文实例讲述了Python使用add_subplot与subplot画子图操作。分享给大家供大家参考,具体如下:子图:就是在一张figure
- NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes
- 1 , javascript字符集:javascript采用的是Unicode字符集编码。为什么要采用这个编码呢?原因很简单,16位的Uni
- <html><head><title>过滤空格</title><SCRIPT LANG
- python2.7安装目录下没有Scripts文件夹。这种问题可能是你装的python安装包年代久远了,到官网下载最新的python2.7安
- 上节我们了解了图形验证码的识别,简单的图形验证码我们可以直接利用 Tesserocr 来识别,但是近几年又出现了一些新型验证码,如滑动验证码
- <?php// 使用Memache 作为进程锁 class lock_processlock{// key 的前缀protected
- 总的来讲,JavaSever PagesTM(JSP)和 微软的Active Sever Pages(ASP)在技术方面有许多相似之处。两者
- 在网页中放iframe,如果frameborder=0;就没有边框显示了;但动态创建时,在IE7中就不行了,从网上找到解决的办法,写出来记录
- 这段时间在用libev的python版本事件模型,总共只有一个py.so文件,没有.py文件查看源码查看接口,最开始用shell命令直接查看
- 第一种方法:在php.ini文件里改变display_errors和error_reporting的值,没有的直接加上; 第一处修改; di
- 简介序列化的目的是方便数据的传输和存储,在PHP中,序列化和反序列化一般用做缓存,比如session缓存,cookie等。反序列化中常见的魔