NLP入门(七)中文预处理之繁简体转换及获取拼音

在日常的中文NLP中,经常会涉及到中文的繁简体转换以及拼音的标注等问题,本文将介绍这两个方面的实现。

 

首先是中文的繁简体转换,不需要使用额外的Python模块,至需要以下两个Python代码文件即可:

langconv.py 地址:  https://raw.githubusercontent.com/skydark/nstools/master/zhtools/langconv.py

zh_wiki.py 地址: https://raw.githubusercontent.com/skydark/nstools/master/zhtools/zh_wiki.py

示例代码如下(将代码文件与langconv.py与zh_wiki.py放在同一目录下):

 

from langconv import *
# 转换繁体到简体
def cht_2_chs(line):
    line = Converter('zh-hans').convert(line)
    line.encode('utf-8')
    return line
line_cht= '''
台北市长柯文哲今在脸书开直播,先向网友报告自己3月16日至24日要出访美国东部4城市,接着他无预警宣布,
2月23日要先出访以色列,预计停留4至5天。虽他强调台北市、以色列已在资安方面有所交流,也可到当地城市交流、
参观产业创新等内容,但柯也说「也是去看看一个小国在这幺恶劣环境,howtosurvive,他的祕诀是什幺?」这番话,
也被解读,颇有更上层楼、直指总统大位的思维。
'''
line_cht = line_cht.replace('\n', '')
ret_chs = cht_2_chs(line_cht)
print(ret_chs)
# 转换简体到繁体
def chs_2_cht(sentence):
    sentence = Converter('zh-hant').convert(sentence)
    return sentence
line_chs = '忧郁的台湾乌龟'
line_cht = chs_2_cht(line_chs)
print(line_cht)

 

输出的结果如下:

 

台北市长柯文哲今在脸书开直播,先向网友报告自己3月16日至24日要出访美国东部4城市,接着他无预警宣布,2月23日要先出访以色列,预计停留4至5天。虽他强调台北市、以色列已在资安方面有所交流,也可到当地城市交流、参观产业创新等内容,但柯也说「也是去看看一个小国在这幺恶劣环境,howtosurvive,他的祕诀是什幺?」这番话,也被解读,颇有更上层楼、直指总统大位的思维。

 

接着是获取中文汉字的拼音,这方面的Python模块有xpinyin, pypinyin等。本文以xpinyin为例,展示如何获取汉字的拼音。示例代码如下:

 

from xpinyin import Pinyin
p = Pinyin()
# 默认分隔符为-
print(p.get_pinyin("上海"))
# 显示声调
print(p.get_pinyin("上海", tone_marks='marks'))
print(p.get_pinyin("上海", tone_marks='numbers'))
# 去掉分隔符
print(p.get_pinyin("上海", ''))
# 设为分隔符为空格
print(p.get_pinyin("上海", ' '))
# 获取拼音首字母
print(p.get_initial("上"))
print(p.get_initials("上海"))
print(p.get_initials("上海", ''))
print(p.get_initials("上海", ' '))

 

输出结果如下:

 

shang-hai
shàng-hǎi
shang4-hai3
shanghai
shang hai
S
S-H
SH
S H

 

本次分享到此结束,感谢大家阅读~

发表评论

电子邮件地址不会被公开。 必填项已用*标注