这个Python项目让古诗变得更易读,看完《长安三万里》惊艳了!

news2024/11/18 3:45:39

在这里插入图片描述

大家好,这里是程序员晚枫,最近在小红薯更新生活VLOG,被骂惨了!

周末和小明去看了一场电影:《长安三万里》。

看电影的过程中发生了一件尴尬的事情:很多诗词里的字我都不认识。

回家以后,我赶紧打开电脑,开发了一个给古诗注音的开源项目:pohan。实现的效果如下。👇

在这里插入图片描述

今天给大家分享一下,如何通过1行Python代码,给古诗标注拼音

1、先上代码

实现汉语转拼音效果的第三方库是:pohan,免费下载&安装命令如下:

pip install pohan

1行代码,实现汉语转拼音的效果。

# pip install pohan
import pohan
from pohan.pinyin.pinyin import Style

# 不带声调的
pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.NORMAL)
print(f'我是不带声调的结果:{pinyin_list}')

# 带声调的
pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.TONE)
print(f'我是带声调的结果:{pinyin_list}')


# 带数字声调的
pinyin_list = pohan.pinyin.han2pinyin("程序员晚枫", style=Style.TONE3)
print(f'我是带数字声调的结果:{pinyin_list}')

以上代码运行的结果,如下图所示:

2、参数说明

1行代码实现功能,可以填入的参数有以下几个(小白可以不填,都有默认值):

  • hans (unicode 字符串或字符串列表) – 汉字字符串( ‘程序员晚枫’ )或列表( [‘程序员’, ‘晚枫’] ). 可以使用自己喜爱的分词模块对字符串进行分词处理,
    只需将经过分词处理的字符串列表传进来就可以了。

  • style: 指定拼音风格,默认是 TONE 风格。 更多拼音风格详见 Style

  • errors: 指定如何处理没有拼音的字符。详见 处理不包含拼音的字符

  • default: 保留原始字符

  • ignore: 忽略该字符

  • replace: 替换为去掉 \u 的 unicode 编码字符串 (‘\u90aa’ => ‘90aa’)

  • callable 对象: 回调函数之类的可调用对象。

  • heteronym: 是否启用多音字

  • strict: 只获取声母或只获取韵母相关拼音风格的返回结果 是否严格遵照《汉语拼音方案》来处理声母和韵母, 详见 strict 参数的影响

  • v_to_u (bool): 无声调相关拼音风格下的结果是否使用 ü 代替原来的 v 当为 False 时结果中将使用 v 表示 ü

  • neutral_tone_with_five (bool): 声调使用数字表示的相关拼音风格下的结果是否 使用 5 标识轻声

以上参数中,最常使用的是style,使用方法,见上面的代码。


觉得本文有帮助或者使用中有疑问,请在评论区告诉我吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习深度学习——非NVIDIA显卡怎么做深度学习(坑点排查)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——数值稳定性和模型化参数(详细数学推导) 📚订阅专栏:机器…

systemverilog中fork..join, join_any, join_none的用法和解析

