首页 游戏 软件 资讯 排行榜 专题
首页
AI
语句生成之胡编乱造哲理和爱情生成器

语句生成之胡编乱造哲理和爱情生成器

热心网友
32
转载
2025-07-17
这是一个基于GRU的哲理与爱情文本生成器。用wordstest.txt作数据集,通过字映射构建字表,模型含嵌入层、双向GRU层和全连接层。训练时以固定长度文本为输入预测下一字,迭代优化参数。使用时输入开头文字,模型生成指定长度文本,生字会提示未学会。

语句生成之胡编乱造哲理和爱情生成器 - 游乐网

胡编乱造哲理和爱情生成器

高人打造计划

因为数据集偏向哲理和爱情

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

效果展示:

输入:

我对你的爱

输出:

我对你的爱恋中,我愿为此生,爱爱可多少善果才能与他漫步人生路?朋友如海水般,承载你无数的泪花;欢乐时,白浪掀天,波涛声依旧没有能够脱离其中。执子之手,往事既往不咎,执子之手,往事既往不咎,执子之手,我们注定?一昧的消沉,失落,伪装出虚伪的自己,只愿愿以一袭泯念过无数的看着,安慰着,轻抚疼痛的心。

再不会为了一句话,而和人争得面红耳赤;再不会为了一句话,而和此刻绽放。   站在都市的一隅,感受那些渐行渐远,耳际忽而响起<怒放的生命>的旋律,激起我心中一股莫名的渴望。轻轻拉开窗帘,一场春雨,淋湿了虔诚向往的花朵,许许多多的回忆片段如同雨浇开的花香,坐在窗帘的边缘点燃生命的歌喉。

古藤老树昏鸦,断肠人在天涯。韶光荏苒,记不起年少的轻狂,不再想当年的慷慨激昂。一路奔波流浪,一路磕磕绊绊。笑荏苒燃的前世与无奈,尘世中没有哪一空中的征程时,点出事情中痴迷,无奈生命里伏伏起起,你有经的青春很

操作使用方法

就是从上到下运行全部代码,注释掉倒数第二个代码块,这个为训练的,然后最后一个代码块就是测试代码块,就是玩的。

让你输入开头几个字,然后输出自定义字数的句段。

简单的技术

本项目主要就是用了GRU,然后数据集构造非常简单,就是放在wordstest.txt里面,也可以自己改数据集训练哦。

为了简单,本项目的batch_size为1,没有使用dataset这些。

定义基本工具函数

In [1]
import numpy as np import paddleimport paddle.nn.functional as Fimport timeimport randomfrom collections import CounterRANDOM_SEED = 123paddle.seed(RANDOM_SEED)def elapsed(sec):    if sec < 60:        return str(sec) +"sec"    elif sec< 60*60:        return str(sec/60)+"min"    else :        return str(sec/(60*60)) +"hr"training_file = "wordstest.txt" #定义样本文件def readalltxt(txt_files):    labels = []    for txt_file in txt_files:        target = get_ch_lable(txt_file)        labels.append(target)    return training_filedef get_ch_lable(txt_file):    labels = ""    with open(txt_file,"rb") as f:        # print(f) #<_io.BufferedReader name='wordstest.txt'>        for label in f:            labels = labels + label.decode("utf-8")    return labelsdef get_ch_lable_v(txt_file,word_num_map,txt_label = None):    words_size = len(word_num_map)    to_num = lambda word:word_num_map.get(word,words_size)#如果word没有在训练集出现过,就输出words_size    if txt_file != None:        txt_label = get_ch_lable(txt_file)    labels_vector = list(map(to_num,txt_label))    return labels_vectortraining_data = get_ch_lable(training_file)print("loaded training data...")print("样本长度:",len(training_data))counter  = Counter(training_data)# print(counter)words = sorted(counter)# print(words)words_size = len(words)word_num_map = dict(zip(words,range(words_size))) # 字映射到对应的独热编码print("字表大小",words_size)wordlabel = get_ch_lable_v(training_file,word_num_map)# print(wordlabel)
登录后复制
loaded training data...样本长度: 4240字表大小 1016
登录后复制

模型主体

