NLP入门(七)中文预处理之繁简体转换及获取拼音
NLP入门(七)中文预处理之繁简体转换及获取拼音](https://segmentfault.com/a/1190000018086549)
转自:[jclian91
在日常的中文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
本次分享到此结束,感谢大家阅读~
记录学习的点点滴滴