1、fork.. join, join_any以及join_none的用法进行总结 1.1、 fork..join fork..join: 必须等到statement1,statement2,statement3全部执行完之后,statement4才可以执行。fork…join内的所有语句都是并发执行(对于begin…end内…

浪涌保护器10/350us和8/20us是什么意思,两者有何区别?

在选择浪涌保护器的时候,浪涌保护器的防雷能力放电电流后面的单位一般是KA,KA后面还有个参数是10/350us或者8/20us,大家可能对这2个参数不太熟悉。 那么,浪涌保护器10/350us和8/20us是什么意思,两者有何区别呢&#x…

025 - max()函数

MAX() 函数: MAX 函数返回一列中的最大值。NULL 值不包括在计算中。 SQL MAX() 语法: SELECT MAX(column_name) FROM table_name; 注释:MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 -- 实际操作(查询salary的最大值&#x…

【十万个等保小知识】等保测评报告是在等保整改之后发吗?

等保2.0政策已经严格落地执行了一段时间,但大家对于等保2.0政策还存在很多疑问,例如等保测评报告是在等保整改之后发吗?今天我们小编就来为大家简单回答一下,仅供参考哦! 等保测评报告是在等保整改之后发吗&#xff1f…

uniapp echarts 点击失效

这个问题网上搜了一堆,有的让你降版本,有的让你改源码。。。都不太符合预期,目前我的方法可以用最新的echarts。 这个方法就是由npm安装转为CDN,当然你可能会质疑用CDN这样会不稳定,那如果CDN的地址是本地呢&#xff1…

【数据库】将excel数据导入mysql数据库

环境:Windows10 mysql8以上 将你要导入的excel表另存为txt格式 打开txt格式文件,删除表头行并另存为并更改编码方式(由于与数据库的编码不同,会导致导入报错) 通过命令行登录数据库 winr cmd进入 进入装mysql的目录位…

css中的bfc是什么?

什么bfc? BFC(Block Formatting Context)块级 格式化 上下文。 BFC就是页面上的一个隔离的独立盒子,容器里面的子元素和外面的元素不会相互影响。 为什么要bfc? bfc是我们去主动触发的,并不是自动就存在的,它是帮助我们解决cs…

Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例

day02 day02配置告警用户数超过50,发送告警邮件实施验证告警配置配置钉钉机器人告警创建钉钉机器人编写脚本并测试添加报警媒介类型为用户添加报警媒介创建触发器创建动作验证自动发现配置自动发现主动监控配置web2使用主动监控修改配置文件,只使用主动…

修改el-select或者el-input样式失效

下午改el-input和el-select这两个的样式真的烦,,,还不如写原生标签了。。 样式使用的是sass 我已经在样式器中挨着挨着去找了,把层级的类都写下来了 .select-wraper{//下拉框.el-select{.el-input .el-input__wrapper{backgrou…

复习之vsftp服务

一、vsftp服务简介 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过…

浅说React-Dnd的使用

前言(学习原因) 近期在工作中遇到一个新的需求:具体大概效果看下面.gif 当时看到这个需求经师兄提醒知道了React-Dnd,想到了表格 Table - Ant Design里有一个可拖拽表格的效果,照搬到了项目里发现不太能满足我们的需求,就去搜了一…

逆波兰表达式求值

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个…

语义检索系统【全】:基于Milvus+ERNIE+SimCSE+IBN实现学术文献语义检索系统完整版

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

PCB添加二维码

PCB添加二维码 1、PCB上添加二维码 在PCB上添加二维码,可以清楚的展示PCB板子的信息,包括:制板人员、时间以及这个板子所用的仪器。 2、如何在PCB上添加二维码(错误示例) 首先说一种错误的方法,试了很多…

RS232转Profinet网关rs232串门转网门接法

在工业自动化领域,如何将扫码枪与PLC连接一直是一个重要的问题。而今天,我们将通过一个案例来展示如何通过RS232转Profinet网关,将X-9300扫码枪接入到PLC1200工业以太网总线上。在这个过程中,我们将会用到捷米的RS232自由协议转Pr…

文件系统的基本认知笔记

1.什么是文件系统 常规认知:Linux下的根目录文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法,即在存储设备上组织文件的方法,这种所谓的方法就是文件…

Linux【网络编程】之深入理解TCP协议

Linux【网络编程】之深入理解TCP协议 TCP协议TCP协议段格式4位首部长度---TCP报头长度信息 TCP可靠性(确认应答)&& 提高传输效率确认应答(ACK)机制32位序号与32为确认序号 16位窗口大小---自己接收缓冲区剩余空间的大小16位紧急指针---紧急数据处…

Unity 使用SharpZipLib解压时报错

报错信息: NotSupportedException: Encoding 936 data could not be found. Make sure you have correct international System.Text.Encoding.GetEncoding (System.Int32 codepage) ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToString。 出现问题分析&…

三种简单易用的制作符合要求的证件照片的方法

在生活和学习中,我们经常需要上传一些证件照片。但是在准备上传之前,我们可能会发现底色不正确,这会导致无法通过审核。重新拍照既费时间又浪费金钱,这让人感到非常困扰。然而,我们可以借助一些方法和工具来轻松更改证…