您的位置:首页 > 理论基础 > 计算机网络

文本预处理、语言模型、循环神经网络基础 #d2l#

2020-03-05 07:14 701 查看

文本预处理

手动处理
读入分词词典 读入 分词

使用单词

split(' ')
即可,对于字母则直接
list()

库处理

spacy和NLTK

import spacy
from nltk.tokenizen import word_tokenize
语言模型

对于一段词序列w1,w2,…,wTw_1,w_2,\dots,w_Tw1​,w2​,…,wT​其概率为:
P(w1,w2,…,wT)=P(w1)P(w2∣w1)⋯P(wT∣w1w2…wT−1) P(w_1,w_2,\dots,w_T) = P(w_1)P(w_2|w_1)\cdots P(w_T|w_1w_2 \dots w_{T-1}) P(w1​,w2​,…,wT​)=P(w1​)P(w2​∣w1​)⋯P(wT​∣w1​w2​…wT−1​)
为降低处理复杂度,采用马尔可夫假设,即一个词的出现仅与前nnn个词相关,于是上式写为:
P(w1,w2,…,wT)=∏t=1TP(wt∣wt−(n−1),…,wt−1) P(w_1,w_2,\dots,w_T) = \prod_{t=1}^T P(w_t|w_{t-(n-1)},\dots,w_{t-1}) P(w1​,w2​,…,wT​)=t=1∏T​P(wt​∣wt−(n−1)​,…,wt−1​)

循环神经网络基础

H=ϕ(XWxh+bh) \bm{H} = \phi (\bm{X}\bm{W}_{xh}+b_h) H=ϕ(XWxh​+bh​)
其中ϕ\phiϕ为激活函数,H\bm{H}H为隐藏层输出。输出层输出O\bm{O}O为:
O=HWhq+bq \bm{O}=\bm{H}\bm{W}_{hq} + \bm{b}_q O=HWhq​+bq​
加入隐藏状态后。有:
Ht=ϕ(XtWxh+Ht−1Whh+bh) \bm{H}_t = \phi (\bm{X}_t \bm{W}_{xh}+\bm{H}_{t-1}\bm{W}_{hh}+\bm{b}_h) Ht​=ϕ(Xt​Wxh​+Ht−1​Whh​+bh​)
输出层得:
Ot=HtWhq+bq \bm{O}_t=\bm{H}_t\bm{W}_{hq} + \bm{b}_q Ot​=Ht​Whq​+bq​

裁剪梯度

应对梯度爆炸,使用:
min(θ∥g∥,1)g min(\frac{\bm{\theta}}{\left\|\bm{g}\right\|},1)\bm{g} min(∥g∥θ​,1)g
其中θ\bm{\theta}θ为阈值。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
weixin_45252734 发布了6 篇原创文章 · 获赞 0 · 访问量 81 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