用于词义消岐的Lesk算法

2023-05-16

该算法由Michael E. Lesk于1986年提出,是一个基于词典的词义消岐方法。
该算法认为:一个词在词典中的词义解释与该词所在句子具有相似性。这种相似性可以由相同单词的个数来表示,比如“cone”和"pine"的意思分别为:
 

CONE
1. solid body which narrows to a point
2. something of this shape whether solid or hollow
3. fruit of certain evergreen trees  

PINE 
1. kinds of evergreen tree with needle-shaped leaves
2. waste away through sorrow or illness  
其中Pine #1和Cone #3的重合度为2,从而表示这两种意思具有相似性。
一个简化的Lesk伪代码如下,输入是一个词和该词所在的句子,辅助的资源是词典,词典中有词义解释和例句
这里匹配相似度不仅仅用该词的词义解释,也用到了该词的例句。当然在实际应用中需要去掉停用词。
但是,该算法也存在很多问题,比如有的词在词典中没有出现,或者有的词在词典中的解释过少。另外,也可以借助其他的词典,如同义词词典,就不是简单的判断重合度,也考虑了两句话中各个词同义词的重合度。在SenVal-2的评测任务中该方法的准确率达到50%-70%。
介绍一个基于WordNet的非常好用的计算词语相似度的工具JWS,如何使用http://www.cnblogs.com/sl-shilong/archive/2013/01/23/2874094.html,下面是简介

摘要:

wordent是一个免费的软件包,可以用来计算两个概念(或者word sense)之间的语义相似度,它提供了六种计算相似度 和三种计算概念之间的关联度方法,所有的这些方法都是基于wordnet这个词汇数据库。这些计算方法已经用Perl实现,算法模型的输入是两个概念,返回结果就是用来表示相似或者关联度的一个数量值。

 

概述:

计算两个概念相似的程度,主要是基于包含在层次结构“isa”结构中的信息。比如:如果automobileboat拥有同一个祖先vehicle,那么automobile 会被认为 boat 的相似程度大于和tree的相似度。

自从wordnet把名词和动词组织成isa这种层次关系,wordnet 就非常适合进行形似度的计算。在2.0版,有九个名词层次结构 包含80000个概念,还有554个动词层次结构包含13500个概念。

Wordnet中的isa关系并不是跨词性的,所以,基于wordnet的相似度计算只是局限在名词之间(比如:cat dog)和动词对之间(比如:runwalk)。而wordnet也包含形容词和副词,这些词不能组织成isa关系,所以这些词也就不能进行相似度的计算。

然而,概念之间除了通过相似度关联外,还可以通过很多种其他方法。比如:wheel car 的一部分,nightday的反面,snow是由water变成的,knife是用来切bread等等。Wordent也提供额外的联系 比如:haspartismadeofisanattributeof 等等。除此之外,每一个概念(或者word sense)都通过一段简短的定义或者注释加以描述。

计算关联的方法是基于这些额外的信息,并且这些方法可以运用的更广泛的概念对中。比如:可以跨越词性,然后可以达到使动词murder和名词gun相关联的程度。也可以计算不是isa关系的词汇比如形容词 violentharmful

 

相似度计算

三种相似度的计算是基于概念之间路径长度的:lchLeacock&Chodorow 1998,wup(Wu&Palmer 1994),path,其中lch方法是找到两个概念之间的最短路径,然后在isa层次中找到最大路径长度。Wup方法是找到两个概念从最近的公共祖先节点到root 节点的路径长度。Path方法是两个概念之间最短路径长度的倒数。

另外,概念的信息内容来自SemCorsensetagged 集合。然而,也有现成的程序可以对没有标注的集合中的信息进行计算,比如Brown Corpusthe Penn Treebank, British Nation Corpus ,或者任意形式的普通文本。

WordNet::Similarity支持两种假定的根节点,这两种根节点可以存在也可以不存在,当存在时,一个根节点包含所有的名词节点,另一个包含所有的动词节点。这样便允许把相似度计算应用到任意的名词和动词对之间。如果两个根节点不存在,那么只有在同一个isa层次中的词才能计算相似度。

 

计算关联度

有三种wordnet支持的计算关联度的方法分别是:hsoHirst&St-Onge1998,lesk(Banerjee&Pedersen 2003),vector(Patwardhan 2003).hso方法是基于路径并且根据方向把关系分类。比如isa关系是纵向的,haspart关系是横向的。最好能在两个概念之间找到一条路径,这条路径不能太长并且方向也不能改变的太频繁。

Wordnet中的每一个概念(或者word sense)都是通过一个短注释进行定义的。Lesk方法和Vector方法是把注释作为概念的唯一的标识方法。Lesk方法通过寻找和计算两个概念的注释的交叉部分,和在wordnet中同时与一个概念相连接的方法来计算相似度。

