美文网首页大数据相关
学习《文本分析》之文本索引和检索

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

作者: oneape15 | 来源:发表于2019-01-13 13:55 被阅读0次

    前提概述

    前提知识回顾传送门:

    信息(这里主要指文本)检索是针对用户提出的信息需求,一般以关键字(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=\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).
    词形还原和词干提取都是词形规范化的重要方式,都能够达到有效归并词形的目的。

    • 词形还原 - 把任何形式的词汇还原为一般形式(还原后能够表达完整的语文),比如把"driven", "drove", "driving"等都处理为"drive";
    • 词干提取 -抽取词的词干或词根(不一定能够表达完整的语义),比如把“cats"处理为"cat",将"effective"处理为"effect"等。

    排序
    上述检索的处理方式并没有对结果进行任何的排序。我们通常使用的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值则是综合这两个指标的评估指标,用于反映信息检索系统的整体性能。

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/edrkdqtx.html