押韵机器人(中国有嘻哈——押韵机器人[通俗易懂])

发布时间:2025-12-10 19:31:00 浏览次数:4

中国有嘻哈——押韵机器人[通俗易懂]-

中国有嘻哈——押韵机器人[通俗易懂][本文出自天外归云的博客园]押韵机器人简介近来群里看到有人谈起押韵机器,突然想起好多年前的回忆。心血来潮写了一个押韵机器人。可以识别韵脚、比较韵脚、词汇列表按韵脚分类。 经测试,目前对多音字支持不好:比如唠嗑,唠叨。这种就识别会出错。欢迎大家继续测试,有问题反馈给我。 拼音识别基于pypinyin库实现,具体用法详见其github。押韵机器人代码押韵机器人代码文…

[本文出自天外归云的博客园]

押韵机器人简介

近来群里看到有人谈起押韵机器,突然想起好多年前的回忆。

心血来潮写了一个押韵机器人。可以识别韵脚、比较韵脚、词汇列表按韵脚分类。

经测试,目前对多音字支持不好:比如唠嗑,唠叨。这种就识别会出错。欢迎大家继续测试,有问题反馈给我。

拼音识别基于pypinyin库实现,具体用法详见其github。

押韵机器人代码

押韵机器人代码文件命名叫“punchliner.py”,代码如下:

from pypinyin import pinyin, lazy_pinyin, Stylewords = ["今天","太躁","艾福杰尼","着迷","太绕","心间","限","盛宴","榴莲","亏欠","二百五","腐乳","火锅底料","MC大笑","别跟我唠","我感冒","好不好","太早","住口","兄弟","胸臆","太辣","太大","太炸","我手抖"]def is_alphabet(uchar):rule1 = (uchar >= u'\u0041' and uchar<=u'\u005a')rule2 = (uchar >= u'\u0061' and uchar<=u'\u007a')if rule1 or rule2:return Trueelse:return Falsedef get_punchline(word):last_character = word[len(word)-1]last_character_pinyin = pinyin(last_character)[0][0]punchline = []for the_char in last_character_pinyin:if not is_alphabet(the_char):punchline.append(last_character_pinyin.split(the_char)[0])punchline.append(the_char)punchline.append(last_character_pinyin.split(the_char)[1])return punchlinedef compare_punchline(word1,word2):punchline1 = get_punchline(word1)punchline2 = get_punchline(word2)prefix1 = punchline1[0]prefix2 = punchline2[0]#前缀尾字母设定不为空prefix1_last_char = 'x'prefix2_last_char = 'x'if prefix1 != '':prefix1_last_char = prefix1[len(prefix1)-1]if prefix2 != '':prefix2_last_char = prefix2[len(prefix2)-1]#前缀先决条件,都是i或都不是i才算押韵pre_rule1 = (prefix1_last_char == 'i')pre_rule2 = (prefix2_last_char == 'i')all_i = (pre_rule1 and pre_rule2)all_not_i = 'i' not in [prefix1_last_char,prefix2_last_char]if all_i or all_not_i:rule1 = punchline1[1] == punchline2[1]rule2 = punchline1[2] == punchline2[2]if rule1 and rule2:return Trueelse:return Falseelse:return Falsedef classify_punchline(words_list):target = words_list[0]yayun_words = filter(lambda word:compare_punchline(target,word)==True,words)yayun_words_list = list(set(yayun_words))left_words_list = list(set(words_list)-set(yayun_words_list))print(yayun_words_list)rule1 = left_words_list != words_listrule2 = len(left_words_list) > 0if rule1 and rule2:classify_punchline(left_words_list)if __name__ == '__main__':#print(get_punchline("变"))#print(get_punchline("案"))#print(get_punchline("绕"))#print(compare_punchline("安","翻"))#print(compare_punchline("变","案"))#print(compare_punchline("房","狼"))#print(get_punchline("唠"))classify_punchline(words)

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

其中:

1. 函数fuck_yayun可以对词藻列表中的词汇进行判断,把押韵的词汇进行自动归类;

2. 函数get_punchline可以获取词汇韵脚;

3. 函数compare_punchline可以比较韵脚。

希望有朝一日可以像发明AlphaGo一样发明AlphaRapper,让他去参加中国有嘻哈。

运行结果:

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477