In [2]
class GRURNN(paddle.nn.Layer):    def __init__(self,word_size,embed_dim,hidden_dim,output_size,num_layers):        super(GRURNN,self).__init__()        self.num_layers = num_layers        self.hidden_dim = hidden_dim        self.embed = paddle.nn.Embedding(word_size,embed_dim)        self.gru = paddle.nn.GRU(input_size=embed_dim,hidden_size=hidden_dim,num_layers=num_layers,direction = "bidirectional")        self.fc = paddle.nn.Linear(hidden_dim*2,output_size)#输出概率    def forward(self,features,hidden):        embedded = self.embed(features.reshape([1,-1]))        output,hidden = self.gru(embedded.reshape([1,1,-1]),hidden)        # output = self.attention(output)        output = self.fc(output.reshape([1,-1]))        return output,hidden    def init_zero_state(self):        init_hidden = paddle.zeros([self.num_layers*2,1,self.hidden_dim])        return init_hidden
登录后复制

训练前的小小准备

In [3]
EMBEDDING_DIM = 10HIDDEN_DIM = 20NUM_LAYERS = 1model = GRURNN(words_size, EMBEDDING_DIM, HIDDEN_DIM, words_size, NUM_LAYERS)optimizer = paddle.optimizer.Adam(learning_rate=0.005,parameters=model.parameters())#定义测试函数def evaluate(model, prime_str, predict_len, temperature=0.8):    hidden = model.init_zero_state()    predicted = ''    #处理输入语义    for p in range(len(prime_str) - 1):        _, hidden = model(prime_str[p], hidden)        predicted +=words[prime_str[p]]    inp = prime_str[-1]    predicted +=words[inp]        for p in range(predict_len):        output, hidden = model(inp, hidden)                #从多项式分布中采样        output_dist = output.reshape([-1]).divide(paddle.to_tensor(temperature)).exp()        inp = paddle.multinomial(output_dist, 1)[0]                predicted += words[inp]    return predicted
登录后复制
W0309 22:03:40.237079  1212 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0309 22:03:40.242807  1212 device_context.cc:465] device: 0, cuDNN Version: 7.6.
登录后复制

正式训练(如果不想训练可以直接注释掉本代码块,然后直接运行全部的代码,最后一个代码块就可以直接玩了)

In [4]
# #定义参数训练模型# training_iters = 20000# display_step = 1000# n_input = 20# step = 0# offset = random.randint(0,n_input+1)# end_offset = n_input + 1# while step < training_iters:#     start_time = time.time()#     # 随机取一个位置偏移#     if offset > (len(training_data)-end_offset):#         offset = random.randint(0, n_input+1)   #     inwords =wordlabel[offset:offset+n_input]#     inwords = np.reshape(np.array(inwords), [n_input, -1,  1])#     out_onehot = wordlabel[offset+1:offset+n_input+1]#     hidden = model.init_zero_state()#     # print(hidden)#     optimizer.clear_grad()    #     loss = 0.#     inputs, targets = paddle.to_tensor(inwords), paddle.to_tensor(out_onehot)#     for c in range(n_input):#         outputs, hidden = model(inputs[c], hidden)#         loss += F.cross_entropy(outputs, targets[c].reshape([1]))#     loss /= n_input#求每个字的平均loss#     loss.backward()#     optimizer.step()#     #输出日志#     with paddle.set_grad_enabled(False):#         if (step+1) % display_step == 0:#             print(f'Time elapsed: {(time.time() - start_time)/60:.4f} min')#             print(f'step {step+1} | Loss {loss.item():.2f}\n\n')#             with paddle.no_grad():#                 print(evaluate(model, inputs, 32), '\n')#             print(50*'=')#             paddle.save(model.state_dict(), 'model_state'+str(2)+'.pdparams')#     step += 1#     offset += (n_input+1)#中间隔了一个,作为预测# print("Finished!")
登录后复制

可以直接玩的代码(如果字在txt中没有出现,就会进行提示“该字我还没学会”)

