前言:
今天咱们对“拼音标注在线”大致比较看重,各位老铁们都需要了解一些“拼音标注在线”的相关知识。那么小编也在网络上搜集了一些有关“拼音标注在线””的相关知识,希望我们能喜欢,你们一起来了解一下吧!文/IT可达鸭
图/IT可达鸭、网络
前言
是不是学了Python之后,苦于没有项目练手?是不是看了很多关于编程视频,等到自己动手时,却怎么也做不出一个项目?
工作在一线的老程序员告诉你,别慌,让我手把手教你做项目。
本文将从以下几点入手,告诉大家做一个项目的流程:
项目背景,使用场景,就是需求分析;对接Python包,技术难点突破;代码架构梳理,画流程图;分模块编写代码;运行代码得到结果。
背景&使用场景
学前教育是一个非常热门的话题,很多家长不惜花重金,也要让自己的孩子赢在起跑线上。
其实,除了花钱给小孩报补习班,作为家长的我们也要花时间陪孩子学习。
身边很多朋友都有了小孩,大部分朋友的小孩都还在读幼儿园。这个年龄的小朋友应该还在识字学拼音的阶段,作为程序员老爹该怎么陪小朋友学习呢?
这里提出一个需求:如何快速地给一千篇童话故事标注拼音,并标注出现在童话故事中的所有多音字。
介绍python第三库
python提供了汉字转拼音的库,pypinpin
主要特性:
根据词组智能匹配最正确的拼音(需要对文本进行分词后,才能进行标注拼音);支持多音字;简单的繁体支持标注拼音;支持多种不同注音风格(包括拼音、注音符号)
pypinyin有非常多的操作,在本项目中,只介绍pypinyin的五个基本操作:
1 普通模式,输出正确的拼音。
2 多音字模式,在标注拼音时,会把这个字的所有读音都标注出来。
3 只输出拼音,不标注音调。(如果可以,后续可以开发一个标注音调试卷的软件。)
4 发现拼音有错误怎么办? 这里提供了自定义拼音字典,来调整词语的拼音。
5 采用数字的形式来标注拼音的音调。
代码架构介绍
在学校学习编程的时候,每次实验课之前都要画流程图。它是项目开始前的设计图,如果没有它,开发的过程的就容易出现问题。但是,是不是一定要画成像教科书那要的流程图?我觉得不一定。
在实际开发中,需求不断在变化,开发周期一再压缩。如果一直拘泥于标准式、教科书式的流程图,那样你的开发效率必然会下降。所以,小编的原则就是,看懂就行。随手拿张纸来画,整理一下开发的思路,只要跟我对接的同事看得懂,那就很不错。如果改需求怎么办?那我就再用手工重新画一个,效率非常高。
当然了,在学习的时候,标准的流程图还是认真学习。
来,直接上项目总体流程图!
设计图做好后,就把它“翻译”成代码骨架。这里使用惯用的代码架构,“类”的写法。
只要写函数名,函数体用pass代替。
就这样,可以说,整个项目完成了30%~40%了,后面就是专注每个功能点进行单独开发。
正式接入项目(批量文章标注拼音)
分模块实现,每个模块的讲解
导入相应的python包,编写程序的静态配置信息。
类的初始化函数,也就是生成对象
对一个文本的内容,进行单词切分,再对每个单词进行标注拼音。
这里考虑到有些特殊符号无法标注拼音,所以默认标注拼音为空格,方便后续的格式化输出。
标注好拼音的单词,继续拆分成单字,输出单字列表和对应的拼音。
多音字判断,很多字都存在多个读音。为了更好标注多音字,这里只标注在同一篇文章出现的多音字(一篇文章,同一个字,两个以上的读音)。
格式化输出处理,这里使用了制表符“\t”,就是类似一个表格,把文本和拼音进行对齐。但是没有显示表格线,在实际项目的输出排版经常会用到。
整理上述步骤,设计单个文本标注拼音的函数。从文本读取,到拼音标注,再到输出文本。
递归访问文件,逐个文件进行处理。这块是个难点,可以通过一个例子来学习递归,“汉诺塔”递归函数。如果你理解“汉诺塔”递归函数,下面这个递归访问文件的函数应该也很好理解。或者,可以使用单步调试,来理解这个递归函数。
主流程,做一些参数校验。例如,指定文件夹是否存在,参数是否正确等等。
运行结果
编写main函数,实例化对象进行调用。
左边是没有标注的文本,右边是已经标注拼音的文本。
到这里,程序已经全部做完。
结语
这个项目还存在一个优化的地方,就是输出格式。本文介绍的代码,是修改了原文本的格式排版,标注拼音后重新排版输出。
但是,实际开发,还需要适配多种排版。一种就是标注拼音后,按原来文本的排版格式输出,在文字上方标注了拼音。还有其他不同的排版,就交给读者去研究了,另外在分享的源码中,我也把这块独立做出来了。大家根据自己的想法开发后,可以跟小编的代码比对一下。
学习python,不需要一杯奶茶钱,只需要你点个关注。如果觉得小编的文章对你有帮助,记得点个赞,顺便帮我分享出去。如果想获取源码,可以关注后,私信:python拼音,我把源码发给你。最后,感谢大家的阅读,祝大家生活愉快。
本文由 IT可达鸭 原创,欢迎关注,带你一起长知识!
标签: #拼音标注在线