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


猜你喜欢
- 一、Cookie原理HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制Cookie是http消息头中的一种属性,
- Git是什么?svn是什么?Git svn 统称版本控制器在开发中经常是两个或多个人同时开发一个控制器为了不产生代码冲突法发明了版本控制器最
- Windows Server 2003系统是现在很流行的服务器操作系统,许多网站都用它来做。但是如何保证服务器的相对安全,这个只要进行一些简
- asp按关键字查询XML的问题 '-------------------------------------------------
- match()函数的使用。以及从文本中提取数据的方法。在学习re模块的相关函数前应了解正则表达式的特殊字符准备一个要爬取的文本文档:直接从某
- CentOS6.9安装Mysql5.7,供大家参考,具体内容如下一、上传安装包二、建立用户以及mysql的目录1、建立一个mysql的组输入
- 二维离散傅里叶变换(DFT)对于二维图像处理,通常使用 x , y x, yx,y 表示离散的空间域坐标变量,用 u , v u,vu,v
- 关于argmax、argmin函数的使用1、在matlab的现有函数中,并没有argmax,argmin函数可以直接调用,要根据这两个函数的
- #coding:utf-8from wsgiref.simple_server import make_serverdef RunServe
- 继上篇Vue 滚动触底 mixins,将对于文档滚动触底的逻辑迁移到某个dom上,将会用到 Vue.directive 来实现代码逻辑复用。
- 01 示例函数1.1 代码及结果import matplotlib.pyplot as pltimport matplotlib.
- 前段时间用C语言做了个字符版的推箱子,着实是比较简陋。正好最近用到了Python,然后想着用Python做一个图形界面的推箱子。这回可没有C
- 我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。比如我们要下载山东大学新闻网的一个页面,该网页如下:实
- Git 远程仓库Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码
- $ cat checkserver.py#!/usr/bin/python# -*- coding: utf-8 -*- impo
- 本文实例讲述了Zend Framework生成验证码并实现验证码验证功能的方法。分享给大家供大家参考,具体如下:今天讲述如何在留言本中实现验
- 本文实例讲述了Django基于ORM操作数据库的方法。分享给大家供大家参考,具体如下:1、配置数据库vim settings #HelloW
- 微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的:详情参考官方文档:navigator。示例代
- 一,json.load()和json.dump只要用于读写json数据1json.load()从文件中读取json字符串with open(
- 单张人脸关键点检测定义可视化图像函数导入三维人脸关键点检测模型导入可视化函数和可视化样式读取图像将图像模型输入,获取预测结果BGR转RGB将