信息检索
1、信息检索
搜索和推荐
信息检索用于海量的非结构化数据
推荐系统的本质,计算每个item和user的相关度
全文数据搜索
顺序扫描
全文检索
从大规模非结构化数据的集合中找出满足用户信息需求的资料的过程
研究信息的获取,表示,存储,组织,访问的学科
信息检索的本质
主要挑战:查询和文档间的语义鸿沟
核心问题:确定文档和查询之间的相关度
信息检索模型:描述信息检索中的文档、查询和匹配函数之间的数学模型
搜索引擎的原理
其主要技术在排序之后还有用户反馈以及再查询
2.搜索引擎工具(只问细节)
全文检索的流程
对于非结构化的数据,建立索引重新组织,达到快速搜索非结构化数据的目的
爬虫抓取
建立索引(核心数据结构:倒排索引)
搜索词处理:分词,检查判断
排序
基本概念
1.lucene:全文检索引擎工具包,只是一个全文检索引擎的架构,提供了完整的查
询引擎和索引引擎
2.过程:爬取数据;创建文档对象,文档中域的设置;分析文档:词条化,词项
归一化,词干还原,词形归并,停用词去除;创建索引
常用的中文分词器:standardanalyzer;CJKAnalyzer;Ikanalyzer
3.词项词典
文档解析
词条化
字符序列分词成一系列子序列的过程
子序列称为词条
可能遇到的问题:连字符问题
空格问题
英文句号
数字
可以通过正则表达式优化词条化效果
词项归一化
将文档和查询中的词条“归一化”成一致的形式
结果:形成多个近似词项的一个等价类
最重要的问题:用户将会如何根据这些词来构造查询
策略:建立同义词扩展表
eg手工建立:为每个查询维护一个查询扩展词表或者
在建立索引时就对词进行扩展
词干还原
去除单词两端词缀的启发式过程
porter算法(常用的词干还原算法)知道名字就行
启发式规则:比如建立后缀表,再前面的字母数达到一定限制时,去除后缀
一般情况下将多个派生相关词合并在一起
词形归并
利用词汇表和词性分析将其转换为基本形式
效果:减少词项词典中的词项数量
只将同一词元的不同屈折形式进行合并
停用词
优点:减少词条个数,缩小搜索范围,提高搜索效率
缺点:优势消除的停用词对检索有意义
消除方法:查表法
构建停用词表:语法;词频(高频出现的一般和文档意义不大)
开源NLP工具的名字
NLTK
Spacy
Stanford NLP
4.中文分词
是一个词条化的过程
中文分词 汉字序列-》一个一个单独的词
分词算法
基于字符串匹配的分词
基于词典的方法(查字典方法):按照策略将要分析的汉字串和词典中的词条进
行匹配
策略:扫描长度(最大,最小),扫描方向(正向,逆向),最少切分
优点:简单,需要的语言资源少,可以自定义词库
缺点:歧义消解能力差,切分正确率不高
基于统计的分词
假设:相连的字在不同的文本中,出现的越多,证明相连的字很可能是个词
方法
字与字相邻出现的频率反应成词的可靠度
优点:分词准确率高,不需要切分词典,对于非词表中的词和词表词能够平衡的
看待,识别
缺点:局限性,会抽出一些共同出现频率高,但不是词的常用字组
对常用词的识别精度差
学习算法的复杂度高,计算代价大
基于理解的分词方法:NLP
基于HMM的中文分词方法
HMM模型
参数是通过学习得到的
定义:描述一个含有隐含未知参数的马尔可夫过程
是关于时序的概率模型;
描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列
再由各个状态生成一个由于观测而产生的观测随机序列的过程
构成
状态值集合I
观察值集合O
转移概率矩阵 隐含状态之间
发射概率矩阵 在隐含状态下,观察到可见状态的概率
初始状态分布
基本问题
1.概率计算问题
求给定模型下的观测序列的概率
使用前后向算法
最简单
2.学习问题
模型的参数估计
基于EM算法的baum-welch算法
最复杂
3.预测问题
求解状态值序列
维特比算法
复杂度居中
HMM分词
(即第三个解码问题)
观察值集合:所有汉字
状态值集合:B:begin;M:middle;E:end;S:single
初始状态矩阵:1*4 句子的第一个字属于这四种状态的概率
转移矩阵:4*4
发射概率:在某一状态下对应到某字的概率
viterbi算法
描述
变量:weight[4][句子的字数]
https://www.cnblogs.com/denise-hzf/p/6612212.html
应用
模式识别
语音识别
分词
股票预测
中文分词软件
IkAnalyzer
ICTCLAS
jieba分词
SnowNLP
9.检索排序
排序实现
精确top K检索及加速方法
快速计算余弦
堆排序算法
提前终止计算
非精确top K检索
思想:
减少参与计算文档的数目
索引去除
只考虑高idf值的词项
只考虑包含多个查询词项的文档
胜者表(是提前构建的)
对于查询中所有词项的胜者表求并集,再根据余弦相似度从A中选取前topK个文
档
静态得分
相关性通过余弦相似度判断
权威性文档本身的属性决定
影响度排序
将词项对应的文档按照tf降序排列
加速方法
提前结束
词项按照idf降序排列
簇剪枝方法--预处理先导者和追随者(相当于提前分类,给每个类一个代表)
链接分析排序算法
对web结构中的超链接的多维分析
算法(下面这三个都是)
权威性大部分由外部链接衡量
相关性
pagerank算法
强调链接数量和质量整体关系
认真看ppt
对于每个网页给出正实数表示重要程度
依赖于网络的拓扑结构,一旦网络的拓扑确定,pagerank就确定
算法思想:随机游走RW,用来表示不规则的变动形式。随机游走的形式有:马尔
可夫链,醉汉走路
pagerank表示这个马尔可夫链的平稳分布
计算通过迭代算法
子主题2
指向该网页的超链接越多,pagerank值越高
算法实现
迭代算法
代数法
幂法
其他排序算法
山顶算法
强调链接与链接之间的相关性和质量
pagerank和HITS算法的结合
针对热门查询关键词来对搜索结果重新排序
过程
专家页面的寻找和评分
目标页的评分
HITS
强调权威页和枢纽页的相互增强关系
使用子集传播模型
权威值
中心值
LALSA算法
强调优质连接可进行间接性权重传递
互联网搜索三代
相关度排序模型
重要性排序模型不考虑查询,仅仅根据网页之间的图结构来判断文档的权威程度
机器学习排序模型
10.搜索引擎优化
SE排序和web spam
SE排序
与用户查询具有高相关性的网页排的越靠前
越重要的网页排的越靠前
web spam(人为搅乱页面打分)
term spam
保证与查询词相关(在网页里塞词典)
提高与查询词相关度(大量重复某个特定词汇)
link spam
SEO概念
12 相关反馈及查询扩展
用户查询
布尔查询
自由文本查询
基于短语的意思来表达一个查询
用户希望返回的文档中大部分或者全部查询的词项之间距离比较近用窗口大小来度量位置关系
拼写校正中的k-gram索引
(解决输入的query中的错误)
拼写校正
词项独立校正
拼写
编辑距离法
k-gram重复度法
上下文敏感的校正
词与词之间的
步骤
通过k-gram找query的相似集合
呈现
标题
摘要
静态摘要
动态摘要给出多个窗口内的结果,这些窗口包含了查询词项的多次出现
相关反馈
查询扩展
是提高召回率的方法
通过在查询中加入同义或者相关词项来提高检索结果
全局方法进行一次性的全局分析,生成同/近义词词典
同义词词典的自动构建
局部方法:主要依赖:查询日志
13、统计语言模型
定义:词的分布的概率描述
用数学方法描述语言规律
应用
语言模型是用来判断一个句子的合理性的置信度
拼写纠错
语音识别
音字转换
拼音与汉字的转换
计算:使用条件概率,用出现的次数来模拟概率
问题
需要求的概率太多了解决:n-gram模型n-gram
如何选择n
大的n:对下一词的约束信息更多,具有更大的辨别力
小的n:在训练语料库中出现次数更多,具有更高的可靠性
原则上希望用2-gram解决问题
特点
简单有效
只考虑了词的位置关系
没有考虑词之间的相似度,词语法和词语义
存在数据稀疏的问题
由于语料数量有限,可能不存在某些组合,使求得的条件概率为0
语料平滑
11.信息检索的评价
检索评测基础
目标:消耗少的情况下尽快,全面返回准确的结果
效率
效果
无序检索结果的评价
查准率RR/RR+RN
召回率:RR/RR+NR建立缓冲池:对多个系统的topN个结果组成的集合进行人工标注
不影响查准率
使召回率的分母变小
F值
有序检索结果的评价
看ppt
排序测评
R-查准率
MAP每个相关文档位置上查准率的平均值
MRR
NDCG
单个查询进行评估的指标
多个查询进行评估的指标
平均
宏平均
微平均
查准率直方图
查准率P,召回率R
其他指标
5.布尔模型与倒排索引
属于集合论模型
信息检索模型
依照用户查询,对文档集合进行相关排序的一组前提假设和算法
构成:文档集合、查询集合、排序函数、框架来构建文档、查询以及它们之间的
关系
分类
集合论模型
代数模型(描述成向量)
概率模型
深度学习模型
布尔检索模型
特点
优点
查询简单
可以通过复杂的布尔表达式,方便的控制查询结果
缺点
信息需求的能力表达不足,不能输出部分匹配的情况
无权重设计,无法排序
要求用户必须会用布尔表达式提问,检出的文档太多或太少
很难进行自动的相关反馈
基于
集合论
基于词包模型 文本=词集合,忽略词序和语法,每个词的出现是独立的
查询式=关键词的布尔组合
布尔代数 每个索引词在一篇文档中只有两种状态
倒排索引
词项+倒排记录
词项词典:包含这个词项的文档的一个列表
建立索引的步骤:
词条序列
排序:先按照词条排序,再按照docID排序
构建词典和倒排表
倒排索引操作
查询处理 求交集、并集
包含位置信息的倒排记录表
二元词索引
将文档中每个连续词对看成一个短语,作为词典中的词项
名词和名词短语构成的查询:N*XN看成一个扩展的二元词
位置信息索引(词项的先后顺序)
包含位置信息的倒排记录表
用于:邻近查询,短语查询
混合索引机制
(掌握啥时候用哪种,为什么)
对于高频常见的查询,处理开销大的查询使用短语索引或只使用二元索引
对于其他短语查询使用位置索引
6.向量空间模型
(代数模型
tf-idf
tf(词项频率)
文档-词项的匹配得分是所有同时出现在query和文档中的词项的词频的对数和
tf:词项t在文档d中出现的次数
罕见词项蕴含的信息更多,赋予高权重
df:出现词项的文档数目
idf:log(N/df)
排序检索 系统根据文档与query的相关性排序,返回文档集合中的文档
布尔查询
自由文本查询 query是自然语言的一个或多个短语
向量空间模型
VSM
特点
文本内容的处理简化为向量空间中的向量
用空间上的相似度表达语义上的相似度
采用了部分匹配的策略
通过给查询或文档中的索引词分配非二值权值实现
可以基于向量cos的值排序,提供给用户有序的结果
缺点
维度非常高,向量空间非常稀疏
假设标记词是相互独立的,所以同义词、近义词往往被认为是不相关的
将词项集合作为维度
每篇文档表示成基于tf-idf权重的实值向量
相似度计算
jaccard
欧氏距离
余弦相似度
价值
7.概率检索模型
PRP
BIM
(二值独立模型)
不考虑词频,认为词和词之间独立,词包模型·,没有语序
要求计算的RSV
用于排序的状态检索值
最后结果是IDF
p,r是根据概率统计得到的
使用
优点
建立在数学基础上,理论性较强
缺点
需要估计参数
BIM中同样存在词项独立性假设
BM25
query中每个单词t与文档d之间的相关性
单词t与query之间的相似性
每个单词的权重
概念
基于词项频率、文档长度等
因子来建立概率模型的一种方法
结论
使用
意义
8.主题模型
奇异值分解应用
用于推荐算法
用于NLP中的算法
LSA
隐语义分析
信息检索代数模型
思想:
统计计算的方法对大量的文本集进行分析
提取出词与词之间潜在的语义结构
用潜在的语义结构表示词和文本
方法:将高维向量空间模型--》降维映射到低维的潜在语义空间
基本步骤
对词频矩阵进行PCA化
每个奇异值对应的是每个语义维度的权重
优势
文章和单词都映射到同一语义空间
在空间内就能对文章进行聚类,也能对单词进行聚类
潜在语义空间(解释性差)
语义空间的维度明显少于原单词-文章矩阵
降维,降低噪声影响
缺点
无法解决多义词的问题
特征向量的方向没有对应的物理解释
当有新的文档到来时,需要更新模型重新训练
忽略了词语的先后顺序
假设文档和词的发呢不是服从联合正态分布的,但是从观测数据来看是服从泊松
分布的
PLSA
概率隐语义分析
EM算法
只需要知道用到了这个算法
基于双模式和共现的数据分析方法延申的统计学方法
共现:word和document的矩阵
双模式:在word和document上同时进行考虑
基于多项式分布和条件分布的混合来建模共现的概率
主题模型
一篇文档有多个主题混合而成
每个主题都是词汇上的概率分布
每个词都是由一个固定的主题生成的
应用文本聚类,文本分类
优势
隐含多项式分布,更符合文本特性
可以利用模型选取和复杂度控制准则来确定主题
不足
随着document和term个数的增加,pLSA模型也线性增加
EM算法需要很大的计算量
LDA主题模型
隐含狄利克雷分布
增加了狄利克雷先验
全贝叶斯化
生
成
文
档
的
步
骤
方法
工具包Gensim
简答3 10
自由主题
作 者 : @ g w 5 3 6 4 0 6 | 来 自 : 知 犀 思 维 导 图