SDU-2025年-Web数据管理期末总结
考试题型
- 填空 :都来自于PPT中
- 名词解释
- 简答题:需要背一些公式。
根据L老师上课提及的重点一共总结了87问题。
文章目录
- SDU-2025年-Web数据管理期末总结
- 考试题型
- 第1讲 绪论
- 此章不考
- 第2讲 网络爬虫技术
- 2.1 爬虫是什么?
- 2.2 爬虫过程是怎么样的?
- 2.3 什么是URL规范化(normalization)?
- 2.4 什么是文档指纹(FP)?
- 2.5 什么是Simhash算法?
- 2.6 如何进行URL判重?
- 2.7 爬虫必须具有什么功能?
- 2.8 下面的Robot.txt协议片段是什么意思?
- 2.9 为了保持爬虫的Robust需要应对那些挑战?
- 2.10 对于多线程(分布式)的URL frontier有什么要求?
- 2.11 分布式爬虫会带来什么问题?如何解决?
- 第3讲 网页分析技术
- 3.1 什么是正则表达式?
- 3.2 正则匹配有什么特点?
- 3.3 什么是DOM?
- 3.4 正则匹配和基于DOM树的方法有什么异同?
- 3.5 什么是HTML解析器?
- 3.6 什么是Scrapy框架?
- 第4讲 爬虫与网站的博弈
- 4.1后端反爬策略以及应对措施有哪些?
- 4.2 前端反爬策略以及应对措施有哪些?
- 4.3高级反爬策略以及应对措施有哪些?
- 第5讲 数据抽取与包装器
- 5.1 什么是页面模板?有什么用?
- 5.2 什么是Web数据抽取?
- 5.3 什么是包装器(Wrapper)?
- 5.4 抽取规则有哪几种?
- 5.5 包装器有哪几种?
- 5.6 如何评价某次Web数据抽取?
- 5.7 给定条件,如何求准确率和召回率?
- 第6讲 包装器页面抽取方法
- 6.1 网页可以如何分类?
- 6.2 请论述如何对多记录数据型页面如何进行抽取?
- 6.2.1 十大抽取规则速查表
- 6.2.2 关键方法词汇解释
- 6.3 简要论述单记录数据型页面抽取方法
- 6.4 简要论述单记录文档型页面抽取方法
- 6.5 如何识别出单文档型页面中正文数据块?
- 第7讲 Web数据存储
- 7.1 爬虫的数据该如何存储
- 7.2 Scrapy支持什么数据格式?
- 7.3 各种类型数据该存储什么类型数据库?
- 第8讲 Web数据预处理
- 8.1 Sklearn包如何进行预处理?
- 8.2 为什么并且如何进行归一化?
- 8.3 如何进行标准化?请写出公式
- 8.3 归一化和标准化有什么区别?
- 8.4 如何选择归一化和标准化?
- 8.5 对于连续值和离散值分别有什么处理方式?
- 8.5 如何自动离散化连续值?
- 8.6 简述一种基于决策树的离散化方法
- 8.7 简述决策树的优缺点
- 8.8 简述三种Encoding方法
- 8.9 什么是特征工程中的白化?给出一种白化方法
- 第9讲 文本预处理
- 9.1 简单介绍中文分词的三种方法
- 9.2 分析这三种方法的优缺点
- 9.3 给出HMM的定义。
- (S, V, A, B, π):HMM五元组定义
- (A, B, π)=λ :模型三要素
- 9.4 HMM能解决哪些基本问题?
- 9.5 如何使用HMM解决中文分词问题?
- 9.6 维特比(Viterbi)算法是什么?
- 第10讲 文本表示
- 10.1 什么是文本表示?文本预处理和文本向量化有什么区别?
- 10.2 什么是词包模型?给出一种离散表示文本的方式。
- 10.3 什么是分布式表示文本?有哪些实现方式?
- 10.4 什么是主题模型?主题模型有什么作用?
- 10.5 什么是PLSA主题模型?
- 10.6 什么是LDA主题模型?
- 10.7 什么是Simhash算法
- 1. 分词
- 2. 哈希
- 3. 加权
- 4. 合并
- 5. 降维
- 第11讲 语言模型
- 11.1 什么是统计语言模型(LMs)?
- 11.2 给出统计语言模型训练的两种方法,并比较优势。
- 11.3 什么是零概率问题?如何解决?
- 第12讲 词嵌入和文档嵌入
- 12.1 什么是词嵌入(word Embedding)?
- 12.2 什么是连续词包模型(CBOW)?
- 12.3 CBOW模型的训练过程是怎样的?
- 12.5 什么是Skip-gram模型?
- 12.6 Skip-gram有哪两个重要的优化技巧?
- 12.6 Word2Vec有哪三个主要用处?
- 12.7 Doc2Vec如何扩展Word2Vec?
- 12.8 CBOW和Skip-gram有什么区别?
- 12.9 什么是GloVe模型?
- 12.10 GloVe的损失函数是什么?(重点记忆)
- 12.11: 损失函数中的权重函数f(X_ij)有什么作用
- 12.12 GloVe和Word2Vec有什么主要区别?
- 12.13 从提供的图中如何理解词向量方法的发展脉络?
- 第13讲 文本分类
- 13.1 请简要介绍一下FastText模型以及其创新点。
- 13.2 请简单介绍一下TextCNN。
- 13.3 请给出三种嵌入方法的比较。
- 第14讲 Web图像处理
- 14.1 什么是CBIR?其关键技术是什么?
- 14.2 图像特征主要分为哪几类?
- 14.3 颜色特征有什么优势?为什么是最常用的特征?
- 14.4 RGB和HSV颜色空间有什么区别?
- 14.5 什么是颜色直方图?有什么特点?
- 14.6 什么是颜色矩?如何计算?
- 14.7 什么是纹理特征?有什么特点?
- 14.8 什么是LBP特征?如何计算?(考过)
- 14.9: 形状特征分为哪几类?
- 14.10 什么是HOG特征?如何计算?(考过)
- 14.11 什么是SIFT特征?有什么特点?(上课提及)
- 14.12 比较颜色直方图、LBP、HOG、SIFT四种特征的特点?
- 14.10 什么是HOG特征?如何计算?(考过)
- 14.11 什么是SIFT特征?有什么特点?(上课提及)
- 14.12 比较颜色直方图、LBP、HOG、SIFT四种特征的特点?
第1讲 绪论
此章不考
第2讲 网络爬虫技术
2.1 爬虫是什么?
答:
- 是一种自动获取网页内容的程序,
- 也是搜索引擎的重要组成部分,通俗来讲,
- 就是通过HTML源码解析来获得想要得到得内容。
2.2 爬虫过程是怎么样的?
答:
抽象:
- 从一个或若干初始网页的URL**(seed URL**)开始
- 选择具有代表性、权威性和多样性的网站作为起点,
- 根据实际效果持续优化。
- **获取(Fetch)**HTML源代码文件
- **解析(Parse)**这些文件
- **提取(Extract)**它们指向的URLs
- **放置(Place)**这些提取的URLs在一个队列中
- 重复上述过程,依据队列中的URL。
- 直到满足系统的一定停止条件。
具体:
Pick a URL from the frontier
- froniter表示待爬取URL的队列或集合
Fetch the document at the URL
Parse the URL
- Extract links from it to other docs (URLs)
Check if URL has content already seen(内容去重检查)
- If not, add to indexes
For each extracted URL
- Ensure it passes certain URL filter tests
- Check if it is already in the frontier (重复 URL 检查)
2.3 什么是URL规范化(normalization)?
答:
- 将URL进行标准化处理的过程
- 将URL相对路径转根据页面当前位置换为绝对路径。
2.4 什么是文档指纹(FP)?
答:
- 通过哈希算法或特征提取技术,文档内容被转换后的固定长度的数字标识符
- 用于快速识别和比较文档
- 例如shingle,MinHash,Simhash,KSentence算法
2.5 什么是Simhash算法?
答:
Simhash是一种用于文本相似性比较的哈希算法, google 用来处理海量文本去重的算法,可以将一个文档转换成一个 64 位的字节(特征字)。Simhash可以基于文本内容的特征向量,对相似的文本生成相似的哈希值(具有较好的局部变化容忍性,对于细微差异的文本可以生成相似的指纹)。
算法步骤
- 分词:过滤标点等,移除停用词,提取n个特征关键词来表征文本
- 哈希:通过hash算法将分词转换为hash值
- 加权:分词权重与分词哈希值相乘
- 累加:将加权哈希值累加形成一个序列串
- 二值化:将序列串转化为0-1串
- 比较:(相似度计算-汉明距离)
2.6 如何进行URL判重?
答:
访问标记法:建立一个散列(Hash表),存放访问过的每一个网址(网址可用MD5值代替)。
2.7 爬虫必须具有什么功能?
答:
- 礼貌性:Web服务器有显式或隐式的策略控制爬虫的访问。
- 显式:尊重Robots.txt,只爬允许爬的内容
- 隐式:即便没有特别的说明也不应该频繁的访问同一个网站。
- 稳定性(Robust):能从采集器陷阱中跳出来,能处理Web服务器的其他恶意行为。
- 性能/效率:能充分利用不同的系统资源,包括处理器,存储器和网络带宽。优先抓取"有用的网页"。
- 分布式:可以在多台机器上分布式运行,具有可扩展性。
- 可扩展性:添加更多机器后采集率应该提高。
- 新鲜度:可以对原来抓取的网页进行更新。
- 功能可扩展性:支持多方面的功能扩展,例如处理新的数据格式,新的抓取协议等。
2.8 下面的Robot.txt协议片段是什么意思?
User-agent: *
Disallow: /yoursite/temp/ User-agent: searchengine
Disallow:
答:
任何robot都不能访问“/yoursite/temp/”开头的路径, 除了名叫“searchengine”的可以访问所有路径。
2.9 为了保持爬虫的Robust需要应对那些挑战?
答:
- 恶意(Malicious)页面
- 垃圾(Spam)页面
- 爬虫陷阱——包括动态生成的陷阱
- 其他挑战
- 到远程服务器的延迟和带宽差异很大
- 网站镜像和重复页面
- 网站管理员的规定。例如你应该爬取一个网站URL层次结构的多"深"?
2.10 对于多线程(分布式)的URL frontier有什么要求?
答:
- 必须保持所有的爬虫线程忙碌
- 可以从同一个主机中获取多个页面
- 必须避免同时获取这些页面。
2.11 分布式爬虫会带来什么问题?如何解决?
答:
哈希表判重问题:
- 哈希表太大,一台下载服务器存不下。
- 每台下载服务器在开始下载前和完成下载后都要维护这表哈希表,这个存储哈希表的通信就成为爬虫系统的瓶颈。
解决方法:
- 分片存储:明确每台下载服务器的分工,即一看到某个URL就知道交给哪台服务器去执行
- 批量处理,减少通信的次数
第3讲 网页分析技术
HTML页面为半结构化的文档,存在两种看待方式
-
一种是将文档看作字符流;
- 正则表达式
-
一种是将文档看作树结构。
- 基于DOM
3.1 什么是正则表达式?
答:
- 是由一组普通字符和一组元字符组成的字符串。
- 用来表示符合一定模式的一组字符串。
- 常用于字符串处理,表单验证等场合。
- 表达能力与正规文法相同。
3.2 正则匹配有什么特点?
答;
- 匹配速度快
- 表达能力较弱(只有正规文法的表示能力)
- 对网页内容的信噪比要求不高的情况下可以使用基于正则表达式匹配的爬取程序
3.3 什么是DOM?
答:
DOM全称Document Object Model。
DOM将一个XML文档转为一个对象集合,然后可以任意处理该对象模型。
可以在任何时间访问数据的任何一个部分,然后修改,删除或者插入新数据。也称为“随机访问”协议。
- DOM将HTML视为树状结构的元素,所有元素以及他们的文字和属性可通过DOM树来操作与访问。
3.4 正则匹配和基于DOM树的方法有什么异同?
答:
- 正则表达式匹配
- 正则表达式匹配速度快,但表达能力较弱,只具有正规文法的表示能力。
- 在对网页内容的信噪比要求不高的情况下可以使用基于正则表达式匹配的爬取程序
- HTML DOM树
- 提取HTML DOM树提取在解析HTML时速度较慢,但其表达能力相当于上下文无关文法。
- 在网页自动分类等需要进行网页去噪处理的情况时使用基于HTML DOM树的爬取程序。
3.5 什么是HTML解析器?
答:将html标识解析为解析树的工具。
例:
•C/C++:htmlcxx等
•C#:Winista.Htmlparser.Net等
•JAVA:HTMLParser, jsoup等
•Python:lxml等
3.6 什么是Scrapy框架?
答:
它是快速、高层次的屏幕抓取和web抓取的Python框架。
用于抓取web站点并从页面中提取结构化的数据。
第4讲 爬虫与网站的博弈
- 反爬虫策略
- 页面希望能在用户面前正常展示,同时又不给爬虫机会,就必须要做到识别真人与机器人。
- 爬虫策略
- 可以无限逼近于真人,模拟浏览器操作
4.1后端反爬策略以及应对措施有哪些?
反爬类型 | 具体手段 | 爬虫应对策略 |
---|---|---|
请求头检测 | • User-Agent检测 • Referer检测 | • 构造合法请求头 • 动态UA池 |
身份验证 | • Cookie验证 • Token验证 | • Cookie池维护 • 模拟登录 |
访问频率限制 | • IP限制 • 账号限制 | • 代理IP池 • 分布式爬取 |
验证码机制 | • 图片验证码 • 滑动验证码 | • OCR识别 • AI模型识别 |
4.2 前端反爬策略以及应对措施有哪些?
反爬类型 | 具体手段 | 爬虫应对策略 |
---|---|---|
动态加载 | • 懒加载 • AJAX加载 | • Selenium模拟 • API直接调用 |
数据加密 | • 字体映射 • JS混淆 | • 字体解析 • JS逆向 |
页面混淆 | • 动态DOM • 伪元素遮挡 | • 特征定位 • 规则自适应 |
4.3高级反爬策略以及应对措施有哪些?
反爬类型 | 具体手段 | 爬虫应对策略 |
---|---|---|
行为分析 | • 鼠标轨迹 • 设备指纹 | • 行为模拟 • 指纹伪装 |
环境检测 | • WebDriver检测 • 浏览器特征 | • 特征伪装 • 检测绕过 |
第5讲 数据抽取与包装器
5.1 什么是页面模板?有什么用?
答:
页面模板:T= < C,L,S>
C:共同的页面内容。
- 包含了导航、版权声明、固定页面修饰等这些不变的内容;
L:严格定义的格式。
- 包含了页面数据的格式规范;
S:页面数据模式。
- 能够从页面数据中观察到的模式。
作用:
给定页面集合W={wi},它通过页面模板T生成,包含数据D={di|di符合L},
- W={wi| wi =T(di))
5.2 什么是Web数据抽取?
答:
Web数据抽取式指从页面中将用户感兴趣的数据利用程序自动抽取到本地的过程。
若包含数据的页面是由通过页面模板生成的,Web数据抽取问题则可以定义为通过一定的技术手段,从W中逆向推导出T, 还原数据D.
5.3 什么是包装器(Wrapper)?
答:
包装器是一种软件过程。这个过程使用已经定义好的信息抽取规则,将网络中Web页面的信息数据抽取出来,转换为用特定的格式描述的信息。
针对某一类特定的网页
计算机可以理解并执行的程序或抽取规则
将HTML格式的数据抽取并转化为结构化的格式
5.4 抽取规则有哪几种?
答:
- 基于分界符(或界标符)的规则
- 将HTML文档看作字符流,给出数据项的起始和结束分界符,将其中的数据抽取出来
- 基于树路径的规则
- 将文档看作一个树结构。所抽取的数据存储在树节点中,因而可根据其路径来定位。
5.5 包装器有哪几种?
答:从自动化程度来区分。
- 人工抽取
- 半自动抽取
- 自动抽取
5.6 如何评价某次Web数据抽取?
答:
- 准确程度:使用准确率(Precsion)和召回率(Recall)。
- 抽取自动化程度:划分为手工,半自动,全自动三类。
- 适应性:页面发生较小变化,仍能正常工作
- 修正率:是需要手工调整使得准确率和召回率达到100%的Web数据库数量。
5.7 给定条件,如何求准确率和召回率?
对某个测试参考集,对应的相关数据集合为R。假设用某个检索策略进行处理后,得到一个结果集合A。
令Ra表示R与A的交集。

