python - 在最后一个元音之后查找单词
问题描述
我目前正在尝试根据 CMU Pronouncing 字典生成与输入单词押韵的单词列表,我已设法将所有单词排列到字典中,其键是表示其值的字符串列表。但是,由于基于最后一个元音的押韵,我有点坚持寻找在包含多个单词的情况下如何解决这个问题
def dotheyrhyme(filename,word):
rhymes = {}
list = []
with open(filename) as f:
text = f.readlines()[56:]
for line in text:
splitline = line.split(" ")
rhymes[str(splitline[0])] = "".join(splitline[1:])
f.close()
comparer = rhymes[word.upper()].rstrip().split(" ")
return comparer
我计划使用比较器变量作为基线,并相信反转这个变量也可能是一个很好的方法,但我迷失或过度思考比较最后一个元音和后面的字母是否相同并相应附加的方法?
例子:
{SECOND: 'S' 'EH1' 'K' 'AH0' 'N' 'D'}
会押韵
{'AND': 'AH0' 'N' 'D'}
但这两个不会押韵
{'YELLOW': 'Y' 'EH1' 'L' 'OW0'}
和
{HELLO: 'HH' 'AH0' 'L' 'OW1'}
但是我想不出对付不同长度和多个元音的方法。
谢谢你的帮助!
解决方案
找到最后一个元音需要你有一组元音。之后,您只需向后迭代列表。
vowels = {...} # some list of vowels
word = ['S', 'EH1', 'K', 'AH0', 'N', 'D']
for i in word[::-1]:
if i in vowels:
last_vowel = i
break
如果对其他想法持开放态度,您还可以查看为您找到押韵的这个库:https ://pypi.org/project/pronouncing/
推荐阅读
- python - 在python中启动和暂停一个进程
- javascript - jquery - iOS Safari 视频/相机无法在移动设备上运行 - Javascript 和 Html
- php - Laravel 无法从服务器加载供应商资源?
- spring-boot - Spring Cloud 数据流流动态主题
- vue.js - 减少 Echart 中条形之间的间隙
- html - 有没有办法在没有媒体查询的情况下缩放固定位置的背景图像?
- c++ - 在链表的末尾添加元素,在函数中指针值没有被分配?(使用代码::块)
- gnuplot - 在 gnuplot 中控制 x2tics 的频率
- angular - 角度路线导航
- flutter - Flutter onTap 从 htmlWidget 获取特定的图像源