(1)收集语料库
(2)清洗数据
eg:删除所有不相关的字符,例如非字母数字字母
(3)分词
英文:词性还原(does转为do);词干提取(cities转为city)
中文:粒度(中国科学技术大学、中国\科学技术\大学)
中文难度更高,没有统一的标准、歧义词难以区分、新词难以识别
常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。其中典型的代表就是jieba分词,一个热门的多语言中文分词包。
(4)标准化
标准化是为了给后续的处理提供一些必要的基础数据,包括:去掉停用词、二次采样、词汇表等等。
去掉停用词:删除and 、is、a等词的过程。
二次采样:每个词有一定概率会被丢弃,越高频的词被丢弃的概率越大(eg:the、a、in)
词汇表:是为语料库建立一个所有不重复词的列表,每个词对应一个索引值,并索引值不可以改变。
(5)特征提取
将原始数据提取为具体特征(已被整理可直接使用),主要是两种:统计和embedding。
(1)将词转化为一个向量,eg:One-Hot编码。但是由于非常稀疏,且缺少语义信息,所以才有word2vec
比如:我、爱、自然、语言、处理
转化为:
我: [1, 0, 0, 0, 0]
爱: [0, 1, 0, 0, 0]
自然:[0, 0, 1, 0, 0]
语言:[0, 0, 0, 1, 0]
处理:[0, 0, 0, 0, 1]
(2)提取中心词和背景词。在word2vec中使用。
在整数1和max_window_size(最大背景窗口)之间随机均匀采样一个整数作为背景窗口大小。
(6)负采样或softmax来近似训练。在word2vec中使用。
降低生成给定词汇条件概率的复杂程度。
(7)读取数据集
随机小批量进行读取(从数据集中提取所有中心词, 以及每个中心词对应的背景词和噪声词)
引用:(173条消息) [深度学习] 自然语言处理 --- NLP入门指南_不算晚的晴天的博客-CSDN博客
动手学深度学习 李沐