自然语言处理(NLP)—— 词义消歧与词语相似性(Word similarity)

news2024/10/6 2:24:08

1. 词义消歧

1.1 词义消歧的概念

        词义消歧(Word Sense Disambiguation, WSD)的概念及其在自然语言处理中的应用之一。词义消歧是确定一个词在特定语境下使用时所指的具体含义。

        在提到的例子中,“Do you believe in clubs for young people? Only when kindness fails. — W.C. Fields”,这里的“clubs”这个词有多重含义,可以指 俱乐部 或者 棍棒 ,W.C. Fields 通过使用双关语创造了幽默效果,突出了“棍棒”这一意义。

1.2 贝叶斯分类

        在1992年,Gale等人提出了一种基于贝叶斯分类的方法来解决词义消歧问题:

        首先,确定一个词w有多种含义s*,这个词在语料库中的上下文c*,以及围绕这个词的其他词v*。
        对于给定的上下文c,我们尝试最大化条件概率P(si | c),即在上下文c中词w是意义si的概率。

        贝叶斯方法通过如下的方式寻找最可能的含义s*:

       argmax P(s* | c) = argmax [log P(c | s*) + log P(s*)]

        在这里,argmax是寻找使概率最大化的意义s*的操作,log P(c | s*)是在意义s*下上下文c的对数概率,log P(s*)是意义s*的先验对数概率。

1.3 朴素贝叶斯假设

        朴素贝叶斯假设认为,一个上下文c给定词义sk的概率可以表示为c中所有单词vj给定词义sk的概率的乘积:

P(c | sk) = ∏vj∈c P(vj | sk)。

        最后,通过在学习语料库中估计最大期望来进行计算:

        ˆP(vj | sk) = #{vj ∈ context(sk)} / #{w},
        ˆP(sk) = #{sk} / #{w},

        这里,#{vj ∈ context(sk)}表示在意义sk的上下文中vj出现的次数,#{w}表示语料库中词w的总数,#{sk}表示语料库中意义sk的出现次数。

        简单来说,这是一种统计方法,通过计算不同词义下上下文的概率,来判断一个词在特定语境中最可能的意义。

1.4 Lesk算法

        词义消歧的另一种方法,即使用词典中不同的词义定义来确定在特定上下文中使用的词义。Lesk算法是这种方法的经典形式,提出于1986年。

1.4.1 Lesk算法的基本思想

        首先收集目标词在词典中所有可能的定义。
        然后取目标词每个定义中的词汇,并将这些词汇与目标词周围词汇的定义进行比较
        如果一个定义中的词汇和上下文中其他词汇的定义有较多重叠,那么这个定义就被认为是正确的词义。

        例如,如果我们要确定句子中的"car"的意思,我们会考虑"car"所有的定义,并看这些定义中的词汇与"car"在句子中周围词汇的定义有多少交集。Lesk算法假设越多的交集意味着更高的可能性,那个定义是句子中"car"的正确含义。

        Walker于1987年提出使用词典之外的另一个资源——同义词词典或词库,这能提供更多关于词义相似性的线索。

        Resnik在1995年提出利用WordNet,这是一个大型的词汇数据库,里面包含了大量的英语词汇的同义词集合以及它们之间的关系。WordNet通过链接词汇和它们的语义关系提供了一个有用的框架来支持词义消歧。

1.4.2 示例

        这个例子展示了单词 car 在英语中的多种含义,每个含义都对应不同的上下文和用法。在自然语言处理中,尤其是词义消歧的研究领域,识别单词在特定上下文中的正确含义是非常重要的。这些不同的含义被称为一个单词的同义词集(synsets),通常来自像WordNet这样的词义数据库。每个同义词集提供了一个单词在特定上下文中的具体含义和用法示例。

