利用百度飞浆的预训练模型生成情话、对联等信息
Created At :
Count:413
Views 👀 :
'''step1: 安装paddlepaddle conda create -n paddle python=3.6 conda activate paddle pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pillow ''' import paddlehub as hub
class HubUtils(object): def __init__(self): self.hub = hub self.module_love_words = self.hub.Module(name="ernie_gen_lover_words") self.module_poetry = self.hub.Module(name="ernie_gen_poetry") self.module_acrostic_poetry = self.hub.Module(name="ernie_gen_acrostic_poetry") self.module_couplets = self.hub.Module(name="ernie_gen_couplet") def GetLoveWords(self,text,size=5): results = self.module_love_words.generate(texts=[text], use_gpu=False, beam_width=size) return results[0]
def GetAcrostic(self,text,line=4,word=7,size=1): self.module_acrostic = self.hub.module = hub.Module(name="ernie_gen_acrostic_poetry", line=line, word=word) results = self.module_acrostic.generate(texts=[text], use_gpu=False, beam_width=size) return results[0] def GetAcrostic_poetry(self,text,line=4, word=7): self.module_acrostic_poetry = self.hub.module = hub.Module(name="ernie_gen_acrostic_poetry", line=line, word=word) results = self.module_acrostic_poetry.generate(texts=[text], use_gpu=False, beam_width=1) return results[0] def GetPoetry(self,curx,size=1): results = self.module_poetry.generate(texts=[curx], use_gpu=False, beam_width=size) return results[0]
def GetCouplet(self,up_couplet,size=1): results = self.module_couplets.generate(texts=[up_couplet], use_gpu=False, beam_width=size) return results[0]
if __name__=="__main__": Hub = HubUtils() while True: input_ = input("请选择功能: 1.情话 2.诗歌 3.藏头诗 4.对联 5.退出\n") if input_ == "1": input_ = input("请输入情话关键词:\n>>>") print(Hub.GetLoveWords(input_)) elif input_ == "2": input_ = input("请输入诗歌关键词:\n>>>") print(Hub.GetPoetry(input_)) elif input_ == "3": input_ = input("请输入藏头诗关键词:\n>>>") print(Hub.GetAcrostic_poetry(input_)) elif input_ == "4": input_ = input("请输入上联:\n>>>") print(Hub.GetCouplet(input_)) elif input_ == "5": break
|