DataWhale 动手学深度学习PyTorch版-task2:文本预处理;语言模型;循环神经网络基础
课程引用自伯禹平台:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV
《动手学深度学习》官方网址:http://zh.gluon.ai/ ——面向中文读者的能运行、可讨论的深度学习教科书。
task2:文本预处理;语言模型;循环神经网络基础
课程详细内容在https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/jupyter/74GLt4f6G9GgtnuK_Y7SJ
#课程视频下的讨论也是精华
1、读文本行的代码,可以复用
def read_time_machine():
with open('/home/kesci/input/timemachine7163/timemachine.txt', 'r') as f:
lines = [re.sub('[^a-z]+', ' ', line.strip().lower()) for line in f]
return lines
lines = read_time_machine()
print('# sentences %d' % len(lines))
2、建立字典
#常听说的建语料库,是不是就是建字典,给标签?
#每种语言的分词应该不同
(来自讨论)用 Vocab 类实现将文本的词映射成一个索引,既然是索引那么相同的词就应该具有相同的索引,所以这里对于输入的文本还会进行一个去重的操作。此外,Vocab还想方便的获取给定某个词对应的索引,以及给定一个索引获取这个索引所对应的词。除了上面说的两个功能,还有一个就是统计了每一个词的词频。(所以练习题中的统计句子的长度就是错的,不是必须的)
代码部分主要是由几个列表的复杂操作,理解了那几行代码,应该就能完全看懂代码在干什么了。
3、RNN网络(来自课程)
![](https://img2018.cnblogs.com/common/1145695/202002/1145695-20200214200209183-287427697.png)
4、困惑度
![](https://img2018.cnblogs.com/common/1145695/202002/1145695-20200214200345526-843970718.png)