python 两个冒号是什么成语_python查询双押词
作为一个妄想成为rapper的porgrammer,
写歌词想不出双押可是个matter,
我又不想每次点开我的browser,
不亲自做点什么哪配当coder!
之前我们学习过jieba分词库,用于中文分词。可是押韵看的是拼音,jieba分词显然不好用了,但是别担心,python还有个xpinyin库,可以将中文转换成拼音,只需要先pip install,再导入即可:
from xpinyin import Pinyin
我的思路是这样的:输入要查询的词语后,利用xpinyin库分离出拼音(通常押韵可以简略地看做后面的元音相同),然后我们便通过正则表达式过滤掉拼音开头的辅音,留下的便是韵脚。将这个韵脚字符串与事先准备好的txt格式的词库(网上随意下载)进行遍历比较,两个字的韵脚均相同,即为要寻找的双押词,把词语输出即可。
下面是一些关键步骤的代码:
由于我下载的词库格式有问题,词语之间没有分隔,所以我先用jieba分词把词语分开:
word_lst = [] #用于存储划分后的词语
for line in open('ch_dict.txt',errors='ignore'):
item = line.strip('\n\r').split('\t') #制表格切分
tags = jieba.analyse.extract_tags(item[0]) #jieba分词
for t in tags:
word_lst.append(t)
将输入的词语转换成拼音并提取韵脚:
p = Pinyin()
s0=str(input())
s0=p.get_pinyin(s0).split('-') #转换后的拼音是“xx-xx”格式的,因此通过“-”将拼音分割
#提取韵脚
s_first=re.findall(r".*[b,c,d,f,h,j,k,l,m,p,q,r,s,t,w,x,y,z](.*).*",s0[0])
s_last=re.findall(r".*[b,c,d,f,h,j,k,l,m,p,q,r,s,t,w,x,y,z](.*).*",s0[1])
然后遍历word_lst,用同样的方法提取韵脚,与s_first、s_last比较,但此时应注意,由于词库里有超过两个字的词,所以为了查找双押,应该改变字符串的索引位置:
s1=p.get_pinyin(str(word_lst[i])).split('-') #将词库的每个词转换成拼音
正则表达式分别取s1[-1]和s1[-2],即最后两个字
遍历过程中进行判断,将符合条件的词语输出:
if s_first==s1_first and s_last==s1_last and str(word_lst[i]) not in s:
print(str(word_lst[i]))
s.append(str(word_lst[i])) #s用于判断词语是否重复,初始化为空列表
写完收工,接下来写歌去吧!
python 两个冒号是什么成语_python查询双押词相关推荐
- python连续两个冒号是什么成语_python中双冒号
1.字符串转义序列转义字符 描述(在行尾时) 续行符\ 反斜杠符号' 单引号" 双引号a 响铃b 退格(Backspace)e 转义000 空n 换行v 纵向制表符t 横向制表符r 回车f ...
- python两个表格相同数据筛选_python如何统计所有文本文件的行数 如何用python实现两个文件重复数据筛选并统计...
如何用python统计文本中重复行的数目? python比较txt文档中每行文本之间重复词的个数不想面对他离开,逃避不是一个好方法,但却是唯一的办法. 每一行弄成一个集合,分享两个集合之间的交集,计算 ...
- python两个装饰器执行顺序_python中多个装饰器的执行顺序
今天讲一下python中装饰器的执行顺序,以两个装饰器为例. 装饰器代码如下: def wrapper_out1(func): print('--out11--') def inner1(*args, ...
- python 两台机器之间传递数据_Python:通过套接字在两台计算机之间发送数据
我正在开发一个脚本,可以在两台不同的计算机之间传输数据,并可以访问互联网.我正在使用 python的socket标准模块.当我在单台计算机上运行客户端和服务器时,它工作正常,但是当它们在不同的计算机上 ...
- python两条曲线图片相似度_Python比较两个图片相似度的方法
本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一 ...
- python两个装饰器执行顺序_python中多个装饰器的执行顺序详解
装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...
- python两个时间点比较大小_python中如何比较两个时间点
python中如何比较两个时间点?下面给大家讲解一下具体步骤: 1.string转datetime#字符串转datetime dt = datetime.datetime.strptime('2017 ...
- python两张图合成一张_Python图像处理实现两幅图像合成一幅图像的方法【测试可用】...
本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法.分享给大家供大家参考,具体如下: 将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅 ...
- python两个小于号什么意思_python中的不等于号是什么
python中的不等于号用!=表示.Python支持的比较运算符如下图所示 比较运算符,也成关系运算符,用于对常量.变量或表达式的结果进行大小.真假等比较,如果比较结果为真,则返回 True:反之,则 ...
最新文章
- 查询去除空值_SQL多表查询
- ASP.NET MVC Html.ActionLink使用说明
- 51个国家,2372名选手,20万奖金池,阿里全球调度算法大赛收官
- Java Collections copy()方法与示例
- eosio.msig合约源码分析
- 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数
- SAP R3 display Vendor list, MKVZ .
- vba 判断目标单元格内容改变的代码_【VBA小代码】批量改变单元格部分字符格式...
- apache 二级域名设置完整步骤
- 线下餐饮实体店线上精准引流方案!你想看的都在这儿!这篇文章教你转化!
- 17. 尚融宝引入阿里云短信服务
- mupdf中CMYK与RGB的转换算法
- 股票的压力位和支撑位
- 短网址短链接哪个好用?2021年最好的缩短链接短网址推荐
- R plot图片背景设置为透明_R语言数据可视化基因名称转换及KEGG/GO富集分析
- 关于HTML的相关标签
- 基于ssm的校园二手物品交换系统
- Unity_太阳月亮地球的自转公转脚本
- Git学习(1)pro git阅读尚硅谷视频
- php调用接口发送短信