Vector方法建立一个由wordnet 注释组成的cooccurrence矩阵。Wordnet注释中每一个word都有一个关联向量。每一个注释都是由一个gloss vector的形式组成的,gloss vector 的内容通常是所有上下文向量的gloss中的词组成的。两个概念之间的关联度就是通过计算两个gloss向量的夹角余弦值。

 

运用 Wordnet::Similarity

Wordnet::Similarity 的实现具有Perl的面向对象的特征。利用Wordnet::QueryData 包(Rennie2000)来创建一个Wordnet的描述。已经有大量现成的方法实现现有的相似度测量方法。

当一个已有的方法要合并到Perl程序中,那种方法的对象必须通过new()方法创建。然后通过getRelatedness()方法得出WorldNet中的一对sense的相似度以及关联度。

Wordnet::Similarity 也可以通过应用程序similarity.pl提供的命令行接口来访问。这种方式可以允许用户对于具体的一对概念(wordpossense的形式给出),利用某个方法交互式的操作。比如:carn3代表car 的第三个wordnet名词sense。另外还允许对于和一个word或者wordpos的组合相关联的所有可能的sense进行详细的说明。出此之外,还有基于这种应用程序的web形式的接口。

我们忽略wordnet怎样运行,Wordnet::Similarity对于每一个不同的方法都提供了详细的跟踪并显示出各种诊断信息的具体说明。比如:对于依赖于路径长度的方法(lchwuppath),跟踪显示出所有的两个概念之间的所有的路径。对于信息内容的追踪方法(reslinjcn)则包含了两个概念之间所有的路径以及最近的公共子概念。对于hso方法的追踪显示出通过wordnet找到的真正路径,而lesk则显示出了wordnet中两个概念相互重叠的gloss以及以及他们相近的关系。Vector方法显示了用于创建一个概念的gloss向量的所有word vectors