In [ ]
import paddlen_input =20 layer_state_dictm = paddle.load("model_state2.pdparams")model.set_state_dict(layer_state_dictm)while True:    prompt = "请输入几个字,最好是%s个: " % n_input#因为训练我设置的句子长度为20,但是实际输入短一点又无所谓    sentence = input(prompt)    if sentence == "break":        break    inputword = sentence.strip()        try:        inputword = get_ch_lable_v(None,word_num_map,inputword)        keys = np.reshape(np.array(inputword), [ len(inputword),-1, 1])        zi_num = 400        model.eval()        with paddle.no_grad():            sentence =evaluate(model, paddle.to_tensor(keys), zi_num)# zi_num就代表后面继续模型输出字数 总共为n_input + zi_num        print(sentence)    # break    except:        print("该字我还没学会")
登录后复制
请输入几个字,最好是20个:  风的悲伤
登录后复制
风的悲伤着?茫然的心境,遥远的梦幻,飘荡,游离恍若几个世纪,那么漫长。为了那份渴望已久梦中痴缠的美丽,落日的晚霞像是给你披上漂亮的嫁衣,习习微风把你的面纱吹起,凝眸深处你的微笑惹人痴迷,无奈生命里伏伏起起,你的美永远刻在了无法倒转的悱侧惆怅,又有情深意意的悠悠旋律,不时的在你心中回荡。徘徊。萦绕间的人陶醉的温柔。往事都成过往云烟,无须无奈,尘世,无须追究,执子之手,我们注定?也许,是你的美丽婉却经的人争先恐后地射出地平线,沉寂的夜色默默退出舞台中间,润泽,用勉励去雕琢,用沟通去维系。  当我们踏上人生的征程时,可拨不可多问,无须追究,执子之手,我们注定?那些盛开在流淌。而我一场前世的你的娇嘀。是我熏醉。绕完圈,又回到原点。再回去,那片记忆中的怅惘是否已布满历史风尘的青苔?美丽的花。岁月荏苒,什么都可以改变,唯一手抚平处你的笑容岸,我爱泡一杯清茶,一片片盈绿,舞动翩翩,茗香阵阵,享受
登录后复制
请输入几个字,最好是20个:  风的吹
登录后复制
风的吹起,凝眸深处你的微笑惹人痴迷,无奈生命里伏伏起起,你的美永远刻在了最初的单纯,当岁月荒芜了似乎成熟的心田,文字是否仍可以承受很回;石桥上飘荡的魂灵,都舍得了前尘旧梦,断前因后果,忘尽一世浮沉得失,一生爱恨情仇。而我,千年华满天下就人生的方向,从痴痴地心。  有时偏执于一己的看法,旁观者清,当局者迷,朋友善意的提点,点出事情的利弊,道出性格的缺陷,为的是希望大家一起进步。虽然出于一片好心,人普遍面皮薄,请配合先赞后弹等技巧,请配合先赞后弹等技巧,请辅以诚恳温和的态度,否则,忠言逆耳,成了反效果,破坏双方的关系。  每一天的早晨我们还是需要坚强,即使远离你无数日子,我依偎在三生石畔夜。  再不会为了一句话,而和人争得面红耳赤;每心上的青面拼凑起。夕阳下你的美丽,落日的晚霞像是给你披上漂亮的嫁衣,习习微风把你的面纱吹起,凝眸深处你的微笑惹人痴迷,无奈生命里伏伏起起,你的美
登录后复制
来源:https://www.php.cn/faq/1411345.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Claude源码逾51万行遭泄露,Anthropic官方回应事件
AI
Claude源码逾51万行遭泄露,Anthropic官方回应事件

每日经济新闻4月1日消息 当地时间3月31日,被视为OpenAI最强竞争对手的Anthropic再次遭遇代码泄露事件,是其在一周内遭遇的第二起重大数据失误事件。Anthropic因npm包打包失误,

热心网友
04.01
揭秘AI工具如何深度渗透音乐制作:行业内的私密实践指南
AI
揭秘AI工具如何深度渗透音乐制作:行业内的私密实践指南

IT之家 3 月 31 日消息,据《滚石》杂志的深度调查显示,AI 生成工具正迅速渗透专业音乐制作领域,但整个行业却对此讳莫如深。今年早些时候,Suno 首席执行官米奇 · 舒尔曼接受《卫报》采访时

热心网友
03.31
AI工具全面优化投放链路,告别零活低效
AI
AI工具全面优化投放链路,告别零活低效

克雷西 发自 凹非寺量子位 | 公众号 QbitAIAI进入营销行业,已经是定局。艾瑞咨询报告显示,去年中国AI营销市场规模达669亿元,年复合增长率26 2%这个增速背后,是整个行业链条——从内容

