学习《文本分析》之文本索引和检索
前提概述
前提知识回顾传送门:
信息(这里主要指文本)检索是针对用户提出的信息需求,一般以关键字(key word)表达的查询,从文档中查找和查询相关度高的文档或者文档片段,返回给用户。
信息检索系统
一般包括四个主要部分
-
数据预处理
- 从网页、PDF文件、Word文件等文档中提取正文以及文档元信息。 -
索引生成
- 为上述文档的每个词项生成倒排序索引。 -
检索
- 根据用户提交的查询,利用预先建立好的索引,从文档集里提取相关的文档。 -
结果排序
- 根据文档的重要性,以及文档和查询的相关度,对文档进行排序,把最有可能符合用户需求的文档排在前面,尽早返回给用户。
信息检索系统
主要的信息(文本)检索模型包括布尔模型
、向量空间模型
以及概率模型
等;这里我只重点介绍一下向量空间模型,其他二个模型大家可以查询相关资料进行了解。
向量空间模型
向量空间模型(Vector Space Model, VSM),是Gerad Salton和McGill于1969年提出的。
在该模型里,文档表示一个向量
;
向量的分量为特征项的权重(w1, w2, ..., wn);
其中wi表示第i个特征项的权重;
一般选取单词作为特征项
,即一个单词一个词项;
权重
用词频表示,词频
分为绝对词频
和相对词频
;
绝对词频 - 表示词项在文档中出现的频率表示。
比如查询关键字为“JohnBlog”,当文档A出现“John”5次,出现“Blog”10次,文档B中出现“John”2次,出现“Blog”8次,那么文档A的匹配度为5+10=15,文档B的匹配度为2+8= 10,于是文档A的匹配度高于文档B。
由上面的例子,我们会发现一个明显不合理的地方,内容较长的文档,更有可能比内容较短的文档出现更多的关键字,虽然长文档出现更多的关键字,但是相对于文档长度来讲,关键字显得相当稀疏;短文档虽然出现更少的关键字,蛤是相对于文档长度来讲,关键字可能显得相当密集。
由上我们引了相对词频;
相对词频 - 是归一化的词频,其计算方法主要是TF-IDF(Term Frequency-Inverse Document Frequency)公式。
TF的计算方法为:
TF值越大,表示这个词项越重要。
比如,一篇文档进行分词之后,总共有500个词项,词项“world”出现的次数是3次,则其TF=3/500 = 0.006.
IDF的计算方法为:
该公式的意义: 一个词项出现的文档数越少,它越能够把文档区分出来,于是就越重要。反之,一个词项如果在每篇文档里都出现,则它就没有那么的重要。
TF-IDF公式把TF和IDF乘起来,计算词的权重,TF-IDF的计算方法:
为了对文档集进行索引,我们一般要进行分词(Tokenization)
、词形还原(Lemmatization)
或者词干提取(Stremming)
.
词形还原和词干提取都是词形规范化的重要方式,都能够达到有效归并词形的目的。
- 词形还原 - 把任何形式的词汇还原为一般形式(还原后能够表达完整的语文),比如把"driven", "drove", "driving"等都处理为"drive";
- 词干提取 -抽取词的词干或词根(不一定能够表达完整的语义),比如把“cats"处理为"cat",将"effective"处理为"effect"等。
排序
上述检索的处理方式并没有对结果进行任何的排序。我们通常使用的google、百度等搜索引擎返回的结果,是按照相关度进行了排序的,那它们是怎么做到的呢?这里我们介绍一下基于向量空间模型的余弦相似度
计算方法。
文档可以表示成一个权重分量(也就是很多的词项)构成的向量。
查询(关键字查询)表示为若干词项组成的查询文档,于是也可以表示成一个权重分量构成的向量,只不过很多的分量为0.
余弦相似度通过向量平角余弦,表示两个向量的相似度,夹角越小,相似度越高。如下图:
两个向量的夹角
余弦相似度的计算公式为:
q 表示为查询的向量;
d 表示为文档的向量;
余弦值(cos)越接近1,就表明夹角超接近0度,也就是两个向量越相似;
评价指标
信息检索系统有两个重要评价指标:一个是准确率,一个是召回率。下表中,a,b,c,d分别表示被检索系统判断为相关的文档中的相关文档、被判断为相关的文档中的不相关文档、被判断为不相关文档中的相关文档、被判断为不相关的文档中的不相关文档的数量(好绕口呀~~~)
实际上相关文档 | 实际上不相关的文档 | |
---|---|---|
检索系统返回的判断为相关的文档 | a | b |
检索系统不返回的判断为不相关的文档 | c | d |
准确率(Precision)的计算公式:
召回率(Recall)的计算公式:
还有一个统一度量信息检索系统性能的指标为F的指标,它的公式为:
准确率评价的是返回的结果中多少文档上相关的;
召回率评价文档集中相关的文档,检索系统返回了多少。
F值则是综合这两个指标的评估指标,用于反映信息检索系统的整体性能。