押韵双关的产生者。
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
名人堂
随着时间的推移,这将充满一些合法有趣的例子希望!在那之前,我们有这些:)
command | output |
---|---|
'Adventure Time' | "Adventure PART-TIME" |
'A Good Day To Die Hard' | "A Good Day To Die AVANT-GARDE" |
'The Rolling Stones' | "The Rolling CLONES" |