paddle 标注_一看就会,手把手教你编程,批量文章标注拼音(附源码)
文/IT可达鸭
图/IT可达鸭、网络
前言
是不是学了Python之后,苦于没有项目练手?是不是看了很多关于编程视频,等到自己动手时,却怎么也做不出一个项目?
工作在一线的老程序员告诉你,别慌,让我手把手教你做项目。
本文将从以下几点入手,告诉大家做一个项目的流程:
- 项目背景,使用场景,就是需求分析;
- 对接Python包,技术难点突破;
- 代码架构梳理,画流程图;
- 分模块编写代码;
- 运行代码得到结果。
背景&使用场景
学前教育是一个非常热门的话题,很多家长不惜花重金,也要让自己的孩子赢在起跑线上。
其实,除了花钱给小孩报补习班,作为家长的我们也要花时间陪孩子学习。
身边很多朋友都有了小孩,大部分朋友的小孩都还在读幼儿园。这个年龄的小朋友应该还在识字学拼音的阶段,作为程序员老爹该怎么陪小朋友学习呢?
这里提出一个需求:如何快速地给一千篇童话故事标注拼音,并标注出现在童话故事中的所有多音字。
介绍python第三库
python提供了汉字转拼音的库,pypinpin
主要特性:
- 根据词组智能匹配最正确的拼音(需要对文本进行分词后,才能进行标注拼音);
- 支持多音字;
- 简单的繁体支持标注拼音;
- 支持多种不同注音风格(包括拼音、注音符号)
pypinyin有非常多的操作,在本项目中,只介绍pypinyin的五个基本操作:
1 普通模式,输出正确的拼音。
2 多音字模式,在标注拼音时,会把这个字的所有读音都标注出来。
3 只输出拼音,不标注音调。(如果可以,后续可以开发一个标注音调试卷的软件。)
4 发现拼音有错误怎么办? 这里提供了自定义拼音字典,来调整词语的拼音。
5 采用数字的形式来标注拼音的音调。
代码架构介绍
在学校学习编程的时候,每次实验课之前都要画流程图。它是项目开始前的设计图,如果没有它,开发的过程的就容易出现问题。但是,是不是一定要画成像教科书那要的流程图?我觉得不一定。
标准式的流程图
在实际开发中,需求不断在变化,开发周期一再压缩。如果一直拘泥于标准式、教科书式的流程图,那样你的开发效率必然会下降。所以,小编的原则就是,看懂就行。随手拿张纸来画,整理一下开发的思路,只要跟我对接的同事看得懂,那就很不错。如果改需求怎么办?那我就再用手工重新画一个,效率非常高。
当然了,在学习的时候,标准的流程图还是认真学习。
来,直接上项目总体流程图!
设计图做好后,就把它“翻译”成代码骨架。这里使用惯用的代码架构,“类”的写法。
只要写函数名,函数体用pass代替。
就这样,可以说,整个项目完成了30%~40%了,后面就是专注每个功能点进行单独开发。
正式接入项目(批量文章标注拼音)
分模块实现,每个模块的讲解
导入相应的python包,编写程序的静态配置信息。
类的初始化函数,也就是生成对象
对一个文本的内容,进行单词切分,再对每个单词进行标注拼音。
这里考虑到有些特殊符号无法标注拼音,所以默认标注拼音为空格,方便后续的格式化输出。
标注好拼音的单词,继续拆分成单字,输出单字列表和对应的拼音。
多音字判断,很多字都存在多个读音。为了更好标注多音字,这里只标注在同一篇文章出现的多音字(一篇文章,同一个字,两个以上的读音)。
格式化输出处理,这里使用了制表符“”,就是类似一个表格,把文本和拼音进行对齐。但是没有显示表格线,在实际项目的输出排版经常会用到。
整理上述步骤,设计单个文本标注拼音的函数。从文本读取,到拼音标注,再到输出文本。
递归访问文件,逐个文件进行处理。这块是个难点,可以通过一个例子来学习递归,“汉诺塔”递归函数。如果你理解“汉诺塔”递归函数,下面这个递归访问文件的函数应该也很好理解。或者,可以使用单步调试,来理解这个递归函数。
主流程,做一些参数校验。例如,指定文件夹是否存在,参数是否正确等等。
运行结果
编写main函数,实例化对象进行调用。
左边是没有标注的文本,右边是已经标注拼音的文本。
到这里,程序已经全部做完。
结语
这个项目还存在一个优化的地方,就是输出格式。本文介绍的代码,是修改了原文本的格式排版,标注拼音后重新排版输出。
但是,实际开发,还需要适配多种排版。一种就是标注拼音后,按原来文本的排版格式输出,在文字上方标注了拼音。还有其他不同的排版,就交给读者去研究了,另外在分享的源码中,我也把这块独立做出来了。大家根据自己的想法开发后,可以跟小编的代码比对一下。
学习python,不需要一杯奶茶钱,只需要你点个关注。如果觉得小编的文章对你有帮助,记得点个赞,顺便帮我分享出去。如果想获取源码,可以关注后,私信:python拼音,我把源码发给你。最后,感谢大家的阅读,祝大家生活愉快。
本文由 IT可达鸭 原创,欢迎关注,带你一起长知识!
paddle 标注_一看就会,手把手教你编程,批量文章标注拼音(附源码)相关推荐
- 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...
- 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)
知乎小白第一次写专栏,还请多指教. 先放成果. GitHub源码: lrioxh/HAR-applet-of-Wechatgithub.com b站演示视频: 居然不需要服务器?!如何制作一个简单的 ...
- echarts asp mysql 源码_如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)...
ECharts地图主要用于地理区域数据的可视化,展示不同区域的数据分布信息.ECharts官网提供了中国地图.世界地图等地图数据下载,通过js引入或异步加载json文件的形式调用地图. 本文将结合实例 ...
- c++贪吃蛇_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码
在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最简单的方法实现,晚上大约两个小时写了出来 ...
- 手把手教你开发enc424j600+Lwip以太网-送全部源码
每个单片机爱好者以及嵌入式软件开发人员,都希望能够将设计的产品连入网络,在众多的网络通讯方式中,以太网是最经典,跨度最广的一种方式,它具备带宽大[100Mbps~1000Mbps],延时小[局域网达到 ...
- 服务器端配置正方教务系统,手把手带你打造一个教务系统客户端(附源码)
本篇博客主要和大家分享编写一个学校教务系统的客户端版本,主要是关于登录以及数据获取方面,结尾还会附上本人以前编写的客户端源代码,有兴趣的可以自行下载玩耍~ 阅读本文大概需要5分钟. 前言 好久没有更新 ...
- pythonipo模型_【python量化】Fama-French三因子回归A股实证(附源码)
01 三因子回归模型 Fama-French三因子回归是量化中最经典的模型之一,最早提出是在论文<Common risk factors in the returns on stocks and ...
- notion函数_高效工作必备,手把手教你玩转 Notion 模板(附下载)
Notion 是一个笔记集大成者,堪称「来自未来的笔记软件」.它可以让你的笔记更加丰富多彩,图文.视频.音频并茂,同时还可以搭建知识库.做项目管理.做团队协作.做个人博客等等. 在上篇文章,A 君对 ...
- c语言写贪吃蛇什么水平_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码...
#史上最详细的C语言贪吃蛇教程 #前言 在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最 ...
- 地区json文件_【小例子】使用jQuery实现省市区三级联动显示,附源码json文件
开发工具-intellij IDEA 需求 1.实现对json文件的读取. 2.可以在省级选择所有省名和直辖市名 3.选择一级省名后自动刷新市名 4.选择二级市名后自动刷新区名 逻辑分析 第一步:读取 ...
最新文章
- python websocket 客户端_aiohttp Websocket客户端和HTTP
- java控制器删除数据_javaWeb删除一条及多条数据
- vsftp认证之pam_mysql
- 数据结构学习笔记(七):哈希表(Hash Table)
- 非常详细的transformer笔记,包括XLNet, MT-DNN, ERNIE, ERNIE2, RoBERTa
- ICCV 2021 | 通过显式寻找物体的extremity区域加快DETR的收敛
- linux sftp创建多用户,linux下SFTP多用户创建
- 两个文件比较之comm命令
- 在线工具-程序员的工具箱-在线Cron表达式生成器
- 项目实施流程和规范模板(测试方向)
- HTML资产负债表和收入支出表(可动态更新)
- 异常:Handler sending message to a Handler on a dead thread
- bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles
- 计算机视觉作业(三)Scene Recognition with Bag of Words
- 此nbsp;夜nbsp;无nbsp;眠
- win7下搭载ubuntu双系统,独立引导
- 电脑桌面文件不见了怎么恢复?
- 微信公众平台服务器的官方示例代码,微信公众平台API接口(示例代码)
- TPS、QPS和系统吞吐量的区别和理解
- iphon44s图片的缩放
热门文章
- 联想服务器控制口登录地址_服务器常见远程管理网口及登录方式
- 出现连接路由器的电脑不能上网,而手机可以上网的问题的一种解决方法
- 【技术栈——00061】搭建关于python项目docker镜像的Dockerfile文件示例(自己的)
- 源代码可以申请专利和版权吗?
- 请教:关于爬取歌词的一点疑惑
- python控制excel选择区域_python针对excel的操作技巧
- 太阳能基站光照跟随追光逐日PLC控制系统
- edgy trees_将Ubuntu从Edgy升级到Feisty(6.10至7.04)
- 全国计算机软考中级哪个科目最简单,软考中级哪个科目比较容易考?
- 如何连接苹果电脑打印服务器