在例子中:

        car, auto, automobile, machine, motorcar – 这些词都指的是“四轮汽车,通常由内燃机驱动;他需要一辆车去上班。”这是最常见的用法,指的是普通的道路汽车。

        car, railcar, railway car, railroad car – 这些词指的是“铁路轨道上的有轮车辆;三辆车脱轨了。”在这个上下文中,“car”特指铁路上运行的车厢。

        car, gondola – 在这里,“car”指的是“悬挂在飞艇下方,用来载人和货物的吊舱。”这个含义在日常用语中较为少见。

        car, elevator car – 这里的“car”是指“电梯里乘客上下移动的部分;车厢在最顶层。”这是指电梯的乘客舱。

        cable car, car – 在这个同义词集中,“car”指的是“缆车铁路上运载乘客或货物的车辆;他们乘坐缆车到山顶。”“cable car”是特定类型的交通工具,不同于普通道路汽车。

        通过比较待消歧的单词“car”在句子中的上下文和这些同义词集中的定义和例子,词义消歧系统可以确定最合适的含义。例如,如果句子是“After the meeting, they took an elevator car to the lobby”,系统会根据“elevator”这个上下文线索确定“car”的正确含义是“电梯里乘客上下移动的部分”。

2. 词语相似性(Word similarity)

        词语相似性(Word similarity)指的是两个词在意义上的接近程度。在自然语言处理领域,衡量词语相似性对于多种应用都是非常重要的,比如语义搜索、文本理解和机器翻译。

2.1 本体论

        语义相似性度量(Semantic similarity measures)通常是基于本体论关系来计算的,这些关系包括:

        同义关系(Synonymy):两个词具有相同或几乎相同的含义。
        上下位关系(Hyponymy):一个词是另一个词的下位词,具有更具体的含义。例如,“苹果”是“水果”的下位词。
        整体-部分关系(Meronymy):一个词表示另一个词的一部分。例如,“车轮”是“汽车”的部分。

        一个常用的方法是使用WordNet这样的语义网络来寻找两个词之间的最短路径。WordNet中的节点代表不同的词义,边表示词义之间的关系。计算两个节点之间最短路径的逆可以得到一个相似性分数,路径越短,相似性越高。

        语义关联度量(Semantic relatedness measures)则用来检测和量化更广泛种类的语义关系。不同于语义相似性,它可以包括任何有意义的联系,不限于本体论关系。例如:

        car(汽车) 和 vehicle(车辆) 在语义上是非常相似的,因为汽车是车辆的一种。
        car(汽车) 和 gasoline(汽油)在语义上是关联的,尽管它们不是同义词或上下位关系,但汽油是汽车运行所需的燃料。

        语义关联度量可以基于共现频率、上下文相似性或者任何其他可以表示两个概念之间关系的统计信息。这种度量对于理解词语如何在实际语境中相互关联非常有帮助。

2.2 ESA

        ESA(显式语义分析)是Gabrilovich等人提出的一种基于维基百科语料库的语义关联度量方法。ESA的核心思想是将文本理解成一个由概念组成的向量空间,而这些概念是通过维基百科中的文章来定义的。

        ESA的工作过程可以总结为以下几个步骤:

        a.清理和过滤维基百科页面:选择那些有足够多文本内容以及一定数量的内外链的页面。

        b.预处理文本:删除停用词(stop words,如“和”、“是”等在文本分析中通常被忽略的词),进行词干提取(stemming,即将词汇还原为词根形式),以及计算单词的TF-IDF值。TF-IDF是一种统计方法,用以评估一个词对于一个语料库中的文档的重要程度。它的计算公式如下所示:
   
