「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」。

导语

本文为我之前在CSDN平台上的一篇博客记录。原链接为:NLP学习笔记笔记本cpu天梯图(六)矩阵相似文本生成

文本生成(Text g矩阵的秩eneration)

这节课介绍RNN的一个应用:文本生成。我们可以训练一个RNN来自动生成文本。

主要linux命令思想(Main idea)

我们以一个例子开始,假设输入半句话,”The cat sat on the ma”,要求预测下一个字符。我们可以训练一个神经网络来预测下一个字符,训练数据是很多文本,把文本分割笔记本成字符,用One-hlinux是什么操作系统ot encoding来表示字符。把这些One-Hot向量依次输入RNN,RNN的状态向量h会积累看到的信息奶酪拼音。RNN返回最后一个向量h,在神经网络关键技术R神经网络关键技术NN上面是一个Softmax分类器,把h与参数矩阵W相乘得到的向量经过Softmax输出每个类别的概率。

NLP学习笔记(六)文本生成

假设这个网络已经训练好了,Softmax层则会输出如下矩阵的迹概率值。我们选择最大的概率值对应的字符输出,或者按概率值做随机抽样。然后把t接到输入的文本末尾。

NLP学习笔记(六)文本生成

然后把”The cat sat笔记本电脑开机黑屏没反应怎么办 on the mat”作为输入,计算下一个字符的输出,从而生成下一个字符。很可能是句号.再这样如此下去就可以生成很长的内容。

现在来看下怎样训练这nlp个RNN,训练数据那里拍婚纱照好是文本,比如英文维基百科的所有文章。把文章划分为很多片年龄拼音段。这些片段可以有重叠。

NLP学习笔记(六)文本生成

比如红色片段作为输入文本,后面的蓝色字符a作为标签。设置seg_len=40意思是红色片段长度为40,设置步长stride=3,意思是下一个步骤红神经网络是什么学派的成果色片段会Linux向右平移3个字符,以此类推。

NLP学习笔记(六)文本生成
笔记如这篇文章有3000个字符,那么我们就能得到大概1000个红色片段和1000个蓝色的标签。

NLP学习笔记(六)文本生成

训练神经网年龄拼音络的目的是给定输入神经网络预测模型片段,神经网络可以给出下一个字符。其实这就是一个多分类问题。假如包括空格、字母、标点在内一共有50个不同的字符,那么类别数目就是50。

NLP学习笔记(六)文本生成

训练的神经网络的输出神经网络是什么学派的成果风格取决于训练用的文本。如果用莎士比亚的书做训练,那么输出就是莎士比亚的风格文本。

文本生成可以用来做有趣的事情。比如生成新的英文名。矩阵游戏

NLP学习笔记(六)文本生成
如果用linux常用命令Linux源代码作为训练数据,那么神经网络就会生成这样的文本

NLP学习笔记(六)文本生成
使用latex源代码可以自动生成late能力拼音x源代码

NLP学习笔记(六)文本生成

训练一个文本生成器(Training矩阵 a Text Generator)

准备训练数据(Prepare Training D笔记本cpu天梯图ata)

我们用Python读取一本书的文本,这里不考虑字母大小写。每次取60个字符作为输入数据,一个字符为label

NLP学习笔记(六)文本生成
NLP学习笔记(六)文本生成

神经网络关键技术字符转换为向量(Character to Vector)

首先将字符做一个字典。然后把文本转换为One-Hot向量。

NLP学习笔记(六)文本生成
做完矩阵的乘法运算One-hot encoding后,一个字符串就背编码成为一个数值矩阵。矩阵的行数为字符串长度,列数为字典大小。这里没有做word em矩阵乘法bedding是因为字典中字符数目其实很少了,只有57维。

NLP学习笔记(六)文本生成

建立网络(Build矩阵 Network能力培养与测试

Keras实现略

预测下一个字符

在模型搭建好后,我们有以下三种策略笔记本电脑来选择下一个字符。

Option 1:Greedy selection

第一种方法是进行贪婪选择,直接选最大概率的那个。但这种方法生成的文本是确定的,文章都是固定的,可读性极差。

NLP学习笔记(六)文本生成

Option 2:Sampling from the multinomial distribution

第二种方法是根据输出的各个字符概率值进行多项式分别抽样,这种情况下具有随机神经网络是什么学派的成果性,生成效果较好。

NLP学习笔记(六)文本生成

Option 3:adjust the multinomial distribution

第三种方式则是在原始奶酪拼音概率分布上加幂次再重新计算概率分别,这种情况下,会使得在方法笔记二中神经网络是什么概率大的更大一些。效果也更好一些。

NLP学习笔记(六)文本生成

NLP学习笔记(六)文本生成
NLP学习笔记(六)文本生成

总结(Summary)

想要linux重启命令生成文本,需要先生成一个循环神经网络。第一步是将文本划分linux必学的60个命令成很多的segment片段。segment是输入,next_char是标签。第二步是对字符做One-hot encoding,把字符编码成向量,v矩阵是词表数目,l是segment长度。第三步是搭一个神经网络。

NLP学习笔记(六)文本生成
在生成文本时,需要给一个种子片段作为输入,然后就可以进行生成,重复进行以下几步:

  • 把segment输入神经网络
  • 神经网络输出各个字符的概率
  • 笔记概率值中进行Sample得到next_char
  • 把新生成的字符接到片段的后面

NLP学习笔记(六)文本生成