大数据相关

学习《文本分析》之文本索引和检索

2019-01-13  本文已影响0人  oneape15

前提概述

前提知识回顾传送门:

信息(这里主要指文本)检索是针对用户提出的信息需求,一般以关键字(key 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=\frac{该词项(Term)在该文档出现的次数}{该文档的词项的总数}
TF值越大,表示这个词项越重要。
比如,一篇文档进行分词之后,总共有500个词项,词项“world”出现的次数是3次,则其TF=3/500 = 0.006.

IDF的计算方法为:
IDF=log\frac{文档库中的文档总数}{包含该词项的文档数 + 1}
该公式的意义: 一个词项出现的文档数越少,它越能够把文档区分出来,于是就越重要。反之,一个词项如果在每篇文档里都出现,则它就没有那么的重要。

TF-IDF公式把TF和IDF乘起来,计算词的权重,TF-IDF的计算方法:
TF-IDF = TF * IDF

为了对文档集进行索引,我们一般要进行分词(Tokenization)词形还原(Lemmatization)或者词干提取(Stremming).
词形还原和词干提取都是词形规范化的重要方式,都能够达到有效归并词形的目的。

排序
上述检索的处理方式并没有对结果进行任何的排序。我们通常使用的google、百度等搜索引擎返回的结果,是按照相关度进行了排序的,那它们是怎么做到的呢?这里我们介绍一下基于向量空间模型的余弦相似度计算方法。

文档可以表示成一个权重分量(也就是很多的词项)构成的向量。
查询(关键字查询)表示为若干词项组成的查询文档,于是也可以表示成一个权重分量构成的向量,只不过很多的分量为0.
余弦相似度通过向量平角余弦,表示两个向量的相似度,夹角越小,相似度越高。如下图:


两个向量的夹角

余弦相似度的计算公式为:
cos(\theta) = \frac{q . d}{|q| . |d|}
q 表示为查询的向量;
d 表示为文档的向量;
余弦值(cos)越接近1,就表明夹角超接近0度,也就是两个向量越相似;

评价指标
信息检索系统有两个重要评价指标:一个是准确率,一个是召回率。下表中,a,b,c,d分别表示被检索系统判断为相关的文档中的相关文档、被判断为相关的文档中的不相关文档、被判断为不相关文档中的相关文档、被判断为不相关的文档中的不相关文档的数量(好绕口呀~~~)

实际上相关文档 实际上不相关的文档
检索系统返回的判断为相关的文档 a b
检索系统不返回的判断为不相关的文档 c d

准确率(Precision)的计算公式:
Precison = \frac{a}{a+b}
召回率(Recall)的计算公式:
Recall=\frac{a}{a+c}
还有一个统一度量信息检索系统性能的指标为F的指标,它的公式为:
F=\frac{正确率 * 召回率 * 2}{正确率 + 召回率}

准确率评价的是返回的结果中多少文档上相关的;
召回率评价文档集中相关的文档,检索系统返回了多少。
F值则是综合这两个指标的评估指标,用于反映信息检索系统的整体性能。

上一篇下一篇

猜你喜欢

热点阅读