\text{tfidf}(t_k, d_j) = \#\{t_k \in d_j\} \cdot \log \frac{\#\{d^*\}}{\#\{d^* | t_k \in d^*\}}

        其中,t_k是某个词,d_j是一个文档,\#\{t_k \in d_j\}是词t_k在文档d_j中的出现次数,\#\{d^*\}是文档总数,\#\{d^* | t_k \in d^*\}是包含词t_k的文档数目。

        c.表示维基百科页面为向量:每个维基百科页面可以用一个向量来表示,在这个向量空间中,每个坐标轴代表一个非空、经过词干提取的、不同的单词,向量的坐标值是对应单词的TF-IDF值。

        d.测量向量相似性:最终,使用余弦相似度(cosine similarity)来测量两个向量之间的相似性。余弦相似度是通过计算两个向量的点积和它们大小(或长度)的乘积的余弦值来确定的,它的值介于-1和1之间,值越接近1表示相似性越高。

        总的来说,ESA是一种基于文本的语义相似性度量方法,它利用了维基百科的丰富语义信息,通过将文本转换为基于TF-IDF的向量表示,来计算文本之间的语义相似性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当金蝶遇上BI,马上就能看到数据可视化效果

最近整理咨询内容时发现,很多企业用户在咨询时都会问是否有行业案例,究其原因时他们没用过BI数据分析,不知道BI可以做什么,能做到什么地步。其实,要知道这些东西还不简单,只需要注册奥威BI软件,…

leetcode刷题(3):双指针和哈希表的使用

文章目录 1. 两数之和解题思路c实现 15. 三数之和解题思路c实现 11. 盛最多水的容器解题思路c实现 7. 整数反转解题思路c 实现 34. 在排序数组中查找元素的第一个和最后一个位置思路c实现 704. 二分查找解题思路c 实现 35.搜索插入位置解题思路c实现 153. 寻找旋转排序数组中的…

站库分离技术--反向代理技术-雷池云WAF-给自己搭建一个安全点的网站

文章目录 概要整体架构流程技术名词解释技术细节ssh-ubuntu服务器docker-映射-链接-通信nginx反代mysql设置数据库新密码 小结我的mysql映射目录我的wordpress映射目录 成果展示 概要 新买了一个云服务器,想搭建一个站库分离的wordpress为主的网站,采用d…

/etc/shadow文件详解

前言 /etc/shadow 是 Linux 系统中存储用户加密密码的文件,每行对应一个用户的加密信息。该文件只有系统管理员 root 用户可以访问。 字段详解 该文件的每一行包含 9 个字段,以冒号 (“:”) 分隔 用户名:加密密码:最后一次修改时间:最小修改时间间隔…

【人才测评】某冷库企业人才测评管理咨询项目纪实

企业都知道要重视优秀人才,要将合适的人安排到合适的岗位,但是,到底哪些人员是优秀人才呢?每个人的能力水平又应该怎么测评呢?这是很多企业管理者的困惑。该冷库企业为了支撑企业的进一步发展,引入了大量技…

【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler---原理、应用、源码与注意事项

【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler—原理、应用、源码与注意事项 这篇文章的质量分达到了97分,虽然满分是100分,但已经相当接近完美了。请您耐心阅读,我相信您一定能从中获得不少宝贵的收获和启发~ &#x1f…

Spring Security入门教程:利用Spring Security实现安全控制

在现今这个数码大展拳脚的时代,安全问题无疑是咱们这些搞软件开发的人需要谨慎应对的一块烫手山芋,无论是那些大型企业应用,还是那种小打小闹的个人项目,对我们宝贵的数据和服务的保护都显得尤为关键。 试想一下,若是…

2024年,如何使用chatgpt4.0为工作赋能?

ChatGPT 4.0的工作原理和功能 ChatGPT 4.0的工作原理和功能可以从以下几个方面进行详细说明: 工作原理 ChatGPT 4.0的工作原理主要基于深度学习技术,特别是Transformer模型的应用。它通过大量的文本数据进行训练,学习语言的模式和规律&…

从空白镜像创建Docker hello world

文章目录 写在前面基础知识方法一:使用echo工具方法二,使用c语言程序方法三,使用汇编语言小结 写在前面 尝试搞了下docker,网上的教程大多是让下载一个ubuntu这种完整镜像,寥寥几篇从空白镜像开始创建的,也…

网络原理初识(2)

