ElitesAI·动手学深度学习PyTorch版学习笔记-文本预处理;语言模型;循环神经网络基础

宅家中看到Datawhale的学习号召,在大牛云集的群上找到了一个很佛系的小组,战战兢兢地开始了小白的深度学习之旅。感谢Datawhale、伯禹教育、和鲸科技,感谢课程制作者、组织者、各位助教以及其他志愿者!

1 文本预处理
1.1 概念
文本处理是机器学习的一个热点和难点。这一小节主要介绍的是计算机处理文本的第一步骤–文本预处理。预处理工作相对较简单,包括读入、分词、建立字典、转换为索引序列4个步骤。即把文本从按照自然语言思维的组织形式,转换为计算机易于识别的字典索引形式。
课程以H. G. Well的Time Machine(感谢Protect.Y同学的文本分享!)为例,通过代码展示文本预处理的具体过程。
1.2 手工实现
在读入文本的阶段,可以对文件进行一些初步的处理,比如分行,去掉非文本的符号等。
代码实现了按行读入文本、使用正则表达式将一些非文本的符号替换为空格,并通过打印出行数来验证文件读取是否有效。
接下来使用split函数,通过检索空格,将句子切分成一个一个单词,并以列表形式保存下来。这一过程被叫做分词。
建立字典就是词频统计过程,用了pad、bos、eos、unk四类标签来给次做初步的分类,然后使用collections中的counter类来跟踪每个词出现的次数,并以字典的键值对形式存储下来。
现在字典已经建立,可以通过下标地址索引来查看单词和词频。
P.S.之前自己使用set来去重然后统计,这次发现了counter,方便好用多了~
1.3 现有分词工具
实际上,python中提供了很多很好的工具来实现分词,比如spaCy和NLTK。使用现有模块可以很好地解决称呼和is、not省写等问题。直接简单粗暴地将整个文本塞给相应的函数,就可以自动分词了。
P.S.使用过一个很聪明很强大的中文分词模块“jieba”,还可以切分粤语歌词,哈哈~

发布了6 篇原创文章 · 获赞 0 · 访问量 196

猜你喜欢

转载自blog.csdn.net/liuyi6111/article/details/104316002