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数值。

到此这篇关于python 全角半角互换的实现示例的文章就介绍到这了,更多相关python 全角半角互换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现全角半角字符互转的方法

    前言 相信对于每一个编程人员来说,在文本处理的时候,经常会遇到全角半角不一致的问题.于是需要程序能够快速的在两者之间互转.由于全角半角本身存在着映射关系,所以处理起来并不复杂. 具体规则为: 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E) 空格比较特殊,全角为 12288(0x3000),半角为 32(0x20) 而且除空格外,全角/半角按unicode编码排序在顺序上

  • Python实现全角半角转换的方法

    本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值.如下所示: 一.全角半角转换概述: 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E) 空格比较特殊,全角为 12288(0x3000),半角为 32 (0x20) 而且除空格外,全角/半角按unicode编码排序在顺序上是对应的 所以可以直接通过用+-法来处理非空格

  • python3实现全角和半角字符转换的方法示例

    前言 本文主要给大家介绍了关于python3中全角和半角字符转换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.背景介绍 解决什么问题:快速方便的对文本进行全角半角自动转换 适用什么场景:学生答题数据中全角字符替换为半角字符 二.全角半角原理 全角即:Double Byte Character,简称DBC 半角即:Single Byte Character,简称SBC 在 windows 中,中文和全角字符都占两个字节,并且使用了 ascii chart 2 (

  • python 全角半角互换的实现示例

    在自然语言处理过程中,全角.半角的的不一致会导致信息抽取不一致,因此需要统一. 有规律(不含空格): 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E) 特例: 空格比较特殊,全角为 12288(0x3000),半角为 32(0x20) 除空格外,全角/半角按unicode编码排序在顺序上是对应的(半角 + 0x7e= 全角),所以可以直接通过用+-法来处理非空格数据,对空格

  • Python全角与半角之间相互转换的方法总结

    目录 1.应用领域: 2.全角半角转换概述 3.请注意: 4.应用到的库函数 5.全角转半角: 6.半角转成全角: 附:如何通过python转换全角字符串为半角字符串实例 说在后面: 1.应用领域: 全角和半角的转换通常用在自然语言处理过程中,由于全角和半角的不一致会导致信息抽取不一致,在使用语料训练语言模型会导致模型的效果不准确,所以需要统一. 2.全角半角转换概述 全角字符unicode编码范围从65281~65374 (对应的十六进制范围是: 0xFF01 ~ 0xFF5E) 半角字符un

  • java中字符进行全角半角转换示例代码

    前言 本文将给大家展示一下如何将char进行半角与全角转换,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 术语 全角 SBC case Sexagesimal to Binary Converter 60进制转为2进制 半角 DBC case Decimal to Binary Converter 10进制转为2进制 工具类 public class AsciiUtil { public static final char SBC_SPACE = 12288; // 全角空格

  • javascript实现全角半角检测的方法

    本文实例讲述了javascript实现全角半角检测的方法.分享给大家供大家参考.具体如下: //全角半角校验 function issbccase(strTmp) { for (var i=0; i<strTmp.length; i++) { if (strTmp.charCodeAt(i) > 128){ return true; break; } } return false; } 希望本文所述对大家的javascript程序设计有所帮助.

  • asp(javascript)全角半角转换代码 dbc2sbc

    asp全角半角转换函数 flag=-1时进行半角转全角 flag=0时进行半角全角互转 flag=1时进行全角转半角 复制代码 代码如下: <% Function DBC2SBC(Str, flag) Dim i, sStr If Len(Str)<= 0 Then Exit Function DBC2SBC = "" For i = 1 To Len(Str) sStr = Asc(Mid(Str, i, 1)) Select Case flag Case -1 If s

  • java 全角半角字符转换如何实现

    复制代码 代码如下: package com.whatycms.common.util; import org.apache.commons.lang.StringUtils; /** * <PRE> * 提供对字符串的全角->半角,半角->全角转换 * </PRE> */ public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static final char DBC_CHAR_START

  • c#转换全角半角方法示例

    C#全角转换成半角 新建一个项目quanbanjiao,在此项目下新建一个类Class1 复制代码 代码如下: using System;using System.Web;using System.Text; namespace quanbanjiao{    public class Class1    {        /**/        /// <summary>        /// 判断字符是否英文半角字符或标点        /// </summary>      

  • java 全角半角字符转换的方法实例

    如果搞明白了Java中全角字符和半角字符之间的关系那他们之间的转换根本就不是个事. 可以通过下面的程序看看Java中所有字符以及对应编码的值 复制代码 代码如下: public static void main(String[] args) {        for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {            System.out.println(i + "    " + (c

随机推荐