押韵双关的产生者。

puns的Python项目详细描述


弱智的

python的押韵双关生成器

初始POC

The POC takes in a sentence, picks out the last word, finds a random rhyming match and inserts it in place. E.g. "Napoleon Dynamite" -> "Napoleon VEGEMITE"

您可以构建Docker映像并使用

make poc

或者,如果您愿意,可以使用make shell构建映像并输入BASH shell然后,可以使用具有以下格式的punsy/cmu.py命令:

./punsy/cmu.py <cmu_file_path> <sentence> <offset>

运行示例:

./punsy/cmu.py cmudict-0.7b.utf8 'Napoleon Dynamite' 4

125700it [00:02, 56726.98it/s]
2019-07-24 15:07:38,575 punsy.punsy INFO Pronunciation is ['D', 'AY1', 'N', 'AH0', 'M', 'AY2', 'T']
2019-07-24 15:07:38,575 punsy.punsy INFO Fetching rhymes, applying offset=4: ['M', 'AY2', 'T']
2019-07-24 15:07:38,575 punsy.punsy INFO Rhymes for ['DOLOMITE', 'DYNAMITE', 'EPSOMITE', 'HASHEMITE', 'VEGEMITE']
2019-07-24 15:07:38,576 punsy.punsy INFO Napoleon VEGEMITE

交互式运行
  • 输入docker容器
make build shell

然后,启动ipython命令并按如下方式使用:

root@fbcb68a6ce93:/home/punsy# ipythonPython3.7.3(default,May82019,05:31:59)Type'copyright','credits'or'license'formoreinformationIPython7.6.1--AnenhancedInteractivePython.Type'?'forhelp.In[1]:frompunsyimportcmuIn[2]:poc=cmu.POC('cmudict-0.7b.utf8')125700it[00:03,37833.83it/s]In[3]:poc.poc('NAPOLEON DYNAMITE',offset=2)2019-08-0122:58:11,368punsy.punsyINFOPronunciationis['D','AY1','N','AH0','M','AY2','T']2019-08-0122:58:11,369punsy.punsyINFOFetchingrhymes,applyingoffset=2:['N','AH0','M','AY2','T']2019-08-0122:58:11,369punsy.punsyINFORhymesfor['DYNAMITE']Out[4]:'NAPOLEON DYNAMITE'

后缀trie

您可以通过直接使用

./punsy/structs/suffix_trie.py

或者,使用

./punsy/structs/trie.py

名人堂

随着时间的推移,这将充满一些合法有趣的例子希望!在那之前,我们有这些:)

commandoutput
'Adventure Time'"Adventure PART-TIME"
'A Good Day To Die Hard'"A Good Day To Die AVANT-GARDE"
'The Rolling Stones'"The Rolling CLONES"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将向量的内容从一个包发送到另一个包?   java无法扩展类并对ArrayList进行排序   java无法对字符串的ArrayList进行排序   JavaP:ajax更改事件请求返回500错误   java如何为TableHeader使用渲染器   带有记号的java JSlider问题   Java如何在不同的类中调用add()方法   java如何使用JDBC和HSQLDB检索以前自动生成的PK ID值   java如何使dropwizard应用程序在启动完成之前忽略所有调用   使用MethodValidationPostProcessor进行java Spring验证   java Mediaplayer错误(19 0)不适用于release()   java UnsatifiedPendencyException Swigger2+Sringboot+@RestClientTest   java如何从onActivityResult更新回收器视图元素   java基于图像添加地板或如何优化已有方法   jComboBox的java奇怪行为   java从数据库表php中提取信息   Android-sqlite更新方法;JAVAlang.IllegalStateException:无法执行活动的方法   java如何将多个XSD文件合并到一个XSD文件?   java在不使用大多数API的情况下消除空格