答:
- 召回率(Recall):也称为查全率,指抽取到的正确结果与要抽取页面的全部结果的比。即R=|Ra| / |R|
- 准确率(Precision):也称为查准率,指抽取到的正确结果与抽取到的全部结果的比。即P=|Ra| / |A|
第6讲 包装器页面抽取方法
6.1 网页可以如何分类?
答:
分类维度 类别 定义 典型页面 / 特点 按页面内数据组织形式 单记录页面 页面中只嵌入唯一的记录,每页关注一个特定对象,同时含其他相关 / 非相关信息 详情页(Authority):如商品详情、人物介绍页 多记录页面 页面中嵌入数量不等、由相同模板生成的记录,按单列 / 多列布局整齐排列 列表页(Hub):如商品列表、新闻列表页 按页面承载内容 数据型页面 嵌入一个或多个结构化数据记录,展示带属性标签和数据值的信息,可保存到数据库 结构化实体页面:如产品价格页、数据报表页 文档型页面 嵌入半结构化文档内容或标题,展示文本型信息 新闻网站、博客文章页、白皮书下载页
6.2 请论述如何对多记录数据型页面如何进行抽取?
答:
6.2.1 十大抽取规则速查表
规则编号 | 规则名称 | 应用阶段 | 核心内容 | 主要作用 |
---|---|---|---|---|
规则1 | 关键字频率规则 | 确定数据区域 | 基于查询关键字K的分布识别记录 | 发现语义块所在层次 |
规则2 | 共同路径规则 | 确定数据区域 | 路径组划分,m>阈值M为恰好匹配 | 发现语义块所在层次 |
规则3 | HTML标签序列相似性规则 | 计算记录边界 | 不同记录的标签序列具有高相似性 | 通过标签序列识别记录边界 |
规则4 | 模板项分布规则 | 计算记录边界 | 模板项重复出现标志新记录开始 | 精确定位记录分割点 |
规则5 | 关键字分布规则 | 计算记录边界 | 相同路径的关键字节点属于不同记录 | 验证记录边界准确性 |
规则6 | HTML路径规则(HR) | 数据项识别 | 路径相同的数据项为同一字段 | 识别不同记录的相同字段 |
规则7 | 出现路径规则(OR) | 数据项匹配 | 相同角色数据项具有相同出现路径 | 计算数据项相似度 |
规则8 | 视觉规则(VR) | 数据项匹配 | 相同角色数据项具有相同视觉信息 | 基于视觉特征匹配数据项 |
规则9 | 上下文信息规则(CR) | 数据项匹配 | 相同角色数据项具有相同上下文 | 利用上下文信息匹配 |
规则10 | 文本特征规则(SR) | 数据项匹配 | 基于文本值和模式的相似性判断 | 文本特征相似度计算 |
6.2.2 关键方法词汇解释
核心概念:
- 语义块:包含完整数据记录的DOM树节点区域
- 模板项:在所有记录中都出现且值相同的数据项(如"价格:"标签)
- 共同路径:多个数据记录在DOM树中具有的相同节点路径模式
- 数据项角色:数据项在记录中的语义功能(如商品名称、价格等)
技术方法:
- 比较DOM树算法:通过分析DOM树结构找到包含数据的区域
- 子树比对:比较DOM树中不同子树的结构相似性
- 前序遍历:按照根→左→右的顺序遍历DOM树获取标签序列
- 相似度计算:通过多维度特征计算数据项之间的匹配程度
判断标准:
- 恰好匹配:路径组数量刚好对应数据记录数量的理想状态
- 过度匹配:路径组过多,通常发生在数据项层次
- 阈值M:预设的路径组数量判断标准,用于确定匹配程度
6.3 简要论述单记录数据型页面抽取方法
核心思路:增量式抽取
基本概念:以增量方式推导网页模板,网页像流水一样一个个处理,无需获得所有页面即可完成抽取。
主要方法:部分树对齐算法
算法步骤:
- 选择种子树:选择一棵树作为对齐开始的种子
- 逐个对齐:将剩余树逐个与种子树进行对齐
- 处理变化:识别并处理三种页面模式变化
- 属性增加:可插入情况
- 属性减少:节点缺失处理
- 属性更新:多值属性变化
- 模式生成:基于对齐结果推导页面模式
- 迭代优化:跳过歧义情况,循环迭代直到无法生成新模式
技术优势:
- 支持连续性数据抽取
- 可借助前i个页面的模板处理后续页面
- 适应页面模式的动态变化
6.4 简要论述单记录文档型页面抽取方法
答:
核心思路:结合视觉信息的抽取方法
页面特征:文档型页面包含半结构化文档内容,需抽取标题(/html/title)和正文两部分。
两个关键观察:
- 观察1:正文占用页面中最大的文本数据块
- 观察2:该规律在同一网站内及不同网站间普遍存在
主要方法:抽取路径学习
算法流程:
- 视觉抽取:基于文本块大小找出正文内容
- 路径保存:将抽取路径存储到数据库中
- 规则学习:积累同一数据源的抽取路径,挖掘结构关联
- 路径比对:新页面抽取路径与数据库记录比对
- 智能选择:
- 路径一致:确认为正文内容
- 路径不一致:在视觉方法和规则方法间选择
- 选择视觉方法:可能是网站模板变化
- 选择规则方法:可能是短正文或大量评论页面
技术特点:
- 自适应网站模板变化
- 充分利用历史抽取经验
- 处理特殊情况(短正文、多评论)
6.5 如何识别出单文档型页面中正文数据块?
答:
比值法
假设seedElement的父亲节点为parentElement,自底向上遍历。
通过比较parentElement所包含的文本块大小(包含孩子节点中的文本)与seedElement 所包含的文本块大小,如果它们的比值超过阈值α,则文本区域块继续向上扩大,直到比值小于α
![]()
第7讲 Web数据存储
7.1 爬虫的数据该如何存储
答:
结构化数据
- 结构化文件:Excel、CSV文件、JSON 文件
- 数据库
非结构化数据
raw data储存直接存为txt文件,JPG文件
后续:
加载到HDFS(Hadoop分布式文件系统)
建立新的索引结构—倒排表
7.2 Scrapy支持什么数据格式?
答:
- CSV文件
- 被Excel和很多的应用程序支持。
- 用来做数据存储容量小
- 很多数据集采用格式
- Json文件
- JSON 是存储和交换文本信息的语法。
- 类似 XML。 比 XML 更小、更快,更易解析。
- response.json()
- XMl文件
- 用来存储,携带,交换数据的
- 不是用来显示数据的
- Pickle文件
7.3 各种类型数据该存储什么类型数据库?
答:
爬虫数据类型 数据特征 存储方案 理由 结构化商品信息 价格、库存、规格等 MySQL 需要复杂查询和事务支持 网页HTML内容 半结构化文档 MongoDB 灵活的文档结构,便于存储变化的页面格式 图片/视频文件 二进制大文件 对象存储(S3/MinIO) 成本低,支持海量文件存储 网页文本内容 非结构化文本 Elasticsearch 全文检索和内容分析需求 URL队列 简单键值对 Redis 高性能队列操作
第8讲 Web数据预处理
8.1 Sklearn包如何进行预处理?
答:
- 数据清洗:对数据进行重新审查和校验。
- 缺失值处理
- 数据无量纲化
- 归一化:将不同规格的数据转换为同一规格
- 标准化:不同分布的数据转换为特定分布的过程
- 处理连续值与离散值
- 类别特征编码
- 连续值处理
- 特征工程
- 白化
- 正则化
8.2 为什么并且如何进行归一化?
答:
- 对于尺度敏感的模型,必须先对样本进行归一化,将各个维度的特征转换到相同的取值区间。例:最近邻分类器
- 方法
- Min-max Normalization
- 平均归一化
- 非线性归一化
8.3 如何进行标准化?请写出公式
答:标准化也叫Z-score Normalization
- 将每一个维特征都调整为
- 均值为0
- 方差为1
![]()
8.3 归一化和标准化有什么区别?
答:
- 归一化
- 将样本的特征值转换到同一量纲下
- 把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,
- 因区间放缩法是归一化的一种。
- 标准化
- 依照特征矩阵的列处理数据,
- 其通过求z-score的方法,转换为标准正态分布,
- 和整体样本分布相关,每个样本点都能对标准化产生影响。
8.4 如何选择归一化和标准化?
答:
归一化
- 对输出结果范围有要求
- 数据较为稳定,不存在极端的最大最小值
标准化
- 数据存在异常值和较多噪音
- 可以间接通过中心化避免异常值和极端值的影响。
- 中心化:平均值为0,对标准差无要求
- 一般流程为先中心化再标准化
8.5 对于连续值和离散值分别有什么处理方式?
答:
- 连续值
- 缺失数据处理
- 归一化
- 离散化
- 二值化(Binarization):将特征值转换为0或1。
- 分箱(Discretization):将连续变量转换为离散变量。
- 离散值
- Encoding
- 标签编码
- 独热编码
- Hash编码
8.5 如何自动离散化连续值?
答:
- 等宽分箱
- 等频分箱
- 基于聚类地离散化
- 基于熵的离散化
- 基于决策树的离散化
8.6 简述一种基于决策树的离散化方法
答:使用决策树算法(如C4.5)自动选择最优的分割点,将数据离散化。
- n个样本的连续特征A有n个值,有序排列
- 取相邻两样本值的平均数做划分点(n-1个)
- 分别计算以这n-1个点作为二元切分点时的信息增益率。
- 选择信息增益率最大的点为该连续特征的最佳切分点Ta
8.7 简述决策树的优缺点
答:
优点:
对数据预处理要求较低:
- 决策树算法不需要太多的数据预处理,例如标准化、归一化等。
可以进行特征选择:
- 决策树算法可以自动选择最重要的特征
缺点:
- 容易过拟合:
- 决策树可能会过于复杂,导致过拟合。这可能会降低模型在未知数据上的性能。
- 为了避免过拟合,可以使用剪枝技术来简化决策树。
- 容易受噪声影响:
- 决策树对于噪声非常敏感,
- 少量的噪声可能会导致决策树的性能大大降低
8.8 简述三种Encoding方法
答:
标签编码(Label Encoding)
- 将每个类别映射到一个唯一的整数。
- 适用于类别之间有顺序关系的情况
- 例如,低、中、高
独热编码(One-Hot Encoding)
- 将每个类别转换为一个二进制的向量。
- 适用于类别之间没有顺序关系的情况
- 例如,颜色、国家等
Hash Encoding(低稀疏,高压缩)
8.9 什么是特征工程中的白化?给出一种白化方法
答:
- 白化是一种数据预处理技术
- 旨在通过线性变换使数据具有以下特性:
- 特征去相关:消除特征之间的相关性。
- 方差归一化:使每个特征的方差为1。
- 经过白化处理的数据,其协方差矩阵变为单位矩阵
- Principal Component Analysis (PCA)可以用于白化
- PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差。
第9讲 文本预处理
9.1 简单介绍中文分词的三种方法
答:
- 基于理解的分词方法
- NLP,语义分析,句法分析
- 基于字符串匹配的分词方法
- 基于字典的方法。
- 按照一定策略将待分析的汉字串与一个“词典”中的词条进行匹配
- 如果匹配成功,那么该汉字串就是一个词。
- 遇到不认识的字串就分割成单字词
- 策略:
- 按照扫描方向:正向匹配和逆向匹配
- 按照扫描长度:最大匹配和最小匹配
- 最少切分(使每一句中切出的词数最小)
- 基于统计/机器学习的分词方法
- 设定模型
- N元文法模型(N-gram):语言统计模型
- 隐马尔可夫模型(HMM):最大熵马尔可夫模型(MEMM)
- 条件随机场模型(Conditional Random Fields,CRF)
- 深度学习模型:RNN, LSTM
- 模型训练:根据观测到的数据(人工标注好的语料)的统计特征对模型参数进行估计。
- 分词:通过模型计算各种分词出现的概率,将概率最大的分词结果作为最终结果。
9.2 分析这三种方法的优缺点
答:
基于理解的分词方法
基于字符串匹配的分词方法
优点:
- 程序简单易行,开发周期短;
- 仅需很少的语言资源(词表),
- 不需要任何词法、句法、语义资源。
- 可以自定义词库,增加新词
缺点:
- Out of Vocabulary
- 歧义消解能力差;
- 切分正确率不高,一般在95%左右。
基于统计/机器学习的分词方法
优点:
- 分词准确度高;
- 不需要切分词典
- 能够平衡地看待词表词和未登录词的识别问题。
缺点:
局限性,会经常抽出一些共现频度高、但并不是词的常用字组;
例如“这一”、“之一”、“有的”、“我的”、“许多的”等
对常用词的识别精度差,时空开销大;
学习算法的复杂度往往较高,计算代价较大,依赖手工定义的特征工程。
9.3 给出HMM的定义。
答:
隐马尔可夫模型是关于时序的概率模型;
描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列(state sequence),
再由各个状态生成一个观测而产生观测随机序列(observation sequence )的过程,
序列的每一个位置又可以看作是一个时刻。
[!IMPORTANT]
(S, V, A, B, π):HMM五元组定义
- StatusSet: 状态值集合 S
- ObservedSet: 观察值集合 V
- TransProbMatrix: 转移概率矩阵 A
- EmitProbMatrix: 发射概率矩阵 B
- InitStatus: 初始状态分布 π
Q:隐藏状态序列,O:观测序列
(A, B, π)=λ :模型三要素
9.4 HMM能解决哪些基本问题?
答:
- 概率计算问题
- 给定:λ=(A,B,π) O
- 计算:P(O|λ)
- 学习问题
- 已知:O
- 估计:λ=(A,B,π),使得P(O|λ)最大
- 预测问题
- 已知:λ=(A,B,π)O
- 估计:Q ,使得P(Q|O)最大
9.5 如何使用HMM解决中文分词问题?
答:
- 将中文句子作为观察序列O输入,每一个字可以看作为一个时刻
- 设置状态集合S为:
- {b:begin, m:middle, e:end, s:single}
- 现在已知O,通过解决学习问题,训练λ=(A,B,π)模型。
- 已知λ=(A,B,π)O,通过解决预测问题,得到Q即隐藏状态序列。
9.6 维特比(Viterbi)算法是什么?
答:
- 用来解决预测问题的一个算法。用动态规划解概率最大路径,一个路径对应一个状态序列。
- 对应于中文分词,它用来寻找最有可能产生某一句子的BEMS状态值序列。
- 算法步骤:初始化–>递推–>终止–>最优路径回溯。
第10讲 文本表示
10.1 什么是文本表示?文本预处理和文本向量化有什么区别?
答:
- 文本表示是把字词处理成向量或矩阵,以便计算机能进行处理
- 预处理:
- 文档——>词条集合
- 文档——>词条序列
- 文本向量化
- 文档——>词条集合——>无语序信息
- 文档——>词条序列——>有语序信息
10.2 什么是词包模型?给出一种离散表示文本的方式。
答:
词包模型:对于给定文本,将其视为词汇的简单集合。
基于词袋模型的one hot representation。
- 语料库——>建立词汇表(字典)
- 文档——>词包
- 向量维度和字典维度一致,第 i 维上的数字1代表 ID 为 i 的词语在文本里出现
![]()
10.3 什么是分布式表示文本?有哪些实现方式?
答:
分布是表示就是将词转化成向量,将一个单词转换成固定长度的向量表示,降维其中向量之间的相似性与词之间的语义相似性相关。
Distributed Representation:将文本表示一种低维的实数向量。
[0.792, −0.177, −0.107, 0.109, −0.542, …]
好处:维度压缩,解决语义鸿沟
实现方式有:主题模型,文档哈希,语言模型。
10.4 什么是主题模型?主题模型有什么作用?
答:
- 主题模型将原来的文档-词汇分布,理解为文档-主题分布加上主题-词汇分布。
- 可以发现词与词的直接的隐含关联。
10.5 什么是PLSA主题模型?
答:
PLSA:概率潜在语义分析,是实现主题模型算法的一种。
PLSA需要估计两类参数:
θ(d,k):文档d中主题k的概率分布
φ(k,w):主题k中词汇w的概率分布
PLSA使用最大似然估计方法,通过EM算法迭代优化来找到使观测数据似然函数最大的参数值。
目标是最大化观测数据的似然函数P(D|θ,φ)
- D表观测数据集 ,即词汇-文档分布
![]()
10.6 什么是LDA主题模型?
答:
LDA:隐含狄利克雷分配,是目前最流行的主题模型算法。
LDA需要建模三类概率分布:
θ_d ~ Dir(α):文档d的主题分布(从狄利克雷先验中抽取)
φ_k ~ Dir(β):主题k的词汇分布(从狄利克雷先验中抽取)
z_dn ~ Multinomial(θ_d):文档d中第n个词的主题分配
LDA使用全贝叶斯方法,通过变分推断或吉布斯采样来估计参数的后验分布,而不是点估计。
目标是最大化数据的后验概率P(θ,φ,z|w,α,β)
- 狄利克雷先验:α控制文档主题稀疏性,β控制主题词汇稀疏性
- 全贝叶斯化:所有参数都有先验分布,提供不确定性量化
- 泛化能力:可以推断新文档的主题分布
LDA vs PLSA核心区别:
- PLSA:点估计,无先验,不能处理新文档
- LDA:贝叶斯估计,狄利克雷先验,可处理新文档
10.7 什么是Simhash算法
答:Simhash是LSH(局部敏感哈希)的一种。
1. 分词
- 将原始文本分割成词汇并为每个词汇分配重要性权重。
2. 哈希
- 对每个词汇计算固定长度的二进制哈希值作为数字指纹。
3. 加权
- 将每个词汇的哈希值与其权重相乘,1位正乘0位负乘。
4. 合并
- 将所有词汇的加权哈希值按位累加形成单一数值序列。
5. 降维
- 将累加序列二值化,正数置1负数置0,得到最终SimHash签名。
第11讲 语言模型
11.1 什么是统计语言模型(LMs)?
答:
语言模型(Language Model)是用于计算自然语言序列概率的数学模型,用来衡量一个句子或词汇序列在某种语言中出现的可能性。
**统计语言模型(Statistical Language Model)**是基于统计方法,通过分析大量文本数据来估计语言概率分布的语言模型。
11.2 给出统计语言模型训练的两种方法,并比较优势。
答:
- 极大似然估计:
![]()
- 组合过多,计算量过大
- 不能处理没有出现过的组合
- **n-gram语言模型:**通过马尔可夫假设简化,假设当前词只依赖于前面有限个词汇。
- 简单有效,解决了计算难题
- 只考虑了词的位置关系,没有考虑词之间的相似度,词语法和词语义,还存在数据稀疏的问题
11.3 什么是零概率问题?如何解决?
答:
定义:在统计语言模型中,由于训练语料有限,某些词汇或词汇组合在训练数据中未出现,导致其概率被估计为0的问题。
解决方法:
- 增加数据量
- 平滑技术
- add-one(Laplace) smoothing
- Good-Turing Estimate
- 神经网络语言模型
第12讲 词嵌入和文档嵌入
嵌入:一种可用于将离散变量表示成连续向量的方法
12.1 什么是词嵌入(word Embedding)?
答:
- 词嵌入式一种词的类型表示
- 是NLP中语言模型与表征学习技术的统称,是将词汇映射到实数向量的方法总称
- 每个单词或词组被映射为实数域上的向量。
- 具有相似意义的词具有相似的表示
12.2 什么是连续词包模型(CBOW)?
答:
- CBOW(Continuous Bag of Words)是Word2Vec的一种架构,通过上下文词汇来预测中心词汇。
- 输入:中心词周围的上下文词汇
- 输出:预测中心词汇
- CBOW的训练任务:通过上下文预测中心词
- CBOW的最终产品:学到的词向量矩阵
各部分说明:
- 输入层:上下文词汇的one-hot编码
- 嵌入层:词汇对应的词向量
- 隐藏层:上下文词向量的平均值
- 输出层:通过softmax预测中心词概率
12.3 CBOW模型的训练过程是怎样的?
答
CBOW训练过程包括以下步骤:
样本构造:
句子:"我爱自然语言处理" 窗口大小=2,得到训练样本: ([我,爱,语言], 自然) ([爱,自然,言,处理], 语言)
前向传播:
- 获取上下文词的词向量:v(我), v(爱), v(语言), v(处理) - 计算隐藏层:h = [v(我) + v(爱) + v(语言) + v(处理)] / 4 - 计算输出概率:P(自然|上下文) = softmax(W_out × h)
损失计算:
L = -log P(w_target|context)
反向传播:
- 更新输出层权重 W_out - 更新词向量矩阵 W_in - 使预测概率最大化
12.5 什么是Skip-gram模型?
答:
Skip-gram是Word2Vec的另一种架构,与CBOW相反,通过中心词来预测上下文词汇。
- 输入:中心词汇
- 输出:预测周围的上下文词汇
12.6 Skip-gram有哪两个重要的优化技巧?
答:
层次化Softmax(Hierarchical Softmax)
- 问题:标准softmax计算复杂度为O(V),V为词汇表大小
- 解决:构建霍夫曼二叉树,每个词对应一个叶子节点
- 优势:计算复杂度降为O(log V)
- 原理:将多分类问题转化为一系列二分类问题
负采样(Negative Sampling)
- 问题:需要更新所有词汇的向量,计算量大
- 解决:只更新少数几个"负样本"和一个"正样本"
- 方法:对于正样本(中心词,上下文词),随机采样几个不相关词作为负样本
- 优势:大幅减少计算量,提高训练效率
如何选择?
- 层次Softmax**:适合词表较小或需要精确概率输出的场景。**
- 负采样:适合大规模词表,尤其是高频词丰富的语料(如社交媒体文本)。
- 两者都不用:若词表极小(如<1000),可直接用传统Softmax。
- 结合使用
12.6 Word2Vec有哪三个主要用处?
答:
1. 词汇相似性计算
通过向量余弦相似度计算词汇相似性: similarity(w1, w2) = cos(v(w1), v(w2)) 例如: cos(v(国王), v(皇帝)) = 0.85 (高相似性)
2. 词汇类比推理
著名的向量运算类比: v(国王) - v(男人) + v(女人) ≈ v(女王) 数学表示: arg max cos(v(b*), v(a) - v(b) + v(c))
3. 文本特征表示
将词向量作为下游任务的特征: - 文本分类:平均词向量作为句子表示 - 情感分析:词向量输入神经网络 - 机器翻译:词向量作为编码器输入
12.7 Doc2Vec如何扩展Word2Vec?
答:
- Doc2Vec在Word2Vec基础上增加了段落向量(Document Vector)
核心思想:
- 段落向量:为每个文档/段落分配一个唯一的向量
- 联合训练:段落向量与词向量一起参与预测
- 文档表示:段落向量作为整个文档的固定长度表示
12.8 CBOW和Skip-gram有什么区别?
答:
特征 CBOW Skip-gram 预测方向 上下文→中心词 中心词→上下文 训练速度 较快 较慢 低频词处理 较差 较好 适用场景 大语料库 小语料库 计算复杂度 较低 较高
12.9 什么是GloVe模型?
答:
GloVe(Global Vectors for Word Representation)不仅能利用局部上下文信息还能结合全局统计信息的词向量学习方法。是Word2Vector的改进
核心思想:利用词汇共现统计信息来学习词向量
全局信息:使用整个语料库的词汇共现矩阵
目标:学习到能反映词汇语义关系的向量表示
12.10 GloVe的损失函数是什么?(重点记忆)
答:
![]()
各部分含义:
X_ij:词汇i和j的共现次数
f(X_ij):权重函数,用于处理共现次数的影响
w_i:词汇i的中心词向量
w̄j:词汇j的上下文词向量
b_i:词汇i的中心词偏置
b̄j:词汇j的上下文词偏置
12.11: 损失函数中的权重函数f(X_ij)有什么作用
答:
12.12 GloVe和Word2Vec有什么主要区别?
特征 | Word2Vec | GloVe |
---|---|---|
信息利用 | 局部上下文窗口 | 全局共现统计 |
训练方式 | 在线学习 | 批量学习 |
计算效率 | 高(流式处理) | 中等(需要预计算矩阵) |
内存需求 | 较低 | 较高(存储共现矩阵) |
理论基础 | 神经网络优化 | 矩阵分解理论 |
记忆要点:
- 损失函数:J = Σ f(X_ij) * (w_i^T * w_j + b_i + b_j - log(X_ij))²
- 核心区别:GloVe用全局统计,Word2Vec用局部上下文
- 选择原则:静态数据选GloVe,动态数据选Word2Vec
12.13 从提供的图中如何理解词向量方法的发展脉络?

