热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

文本分析与检索

主要内容:1、文本表示与特征提取;2、隐语义分析LSA和LatentDirichletAllocation(LDA)3、检索模型:Boolean模型、向量模型、概率模型1、文

主要内容:

1、文本表示与特征提取;

2、隐语义分析LSA和Latent Dirichlet Allocation(LDA)

3、检索模型:Boolean模型、向量模型、概率模型

 

1、文本表示与特征提取

  • 文本中抽取出的特征词进行量化来表示文本信息;

利用分词工具:极易中文分词:je-analysis-1.5.3,庖丁分词:paoding-analyzer.jar, IKAnalyzer3.0, imdict-chinese-analyzer, ictclas4j

  • 目前通常采用向量空间模型来描述文本向量;
  • 文本特征选择:找出对文本特征类别最具代表性的文本特征
    • 不能直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维(特征项太多)
    • 特征项必须具备一定的特性:能够确实标识文本内容;具有将目标文本与其他文本相区分的能力;个数不能太多;特征项分离要比较容易(字,,短语)
  • 基于统计的特征提取方法(构造评估函数)
    • lTF-IDF法:以特征词在文档d中出现的次数与包含该特征词的文档数之比作为该词的权重

          image

    • 词频方法(Word Frequency)
    • 文档频次方法(Document Frequency)
    • 互信息(Mutual Information)

          image

    • 期望交叉熵(Expected Cross Entropy)

         image

    • 信息增益方法(Information Gain)

        image

    •  image统计量方法:度量特征w和主题类C之间的独立性

         image

         image

2、特征变换——隐语义分析(LSA)

  • Latent Semantic Analysis-LDA
  • Latent Semantic Indexing-LSI
  • 问题提出:一词多义和同义词
  • 中心思想:用概念(或特征)代替词
  • 基本方法 : 利用矩阵理论中的“奇异值分解(singular value decomposition,SVD)”技术,将词频矩阵转化为奇异矩阵(K×K)

输入:term-by-document matrix

输出:

U: concept-by-term matrix

V: concept-by-document matrix

S: elements assign weights to concepts

  • LSA过程:

1.建立词频矩阵,frequency matrix

2.计算frequency matrix的奇异值分解。分解frequency matrix成3个矩阵U,S,V。U和V是正交矩阵(UTU=I),S是奇异值的对角矩阵(K×K)

3.对于每一个文档 d,用排除了SVD中消除后的词的新的向量替换原有的向量

4.用转换后的文档索引和相似度计算

image

  • SVD
    • unique mathematical decomposition of a matrix into the product of three matrices:

               two with orthonormal columns

               one with singular values on the diagonal

    • tool for dimension reduction
    • similarity measure based on co-occurrence
    • finds optimal projection into low-dimensional space

image

  • 不足:

概率模型不够完备:在document层面上没有提供合适的概率模型,使得pLSA并不是完备的生成式模型,而必须在确定document i的情况下才能对模型进行随机抽样

(1) the number of parameters in the model grows linearly with the size of the corpus, which leads to serious problems with overfitting.

(2) it is not clear how to assign probability to a document outside of the training set.

  • Latent Dirichlet Allocation(LDA)

用一组词及其词频分布来刻画主题,并认为文本片段是从一个概率模型中生成的。

image

image

image

LDA assumes the following generative process for each document w in a corpus D

     1. Choose N ~ Poisson(ξ) (N:文档长度,泊松分布).

     2. Choose θ ~ Dirichlet(α) (θ:k维向量,狄利克雷分布;k:Topic 数量).

     3. For each of the N words wn :

              (a) Choose a topic zn ~ Multinomial(θ). (多项式分布)

              (b) Choose a word wn from p(wn|zn ,β), a multinomial probability conditioned on the topic zn.

                        (β是一个k*V的矩阵, V是词的数量,β (i,j)表示词j在Topic i中出现的概率,矩阵的一行对应一个Topic)

image

参数估计方法(α, β)

    • EM (原文作者方法);
    • Gibbs Sampling.(求解过程)

3、检索模型(Retrieval Model)

信息检索模型是指如何对查询和文档进行表示,然后对它们进行相似度计算的框架和方法。 本质上是对相关度建模。

image

IR模型分类:

image

  • 检索模型的基本概念:

标引项(Index Term)

