Task1的地址为https://www.jianshu.com/p/5a9dc55ead34
(本笔记是根据伯禹教育和DataWhale提供的资料进行学习时的记录和感受,其中有一些主观看法,若发现文字或理解上的错误,欢迎指出,共同交流)
文本预处理
文本是一类序列数据,一篇文章可以看作是字符或单词的序列。
文本预处理的步骤有:读入文本、分词、建立字典、将词转换为索引。
语言模型
本节介绍了n元语法,并介绍了语言模型数据集的两种采样方法。
一段自然语言文本可以看作是一个离散时间序列,给定一个长度为的词的序列
,语言模型的目标就是评估该序列是否合理,即计算该序列的概率
。
假设序列中的每个词是依次生成的,我们有公式①
①
语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如,计算w1概率的公式②如下:
②
其中为语料库中以w1作为第一个词的文本的数量,n为语料库中文本的总数量。
类似的,给定w1情况下,计算w2的条件概率公式③如下:
③
其中为语料库中以w1作为第一个词,w2作为第二个词的文本的数量。
序列长度增加,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链,如果n=1,那么有。
基于n−1阶马尔可夫链,我们可以将语言模型改写为公式④
④
以上也叫n元语法,它是基于n−1阶马尔可夫链的概率语言模型。
当n分别为1、2和3时,我们将其分别称作一元语法、二元语法和三元语法。当n较小时,n元语法往往并不准确。例如,在一元语法中,由三个词组成的句子“你走先”和“你先走”的概率是一样的。然而,当n较大时,n元语法需要计算并存储大量的词频和多词相邻频率。
n元语法的缺陷有:
1. 参数空间过大
2. 数据稀疏
循环神经网络基础
如果需要基于当前的输入与过去的输入序列,预测序列的下一个字符,可以使用循环神经网络(RNN)。RNN引入了隐藏变量,可令
表示
在时间步
的值。
的计算基于
和
,而
记录了到当前字符为止的序列信息,因此可利用
对序列的下一个字符进行预测。
下面是RNN的构建,假设是时间步
的小批量输入,
是该时间步的隐藏变量,则有公式⑤:
⑤
其中,,
,
,
函数是非线性激活函数。由于引入了
,
能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。由于
的计算基于
,索引上式的计算是循环的,使用循环计算的网络即循环神经网络。
在时间步t,输出层的输出为公式⑥:
⑥
网友评论