深度学习(Deep Learning,DL)是机器学习(Machine Learning,ML)领域中的一个研究方向,作用是帮助机器学习项目更接近于人工智能(Artificial Intelligence)。
深度学习主要是学习样本数据的内在规律和表示层次,学习过程中获得的信息对诸如文字、图像和声音等数据的解释很有帮助。深度学习的最终目标是让机器能够像人一样具备分析能力,可以自动识别文字、图像和声音等数据。
深度学习是一个复杂的机器学习算法,目前在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其他相关领域都取得了令人瞩目的成果。深度学习解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
-
深度学习的基本步骤
1.1 第一步:数据的准备
要进行深度学习的第一步也是最重要的一步,就是数据的准备。数据的来源多种多样,既有不同类型的数据集,也有根据项目需求由项目组自行准备的数据集。本例中笔者准备一份酒店评论的数据集,形式如图 1.4 所示。
这里由逗号将一个文本分成两部分,分别是情感分类和评价主体。其中标记为数字 “1”的是正面评论,标记为数字“0”的是负面评论。
1.2 第二步:数据的处理
我们遇到的第一个问题就是数据的处理。对于计算机来说,直接的文本文字是计算机所不能理解的,因此一个最简单的办法是将文字转化成数字符号进行替代,之后对每个数字生成一个独一无二的“指纹”,也就是“词嵌入(Word Embedding)”。在这里读者只需要将其理解成使用一个“指纹”来替代汉字字符。代码处理如下:
(1)创建 3 个“容器”,对切分出的字符进行存储。
labels = [] #用于存储情感分类,形如[1,1,1,0,0,0,1]
vocab = set() #set 类型,用以存放不重复的字符
context = [] #存放文本列表
(2)读取字符和文本。
with open("ChnSentiCorp.txt",mode="r",encoding="UTF-8") as emotion_file:
for line in emotion_file.readlines(): #读取 txt 文件
line = line.strip().split(",") #将每行数据以“,”进行分隔
labels.append(int(line[0])) #读取分类 label
text = line[1] #获取每行的文本
context.append(text) #存储文本内容
for char in text:vocab.add(char) #将字符依次读取到字库中,确保不产生重复
(3)读取字符并获得字符的长度。
voacb_list = list(sorted(vocab)) #将 set 类型的字库排序并转化成 list 格式
print(len(voacb_list)) #打印字符的个数:3508
(4)将文本