Web数据管理复习考点整理
Web数据管理复习考点整理
(临近毕业,把之前整理的一些要发没发的东西发一下,希望能对后来的朋友们有所帮助。这个考点整理是我在听了ll老师的复习课之后对照着PPT一点一点写的,考试纯背这个,最终98分)
(红色表示很重要,灰色的不太重要,标下划线的是可能考填空)
一、第一章(不考)
二、第二章 网络爬虫技术
1、爬虫的定义
爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。通俗的讲,就是通过HTML源码解析来获得想要的内容。
1.1 爬取过程
从一个或若干初始网页的URL开始,抓取HTML源代码文件并对其进行解析,从队列中抓取每个URL并重复上述过程,直到满足系统的一定停止条件。
2、操作系统中常见的DNS查询实现是阻塞式的:一次只能处理一个未完成的请求。
1.2 URL需要归一化
3、URL判重的概念
由于搜索引擎在爬取时需要访问大量的网页,因此在查找网址I是否访问过以及标记网址I已经访问时为了提高查找和访问效率通常建立一个散列表,其中存放访问过的每一个网址。散列表中通常存放网址经过散列函数后的散列值。
4、爬虫必须具有的功能
(1)礼貌性:只爬允许爬的内容。
(2)鲁棒性:能从采集器陷阱中跳出,能处理web服务器的其他恶意行为。
(3)性能和效率:充分利用不同的系统资源。
(4)分布式:可以在多台机器上分布式运行。
(5)新鲜度:对原来抓取的网页进行更新。
(6)功能可扩展性:支持多方面的功能扩展。
5、礼貌性的分类
(1)隐式的礼貌:即使web服务器没有特别的说明,也不应频繁的访问同一个网站。
(2)显式的礼貌:根据网站站长的说明,选择允许爬取的部分进行爬取。
6、鲁棒性需要面对的问题
(1)恶意的页面:垃圾页面和蜘蛛陷阱(动态生成的页面)。
(2)非恶意的页面:延时和带宽到远程服务器的情况各不相同;网站镜像和重复页面等等。
7、效率和性能中BFS和DFS的比较
(1)BFS优于DFS的情况:一般认为一个网页的首页是很重要的,因此若要在有限时间内最大程度的爬取重要的网页,则BFS更优。
(2)DFS优于BFS的情况:爬虫的分布式结构和网络通信的握手成本有关。DFS可以在特定的服务器上下载特定的网页,减少握手次数。因此如果要减少网络通信成本和优化分布式下载效率,DFS可能更优。
8、爬虫分布式带来的问题
多台服务器一起下载网页,给哈希表判重带来困难:
(1)哈希表太大,一台下载服务器存不下。
(2)每台下载服务器在开始下载前和完成下载后都要维护这张哈希表,哈希表通信成为爬虫系统的瓶颈。
9、分布式问题的解决办法
(1)明确每台下载服务器的分工,即看到某一个URL就知道交给哪台服务器去执行。
(2)批量处理,减少通信的次数。
10、爬虫新鲜度存在的问题及解决办法
问题:HTTP头部信息往往很不可靠,不能准确反映网页内容的实际更新情况。
(1)估算一个之前访问过的页面在这段时间内是否已经发生变化的概率。
(2)根据这个概率来确定抓取的优先级。
第三章 网页分析技术
0、网页分析的两种技术:正则表达式和DOM树
1、正则表达式的定义
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,来表达对字符串的一种过滤逻辑。
2、python中的正则表达式模块是re,是内置模块。
3、通用型爬虫:搜索引擎爬虫的步骤
(1)在获取数据前应尽量去除无用部分。
(2)提取网页内的链接。
(3)提取网页标题。
(4)提取网页内的文本。
4、正则表达式的优缺点
(1)优点:匹配速度快。
(2)缺点:表达能力较弱,只具有正规文法的表示能力。
特点是在对网页内容的信噪比要求不高的情况下可以是用基于正则表达式匹配的爬取程序。
5、文档对象模型(DOM)的概念
DOM将一个XML文档转换成一个对象集合,然后可以任意处理该对象模型。这一机制也成为“随机访问”协议,可以在任何时间访问数据的任何一部分,然后修改、删除或插入新数据。
6、DOM的操作方法:
DOM将HTML视为树状结构的元素,所有元素以及它们的文字和属性可以通过DOM树来操作和访问。
7、正则表达式和DOM树方法的比较
(1)正则表达式匹配
· 匹配速度快,但是表达能力较弱,只具有正规文法的表示能力。
· 在对网页内容的信噪比要求不高的情况下可以使用基于正则表达式匹配的爬取程序。
(2)DOM树
· 提取HTML DOM树在解析时速度较慢,但其表达能力相当于上下文无关文法。
· 在网页自动分类等需要进行网页去噪处理的情况时使用基于HTML DOM树的爬取程序。
8、HTML解析器是什么?有哪些?(知道一个即可)
HTML解析器将HTML标识解析为解析树。
jsoup是一款java的HTML解析器:
(1)可以直接解析某个URL地址、HTML文本内容。
(2)提供了一套省力的API。
(3)可以通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
9、美丽汤(bsoup)不是HTML解析器,美丽汤内部是用lxml来对HTML进行解析,lxml是python中的HTML解析器。
10、Bsoup的概念
(1)Bsoup是python的一个模块,是第三方库,使用之前需要安装。
(2)Bsoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。
(3)Bsoup是一个工具箱,通过解析文档为用户提供需要抓取的数据。
11、爬虫框架Scrapy的概念
Scrapy是快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
11.1 Scrapy中关于爬虫和管道的部分需要手写,其他部分均不需要。
12、Bsoup和Scrapy的区别
(1)Bsoup是页面级爬虫,是一种功能库:
· 并行性考虑不足,性能较差
· Bsoup重点在于页面下载
· Bsoup初学容易上手
· 大型开发比较麻烦,需要自己造轮子
(2)Scrapy是网站级爬虫,是一个爬虫框架:
· 并行性好,性能较高
· Scrapy重点在于爬虫结构
· Scrapy初学麻烦,但是做项目时方便。
第四章 爬虫与网站的博弈
1、六大反爬虫障碍
Robot协议、User-agent、IP屏蔽、用户登录、模拟浏览器进行交互、验证码
2、Robot协议及爬虫应对办法
Robot协议全称“网络爬虫排除标准”,网站通过Robot协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
·应对办法:当一个礼貌的爬虫访问一个站点时,首先检查该站点根目录下是否存在robots.txt,若存在,搜索机器人就会按照该文件中的内容来确定访问的范围。
3、User-agent及爬虫应对办法
User-agent是HTTP协议中的一部分,属于头域的组成部分,向访问网站提供访问者信息。UA字符串在每次浏览器HTTP请求时发送到服务器,服务器通过分析UA,根据大全过滤未知的或者指定的。
· 应对办法:篡改自己的User-agent,伪装浏览器。
4、IP屏蔽及爬虫应对办法
如果同一IP访问频繁,则对该IP进行封锁;网站限制某些IP访问,仅允许指定IP地址访问。
· 应对办法:
(1)多IP并行
(2)增大爬取时间间隔
(3)连接代理服务器
5、什么是Cookie?
Cookie是指当浏览某网站时,网站存储在用户电脑上的一个小文本文件,伴随着用户请求和页面在web服务器和浏览器之间传递。Cookie记录了用户ID、密码等信息,用于用户身份的辨别。
6、用户登录及爬虫应对办法。
用户登录的流程:第一个网页通过GET提交用户名和口令,后台接收请求,生成cookie,发给用户,用户带着cookie继续访问其他网页。
· 应对办法:python使用cookielib模块来进行cookie的相关操作,可以利用cookie模拟登录。
7、模拟浏览器进行交互及爬虫应对策略
交互包括登录、键盘动作、鼠标动作等。
· 应对办法:使用web自动化工具selenium,可以模拟交互。
8、验证码及爬虫应对策略
验证码的交互内容是无法提前预知的,包括识别图像文本并输入以及图片滑动验证码。
· 应对办法:
(1)通过selenium获取屏幕截图。
(2)对原图片进行截取得到只含有验证码的图片。
(3)获取图片中文字内容:使用OCR技术将图像中的文字转换为文本格式。
9、python中的OCR模块:Tesseract。
第五章 数据抽取与包装器
1、页面模板的定义
页面模板T=<C,L,S>,包含了一些共同的页面内容C、严格定义的格式L和既定的页面数据模式S。
C包含了导航、版权声明等不变的内容;L包含了页面数据的格式规范;S则是能够从页面数据中观察到的模式。
2、web数据抽取的定义
给定页面集合W={wi},它通过页面模板T生成,包含数据D={di},即W={wi|wi=T(di)}。Web数据抽取定义为通过一定的技术手段,从W中逆向推导出T,还原数据D。
3、web数据抽取的基本前提和目的
Web数据抽取的基本前提是包含数据的页面是通过页面模板生成的。
Web数据抽取的目的是获得页面中的数据,需要借助一个或多个页面逆向推导出页面模板T。
4、什么是包装器?
包装器是一种软件过程,使用已经定义好的信息抽取规则,将网络中Web页面的信息数据抽取出来,转换为用特定格式描述的语言。
5、包装器的三种类别
从自动化的程度区分,包装器分为:
(1)人工抽取:人工分析出页面模板。
(2)半自动抽取:计算机应用页面模板抽取数据生成具体包装器,而页面模板的分析仍然需要人工参与。
(3)自动抽取:很少或不需要人工参与。
6、Web数据抽取的评价标准
(1)机器学习相关的评价标准
对某个测试参考集,对应的相关数据集合为R,假设用某个检索策略进行处理后,得到一个结果集合A,Ra表示R与A的交集。
· 召回率:也叫查全率,指抽取到的正确结果与要抽取页面的全部结果的比,即
Recall = |Ra|/|R|
· 准确率:也叫查准率,指抽到的正确结果与抽取到的全部结果的比。即
Precision=|Ra|/|A|
· F值:召回率R和查准率P的加权调和平均值。
(2)Web数据抽取中专门的评价指标
· 准确程度(查准率、查全率、F1)
· 抽取自动化程度:衡量用户在抽取过程中的参与程度。
· 适应性:在页面内容发生较小变化的情况下,该抽取方法具有自适应能力。
· 修正率:需要手工调整使得准确率和召回率达到100%的Web数据库数量。
7、包装器的核心是抽取规则,有哪两种抽取规则?
(1)基于分界符的规则(re)
(2)基于树路径的规则(DOM树)
7.1 为什么不直接用re和DOM?
因为包装器不止能够处理HTML,因此它是对re和DOM更高的抽象。
8、基于分界符的规则
将HTML文档看作字符流,给出数据项的起始和结束分界符,将其中的数据抽取出来。
9、基于树路径的规则
将文档看作一个树节点。所抽取的数据存储在树节点中,因而可根据其路径来定位。
(1)首先根据HTML标签将文档分析成树结构,如DOM树。
(2)然后通过规则中的路径在树种搜索相应的节点。
(3)最终得到所需数据。
10、包装器和爬虫软件的不同
包装器是一个能够将数据从HTML网页中抽取出来,并将它们还原为结构化的数据的软件程序,包装器分为手工、半自动和自动抽取。爬虫只是包装器的一种,属于手工抽取方法。
第六章 包装器页面抽取方法(只考填空)
1、页面分为哪四种类型?
按照页面内数据组织形式的不同,分为单记录页面和多记录页面;按照页面承载内容的不同,分为数据型页面(结构化)和文档型页面(半结构化)。两者组合起来共有四种页面类型:
(1)多记录数据型页面
(2)单记录数据型页面
(3)单记录文档型页面
(4)多记录文档型页面
2、数据记录抽取的定义
在网页中,一个数据记录对应着现实世界的一个实体。如果把一个网页解析成DOM树结构,一个数据记录则对应着一棵子树或多棵相邻的子树。数据记录抽取就是找出包含数据记录的这些子树。
3、多记录数据型页面抽取的步骤
(1)确定数据区域:DOM树对比算法
(2)计算数据记录的边界:回溯算法(技术要点:假设每一个记录里面都有关键字)
(3)抽取数据项:数据项分为模板项和数据值
4、语义块的概念
HTML文档的一个片段,如果它的内容满足模式定义,即为一个语义块。
5、最小语义块:一个语义块可能会包含若干子语义块,把不能进一步划分的语义块称为最小语义块。
6、最小语义块是在包装器的生成和维护中最基本的抽取单位。
7、单记录数据型页面的抽取方法:增量式抽取
增量式抽取是一种连续性数据抽取,即从多个连续页面中抽取相同结构的记录,以增量方式推导网页模板。
8、部分树对齐算法:一种增量式抽取方法,用树的结构来找到共同的模板。
9、部分树对齐算法具备循环迭代特性。
10、单记录文档型页面的三种抽取方法
(1)结合视觉信息的抽取方法
(2)抽取路径的匹配学习
(3)改进的自适应数据抽取方法
11、结合视觉信息的抽取方法
利用文档数据在网页中所占比例来找文本块,正文的文本块是页面中最大的文本数据块。
12、抽取路径的匹配学习
将抽取路径和数据库中的抽取路径记录对比,若路径相似,则认为此次抽取数据块即为所需要的正文内容。
13、改进的自适应数据抽取方法
是一个决策过程,在结合视觉信息的抽取方法和抽取路径学习之间做选择。
13.1 在做完决策之后的改善:
如果选择的是抽取路径的学习方法,则说明该路径正确性高,对应的权重要增加;如果选择的是基于视觉的方法,则需要将这条新路径加到数据库中。
14、改进的自适应数据抽取方法是一种基于贝叶斯决策的方法。
第七章 Web数据存储与应用
1、Web上爬取的数据分为结构化数据和非结构化数据。
2、结构化的文件包括CSV文件、JSON文件、XML文件、EXCEL文件、pickle文件。
3、CSV文件是以逗号间隔的文本文件。
4、CSV文件的优点
(1)被EXCEL和很多的应用程序支持。
(2)用来做数据存储容量小。
(3)很多数据集采用格式。
5、JSON是轻量级的文本数据交换格式。
6、JSON是存储和交换文本信息的语法,类似XML。
7、在JSON中,有两种结构:对象和数组。
8、JSON最常用的格式是对象的键值对。
9、JSON在数据交换中起到载体的作用,承载相互传递的数据。
10、XML文件用来存储、携带、交换数据,不是用来显示数据的。
11、XML是一种半结构化集成数据。
12、EXCEL文件是一种二进制文件。
13、python中使用xlrd和xlwd分别对EXCEL文件进行读写。
14、pickle文件是Python二进制序列化格式,用于序列化和反序列化python对象结构。
15、pickle协议和JSON的区别
(1)JSON是一种文本序列化格式,而pickle是二进制序列化格式。
(2)JSON是人类可读的,而pickle则不是。
(3)JSON是可互操作的,并且在Python生态系统之外广泛使用,而pickle特定于python。
16、数据库分为关系型数据库和非关系型数据库。
17、向量数据库是一种非关系型数据库。
18、特征是在观测现象中的一种独立、可测量的属性。
19、归一化:把数据特征转换为相同尺度的方法。
20、归一化的方法:
(1)min-max normalization
(2)平均归一化
(3)非线性归一化
(4)Sigmoid型函数等都可以将不同尺度特征挤压到一个比较受限的区间。
21、标准化:将每一个维特征都调整为均值为0,方差为1。
22、归一化和标准化的比较
相同点:
(1)都能取消由于量纲不同引起的误差。
(2)都是一种线性变换。
(3)都是对向量进行平移。
区别:
(1)归一化将样本的特征值转换到同一量纲下;标准化依照特征的均值和标准差,将数据转换成标准正态分布
(2)归一化将数据映射到(0,1)或(-1,1),仅由变量的极值决定;标准化通过求取特征的均值和标准差进行。
(3)归一化因区间放缩线性变换;标准化和整体数据分布有关,所有数据点都能对标准化产生影响。
23、归一化和标准化之间的选择
(1)如果对输出结果的范围有要求,则用归一化。
(2)如果数据较为稳定,不存在极端的最大最小值,则用归一化。
(3)如果数据存在噪音,用标准化可以减小异常值和极端值的影响。
24、为什么要归一化或标准化?
(1)某些模型求解需要。例如可以加快梯度下降的求解速度。
(2)无量纲化。不同量纲会导致数值差异过大。
(3)避免数值问题。太大的数值会给计算造成困难。
25、哪些模型必须归一化或标准化?
(1)不同模型对特征的分布假设不同。如SVM用高斯核时,所有维度共用一个方差,而决策树则各个维度各算各的。
(2)需要度量距离的模型。如KNN。
(3)神经网络。通常用批量归一化。
26、什么是白化?
白化用于消除不同特征之间的相关性,降低输入数据特征之间的冗余性。输入数据经过白化处理之后,特征之间相关性较低,并且所有特征具有相同的方差。
27、白化的一个主要实现方式是PCA方法。
28、PCA过程中要求每一个维度正交,因此PCA方法可以去掉相关性。
29、结构化数据分为离散值和连续性数值。
30、连续特征是否需要离散化的原则
模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型”同“少量连续特征+复杂模型”的权衡。
(1)可以离散化用线性模型:折腾特征。
(2)可以用连续特征加深度学习:折腾模型。
31、离散值的两种处理方式:
(1)One-Hot编码:离散表示,高维
(2)Hash编码:分布式表示,低维
32、One-hot编码将离散特征的取值扩展到了欧氏空间。
33、连续特征离散化的好处/原因?
(1)逻辑回归属于广义线性模型,表达能力受限。
(2)离散化后可以进行特征交叉。
(3)特征离散化后,模型会更加稳定。
(4)离散化的特征对于异常数据有很强的鲁棒性。
34、连续数值离散化的难点在于如何划分间隔,在离散化的过程中会出现边界问题。
35、有一类机器学习模型可以解决边界问题:决策树家族,如GBDT。(除了ID3)
第八章 文本预处理
1、文本预处理的步骤
(1)文档解析:移除不需要的格式。
(2)句子分割:将文档拆分成句子。
(3)分词:将句子拆分成单词。
(4)词规范化:将单词转换为规范形式。
(5)去停用词:删除不需要的词。
2、分词/词条化的定义
词条化是将给定的字符序列拆分成一系列子序列的过程。其中每一个子序列称为一个词条Token。
3、词规范化的步骤/方法?
(1)归一化
(2)词干还原
(3)词形合并
4、中文分词方法有哪三种?
(1)基于理解的分词方法
(2)基于字符串匹配的分词方法
(3)基于统计的分词方法
5、基于字符串匹配的分词方法
查字典法:按照一定策略将待分析的汉字串与一个“词典”中的词条进行匹配,如果匹配成功,那么该汉字串就是一个词,遇到不认识的字串就分割成单字词。
6、基于字符串匹配的分词方法的策略:
(1)按照扫描方向:正向匹配和逆向匹配
(2)按照扫描长度:最大匹配和最小匹配
(3)最少切分(使每一句中切出的词数最小)
7、基于字符串匹配的分词方法的优缺点
优点:
(1)程序简单易行,开发周期短。
(2)仅需要很少的语言资源。
(3)不需要任何词法、句法、语义资源。
(4)可以自定义词库,增加新词。
缺点:
(1)Out of Vocabulary
(2)歧义消解能力差
(3)切分正确率不高
8、基于统计的分词方法
(1)假设如果相连的字在文本中出现的次数越多,就证明这相连的字很可能就是一个词。
(2)思想:用字与字相邻出现的频率来反应成词的可靠度,统计语料中相邻出现的各个字的组合的频度,当组合频度高于某一临界值时,便可认为此字组可能构成一个词语。
9、基于统计的分词方法的优缺点
优点:
(1)分词准确度高
(2)不需要切分字典
(3)能够平衡的看待词表词和未登录词的识别问题。
缺点:
(1)会经常抽出一些共现频度高、但不是词的常用字组。
(2)对常用词的识别精度差,时空开销大。
(3)学习算法的复杂度往往较高。
10、隐马尔科夫模型(HMM)的定义
(1)HMM是经典的机器学习模型,用来描述一个含有隐含未知参数的马尔可夫过程。
(2)HMM是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列。
11、HMM的模型描述(定义)
HMM模型是一个五元组:
(1)状态值集合Q
(2)观察值集合V
(3)转移概率矩阵A
(4)发射概率矩阵B
(5)初始状态分布
12、HMM的三要素:
13、HMM的三个基本问题
14、HMM模型概率计算问题的算法:Forward前向算法和backward后向算法。
15、HMM模型学习问题的算法:监督学习算法(基于统计)和非监督学习算法(Baum-Welch算法)
16、HMM模型的应用
(1)将HMM模型的学习问题和概率计算问题结合起来可以用于入侵检测。
(2)将HMM模型的学习问题和预测问题结合起来可以用于中文分词或命名实体识别。
17、HMM分词利用的是Viterbi算法:输入是观察值集合,输出是状态值集合。
18、Viterbi算法
Viterbi算法是一种动态规划算法,在HMM模型中,用动态规划解概率最大路径,一个路径对应一个状态序列,用于寻找最有可能产生观测事件序列的维特比路径-隐含状态序列。
19、命名实体识别(NER)和中文分词的区别:数据集的标注不同。
20、常见的中文分词工具:IKAnalyzer。
第九章 文本表示
1、文本向量化的原因?
文本数据往往是非结构化的数据,而机器学习算法无法直接处理这样的数据,必须把文本数据向量化。
2、文本向量化的概念
文本向量化就是将文本信息数值化,从而便于进行建模分析。
3、预处理的结果分为两类(差别在于是否关注词的顺序):
(1)词条集合:词袋模型
(2)词条序列:语言模型
4、词袋模型的概念
假定对于给定文本,忽略单词出现的顺序和语法等因素,将其视为词汇的简单集合,文档中对于每个单词的出现属于独立关系,不依赖于其他单词。
4.1 词袋模型按照字母顺序排列。
5、文本向量化有两种表示方法
(1)离散表示(高维):词袋模型,one-hot和TF-IDF
(2)分布式表示(降维):词嵌入,经典模型是word2vector
6、Gensim是一个自然语言处理的Python库,开源的第三方python工具包,用于从原始的非结构化文本中,无监督地学习到文本隐藏的主题向量表达。
6.1 Gensim可以帮助实现LSA,PLSA,LDA。
7、潜在语义分析模型LSA
使用统计计算的方法对大量的文本集进行分析,从而提取出词与词之间潜在的语义结构,并用这种潜在的语义结构,来表示词和文本,达到消除词之间的相关性和简化文本向量实现降维的目的。
8、LSA的基本步骤
(1)建立词频矩阵
(2)计算词频矩阵的奇异值分解
(3)对于每一个文档d,用排除了SVD中消除后的词的新的向量替换原有的向量。
(4)用转换后的文档索引和相似度计算。
9、LSA最后将每个文档由3维向量表示出来。
10、LSA的优缺点
优点:
(1)文章和词都映射到同一个语义空间。
(2)语义空间的维度明显少于源单词-文章矩阵。
缺点:
(1)最大的缺点:矩阵里假设的分布是高斯分布,但是文本的分布不是高斯分布。
(2)无法解决多义词的问题。
(3)特征向量的方向没有对应的物理解释。
(4)SVD计算复杂度高。
11、概率潜在语义分析模型PLSA
PLSA以统计学的角度来看待LSA,LSA以共现表的奇异值分解的形式表现的,考虑到word和doc共现形式,PLSA基于多项式分布和条件分布的混合来建模共现的概率。
12、PLSA模型的训练(采用EM算法估计多项式分布的参数)
(1)输入:大量已知的文档-词项信息p(w|d),即文档中单词出现的概率。
(2)输出:文档-主题P(z|d)和主题-词项p(w|z),需要估计这两组分布的参数。
13、PLSA的应用:文档向量化。
14、PLSA的优缺点
优点:
(1)定义了概率模型,每个变量及相应分布都有明确的物理解释。
(2)PLSA隐含的分布假设更符合文本特性。
缺点:
(1)最大的缺点:假设的每一个分布都是固定,不符合贝叶斯学派的说法。
(2)随着doc和term增多,PLSA模型也线性增加,变得庞大。
(3)PLSA可以生成其所在数据集的文档的模型,但不能生成新文档的模型。
(4)EM算法需要反复迭代,计算量大。
15、LDA主题模型
LDA隐含潜在狄利克雷分布。LDA和PLSA在思想上一致,多了两部分内容:
(1)增加了狄利克雷先验分布
(2)多了全贝叶斯化
16、PLSA和LDA都是为了文档的向量化,且是向量化中的分布式向量化,且是在词袋模型下的向量化。
第十章 语言模型
1、(统计)语言模型的概念
对单词序列上的概率分布进行描述的模型
2、统计语言模型的公式
P(S) =P(ω1)•P(ω2|ω1)•P(ω3|ω1,ω2)•••P(ωn|ω1,ω2,…,ωn-1)
解释:
· S:由一连串特定顺序排列的词w1,w2,…,wn组成的一个有意义的句子。
· P(S):S在文本中出现的可能性,P(S)=P(w1,w2,…,wn)
· S的概率等于每一个词出现的概率相乘。
· 统计语言模型的参数就是公式右边中每一个词出现的概率,都可以通过统计方法获得。
3、统计语言模型训练过程中存在的两个问题
(1)要求的概率太多,因为w1,w2,…,wn的组合太多。(可用n-gram解决)
(2)可能出现0概率问题。
4、出现0概率问题的原因是什么?
由于语料的数量有限,数据中可能不存在w1,w2,…,wn的组合,导致求得的条件概率为0。
5、有哪两种方法可以解决0概率问题?
(1)平滑技术
(2)神经网络语言模型
6、n-gram模型(N-1阶马尔可夫假设)
n-gram模型假定文本中每个词wi和前面的N-1个词有关,而与更前面的词无关。
7、n-gram模型中n值取大或取小时的差异
n取得较大时:
(1)提供了更多的语境信息,语境更具区别性。
(2)参数个数多、计算代价大、训练语料需要多、参数估计不可靠
n取得较小时:
(1)语境信息少,不具区别性
(2)参数个数少、计算代价小、训练语料无需太多、参数估计可靠
8、语言模型的应用
拼写纠错、语音识别、音字转换
9、n-gram模型的优缺点
优点:简单有效
缺点:
(1)只考虑了词的位置关系,未考虑词之间的相似度,词语法和语义。
(2)依旧存在数据稀疏问题(0概率问题)
10、神经网络语言模型的优点
(1)能够建模更远的依赖关系
(2)能够建模出词之间的相似度
(3)泛化能力强(解决0概率)
11、有哪些神经网络语言模型?
NNLM和word2vector
12、NNLM:通过神经网络估计n-gram中概率的框架。
13、NNLM模型的原理
(1)数据
· 训练数据集D:一系列长度为n的文本序列组成。
· 词典:词典维数V
(2)模型输入
· 前n-1个词(one-hot表示)
(3)模型输出
· 用前n-1个词预测第n个词是什么
· 输出V个最大的概率
14、NNLM模型使用了低维紧凑的词向量对上文进行表示,NNLM是一种更好的n元语言模型
15、NNLM解决了传统n-gram的两个缺陷
(1)词语之间的相似度通过词向量来体现。
(2)NNLM自带平滑功能,可解决0概率问题。
16、NNLM的缺点:训练速度太慢
17、有哪几种大语言模型?
BERT模型:采用Transformer框架,使用Attention机制。
GPT系列模型
18、大语言模型应该怎么用?
(1)直接应用于下流任务
(2)在具体任务上进行微调之后再使用
19、预训练语言模型
(1)通过在大量文本数据上进行训练,以学习语言的通用规则和结构。
(2)在无监督的环境下进行预训练。
(3)预训练好的模型可以根据具体任务进行微调。
第十一章 词嵌入和文档嵌入
1、什么叫做词嵌入?
词嵌入的主要工作是词向量化,将词转为二进制或高维实数向量。
2、文本向量化有哪两种表示?
离散式(one-hot)和分布式(词嵌入)
3、文档向量化分为one-hot表示和分布式表示:
(1)one-hot表示:一个词一个值
(2)分布式表示
· 文档主题模型(如LDA):捕捉文档中的主题分布来生成文档表示。
· 层次化模型(如DoctVec):扩展了word2vec,可以生成整个文档的向量表示。
4、word2vec使用的模型有哪两个?
连续词袋模型CBOW和Skip-gram模型
5、CBOW模型的概念(详细)
对原始的NNLM模型做如下改造:
(1)移除前向反馈神经网络中非线性的隐藏层,直接将中间层的embedding layer与输出层的softmax layer连接。
(2)忽略上下文环境的序列信息:输入的所有词向量汇总到同一个embedding layer。
(3)将future words纳入上下文环境。
得到的模型称之为CBOW模型。
5.1 要求掌握下面这个图:
6、CBOW模型的概念(简述)
从数学上看,CBOW模型等价于一个词袋模型的向量乘以一个embedding矩阵,从而得到一个连续的embedding向量。
7、CBOW模型和Skip-gram模型的比较
(1)CBOW是根据某个词前面C个词或者前后C个连续的词,来计算某个词出现的概率。
(2)Skip-gram相反,是根据某个词,然后分别计算它前后出现某几个词的概率。
8、连续词袋模型CBOW的训练过程
(1)模型输入:上下文的One-hot表示
· 1×V的向量,V是词汇表的大小
(2)输入分别跟同一个V×N的大小的系数矩阵W1相乘得到C个1×N的隐藏层hidden layer。
(3)再将C个隐藏层取平均值,最终算作一个隐藏层。
(4)隐藏层与另一个N×V大小的系数矩阵W2相乘得到1×V的输出层,输出层的每个元素代表的就是词库中每个词的事后概率。
(5)输出层需要跟ground truth的one-hot形式做比较计算Loss。
(6)通过大量的数据迭代,使用梯度下降更新W1和W2,来最小化Loss函数。
(7)训练结束后的W1就是词向量的矩阵,任何一个单词的one-hot表示乘以这个矩阵W1就可以得到其词向量的表示。
9、Skip-gram模型
(1)Skip-gram模型的训练数据是中心词和上下文词的词对,每个单词用两个向量表示。关注这两个向量相乘起来是正样本还是负样本。
(2)两种优化策略:层次化softmax和负采样。
10、负采样
负采样是一种加快训练速度的方法。不直接让模型从整个词表中找最可能的词,而是直接给定这个词和几个随机采样的噪声词,只要模型能够从这里面找出正确的词即可。
11、层次化softmax
主要思想是通过构建一个霍夫曼树加速Softmax计算,每个词汇表中的词都是一个叶子节点,内部节点用于决策。计算一个词的概率只需沿着树的路径进行一系列二元决策。
12、word2vec的输出结果具有以下两方面的意义:
(1)反映词向量之间的语义相似度。
(2)能够展示词向量的语义类比和支持一些线性语义运算。
13、word2vec的模型训练:Python语言平台Gensim。Gensim支持包括TF-IDF、LSA、LDA和word2vec在内的多种主题模型算法。
14、Doc2Vec模型的思想
Doc2Vec不仅学习单词的向量,还学习文本的向量表示,能够使一个变长的句子、段落或文档表示为一个定长向量的算法。
15、Gensim中有Word2Vec和Doc2Vec模块。
16、Glove模型
Glove对word2vec进行了改进,能够利用语料库的全局信息。
17、Glove训练时从共现矩阵中随机采集一批非零词对作为一个min-batch的训练数据。
18、Glove和word2vec的区别
(1)Glove和word2vec都根据词汇的共现信息,将词汇编码成一个向量。
(2)word2vec是基于预测的模型,通过预测词与上下文的关系来学习词向量,而Glove是基于计数的模型,通过词对共现矩阵来学习词向量。
(3)Glove更容易并行化,所以对于较大的训练数据,Glove更快。
19、词向量表示方法的总结图:
(1)左侧框中是词向量的离散表示(高维),右侧框中是词向量的分布式表示(低维)。
(2)浅色蓝表示基于词袋模型,黄色表示基于语言模型。
给定一个模型,要知道它是离散表示还是分布式表示,是基于词袋模型还是基于语言模型。例如word2vec是对词向量的分布式表示,是基于语言模型。
第十二章 文本分类
1、文本分类的两个步骤(或两大基础结构)
(1)特征表示
(2)分类模型
2、FastText是一个词向量计算和文本分类工具。
3、FastText的创新点
根据语言学的结构来进行词向量的构造,利用子词嵌入技术,通过子词来表示词向量,使FastText能够更好的处理低频词和未见过的词。
4、FastText基于Word2Vec的Skip-gram模型。
5、TextCNN使用CNN对文本进行特征提取,使用一维卷积,完成文本分类。
第十三章 Web图像数据
0、图像都是位图(我们讨论的图像)
1、web图像数据有哪三种特征?
颜色特征、纹理特征和形状特征
2、颜色特征是基于位图图像的颜色特征,颜色特征有RGB色彩空间。
3、RGB对应红绿蓝三种原色光,三种基色中的每一种都有一个0~255的值。
4、所有基色相加形成白色,所有基色的值都为0时得到黑色。
5、颜色特征分为两种:颜色直方图和颜色矩。
5.1 这两种特征都是全局特征
6、颜色直方图
颜色直方图是最简单也是最常用的颜色特征,核心思想是在色彩空间中采用一定的量化方法对颜色进行量化,然后统计每一个量化通道在整幅图像中所占的比重。
7、颜色直方图的建立过程
(1)选择颜色空间,如RGB。
(2)对颜色空间进行量化。
(3)计算直方图。
(4)选择直方图距离函数和相似度计算公式。
8、OpenCV是一个计算机视觉库,里面提供了计算图像直方图的API函数。
9、OpenCV计算两个直方图的相似度:compareHist()函数
该函数有四种比较方法:
(1)相关性比较
(2)卡方比较
(3)十字交叉性
(4)巴氏距离
10、颜色直方图的优缺点
优点:
(1)具有平移、尺度、旋转不变性。
(2)特别适合描述难以进行自动分割的图像。
(3)任何一副图像都能唯一给出一副与它对应的直方图。
缺点:不同的图像可能具有相同的颜色分布。
11、颜色矩
颜色矩的基本思想是在颜色直方图的基础上计算出每个颜色的矩估计,用矩估计的统计量替代颜色的分布来表示颜色特征。
12、颜色信息主要分布于低阶矩中:
(1)一阶矩:均值
(2)二阶矩:方差
(3)三阶矩:斜度
13、颜色矩的优点
(1)不需要颜色空间量化,特征向量维数低。
(2)常和其他特征结合。
14、局部二值模式LBP(局部特征)
LBP结合了纹理图像结构和像素统计关系的纹理特征描述方法,是一种有效的纹理描述算子。
15、LBP的优点:
(1)对光照具有不变性。
(2)具有旋转不变性。
(3)灰度不变性。
16、LBP的计算
(1)LBP算子定义在33的窗口内
(2)以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0.
(3)33邻域内的8个点经比较可以产生8位二进制数,即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。
17、LBP算子在每个像素点都可以得到一个LBP编码。
18、对于一副图像,提取其原始的LBP算子之后,得到的原始LBP特征依然是一幅图片(记录的是每个像素点的LBP值)。
19、LBP的应用
LBP在应用中,一般不将LBP图谱作为特征向量用于分类识别,而是采用LBP特征谱的统计直方图作为特征向量用于分类识别,如纹理分类和人脸分析。
20、HOG特征(局部特征)
HOG全称是方向梯度直方图,是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,通过计算和统计图像局部区域的梯度方向直方图来构成特征。
21、HOG特征提取算法的步骤
(1)灰度化:将图像看作一个x,y,z(灰度)的三维图像。
(2)采用Gamma校正法对输入图像进行颜色空间的标准化。
(3)计算图像每个像素的梯度,包括大小和方向。
(4)将图像划分成小cells。
(5)统计每个cell的梯度直方图。
(6)将每几个cell组成一个block。
(7)将图像内的所有block的HOG特征descriptor串联起来即可得到该图像的HOG特征descriptor了。
22、为什么要将每几个cell组成一个block?
因为需要在迭代的过程中有特征的重叠。
23、HOG特征的优点
(1)HOG特征是在图像的局部方格单元上操作,所以它对图像几何和光学的形变都能保持很好的不变性。
(2)在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,行人的细微动作可以被忽略而不影响检测效果,因此HOG特征特别适合于做图像中的人体检测。
24、SIFT特征(局部特征)
SIFT全称是尺度不变特征转换,是一种检测局部特征的算法,在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。
25、SIFT算法的四个步骤
(1)建立尺度空间,即建立高斯差分金字塔。
(2)在尺度空间中检测极值点,并进行定位和筛选。
(3)特征点方向赋值。
(4)计算特征描述子。
26、SIFT特征的优缺点
优点:
(1)SIFT特征具有尺度不变性。
(2)即使改变旋转角度、图像亮度或拍摄视角,依然可以得到好的检测效果。
缺点:
(1)相对来说实时性还不够高。
(2)有时特征点较少。
(3)对边缘光滑的目标无法准确提取特征点。