python 名字转拼音_一看就会,手把手教你编程,批量文章标注拼音(附源码)...

文/IT可达鸭

图/IT可达鸭、网络

前言

是不是学了Python之后,苦于没有项目练手?是不是看了很多关于编程视频,等到自己动手时,却怎么也做不出一个项目?

c4a47f128a01f7839c9cf81960ce4456.png

工作在一线的老程序员告诉你,别慌,让我手把手教你做项目。

本文将从以下几点入手,告诉大家做一个项目的流程:

  1. 项目背景,使用场景,就是需求分析;
  2. 对接Python包,技术难点突破;
  3. 代码架构梳理,画流程图;
  4. 分模块编写代码;
  5. 运行代码得到结果。

背景&使用场景

学前教育是一个非常热门的话题,很多家长不惜花重金,也要让自己的孩子赢在起跑线上。

其实,除了花钱给小孩报补习班,作为家长的我们也要花时间陪孩子学习。

身边很多朋友都有了小孩,大部分朋友的小孩都还在读幼儿园。这个年龄的小朋友应该还在识字学拼音的阶段,作为程序员老爹该怎么陪小朋友学习呢?

dea711398865f533ae80c4d50feef026.png

这里提出一个需求:如何快速地给一千篇童话故事标注拼音,并标注出现在童话故事中的所有多音字。

介绍python第三库

python提供了汉字转拼音的库,pypinpin

主要特性:

  1. 根据词组智能匹配最正确的拼音(需要对文本进行分词后,才能进行标注拼音);
  2. 支持多音字;
  3. 简单的繁体支持标注拼音;
  4. 支持多种不同注音风格(包括拼音、注音符号)

pypinyin有非常多的操作,在本项目中,只介绍pypinyin的五个基本操作:

1 普通模式,输出正确的拼音。

f18aa95ce685e9d45d43a2b5151a2a73.png

2 多音字模式,在标注拼音时,会把这个字的所有读音都标注出来。

f6bbed30a2959036dc3771483da9fefe.png

3 只输出拼音,不标注音调。(如果可以,后续可以开发一个标注音调试卷的软件。)

1fa7bf628b688e82d0c1cbeca357d85c.png

4 发现拼音有错误怎么办? 这里提供了自定义拼音字典,来调整词语的拼音。

00f2b740a7a7e25805e12861e4675aed.png

5 采用数字的形式来标注拼音的音调。

dd9f832b9bb0a23e77966867bfb85389.png

代码架构介绍

在学校学习编程的时候,每次实验课之前都要画流程图。它是项目开始前的设计图,如果没有它,开发的过程的就容易出现问题。但是,是不是一定要画成像教科书那要的流程图?我觉得不一定。

8fe2914241803a78ed518e2d4a05e70e.png

标准式的流程图

在实际开发中,需求不断在变化,开发周期一再压缩。如果一直拘泥于标准式、教科书式的流程图,那样你的开发效率必然会下降。所以,小编的原则就是,看懂就行。随手拿张纸来画,整理一下开发的思路,只要跟我对接的同事看得懂,那就很不错。如果改需求怎么办?那我就再用手工重新画一个,效率非常高。

当然了,在学习的时候,标准的流程图还是认真学习。

来,直接上项目总体流程图!

83dd5b14876563a967897fe19b4df0b7.png

设计图做好后,就把它“翻译”成代码骨架。这里使用惯用的代码架构,“类”的写法。

只要写函数名,函数体用pass代替。

3f5aab67bdd2ca7d2a146323fe154300.png

就这样,可以说,整个项目完成了30%~40%了,后面就是专注每个功能点进行单独开发。

正式接入项目(批量文章标注拼音)

分模块实现,每个模块的讲解

导入相应的python包,编写程序的静态配置信息。

cd5c40ae4001987f2fcef3013c99ec59.png

类的初始化函数,也就是生成对象

1388ec60194245b611bfac3ff3ed6911.png

对一个文本的内容,进行单词切分,再对每个单词进行标注拼音。

这里考虑到有些特殊符号无法标注拼音,所以默认标注拼音为空格,方便后续的格式化输出。

标注好拼音的单词,继续拆分成单字,输出单字列表和对应的拼音。

a542532a507bae8b82eede594dbdbe58.png

多音字判断,很多字都存在多个读音。为了更好标注多音字,这里只标注在同一篇文章出现的多音字(一篇文章,同一个字,两个以上的读音)。

4500079436cf9bd27069dc970a0e11b6.png

格式化输出处理,这里使用了制表符“”,就是类似一个表格,把文本和拼音进行对齐。但是没有显示表格线,在实际项目的输出排版经常会用到。

be8ac5556c9c66c57b81792149cdf8cd.png

整理上述步骤,设计单个文本标注拼音的函数。从文本读取,到拼音标注,再到输出文本。

59b275a7f2ce0b18979f210ced66bf40.png

递归访问文件,逐个文件进行处理。这块是个难点,可以通过一个例子来学习递归,“汉诺塔”递归函数。如果你理解“汉诺塔”递归函数,下面这个递归访问文件的函数应该也很好理解。或者,可以使用单步调试,来理解这个递归函数。

9e8c3ab1d3deacd0854698061055252c.png

主流程,做一些参数校验。例如,指定文件夹是否存在,参数是否正确等等。

18546c0e4cb21f7ea5d2ceb3fcf50c39.png

运行结果

编写main函数,实例化对象进行调用。

9faab04a92abdf28196ebf97314de825.png

左边是没有标注的文本,右边是已经标注拼音的文本。

bd1a9c520e8a7aa5a12cd6db088acbeb.png

到这里,程序已经全部做完。

结语

这个项目还存在一个优化的地方,就是输出格式。本文介绍的代码,是修改了原文本的格式排版,标注拼音后重新排版输出。

但是,实际开发,还需要适配多种排版。一种就是标注拼音后,按原来文本的排版格式输出,在文字上方标注了拼音。还有其他不同的排版,就交给读者去研究了,另外在分享的源码中,我也把这块独立做出来了。大家根据自己的想法开发后,可以跟小编的代码比对一下。

学习python,不需要一杯奶茶钱,只需要你点个关注。如果觉得小编的文章对你有帮助,记得点个赞,顺便帮我分享出去。如果想获取源码,可以关注后,私信:python拼音,我把源码发给你。最后,感谢大家的阅读,祝大家生活愉快。

本文由 IT可达鸭 原创,欢迎关注,带你一起长知识!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值