答:
左侧分支:词袋立(统计方法)
One-hot → Bag of words → TF-IDF 特点:基于词频统计,稀疏表示,缺乏语义信息
右侧分支:共现:词关联(分布式方法)
n-gram → word2vec (Skip-gram/CBOW) → FastText/GloVe 特点:密集表示,捕捉语义关系,利用上下文信息
核心转变:从简单统计到语义建模的演进过程
第13讲 文本分类

13.1 请简要介绍一下FastText模型以及其创新点。
答:
fastText是一个词嵌入模型,专门为高效文本分类而设计。
是一个增强版的Skip-gram词嵌入模型,增加了子词嵌入特征(n-gram特征)。
- 每个词有两种向量表示,
- 第一种就是原来的词汇向量特征表示
- 第二种是子词嵌入特征(n-gram特征)
- 使用负采样Skip-gram进行训练,区别在于
- 中心词使用子词嵌入特征(n-gram特征)
- 上下文单词使用原来的嵌入表示
分类是采取三层架构:
- 输入层:输入Xi向量
- Xi表示文本中的N-gram向量,每个特征是词向量的平均值。
- 单词的字符级别的n-gram向量作为额外的特征
- 单词:被embedding过
- 隐含层:对输入向量进行叠加平均
- 输出层:线性分类出类标
![]()
13.2 请简单介绍一下TextCNN。
答:
Text Convolutional Neural Network
用卷积神经网络进行文本分类
输入层:预训练得到的文本向量,支持后续进行卷积池化等操作
卷积层
max-pooling层
输出层:softmax来n分类
13.3 请给出三种嵌入方法的比较。
答:
维度 Word2Vec FastText BERT 训练方式 无监督Skip-gram/CBOW 无监督Skip-gram+子词 有监督预训练+微调 输入处理 词级别 词+子词级别 子词+位置编码 OOV处理 无法处理 ✓ 通过子词表示 ✓ 通过子词分词 上下文感知 ✗ 静态向量 ✗ 静态向量 ✓ 动态上下文向量 计算复杂度 低 低 高 训练时间 快 快 慢(需要大量数据) 内存占用 小 小 大 适用场景 传统NLP任务 多语言、形态丰富语言 复杂理解任务
第14讲 Web图像处理
14.1 什么是CBIR?其关键技术是什么?
答:
- CBIR:Content-Based Image Retrieval(基于内容的图像检索)
- 关键技术:图像特征提取和匹配
- 核心思想:通过图像的视觉特征(而非文本标签)来检索相似图像
14.2 图像特征主要分为哪几类?
答:
- 低级特征:颜色特征、纹理特征、形状特征
- 高级特征:CNN特征(深度学习特征)
- 按范围分:全局特征、局部特征
14.3 颜色特征有什么优势?为什么是最常用的特征?
答:
- 最底层、最直观的物理特征
- 强鲁棒性:对噪声、图像质量退化、尺寸、分辨率、方向变化不敏感
- 计算简单:易于提取和比较
- 广泛应用:绝大多数多媒体数据库都使用
14.4 RGB和HSV颜色空间有什么区别?
答:
颜色空间 组成 特点 适用性 RGB 红、绿、蓝三原色 加光模式,垂直坐标轴表示 不符合人类视觉感知 HSV 色调、饱和度、亮度 符合人类视觉特性 更适合图像处理 转换原因:人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度
14.5 什么是颜色直方图?有什么特点?
答:
- 定义:在颜色空间中对颜色进行量化,统计每个量化通道在整幅图像中所占比重
- 描述内容:不同色彩在整幅图像中所占比例的统计分布特性
优点:
- 具有平移、尺度、旋转不变性
- 适合描述难以自动分割的图像
缺点:
- 不同图像可能有相同的颜色分布
- 缺少空间信息
改进方法:将图像分割成子图像,分别建立索引
14.6 什么是颜色矩?如何计算?
答:
颜色矩是在颜色直方图基础上计算的矩估计,颜色信息主要分布在低阶矩中。
四个矩的计算公式:
- 一阶矩(均值)
- 二阶矩(方差)
- 三阶矩(斜度)
特点:
- 特征量少,处理简单
- 不需要颜色空间量化
- 特征向量维数低(3×3=9维)
- 检索效率较低,常用于图像过滤
14.7 什么是纹理特征?有什么特点?
答:
- 定义:图像中反复出现的局部模式及其排列规则,描述图像表面性质
- 计算方式:基于包含多个像素点的区域统计,而非单个像素点
优点:
- 具有旋转不变性
- 对噪声有较强抵抗力
- 适用于检索粗细、疏密等信息
缺点:
- 不反映本质属性
- 随分辨率变化有较大偏差
- 受光照反射影响
14.8 什么是LBP特征?如何计算?(考过)
答:
LBP:Local Binary Pattern(局部二值模式)
定义:结合纹理图像结构和像素统计关系的纹理特征描述方法,记录像素点与周围像素点的对比信息。
计算步骤:
- 选择中心像素和其8个邻域像素
- 将邻域像素与中心像素比较
- 大于等于中心像素值记为1,小于记为0
- 按顺序组成8位二进制数
- 转换为十进制作为LBP值
优点:
- 对光照具有不变性
- 旋转不变性
- 灰度不变性
应用方式:
- 不直接使用LBP图谱作为特征向量
- 采用LBP统计直方图作为特征向量
- 可将图片划分为若干子区域分别建立直方图
14.9: 形状特征分为哪几类?
答:
- 局部形状特征:LBP、HOG、SIFT
- 全局形状特征:整体轮廓特征
特点对比:
- 全局特征:压缩率高,但区分度不强
- 局部特征:区分度强,计算复杂
14.10 什么是HOG特征?如何计算?(考过)
答:
HOG:Histogram of Oriented Gradients(方向梯度直方图)核心思想:通过计算和统计图像局部区域的梯度方向直方图来构成特征。
计算步骤:
- 灰度化:将图像转为灰度图
- Gamma矫正:降低局部阴影和光照变化影响
- 计算梯度:计算每个像素的梯度大小和方向
- 划分cell:将图像划分为小cell(如6×6)
- 统计直方图:统计每个cell的梯度方向直方图
- 组成block:将几个cell组成一个block
- 串联特征:将所有block的HOG特征串联
优点:
- 对图像几何和光学形变具有很好的不变性
- 容许细微的肢体动作
- 特别适合人体图像检测
- 在粗空域抽样、精细方向抽样条件下效果好
14.11 什么是SIFT特征?有什么特点?(上课提及)
答:
SIFT:Scale-Invariant Feature Transform(尺度不变特征变换)
核心思想:在空间尺度中寻找极值点,提取位置、尺度、旋转不变量。
SIFT算法四个步骤:
- 建立尺度空间:构建高斯差分金字塔(DOG)
- 检测极值点:在尺度空间中检测极值点,进行精确定位和筛选
- 方向赋值:为每个特征点分配主方向
- 计算描述子:生成特征描述向量
特征点确认过程:
- 与同尺度8个相邻点比较
- 与上下相邻尺度9×2个点比较
- 共26个点比较确保为极值点
特征点信息:每个特征点包含三个信息
- 位置
- 尺度
- 方向
优点:
- 旋转、尺度、亮度不变性
- 特征稳定
缺点:
- 实时性不够高
- 有时特征点较少
- 对边缘光滑目标无法准确提取特征点
14.12 比较颜色直方图、LBP、HOG、SIFT四种特征的特点?
特征类型 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
颜色直方图 | 平移/尺度/旋转不变,计算简单 | 缺少空间信息,可能重复 | 图像检索、分类 |
LBP | 光照/旋转/灰度不变 | 位置敏感 | 纹理分析、人脸识别 |
HOG | 几何/光学不变,适合人体检测 | 计算复杂 | 行人检测、物体识别 |
SIFT | 多种不变性,特征稳定 | 实时性差,光滑边缘效果差 | 物体识别、图像匹配 |
- 局部特征:区分度强,计算复杂
14.10 什么是HOG特征?如何计算?(考过)
答:
HOG:Histogram of Oriented Gradients(方向梯度直方图)核心思想:通过计算和统计图像局部区域的梯度方向直方图来构成特征。
计算步骤:
- 灰度化:将图像转为灰度图
- Gamma矫正:降低局部阴影和光照变化影响
- 计算梯度:计算每个像素的梯度大小和方向
- 划分cell:将图像划分为小cell(如6×6)
- 统计直方图:统计每个cell的梯度方向直方图
- 组成block:将几个cell组成一个block
- 串联特征:将所有block的HOG特征串联
优点:
- 对图像几何和光学形变具有很好的不变性
- 容许细微的肢体动作
- 特别适合人体图像检测
- 在粗空域抽样、精细方向抽样条件下效果好
14.11 什么是SIFT特征?有什么特点?(上课提及)
答:
SIFT:Scale-Invariant Feature Transform(尺度不变特征变换)
核心思想:在空间尺度中寻找极值点,提取位置、尺度、旋转不变量。
SIFT算法四个步骤:
- 建立尺度空间:构建高斯差分金字塔(DOG)
- 检测极值点:在尺度空间中检测极值点,进行精确定位和筛选
- 方向赋值:为每个特征点分配主方向
- 计算描述子:生成特征描述向量
特征点确认过程:
- 与同尺度8个相邻点比较
- 与上下相邻尺度9×2个点比较
- 共26个点比较确保为极值点
特征点信息:每个特征点包含三个信息
- 位置
- 尺度
- 方向
优点:
- 旋转、尺度、亮度不变性
- 特征稳定
缺点:
- 实时性不够高
- 有时特征点较少
- 对边缘光滑目标无法准确提取特征点
14.12 比较颜色直方图、LBP、HOG、SIFT四种特征的特点?
特征类型 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
颜色直方图 | 平移/尺度/旋转不变,计算简单 | 缺少空间信息,可能重复 | 图像检索、分类 |
LBP | 光照/旋转/灰度不变 | 位置敏感 | 纹理分析、人脸识别 |
HOG | 几何/光学不变,适合人体检测 | 计算复杂 | 行人检测、物体识别 |
SIFT | 多种不变性,特征稳定 | 实时性差,光滑边缘效果差 | 物体识别、图像匹配 |