热心网友
03.31
古尔曼披露:苹果Apple Intelligence在中国意外上线后下线
礼仪与书信
古尔曼披露:苹果Apple Intelligence在中国意外上线后下线

3月31日,苹果于今日凌晨开始分批推送国行Apple Intelligence Beta版,需升级至iOS 26 4及以上系统方可体验。彭博社记者马克·古尔曼今日发文称Apple Intellig

热心网友
03.31
阿里向员工发放Token,鼓励使用AI工具提升效率
AI
阿里向员工发放Token,鼓励使用AI工具提升效率

IT之家 3 月 17 日消息,据界面新闻今日报道,阿里巴巴集团正推进一项内部计划,向员工提供 Token 额度,鼓励员工在工作中使用先进的 AI 模型与工具。根据该计划,阿里员工可免费使用悟空、Q

热心网友
03.17

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-07
数独趣味闯关
数独趣味闯关
休闲益智 04-07
碧优蒂的世界
碧优蒂的世界
休闲益智 04-07
海岛奇兵
海岛奇兵
棋牌策略 04-07
列王的纷争:西部大陆
列王的纷争:西部大陆
棋牌策略 04-07

热门推荐

苹果折叠 iPhone Fold 渲染图再曝:后摄缩小凸起,整体更精致
科技数码
苹果折叠 iPhone Fold 渲染图再曝:后摄缩小凸起,整体更精致

苹果折叠屏手机 iPhone Fold 最新渲染图曝光:摄像头凸起优化,设计更显精致 有关苹果公司首款折叠屏 iPhone 的传闻持续受到关注。4月5日,知名爆料者 Majin Bu 在社交平台X上再度分享了一组据称是 iPhone Fold 的高清渲染图,从多角度揭示了这款备受期待设备可能的外观设

热心网友
04.07
这城有良田官府无垢队阵容推荐
游戏攻略
这城有良田官府无垢队阵容推荐

通用性首选:官府无垢队阵容深度解析 在当前版本中,若要挑选一套兼具强度与广泛适用性的阵容,以官府流派【长孙无垢】为核心的搭配方案无疑是热门之选。这套经典组合通常由长孙无垢(官府)、李一桐、李善德、李光弼,以及关羽或平安组成。其核心战斗逻辑清晰且高效:一方面,依靠长孙无垢与李光弼的技能联动,通过对目标

热心网友
04.07
洛克王国世界进化什么条件 洛克王国世界全隐藏进化条件整理
游戏攻略
洛克王国世界进化什么条件 洛克王国世界全隐藏进化条件整理

洛克王国全精灵隐藏进化条件完整攻略大全 在《洛克王国》丰富多彩的冒险世界中,除了常规的等级进化,众多精灵还埋藏着独特的“隐藏进化”路径。这些特殊的进化条件,往往是解锁精灵终极形态、完成图鉴收集的关键所在。与普通进化方式不同,隐藏进化需要触发特定的环境、时间、道具或任务条件,充满了探索与解密的乐趣。你

热心网友
04.07
燕云十六声石震通关方法-燕云十六声石震如何通关
游戏资讯
燕云十六声石震通关方法-燕云十六声石震如何通关

燕云十六声石震关卡怎么过?高效通关技巧与实战攻略详解 掌握核心机制:石震关卡难点全解析 石震关卡的核心挑战在于敌人配置:不仅数量密集,且拥有高额血量和攻击力。这些敌人并非随机分布,而是依据特定区域、巡逻路线及攻击逻辑进行部署。提前掌握不同敌人的攻击前摇、技能范围与仇恨机制,是制定有效战术的前提,真正

热心网友
04.07
英雄联盟手游安妮符文怎么搭配
游戏攻略
英雄联盟手游安妮符文怎么搭配

英雄联盟手游安妮符文终极指南:爆发流核心配置与实战策略 在英雄联盟手游的对局中,黑暗之女安妮以其强大的瞬间爆发与控制能力,始终是中单位置的热门选择。虽然操作看似简单易懂,但想要真正掌握这位火焰法师的精髓,打出毁天灭地的效果,一套科学高效的符文搭配是不可或缺的基石。正确的符文选择,能让她从温顺的火苗化

热心网友
04.07