我们已经把Wordnet::Similarity合并到通用的基于语义联系的词意消歧的方法中(Patwardhan,Banerjee,&Pdersen2003)。这种方法已经在SenseRelate 包实现了(http://senserelate.sourceforge.net). 这个算法的前提是一个wordsense可以通过查找它所有的sense中与它相邻的wordsense关联最大的那个而得到.我们现在正在摸索把相似度和关联度算法运用到评估一个text generation system 的组建选择上.


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于词义消岐的Lesk算法 的相关文章

  • 适配器模式优缺点

    优点 xff1a 1 将目标类和适配者类解耦 2 增加了类的透明性和复用性 xff0c 将具体的实现封装在适配者类中 xff0c 对于客户端类来说是透明的 xff0c 而且提高了适配者的复用性 3 灵活性和扩展性都非常好 xff0c 符合开
  • Oracle 的 Round函数

    Round函数用法 xff1a 截取数字 格式如下 xff1a ROUND xff08 number decimals xff09 其中 xff1a number 待做截取处理的数值 decimals 指明需保留小数点后面的位数 可选项 x
  • eclipse报错:Failed to load the JNI shared library

    电脑自装系统以来 xff0c 好久没有写java代码了 xff0c 所以一直也没用 eclipse IDE xff0c 今天将eclipse打开 xff0c 报了个问题 xff0c Failed to load the JNI shared
  • 10串口通信

    51单片机学习记录10 通信通信的的基本概念串口参数及时序图常用通信接口比较 51单片机串口介绍串口通信简介串口内部结构串口通信相关寄存器 串口通信实验串口向计算机发送数据计算机通过串口控制LED 通信 通信的的基本概念 通信的方式 通信方
  • 【已解决】zookeeper配置出现问题合集

    已解决 zookeeper配置出现问题合集 1 问题诊断 日志2 问题解决合集2 1zookeeper集群搭建报错 拒绝连接 2 2zookeeper集群搭建报错 没有找到主机路由 1 问题诊断 日志 1 进入文件查看日志 xff1a zo
  • noVNC 安装、配置与使用

    最近项目中使用到了远程终端操控 xff0c 从各方找到了noVNC这个神奇的家伙 xff0c 废话不多说 xff0c 开始介绍它的安装配置与使用 1 下载noNVC 好多渠道可以下载到noVNC xff0c 可以直接访问noVNC的官方网页
  • 360极速浏览器网页保护色

    方法一 xff1a 360浏览器的 扩展中心 有一个 绿色眼睛 的插件 xff1b 但是感觉一般 xff0c 不够彻底 xff1b 方法二 xff1a 360急速浏览器是基于开源Chrome浏览器修改的 xff0c 所以可以直接用Chrom
  • STM32基于FreeRTOS的多任务程序案例

    STM32基于FreeRTOS的多任务程序案例 一 初步了解FreeRTOS二 实验要求三 基于FreeRTOS的多任务程序案例四 参考链接 使用工具 野火stm32mini开发板 Keil uVision5 野火多功能调试助手 一 初步了
  • 【TcaplusDB知识库】TcaplusDB刷新tbus通道介绍

    命令 xff1a RefreshBusCfg 其中 xff0c 指进程的进程id xff0c 比如1 2 2 2 1 2 1 2等 xff0c 也支持简单的正则表达式 xff0c 比如RefreshBusCfg 1 2 2 那么只要匹配到1
  • Python中下划线的5种含义

    作者 xff1a 地球的外星人君 链接 xff1a https zhuanlan zhihu com p 36173202 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 分享一篇文章
  • ubuntu下 安装PX4编译环境

    最近博主的ubuntu虚拟机再次崩溃 xff0c 狠下决心将4G内存升级为12G 这样就可以给虚拟机多分配些内存了 鉴于前两次安装PX4环境出现了很多错误 xff0c 走了很多弯路 xff0c 没有一一记录下来 xff0c 所获甚少 故而借
  • PX4原生固件,position_estimator_inav解读

    INAV integrated navigation组合导航 对于多旋翼的位置姿态估计系统 xff1a PX4原生固件如今已经默认使用EKF2了 xff0c 另一种情况是 使用local position estimator attitud
  • FusionCharts Free (FCF) 版本 v3.0 更新细节

    版本 v3 0 更新细节 1 新的图表类型 滚动图 柱二维 xff0c 二维和区系的二维 xff0c 堆栈柱二维 xff0c 二维结合 xff0c 结合二维 xff08 双 Y 轴 xff09 样图 样条区域图 对数坐标图 二维多图单 组合
  • dwm-1000 测距总是出现 #define SYS_STATUS_RXPTO 0x00200000UL /* Preamble detection timeout */

    ex 05b ds twr resp 程序 总是出现 致使官方的代码 无法实现通讯 define SYS STATUS RXPTO 0x00200000UL Preamble detection timeout 需要着重修改参数
  • VNC远程桌面到linux,提示connection refused(10061)解决办法

    确认server端的VNC服务开启 xff0c service vncserver start xff0c 检测状态时ok的 ps ef grep vnc xff0c 来查看不是已经开启多个vnc连接 如果有多个vnc连接 xff0c 使用
  • uio驱动框架

    核心 xff0c 利用mmap进行映射 参考资料 uio 编写实例 1 https blog csdn net wujiangguizhen article details 12453253 uio编写实例 2 https blog csd
  • enum类型被intent所携带时需要注意的地方

    一般我们在Activity之间传递对象时多用Parcelable 比如写一个class xff0c 在这个class上标明implements Parcelable并实现接口就可以用Intent putExtra String Parcel
  • dump文件,windbg

    dump文件 xff0c 在VC中的调试还是非常非常非常有用的 xff0c 因为我们也不会经每一行代码都加上日志 xff0c 当然如果你愿意 xff0c 也可以每一行都加上日志 xff1b 在Windows上 xff0c 添加dump文件有
  • 使用PyQt4制作一个音乐播放器(1)

    1 前言 最近用Python给老妈写了一个处理excel表格的小软件 xff0c 因为自己平时用Python一般都是用在数值计算领域 xff0c 所以一般使用命令行的方式交互即可 但是给老妈用发现用命令行交互方式使用并不是很方便 xff0c
  • AI 到底是怎么「想」的?

    本文作者 xff1a kurffzhou xff0c 腾讯 TEG 安全工程师 最近 xff0c Nature发表了一篇关于深度学习系统被欺骗的新闻文章 xff0c 该文指出了对抗样本存在的广泛性和深度学习的脆弱性 xff0c 以及几种可能

随机推荐

  • 效能优化实践:C/C++单元测试万能插桩工具

    作者 xff1a mannywang xff0c 腾讯安全平台后台开发 研发效能是一个涉及面很广的话题 xff0c 它涵盖了软件交付的整个生命周期 xff0c 涉及产品 架构 开发 测试 运维 xff0c 每个环节都可能影响顺畅 高质量地持
  • tensowflow报错tensorflow.python.framework.errors_impl.InvalidArgumentError<exception str

    tensorflow用于自己的数据集时 xff0c 在用saver restore导入模型到Session中 xff0c 导入语句报错 xff0c 异常链终止时提示 xff1a tensorflow python framework err
  • 详解HTTP中的摘要认证机制

    在上一期http blog csdn net tenfyguo article details 6167190中笔者较为详细的介绍了HTTPBasic认证在apache下的配置 xff0c 通过简单的实验演示了HTTP Basic认证的基本
  • 【ubuntu(Linux)安装Vs code并配置c++编译及cmake多文件编译】

    目录标题 VS code配置c 43 43 编译环境1 Linux系统安装2 在Ubuntu中安装VS code2 1 首先下载对应系统的VS code安装包2 2 安装VS code 3 在ubuntu系统下的vscode中配置g 43
  • yolo v4安装与使用

    yolo v4安装与使用 GPU版本 系统环境 Ubuntu18 04 cuda11 0 cudnn8 0 4 opencv3 4 4 相关链接 官网链接 xff1a https github com AlexeyAB darknet yo
  • Jetson NX克隆与烧录镜像

    前言 本文主要说明如何在Ubuntu系统上备份Jetson NX镜像 xff0c 并烧录镜像到多台NX开发板上 我的NX的系统是在SD卡上的 xff0c 所以这个方法只适用于系统装在SD卡上的开发板 参考链接 https blog csdn
  • ros2 CMakeLists.txt与packages.xml写法

    注 xff1a 尽量使用ament cmake auto来编写cmakelists txt文件 xff0c 依赖的程序包在packages xml文件中用 lt depend gt nav msgs lt depend gt 的形式声明 x
  • TX2 ubuntu18.04 改固定IP地址 eth0无本机IP

    注意事项 我是在TX2 ubuntu18 04上改的固定IP地址 其他主机上ubuntu18 04好像需要另一种方法 xff0c 需要你自己去百度上搜 参考博客 https blog csdn net a13662080711 articl
  • MFC与.NET混合编程

    1 xff1a VS2008 建立 MFC程序 xff1b 2 xff1a Alt 43 F7 设置 xff1a 公共语言运行库支持 xff08 选择 xff09 公共语言运行库支持 clr xff1b 3 xff1a 添加 Net相应库
  • 在TX2(Jetpack4.2+kernel4.9.140+librealsense v2.22)上安装D435i驱动

    在TX2 xff08 Jetpack4 2 43 kernel4 9 140 43 librealsense v2 22 xff09 上安装D435i驱动 前言准备工作系统版本参考资料 操作步骤 前言 用了很长时间 xff0c 参考了很多博
  • ROS发布静态tf变换

    方法一 xff1a include lt ros ros h gt include lt tf transform broadcaster h gt int main int argc char argv ros init argc arg
  • ROS常见问题及解决方法

    1 undefined reference to 96 tf TransformBroadcaster TransformBroadcaster 问题描述 xff1a CMakeFiles imu data dir src imu data
  • TX2制作镜像并烧写镜像

    前言 本文简要介绍TX2如何制作镜像并烧写镜像 xff0c 如果读者一开始是通过sdkmanager安装的TX2系统可直接进入笔记本中 nvidia nvidia sdk JetPack 4 2 Linux P3310 Linux for
  • php写守护进程(Daemon)

    守护进程 xff08 Daemon xff09 是运行在后台的一种特殊进程 它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件 守护进程是一种很有用的进程 php也可以实现守护进程的功能 1 基本概念 进程 每个进程都有一个父
  • clang-format 说明

    转载自 xff1a https www cnblogs com lepeCoder p 8032178 html BasedOnStyle string 这个样式用于所有没有特殊指定配置的选项 这个选项仅在clang format配置中支持
  • 路径规划

    转载 xff1a 链接 xff1a https www jianshu com p f3bab4e119cf D算法 xff0c Dijkstra算法 两个表 xff1a closed表与open表 closed表用于记录已访问过的节点 x
  • awk 筛选并计算时间

    grep 39 filter cost time 39 log file awk F 39 filtered route count 39 39 print 2 39 awk F 39 39 39 print 1 39 awk 39 BEG
  • 忽略批处理中的pause命令

    当存在一个批处理文件 run bat xff0c 其中 xff1a 64 echo 开始暂停 pause 64 echo 暂停结束 当我们执行这个run bat文件时 xff0c 运行到pause会提示需要按任意键继续 xff0c 并且命令
  • BullseyeCoverage 代码覆盖度检查工具

    昨日又有同事问我 BullseyeCoverage 的使用方法 xff0c 由于时间久远 xff0c 有些遗忘 xff0c 只后悔当初为什么没有整理记录下来 xff0c 只好重新查阅了很多文档 今日整理下比较重要的知识 xff0c 方便以后
  • 用于词义消岐的Lesk算法

    该算法由Michael E Lesk于1986年提出 xff0c 是一个基于词典的词义消岐方法 该算法认为 xff1a 一个词在词典中的词义解释与该词所在句子具有相似性 这种相似性可以由相同单词的个数来表示 xff0c 比如 cone 和