1.前言
既然曹老爷子的后四十回丢了,那么对于每个热爱她的人来说,续写红楼都是一件让人热血沸腾的事儿。正好最近不是很忙,作为一个自然语言处理的小学生,我大胆尝试着使用人工智能来实现我的愿望。
2.环境准备
1.整体模型使用T1080 训练了10分钟左右,当然是一个比较简单的模型
2.框架使用tensorflow2.1版本
3.代码
使用方式,给定第一个字,自动生成固定长度的文本。
import tensorflow as tf
import numpy as np
import os
import time
text = open('honglou.txt','r',encoding='gb18030').read()
vocab = sorted(set(text))
char2idx = {u:i for i,u in enumerate(vocab)}
text_as_int = np.array([char2idx[t] for t in text])
char_dataset = tf.data.Dataset.from_tensor_slices(text_as_int)
seq_length = 100
sequences = char_dataset.batch(seq_length+1,drop_remainder=True)
def split_input_target(chunk):
input_text = chunk[:-1]
target_text = chunk[1:]
return input_text,target_text
dataset = sequences.map