记录处理自然语言数据集中全型字符的问题
缘起
进公司之后的第一个任务是处理一个大型自然语言数据集,处理成可用的格式,遇到了一些问题,在这里记录下来并给出解决方案。
全型字符unicode字符范围
全型字符真的是自然语言处理中很讨厌的东西,删除特殊字符的时候一不小心就会
- 除全型字母外的全型字符范围: ff00-ff20, ff3b-ff41, ff60-ffef, ff3b-ff41;
- 全型字母范围: ff21-ff3a, ff41-ff5a;
全型字符
全型字符真的是自然语言处理中很讨厌的东西,删除特殊字符的时候一不小心就会删掉,会遗漏很多重要信息。这里记录一下对应关系和unicode值。以及python中如何进行转换。
def mapQuanxingABC(uchar):
"""将全型字母映射为普通字母"""
return chr(ord(uchar)-65248)
全型字母 | 全型字母的unicode | 普通字母 | 普通字母的unicode |
---|---|---|---|
A | ff21 | A | 0041 |
B | ff22 | B | 0042 |
C | ff23 | C | 0043 |
D | ff24 | D | 0044 |
E | ff25 | E | 0045 |
F | ff26 | F | 0046 |
G | ff27 | G | 0047 |
H | ff28 | H | 0048 |
I | ff29 | I | 0049 |
J | ff2a | J | 004a |
K | ff2b | K | 004b |
L | ff2c | L | 004c |
M | ff2d | M | 004d |
N | ff2e | N | 004e |
O | ff2f | O | 004f |
P | ff30 | P | 0050 |
Q | ff31 | Q | 0051 |
R | ff32 | R | 0052 |
S | ff33 | S | 0053 |
T | ff34 | T | 0054 |
U | ff35 | U | 0055 |
V | ff36 | V | 0056 |
W | ff37 | W | 0057 |
X | ff38 | X | 0058 |
Y | ff39 | Y | 0059 |
Z | ff3a | Z | 005a |
a | ff41 | a | 0061 |
b | ff42 | b | 0062 |
c | ff43 | c | 0063 |
d | ff44 | d | 0064 |
e | ff45 | e | 0065 |
f | ff46 | f | 0066 |
g | ff47 | g | 0067 |
h | ff48 | h | 0068 |
i | ff49 | i | 0069 |
j | ff4a | j | 006a |
k | ff4b | k | 006b |
l | ff4c | l | 006c |
m | ff4d | m | 006d |
n | ff4e | n | 006e |
o | ff4f | o | 006f |
p | ff50 | p | 0070 |
q | ff51 | q | 0071 |
r | ff52 | r | 0072 |
s | ff53 | s | 0073 |
t | ff54 | t | 0074 |
u | ff55 | u | 0075 |
v | ff56 | v | 0076 |
w | ff57 | w | 0077 |
x | ff58 | x | 0078 |
y | ff59 | y | 0079 |
z | ff5a | z | 007a |
参考文章:https://blog.csdn.net/thomashtq/article/details/39081233