热门标签 | 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

•缺点

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

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


推荐阅读
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文对比了杜甫《喜晴》的两种英文翻译版本:a. Pleased with Sunny Weather 和 b. Rejoicing in Clearing Weather。a 版由 alexcwlin 翻译并经 Adam Lam 编辑,b 版则由哈佛大学的宇文所安教授 (Prof. Stephen Owen) 翻译。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 如何使用 `org.eclipse.rdf4j.query.impl.MapBindingSet.getValue()` 方法及其代码示例详解 ... [详细]
  • 在日常的项目开发中,测试环境和生产环境通常采用HTTP协议访问服务。然而,从浏览器的角度来看,这种访问方式会被标记为不安全。为了提升安全性,当前大多数生产环境已经转向了HTTPS协议。本文将详细介绍如何在Spring Boot应用中配置SSL证书,以实现HTTPS安全访问。通过这一过程,不仅可以增强数据传输的安全性,还能提高用户对系统的信任度。 ... [详细]
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社区 版权所有