NLP学习之语篇

2023-10-20 00:20
文章标签 学习 nlp 之语

本文主要是介绍NLP学习之语篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、语篇

        1.1语篇相关概念

                语篇:在文档中理解句子之间怎么关联起来的,在浏览文档时语篇可以将整个文档串成一条故事线,从上到下连贯有逻辑性。

                词性标注:在一个句子中标注所有单词的词性

                词汇/分布语义学:当我们训练这些模型时通常是以句子作为边界的

        1.2 三个关键语篇任务:                

                语篇分段(discourse segmentation):在一篇文章中,我们希望让它按照内容之间的连贯性分成一些独立的块,比如第一段是abstract,第二段是introuduction,我们希望在这两个段落之间插入一个分隔。

                语篇解析(discourse parsing):语篇解析的和核心思想是将文档组织为一种层级结构(hierarchical structure)。例如包含3个句子的一个小文档,语篇解析将这三个句子组织成为一个层级树形结构,这段文中心句是第一个子句,后面两个句子知识用来支持前面句子的观点,因此可以分为以下结构:

           

                 指代消解(Anaphora resolution)

                        目的消除文档中的指代词的歧义问题,比如在下面的句子中He在上下文猴子那个指代对象

                                                        

2、语篇分段

        2.1 语篇分段

  • 一个 文档(document)可以被视为 一个由分段组成的序列(a sequence of segments
  •         分段(Segment):一段连贯的文字
  • 连贯性(Coheion)
    • 连贯性意味着这段文字是围绕某个特定 主题(topic)或 功能(function)来组织的
      • 维基百科里的人物类传记:早年经历 (early years)、主要事件 (major events)、其他方面的影响 (impact on others)
      • 科学性的文章:简介 (introduction)、相关工作 (related work)、实验 (experiments)

           2.2 无监督方法 

                       2.2.1TextTiling算法:寻找句子之间具有较低词汇连贯性的点

                       2.2.2 对于每个句子间隙(sentence gap)    

                        创建两个 词袋向量(BOW vectors),它们由间隙两侧的各自 k 个句子中的单词组成

                         计算两个向量的余弦相似度得分

                         对于间隙 i,计算一个 深度分数(depth score),当深度分数超过某个 阈值(threshold)t 时,就在这个间隙处插入一个分界线     

                 2.3 TextTiling的例子

                   这里,我们来看一个具体的使用 TextTiling 算法进行语篇分段的例子,这里我们将相关参数设为 k=1,t=0.9(即词袋向量来自间隙前后的各一个句子,深度分数的阈值为 0.9)     

                                                   

                我们将文档分成了 7 个单独的句子,另外,我们还用不同颜色标记了文本中的一些内容相关的高频关键词。首先,我们计算第一个间隙的相似度,由于 k=1,所以这里我们得到第 1 个和第 2 个句子的词袋向量,并计算两个向量的余弦相似度,结果为 0.9。同理,我们计算第二个间隙的相似度(即第 2 个句子和第 3 个句子的词袋向量的余弦相似度),得到结果为 0.7。按照相同方法,计算得到所有其余间隙的相似度。

接下来,我们将计算每个间隙的深度分数。对于每个间隙 i,我们将前一个间隙 i−1 和当前间隙 i 的相似度差值 (simi−1−simi),与后一个间隙 i+1 和当前间隙 i 的相似度差值 (simi+1−simi) 进行求和,得到当前间隙 i 的深度分数。注意,对于第一个间隙,由于其前面没有其他间隙,所以在计算深度分数时我们可以直接忽略前项。通过计算得到的第一个间隙的深度分数为 −0.2<t=0.9,因此,我们不在这里插入分界线,而是继续往后看。我们发现,第三个间隙深度分数为 1.0>0.9,所以我们在第三个间隙处插入一个分界线。按照相同方法,计算得到所有其余间隙的深度分数。然后,我们发现没有其他分界线需要插入,因此最终我们将这段语篇以第三个句子间隙为界分为两段。

                        如果我们观察一下两个语篇分段的内容,我们会发现第一个分段主要介绍了某人面临的一个问题(没有等到电车),第二个分段则主要讲述了对于该问题的应对措施(回家取自行车)

    2.4 有监督方法     

  • 我们可以从一些容易获得的渠道得到一些带标签数据:
    • 科学出版物
    • 维基百科的文章

              

                 

                例如,我们知道科学出版物一般会按照章节(sections)和子章节(subsections)等进行分段。假设现在我们希望创建一些分段(segments)来合并文章中的一些段落(paragraphs),所以现在我们不再以句子为边界,而是以段落为边界进行分段。

                首先,我们将所有的段落单独分开,例如,上面的文章包含了 6 个单独的段落。然后,我们尝试对这些段落间隙进行标注:如果前后两个段落之间涉及到章节之间的跳转(例如,第 1 段到第 2 段是从 Abstract 跳到了 Introduction),那么我们将这两个段落之间的间隙给予一个正标签,即我们将对这两个段落进行切分;如果前后段落不涉及章节跳转(例如,第 2 段和第 3 段都属于 Introduction),我们将给予段落间隙一个负标签,即我们会不对这两个段落进行切分。然后,我们可以利用这些带标签数据来训练一个有监督分类器,再对测试集中的其他语篇数据进行分段

        2.5 有监督语篇分类器(supervised Discourage Segmenter)        

                应用一个二分类器来识别边界:就像前面提到的例子,我们可以采用一个基于正负标签数据的二分类器来决定是否需要对给定的两个段落进行切分

                或者使用序列分类器:我们也可以使用像 HMM 或者 RNN 这类序列模型进行分类。这种情况下,我们在分段时会考虑一些上下文信息,从而在分段时得到一个全局最优的决策结果

                我们还可以潜在地包含分类的章节类型 (section type):假如我们使用维基百科或者科学文章,我们知道其中每个章节都有特定的主题/功能,我们可以原问题转换为一个多任务问题:我们不仅对语篇文本进行分段,并且我们还需要给出每个分段所对应的章节

                 我们还可以集成一些更宽泛的特征: 包括:分布语义学和语篇标记(discourse markers)例如:threfore、and、howerver等

 3、语篇解析

        语篇解析(Discourse Parsing),其目标是将 语篇单元 (discourse units) 组织成层级结构中的故事线,例如:某段文本是否是对另一段文本的解释

        3.1 语篇解析:         

  • 识别 语篇单元 (discourse units),以及它们之间所维系的 关系(relations)
  • 修辞结构理论 (Rhetorical Structure Theory, RST) 是一个对文档中的语篇结构进行层级分析的框架。RST 在计算机科学中具有广泛应用,例如:总结 (Summarisation)、问答 (QA) 等。

        下面是之前的一个例子,RST可以将文档组织成语篇单元

                

          在这个文档中,我们一共有 3 个语篇单元,RST 试图在给定这些语篇单元的情况下,发现它们之间所维系的关系。例如:第 2 个从句和第 3 个从句之间存在 让步(Concession)关系,而这两个语篇单元作为整体又和第一个主要句子之间存在 详述(Elaboration)关系。一旦我们构建完成这样一个层级树形结构,我们就可以知道根结点代表的核心语篇单元以及用于支持它的其他语篇单元。

        3.2 RST  

                3.2.1 基本单元:基本语篇单元(elementary discourse units, EDUs)

                         通常是组成一个句子的 子句(clauses)

                         EDUs 不会跨越句子边界。 例如,RST 将下面的句子划分为两个 EDUs

                  3.2.2 RST 还定义了语篇单元之间的 关系(relations)

                          连接 (conjuction),论证 (justify),让步 (concession),详述 (elaboration) 等      

                           例如,在之前的例句中,第二个 EDU 和第一个 EDU 之间是详述 (elaboration) 关系      

                          

        3.3  核心 vs. 伴随体

                     在每个 RST 语篇关系中,都有一个论点作为 核心(nucleus),即主要论点

                     支持论点作为 伴随体(satellite)

                        

                         有些关系是对等的(例如:连接 conjunction),这种情况下,两个论点都是核心(nuclei)

                        

                         在 RST 关系中,总是存在作为核心的语篇单元,因此我们可以有两个核心,或者一个核心和一个伴随体,但是,不会存在只有伴随体组成的关系。

        3.4 RST树

                下面是一个RST树

                

                 一段 RST 关系将两个或者更多的语篇单元 (DU) 合并为一个复合语篇单元 (composite DU)。通常,一个 RST 树的是通过迭代地对语篇单元进行合并的方式构建的。可以看到,每段 RST 关系都是在两个语篇单元之间定义的。例如:1F 和 1G 之间存在 CONJUCTION 关系,而 1E 与 1F 和 1G 的结合体之间也存在 JUSTIFY 关系。一旦我们将 RST 中的两个语篇单元 (DU) 结合起来,我们将得到一个复合语篇单元 (composite DU),然后这个复合 DU 就可以和 RST 中的其他 DU 或者复合 DU 形成另外的关系

                通过重复合并 DU 的过程来创建一个 RST 树。在上面的例子中,我们可以自底向上依次对 DU 进行合并,最终得到一个 RST 树

        3.5 使用语篇标记进行解析

                接下来我们将讨论 解析(Parsing),即给定一段文本,我们希望 自动化 地构建出包含了语篇单元及其关系的 RST 树形结构

                一些语篇标记(discourse markers) 显示表明了一些关系,例如:although,but,for example... 我们可以使用这些语篇标记去构建简单的基于规则的解析器(rule-based parser),但是,许多关系根本没有用话语标记进行标记,可能在语篇单元中没有显示的语篇标记,但是这些语篇单元之间确实存在某种关系,还有重要的标记具有歧义性,例如"and" 可以表示连接(conjunction)、原因(reason)、论证(justify),我们不能总是基于简单的规则将其视为连接关系。

                

                        

                               

                         

                

这篇关于NLP学习之语篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243334

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件