− 文档表示成多个Term的集合

− 通常用词来表示,但是也可以用其他语言单位来表示

− 关键词(key words) 可以看成Term的一种

标引项的权重(Weight)

− 不同标引项作用是不同的

− 通过权重加以区分

检索模型的定义

信息检索模型是描述信息检索中的文档、查询和它们之间的关系(匹配函数)的数学模型。

文档是文献在系统中的存储形式,主要由词构成。词包括关键词或标引词;

查询反映了用户表达的信息需求;

匹配函数把经过处理的文献表示和查询表示同时放在系统中进行匹配,通过设置不同的匹配函数得到不同的输出结果;

image

4、Boolean模型

•基于集合论的简单模型

•检索词被布尔表达式所指定

         –精确的语义

        –整齐的形式

•Terms在文档里只有两种状态

      – 出现

      – 不出现

      因此, wij ∈ {0,1}

•检索回的文档必然完全满足检索要求:

      —所有与检索词有逻辑关联或其它限制的文档

      —精确: nothing less, nothing more

           有四种运算操作 (就像在代数运算上一样):

1. A: 取回集合A

    我想要包含term library的文档

2. A AND B: 取回集合A 和 B

    交集运算用 image表示

    取回同时包含library and digital 的文档

3. A OR B取回集合A 或者 B

    并集运算用image表示

    我想要至少包含library 和 digital 之一文档

4.A NOT B: 取回集合A 但不包含集合 B

     否运算 用A – B表示

     取回library但不包含 digital 的文档

image

• 布尔模型的优点

– 简单而整齐,为现代许多商业系统所用

– 自我保护功能,降低用户对搜索系统的期望,使自己不在责任方,检索结果不好的原因在于用户构造查询不好

•布尔模型的缺点

–检索是基于二值运算确定的,没有部分匹配的概念

–检索回的文档之间没有排序

–检索词必须被翻译成布尔表达式,这让很多用户感觉到不方便

–由用户形式化的布尔检索词大多数情况下太简单了

–因此,用布尔模型检索回的结果不是太多就是太少

•布尔模型目前仍然是商业文档数据库的主流模型,并为一些新的领域提供了一个好的起点

5、基于向量的模型

  • 动机:

                •用二值的权重太受限制

                •向量模型通过分派非二值权重给查询和文档中的索引项来实现检索目标

                • 这些权重用于计算系统中的每个文档与用户的查询请求的相似程度,向量模型通过对文档按照相似程度降序排列的方式,来实现文档与查询项的部分匹配

                •文档排列有序可使检索词与文档之间的匹配更好,返回的结果更合理

  • 原理:

               •若干独立的词被选作索引项(terms)

              •索引项代表了一个应用中的重要词项

               例如计算机科学图书馆中的索引项应该是哪些?

  • Define:

                –wij > 0 当ki 属于dj时

               –wiq >= 0 与(ki,q)关联

               –vec(dj) = (w1j, w2j, ..., wtj)

               –vec(q) = (w1q, w2q, ..., wtq)

               –这些terms之间是不相关的(Bag of Words,实际上它们是相关的),他们形成了一个向量空间(vector space)

                image

  • 相似性度量

        向量模型通过vec(dj)和vec(q)的相 关度来评价文档dj和查询q的相关度。这种关系可以用定量表示,一般使用两个向量之间的夹角余弦值来计算

        image

            image

         --N 文献数

        − ni 文献集合中包含标引词 ki的词频

        − freqi,j 某篇文献dj中包含标引词ki的词频(描述能力)

        −fi,j 词频的规范化值(局部权值,描述能力)

            −image

       −idfi 标引词ki的逆词频值 (全局权值,区分能力 )

                image

    • 文档向量权值tf/idf

           image

    • 查询向量的构造:索引词权值WI,q

           image

    • 索引词权值wij= tf*idf

image

  • 向量模型的优点:

•术语权重的算法提高了检索的性能

•部分匹配的策略使得检索的结果文档集更接近用户的检索需求

•可以根据结果文档对于查询串的相关度通过Cosine Ranking等公式对结果文档进行排序

  • 向量模型的缺点:

•索引项被假设为彼此之间相互独立的,然而在实际中,考虑索引项之间的相关性也许是个缺陷

