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

41次阅读

共计 1640 个字符,预计需要花费 5 分钟才能阅读完成。

  在日常的中文 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
  本次分享到此结束,感谢大家阅读~
注意:本人现已开通微信公众号:Python 爬虫与算法(微信号为:easy_web_scrape),欢迎大家关注哦~~

正文完
 0