如何在Python中将所有日文平假名转换为片假名?
从平假名和片假名的表格来看,似乎可以把日文文本“标准化”为平假名或片假名。建立一个表格并实现一个字典或正则表达式的查找替换功能其实挺简单的。有没有人知道这个工作有没有人已经做过了?
3 个回答
0
这里有一种方法,不需要加载额外的包。常用的平假名在UTF-8中的范围是从3041到3096。而片假名的范围是从30a1到30f6。
所以可以这样做:
hira_start = int("3041", 16)
hira_end = int("3096", 16)
kata_start = int("30a1", 16)
hira_to_kata = dict()
for i in range(hira_start, hira_end+1):
hira_to_kata[chr(i)] = chr(i-hira_start+kata_start)
print(chr(i), chr(i-hira_start+kata_start))
1
你可以很快地用 str.translate 来实现你想做的事情。
不过,为什么要这样做可能不是很明显。
我所说的“标准化”在使用拉丁字母的语言中,通常包括把字母变成小写、整理空格、去掉重音符号等等,这样最后的结果就是 ASCII 字符。这样做的目的是为了比较用户输入的文本,特别是在模糊搜索、匹配或查找的场景中。因为即使是母语者,在书写这些语言时,重音符号等错误也是很常见的。
考虑到平假名在日语书写系统中的作用(词语通常有汉字的根和平假名的后缀),我实在想不出把平假名字符转换成片假名有什么用……请指教。
0
你为什么想这么做呢?片假名通常用来表示从其他语言借来的词,而平假名则用来表示日本本土的语言。如果把日文文本统一成一种形式,可能反而会影响阅读(至少对我来说,这样会更难,因为失去了上下文)。
不过,针对你的问题,这个似乎可以满足你的需求:JCONV