• 由于许多索引项之间的相关性具有局限性,不加区别地将其应用到所有文档中,会影响检索系统的整体性能

  • 向量模型的改进

    • 标引词位置加权

              − 结构位置

                      - 标题、摘要、关键词、正文、结论和超连接

              − 重点句位置

                     - 综上所述、结束语、主要在于

    • 辅助主题词表

             − 将带修饰和限制作用的词——形容词和副词做成辅助主题词表,用以扩展用户查询

             − 将检索关键词和字典库中的同义词和修饰词结合起来,形成新的查询,提高了检索的效率

    • 个性化协同检索设计

             − 将每次的检索结果、用户兴趣等建立个性化信息库,并进行信息反馈,定期刷新,不断充实

6、概率模型

•概率论模型,亦称为二值独立检索模型

−1976年由Roberston和Sparck Jones提出的经典概率模型。它企图在概率的框架下解决IR的问题

−给定一个用户查询,存在一个文档集合,该集合只包括与查询完全相关的文档而不包括其他不相关的文档,称该集合为理想结果集合

•如何描述这个理想结果集合?

−即:该理想结果集合具有什么样的属性?

−基于相关反馈的原理,需要进行一个逐步求精的过程

•基本假设

−给定一个查询q和文档集中一个文档dj,概率模型试图找出用户对其感兴趣的概率

•模型假设这个概率只是依赖于查询和文档的表示,进而模型假设文档集中存在一个子集,它使得总体相关概率在集合中的文档被认为是与查询相关的,不在集合中的则被认为是不相关的

•贝叶斯定理

image

•词条的独立假设

   P(AB)= P(A) P(B) 当且仅当 A与B相互独立

   对一篇文档而言,若文档中的各个索引词相互独立,则有

   P(dj)=P(k1)…P(kt)

  • 定义

•设索引词的权重为二值的,即:

image

•R表示已知的相关文档集(或最初的猜测集),用 image表示R的补集。 image表示文档dj与查询q相关的概率, image表示文档dj与查询q不相关的概率。文档dj与查询q的相似度sim(dj, q)可以定义为:

image

•根据贝叶斯定理有

image

•假设标引词独立,则

image

•这是概率模型中排序计算的主要表达式

•取对数,在相同背景下,忽略对所有因子保持恒定不变的因子,则有

image

  • 如何计算上式中的 imageimage呢 ?

    • 简单假设作为最初的猜测

− 1) 对所有的索引词ki是恒定不变的,通常取为0.5,即

       −image

− 2) 不相关文档中的索引词ki的分布可以通过文档集中索引词的分布来估计,即

       −image

       − 其中,ni表示包含索引词ki的文档数, N表示集合中的文档总数

    • 初始值确定后,根据与查询q相关的大小进行初步排序,取前若干个文档作为相关查询集合

    • 之后通过如下方法进行改进(即开始递归计算)

              用V表示概率模型初步检出并经过排序的文档子集

                       − Vi表示V中包含索引词ki的文档数

             改进 imageimage 的过程如下:

                  − 1) 用已经检出的文档中索引词ki的分布来估计image

                           − 2) 假定所有未检出的文档都是不相关的来估计 image

                    即image image

    • 如此递归重复这一过程,得到理想结果集合

                  对较小的V和Vi上述计算会出现问题,如V=1和Vi=0,可做一些改进:

                            imageimage

                            调整因子也可以为ni/N, 即

                           image

  • 概率模型的算法步骤

− 起始时(只有查询需求,没有检索结果)假设:
(1)对所有索引项概率image是常数;
(2)索引项在非相关文档集中的分布近似等于在所有文档集中的分布,即:image

  • 令V是初始检索结果的子集,有r个,取自检索结果集中前r个文档,这些检索结果是经过概率模型排好顺序的
  • 令Vi是V中所有包含索引项ki的那些文档,显然Vi是V的子集;为简单起见,直接用V和Vi表示这些集合中的元素数量
  • 修改对概率imageimage的计算方法

image

  • 为保证数值计算的稳定性,常用下列公式计算相似度:

image

•优点

        •理论上讲,文档按照其与目标集合的相关概率降序排列

image

•缺点

        •需要最初将文档分为相关和不相关的集合

        •所有权重都是二值的,模型中仍然假设索引项之间是相互独立的


推荐阅读
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
Mr_JJwonG05
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有