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

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

  示例代码如下(将代码文件与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), 欢迎大家关注哦~~

NLP入门(七)中文预处理之繁简体转换及获取拼音的更多相关文章

  1. 开源项目在线化 中文繁简体转换/敏感词/拼音/分词/汉字相似度/markdown 目录

    前言 以前在 github 上自己开源了一些项目.碍于技术与精力,大部分项目都是 java 实现的. 这对于非 java 开发者而言很不友好,对于不会编程的用户更加不友好. 为了让更多的人可以使用到这 ...

  2. Python中文繁简体转换工具

    Openccpy ___ _____ __ ___ ___ ___ _____ __ __ / __`\/\ '__`\ /'__`\/' _ `\ /'___\ /'___\/\ '__`\/\ \ ...

  3. java 中文繁简体转换工具 opencc4j

    创作缘由 对于中文的繁简体转换是一种很常见的需求. 但是很多工具类都是简单的做个映射.(使用map,集合,properties)等. 存在一个严重的问题:特殊词组 的转换可能存在问题. OpenCC ...

  4. NLP入门(五)用深度学习实现命名实体识别(NER)

    前言   在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...

  5. NLP入门(一)词袋模型及句子相似度

      本文作为笔者NLP入门系列文章第一篇,以后我们就要步入NLP时代.   本文将会介绍NLP中常见的词袋模型(Bag of Words)以及如何利用词袋模型来计算句子间的相似度(余弦相似度,cosi ...

  6. NLP入门(八)使用CRF++实现命名实体识别(NER)

    CRF与NER简介   CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...

  7. Python爬虫入门七之正则表达式

    在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...

  8. 转 Python爬虫入门七之正则表达式

    静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...

  9. 阿里天池 NLP 入门赛 TextCNN 方案代码详细注释和流程讲解

    thumbnail: https://image.zhangxiann.com/jung-ho-park-HbnqEhMBpPM-unsplash.jpg toc: true date: 2020/8 ...

随机推荐

  1. Inmon和Kimball数仓建模思想

    Inmon和Kimball是数据仓库领域伟大的开拓者,他们均多年从事数据仓库的研究,Inmon还被称为“数据仓库之父”.Inmon的<数据仓库>和Kimball的<数据仓库工具箱&g ...

  2. C# CSV 文件转换成DataTable

    { DataTable dt = new DataTable(); FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess ...

  3. [Codeforces Round #516][Codeforces 1063C/1064E. Dwarves, Hats and Extrasensory Abilities]

    题目链接:1063C - Dwarves, Hats and Extrasensory Abilities/1064E - Dwarves, Hats and Extrasensory Abiliti ...

  4. 删除 id 列表 存进数据库

    当图片写的传id的时候 用着方法存进数据库

  5. python处理参数的getopt的使用

    在写脚本程序的时候需要添加一些额外的参数来实现脚本的附加功能或者增强功能,通常的做法是同sys.argv[i]直接来获取参数的值,但是这个比较局限,要求参数的输入一定要按照顺序. fileName = ...

  6. Windows 查询端口占用

    1.找到端口的进程ID(PID)(例如:8080) Windows系统: netstat -ao | find " Windows以外的其他平台: lsof -i: 2.杀死你找到的进程ID ...

  7. mysqldump 导出中文乱码

    命令:mysqldump -uroot -p test > /data/test.sql 导出后的数据库打开是乱码,如下: 开始以为打开的方式不对,就用记事本打开后,用utf-8的编码格式另保存 ...

  8. nginx+letsencrypt搭建https站点

    1. 申请好自己的域名 dockerhub.xxx.com,并解析好IP. 2. 安装nginx(默认开通了http) ,修改 server_name dockerhub.xxxx.com; 启动. ...

  9. Heacher互助平台需求分析

    课程属性 作业课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 作业链接 https://edu.cnblogs.co ...

  10. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...