目录 一、协议分层 1、分层的作用 2、OSI七层模型 3、TCP / IP五层(或四层)模型 4、网络设备所在分层 5、网络分层对应 二、封装和分用 发送过程(封装) 1、应用层(应用程序) QQ 2、传输层 3、网络层 4、数据链路层 5、物理…

jvisualvm 工具的使用

文章目录 Visual GC 插件下载代码示例说明spaces 区域PermHeap Graphs 区域Compile Time(编译时间)Class Loader Time(类加载时间)GC TimeEden Space(Eden 区)Survivor 0 / Survivor 1(S0 和 S1…

23.复习

1.设置输出数字宽度 #include <iostream>using namespace std;int main(){int a123456789,b0,c-1;printf("%8d %8d %8d",a,b,c);return 0; }2.保留小数点位数 #include <iostream>using namespace std;int main(){double a;cin>>a;printf("…

SpringBoot整合MyBatisPlus实现增删改查

1.前言☕ 大家好&#xff0c;我是Leo哥&#x1fae3;&#x1fae3;&#x1fae3;&#xff0c;今天给大家带来关于精品SpringBoot专栏&#xff0c;暂且就给他起名为循序渐进学SpringBoot&#xff0c;这里我参考了我上一个专栏&#xff1a;循序渐进学SpringSecurity6。有需要的朋…

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候&#xff0c;都是通过Ajax在规定时间内轮询调用web api&#xff0c;这样简单省事&#xff0c;但是当看板多了&#xff08;并发量上来&#xff09;以后&#xff0c;比较消耗服务器的性能&#xff0c;所以最近研究了websocket&#xff0c;希望使用…

[Flutter]自定义等待转圈和Toast提示

1.自定义样式 2.自定义LoadingView import package:flutter/material.dart;enum LoadingStyle {onlyIndicator, // 仅一个转圈等待roundedRectangle, // 添加一个圆角矩形当背景maskingOperation, // 添加一个背景蒙层&#xff0c; 阻止用户操作 }class LoadingView {static f…

十堰网站建设公司华想科技具有10年的网站制作经验

2018年已经结束了。 华翔科技收到了很多客户的咨询&#xff0c;他们都有一个共同的问题&#xff1a;建一个网站需要多少钱&#xff1f; 但是&#xff0c;我们都会问&#xff1a;您有什么具体需求吗&#xff1f; 大多数人的答案是否定的&#xff0c;他们只是想打听一下价格。 十…

3款免费又实用的良心软件,功能强大到离谱,白嫖党的最爱

闲话不多说&#xff0c;直接上硬货&#xff01; 1、酷狗概念版 这款正版音乐APP可谓是“良心之作”。不论你是新用户还是老用户&#xff0c;只要踏入概念版的门槛&#xff0c;即可获得3个月VIP作为见面礼。更令人惊喜的是&#xff0c;每天只需轻松一点播放歌曲&#xff0c;即…

VideoDubber时长可控的视频配音方法

本次分享由中国人民大学、微软亚洲研究院联合投稿于AAAI 2023的一篇专门为视频配音任务定制的机器翻译的工作《VideoDubber: Machine Translation with Speech-Aware Length Control for Video Dubbing》。这个工作将电影或电视节目中的原始语音翻译成目标语言。 论文地址&…

【XR806开发板试用】新鲜出炉的蓝牙配网Demo

今天收到了极术社区寄来的礼物&#xff0c;非常感谢。为此今天突击贡献一份蓝牙配网的小Demo&#xff0c;由于我对BLE通信不是很熟&#xff0c;此Demo仅供演示&#xff0c;存在几个问题尚未解决&#xff1a; 无法实现广播名没有修改GATT表&#xff0c;直接套用例程的了没有实现…

【自动驾驶系列丛书学习】2.《自动驾驶汽车环境感知》学习笔记

《自动驾驶技术概论》学习笔记 致谢&#xff1a;作者&#xff1a;甄先通、黄坚、王亮、夏添 -------------------------------------------------------------------------------------------------------- 笔记目录 《自动驾驶技术概论》学习笔记 1.自动驾驶环境感知概述…