Task 语言模型

文本预处理

常见的处理的方法:

  • 读入文本
  • 分词
  • 建立字典
  • 从词的序列转换为索引的序
    一般用分词工具来进行分词和词频统计。不做赘述

语言模型

一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 T 的词的序列 w1,w2,…,wT ,语言模型的目标就是评估该序列是否合理。

统计语言模型

要判断一段文字是不是一句自然语言,可以通过确定这段文字的概率分布来表示其存在的可能性。 语言模型中的词是有顺序的,给定m个词看这句话是不是一句合理的自然语言,关键是看这些词的排列顺序是不是正确的。所以统计语言模型的基本思想是计算条件概率。比如一段文字有w1,w2,w3…,wmw1,w2,w3…,wm这m个词组成,看看是不是一句话,就可以用下面的公式计算其联合概率:
P(w1,w2,w3…,wm)=P(w2|w1)P(w3|w1,w2)…P(wm|w1,w2,…wm−1)P(w1,w2,w3…,wm)=P(w2|w1)P(w3|w1,w2)…P(wm|w1,w2,…wm−1)
在实际操作中,如果文本较长,P(wi|w1,w2,…wi−1)P(wi|w1,w2,…wi−1)的估计会非常困难,所以就出现了一个简化模型N-gram语言模型:当前词只和它前面的n个词有关,与更前面的词无关,上面的式子就可以写成:
P(wi|w1,w2,…wi−1)=P(wi|wi−(n−1),…,wi−1)P(wi|w1,w2,…wi−1)=P(wi|wi−(n−1),…,wi−1)
经典的统计语言模型就是N-gram语言模型

神经网络语言模型(Neural language models)

神经语言模型使用连续表示或词汇Embedding来进行预测。 以神经网络为基础来训练模型。
在这里插入图片描述
输入:n-1个之前的word(用词典库V中的index表示)
映射:通过|V|*D的矩阵C映射到D维
隐层:映射层连接大小为H的隐层
输出:输出层大小为|V|,表示|V|个词中每个词的概率
网络第一层:将 C(wt−n+1)C(w_{t-n+1})C(w
t−n+1

), … , C(wt−2)C(w_{t-2})C(w
t−2

), C(wt−1)C(w_{t-1})C(w
t−1

) 这n-1个向量首尾相接拼起来,形成一个(n-1)*m维的向量,记为输出x。
网络第二层:就是神经网络的隐藏层,直接使用 d+Hxd+Hxd+Hx 计算得到,H是权重矩阵,d是一个偏置向量。然后使用tanh作为激活函数。
网络第三层:输出一共有|V|个节点,每个节点 yi​
表示下一个词为i的未归一化log概率,最后使用softmax激活函数将输出值y归一化成概率。y的计算公式:
y的计算公式:
在这里插入图片描述
式中U是一个|V| X h 的矩阵,表示隐藏层到输出层的参数;W是|V| x (n-1)m的矩阵,这个矩阵包含了从输入层到输出层的直连边,就是从输入层直接到输出层的一个线性变换。
在这里插入图片描述

循环神经网络

循环神经网络(Rerrent Neural Network, RNN )出现于20世纪80年代,其雏形见于美国物理学家 J.J.Hopfield 于 1982 年提出的可用作联想存储器的互联网络一Hopfield 神经网络模型。卷积神经网络擅长处理大小可变的图像,而循环神经网络则对可变长度的序列数据有较强的处理能力。
循环神经网络的具体构造,如下图:
在这里插入图片描述
从公式的角度,也可以这样看,对某一个时刻,有:
在这里插入图片描述
前输出与历史输入的关系在这里插入图片描述
历史所有输出对于当前输出都有影响

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值