WordNet介绍——一个英语词汇数据库

        传统语义知识库最常见的更新方法是依赖人工手动更新,使用这种更新方法的语义知识库包括最早的 WordNet、FrameNet和 ILD,以及包含丰富内容的 ConceptNet和 DBPedia。此类语义知识库的特点是以单词作为语义知识库的基本构成元素,以及使用预先设定的规则确定与更新单词间的关系结构。下面,我们将介绍WordNet这一传统语义知识库,它的基本单元是同义词集合,即每个集合中的元素相互之间构成同义关系。WordNet 使用不同的关系构造语义知识库(包括上下
位关系、反义关系、整体-部分关系等),并且基于这些关系构成了语义知识表征。

背景  

      有意义的句子是由有意义的单词组成的,任何希望像人类一样处理自然语言的系统都必须拥有关于单词及其含义的信息。这些信息传统上是通过字典提供的,而机器可读的字典现在已经广泛使用。但字典词条的发展是为了方便人类读者,而不是为了机器。传统词典一般都是按字母顺序组织词条信息的,这样的词典在解决用词和选义问题上是有价值的。然而,它们有一个共同的缺陷,就是忽略了词典中同义信息的组织问题。

主要工作

        WordNet提供了传统词典编纂信息和现代计算的更有效结合。WordNet是一个在线词汇数据库,设计用于在程序控制下使用。英语名词、动词、形容词和副词被组织成同义词组,每个同义词组代表一个词汇化的概念,语义关系将同义词集连接起来。

        WordNet与其他标准词典最显著的不同在于:它将词汇分成五个大类:名词、动词、形容词、副词和虚词。实际上,WordNet仅包含名词、动词、形容词和副词。虚词通常是作为语言句法成分的一部分,WordNet忽略了英语中较小的虚词集。

        WordNet最具特色之处是根据词义而不是词形来组织词汇信息。可以说WordNet是一部语义词典。但是与按字母排列的语义词典以及按主题排列的语义词典都不同,它是按照词汇的矩阵模型组织的。如下图所示。同义词集合(synonymy set)可以看作是词形(word form)之间一种具有中心角色的语义关系。WordNet的2.0版本中,有115424个同义词集合,其中名词同义词集合就有79685个。基本上涵盖了我们常用的英语名词词汇。

语言定义

vocabulary 词汇

 W=\left \{ (f_{1},s_{1}),(f_{2},s_{2}),...,(f_{n},s_{n}) \right \}
form 词形f由一串音素组成的话语,也可以是由一串字符组成的铭文
sense 词义s 来自一组给定意义的元素
word 单词/有意义的形式
polysemous 多义词/有一个以上意思的词
synonymous 同义词/两个至少有一种意义相同的词
word’s usage 词的用法集合C词的用法是指该词可以适用的所有语言上下文。这些上下文可以被视为一个集合,用C来表示
syntax句法类别/语言的句法将集合C组织成不同的句法类别。例如,一些词属于子集N(名词),另一些属于V(动词)等等。这种分类是基于词在句子中所能扮演的语法角色
语义上下文/在每个句法类别内,根据词义还有进一步的细分,称为语义上下文。这些语义上下文定义了一个词在哪些具体的上下文中可以表达特定的意义。因此,每个词都有一组上下文,在这些上下文中,它可以表达特定的语义,分别用f(形式)和s(意义)表示

morphology 形态学

集合M

形态学研究词的结构,它是通过词形之间的关系集合定义的。在英语中,包括:

  • 屈折形态学inflectional :通过改变词形来表达语法特征,如时态或数量(例如,"walk"变为"walked"表示过去时)。
  • 派生形态学derivatioanl:通过添加前缀或后缀创造新词(例如,"happy"变为"happiness")。
  • 复合形态学compound:通过组合两个或多个词来形成新词(例如,"tooth"和"brush"结合成"toothbrush")

lexical semantics

词汇语义学

集合S

这指的是语言中不同词义之间的关系集合。一个词所参与的特定语义关系有助于定义其意义。例如,同义词、反义词和上位词都是可以阐明词义的语义关系类型

语义关系

Semantic Relation 语义关系Syntactic Category 语法分类 Examples
Synonymy 同义词N, V, Aj, Av

pipe, tube

rise, ascend

sad, unhappy

rapidly, speedily

Antonymy 反义词Aj, Av, (N, V)

wet, dry

powerful, powerless

friendly, unfriendly

rapidly, slowly

Hyponymy 下位关系N

sugar maple, maple

maple, tree

tree, plant

Meronymy 部分关系N

brim, hat

gin, martini

ship, fleet

Troponomy 下位关系V

march, walk

whisper, speak

Entailment 蕴含关系V

drive, ride

divorce, marry

        下面我们介绍一些反义关系、上下位关系、部分关系。

反义关系(antonymy):一个词x的反义词有时并不是非x。如,“富有(rich)”和“贫穷(poor)”是一对反义词,但是要说某个人不富有并不意味着一定穷;许多人认为自己既不富也不穷。反义词似乎是一种简单的对称关系,实际上却是相当复杂的。反义词是一种词形间的语义关系,而不是词义间的语义关系。例如,词义{升高,上升}和{下落,下降}可能在概念上是相对的,其中[升高/下落]是反义词,[上升/下降]也是反义词。但是,如果说“升高”与“下降”与“上升”于“下落”是否是反义词,就要考虑一下了。所以有必要区分词形之间的语义关系和词义之间的语义关系。反义关系为WordNet中的形容词和副词提供了一种中心组织原则。

上下位关系 :上位关系(hypernymy)/下位关系(hyponymy)是词义之间的语义关系。如:{樟树}是{树}的下位词,{树}又是{植物}的下位词。下位/上位关系也称为从属/上属关系,子集/超集关系,或IS-A关系。如果以英语为母语接受以“An x is a (kind of) y”框架构造的句子,则同义词集合{x1,x2,…}表示的概念与同义词集合{y1,y2,…}表达的概念是下位概念和上位概念的关系。上下位关系具有某种限制,而且是一种不对称的关系。通常情况下,一个同义词集合如果有与之是下位概念和上位概念的关系的同义词集合,则也只有惟一的一个。即便是不惟一,同为上位概念的关系的同义词集合之间差别也是非常小的。这就产生了一种层次语义结构,其中下位词位于其上属关系的下层。这样的层次表达方法,Touretzky称作继承体系,它意味着下位词继承了上位词更一般化概念的所有性质,并且至少增加一种属性,以区别它与它的上位词以及该上位词的其他下位词。如,“枫树”继承了其上位词“树”的属性,但却以其坚硬的木质、叶片的形状等特性区别于其他的树。这种方法为WordNet中的名词提供了一种核心的组织原则。我们将根据WordNet名词体系中的这一继承体系的特点,定义基于一个概念(同义词集合)的概念链。

部分关系:简记为HAS-A,语言学家称之为部分词(meronym)/整体词(holonym)的关系。如果以英语为母语接受以“A y is an x”或“An x is a part of y”框架构造的句子,则同义词集合{x1,x2,…}表示的概念与同义词集合{y1,y2,…}表达的概念是部分概念和整体概念的关系。部分关系也具有某种限制,且是不对称的关系,可以构造一种部分等级关系。

相关概念

独立起始概念(Unique Beginner):如果有一同义词集合(即概念)没有上位同义词集合(即上位概念),则称之为独立起始概念(Unique Beginner)。在WordNet名词体系中,共有25个独立起始概念。其他名词通过上位/下位关系与这25个独立起始概念构成25个独立的层次结构。也就是说,标识着某个起始概念特点的属性将它的所有下位概念所继承,而这个起始概念就可以看作为是该语义领域内的所有概念(同义词集合)的一个原始语义元素。

词典编撰ID(Lexicographer ID):每一个同义词集合(synonymy set)均有惟一的一个编号,这个编号就称为词典编撰ID(Lexicographer ID)。

概念链(Concept Chain):概念链一般的定义是这样一种结构::=(C,<),其中C代表的是概念集合,<代表概念间的下位/上位关系。也就是说概念链是由C概念集合中的概念通过概念间的上位/下位关系连接而成。

WordNet名词体系中的概念链(Concept Chain)::=((C,<)<UBCi),其中UBCi表示WordNet名词体系的一个独立起始概念,C代表的是概念集合,<代表概念间的下位/上位关系。也就是说概念链是以一个独立起始概念UBCi为链首,通过概念间的上位/下位关系连接与C概念集合连接而成。同时C概念集合中的概念也是通过概念间的上位/下位关系进行连接。

        上图展示的就是一个概念链的示意范例。小三角形代表的是词“football”。每一个小圆圈都代表WordNet中的一个同义词集合(也就是概念)。小圆圈旁边的注释就是该同义词集合的内容。注释中的数字是该同义词集合的词典编撰ID(Lexicographer ID)。

        这个示意范例表达的是:词“football”有两个义项,即它在两个同义词集合中出现,也就是对应图中的两个小圆圈。小圆圈之间用带箭头的线连接,表示的是小圆圈所代表的概念通过下位/上位关系联系起来,从而构成概念链。概念链的首端对应的就是WordNet中的独立起始概念。比如:概念链ch1可以表示为:(3255461)<(2681909)<(3289024)<(3174243)<(3443493)<(19244)<(2645)<(16236)<(1740)。其中(3255461)作为概念链的末端代表的是词“football”的一个义项,而(1740)是WordNet中的独立起始概念,成为概念链的首端。概念“game equipment”(3289024)是概念“ball”(2681909)的上层概念,表达的语义更抽象。

代码示例

        WordNet 的完整搭建是一个非常复杂的任务,涉及到语言学、计算机科学以及大量的人工注释工作。WordNet 是由普林斯顿大学的一个团队开发和维护的,因此它的具体实现代码并没有公开提供。但是,您可以使用一些现有的工具和库来访问和操作 WordNet 数据。这些工具和库通常已经包括了 WordNet 数据库的访问和处理功能。

WordNet的使用

# 在代码中引入WordNet包
from nltk.corpus import wordnet as wn
# 查询一个词所在的所有词集
print(wn.synsets('dog'))
# 查询一个同义词集的定义
print(wn.synset('apple.n.01').definition())
# 查询词语一个词义的例子
print(wn.synset('dog.n.01').examples())
# 查询词语某种词性所在的同义词集合
print(wn.synsets('dog',pos=wn.NOUN))
# 查询一个同义词集中的所有词
print(wn.synset('dog.n.01').lemma_names( ))
# 输出词集和词的配对——词条
print(wn.synset('dog.n.01').lemmas( ))
# 利用词条查询反义词
good=wn.synset('good.a.01')
print(good)
# 查询两个词之间的语义相似度
print(good.lemmas()[0].antonyms())

WordNet的可视化

# 在代码中引入WordNet包
from nltk.corpus import wordnet as wnimport networkx as nx
import matplotlib
from nltk.corpus import wordnet as wndef traverse(graph, start, node):graph.depth[node.name] = node.shortest_path_distance(start)for child in node.hyponyms():graph.add_edge(node.name, child.name)traverse(graph, start, child)def hyponym_graph(start):G = nx.Graph()G.depth = {}traverse(G, start, start)return Gdef graph_draw(graph):nx.draw(graph,node_size=[16 * graph.degree(n) for n in graph], node_color=[graph.depth[n] for n in graph], with_labels=False) matplotlib.pyplot.show()if __name__ == '__main__':dog = wn.synset('dog.n.01')graph = hyponym_graph(dog)graph_draw(graph)

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

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

相关文章

Linux安装Hadoop(单机版)详细教程

目录 一、JDK安装 1、下载JDK安装包 2、解压下载的JDK安装包 3、移动并重命名JDK包 4、配置Java环境变量 5、验证安装是否成功 二、Hadoop安装 1、下载Hadoop安装包 2、解压Hadoop安装包 3、配置Hadoop环境变量 4、修改配置文件 5、验证Hadoop是否安装成功 三&…

代码随想录——回文子串(Leetcode 647)

题目链接 我的题解&#xff08;双指针&#xff09; 思路&#xff1a; 当然&#xff0c;以下是对您提供的代码的解释&#xff1a; class Solution {public int countSubstrings(String s) {// 初始化回文子字符串的数量int count 0;// 遍历字符串的每个字符&#xff0c;使用…

NCH DrawPad Pro for Mac/Win:强大的图像编辑处理软件

NCH DrawPad Pro for Mac/Win是一款功能全面的图像编辑和设计软件&#xff0c;专为Mac和Windows用户设计。它不仅适用于专业设计师&#xff0c;也深受业余爱好者和创意工作者的喜爱。DrawPad Pro凭借其丰富的绘图工具、强大的编辑功能和便捷的模板库&#xff0c;为用户提供了卓…

OpenCV杂项图像变换(2)线性混合函数blendLinear()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 执行两个图像的线性混合&#xff1a; dst ( i , j ) weights1 ( i , j ) ∗ src1 ( i , j ) weights2 ( i , j ) ∗ src2 ( i , j ) \texttt{…

策略模式+模版方法模式+简单工厂模式混用优化代码复杂分支问题

说明 这篇博客是在复杂场景使用策略和工厂模式代替分支语句升级版&#xff0c;增加了模版方法模式。将支付类的公共逻辑抽取到模板类中&#xff0c;使整个支付逻辑更加灵活&#xff0c;进一步优化了代码结构&#xff0c;提升了软件的可维护性和可读性。 流程图如下 先看一遍流…

.NET 多版本兼容的精美 WinForm UI控件库

目录 前言 项目介绍 项目使用 项目源码 项目案例 项目组件 项目地址 前言 有粉丝小伙伴在后台留言咨询有没有WinForm 控件库推荐&#xff0c;现在就给安排上。 .NET 平台进行 Windows 应用程序开发的我们来说&#xff0c;找一个既美观又实用的 WinForm UI 控件库至关重…

STM32通过ADM3222完成UART转232通信电平转换

1、简介 单片机默认串口输出电平是UART信号,但是在实际项目中经常需要将其转换成232电平,此时就需要ADM3222芯片来完成电平的转换,下面对使用过程进行总结。 2、硬件电路 从上图中可以看到芯片需要对1、18进行配置才能进行工作,通过查阅手册可知,1引脚需要配置低电平,…

云计算实训37——Dockerfile的应用+私有仓库的创建与管理

一、文件联合系统 文件联合系统&#xff08;Overlay Filesystem&#xff09;&#xff1a; 是一种允许多个文件系统层叠在一起的文件系统。它通常用于将只读文件系统&#xff08;如基础镜像&#xff09;与可写文件系统&#xff08;如用户的修改&#xff09;结合&#xff0c;形…

【3D目标检测】MMdetection3d——nuScenes数据集训练BEVFusion

引言 MMdetection3d&#xff1a;【3D目标检测】环境搭建&#xff08;OpenPCDet、MMdetection3d&#xff09; MMdetection3d源码地址&#xff1a;https://github.com/open-mmlab/mmdetection3d/tree/main?tabreadme-ov-file IS-Fusion源码地址&#xff1a;https://github.co…

【Scala】Windows下安装Scala(全面)

目录 1.下载 2.安装 3.配置环境变量 1.新增系统环境变量 2.环境变量Path 4.验证 1.下载 官网下载地址&#xff1a;https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.msi 2.安装 双击下载的.msi文件&#xff1a; 勾选"I accept the terms in the Li…

前后端交互的路径怎么来的?后端解决cors问题的一种方法

背景&#xff1a;后端使用node.js搭建&#xff0c;用的是express 前端请求的路径baseURL怎么来的 &#xff1f; 前后端都在同一台电脑上运行&#xff0c;后端的域名就是localhost&#xff0c;如果使用的是http协议&#xff0c;后端监听的端口号为3000&#xff0c;那么前端请求…

Django+Vue音乐推荐系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

脚手架工具的应用(前端和后端搭建)

前端 一、安装 Node.js 环境 使用npm下载镜像 查看镜像&#xff1a;npm config get registry 切换淘宝镜像&#xff1a;npm config set registry https://registry.npmmirror.com 还原镜像&#xff1a;npm config set registry https://registry.npmjs.org 二、使用 Vue.js 脚…

智能停车场管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;车位信息管理&#xff0c;车位预订管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;地图&#xff0c;我的 开发系统&#xff1a;Windows 架构模式…

如何将开发工具设置成滚动鼠标改变字体大小

就在刚刚与温州那边技术开会&#xff0c;温州那边技术提出&#xff1a;字体太小&#xff0c;代码看不清&#xff0c;需要将字体放大。然后让我将IDE设置成按住键盘的Ctrl滚动鼠标&#xff0c;可以放大字体大小。。。顿时间的小小尴尬。下面我来记录一下究竟是怎么操作的&#x…

安装WMware和Ubuntu并使用xShell连接

0、我的电脑配置 设备名称 hello 处理器 Intel(R) Core(TM) i7-10700K CPU 3.80GHz 3.79 GHz 机带 RAM 16.0 GB (15.9 GB 可用) 设备 ID 541EC230-9910-418C-9043-5FBBF8ED320C 产品 ID 00330-80000-00000-AA846 系统类型 64 位操作系统, 基于 x64 的处理器 笔和触控 没有可…

汽车功能安全--TC3xx LBIST触发时机讨论

目录 1. LBIST架构 2. LBIST寄存器配置 3. LBIST触发时机 LBIST&#xff0c;全称Logic Built-in Self Test。 在TC3xx中&#xff0c;LBIST是一种硬件功能安全机制&#xff0c;目的是为了探测MCU内部逻辑电路的潜伏故障(latent faults)。 从使用者角度来看&#xff0c;只需…

K8S 1.31 新功能: 跨核分发CPU

​在Kubernetes的最新版本1.31中&#xff0c;一个超酷的新功能&#xff0c;叫做CPUManager的静态策略&#xff0c;里面有个选项叫做distribute-cpus-across-cores。虽然这个功能现在还在测试阶段&#xff0c;也就是alpha版&#xff0c;而且默认是藏起来的&#xff0c;但它的目的…

腾讯提出一种新的针对风格化角色和逼真服装动画的生成3D运动转移方法,生成效果逼真!

来自腾讯XR视觉实验室的研究团队提出了一种创新的3D运动转移方法&#xff0c;专门针对风格化角色和逼真服装动画的生成。该方法能够将源动作准确地映射到目标角色上&#xff0c;同时考虑了角色身体的刚性变形和服装的局部物理动态变形。 与现有技术相比&#xff0c;这技术不仅…

docker Desktop报错 error pulling image configuration 处理

问题描述 在 docker 拉数据 出现以下错误 error pulling image configurarion&#xff1a; 这个问题 主要是 可能应该某些原因不能网络无法连上镜像 原因分析&#xff1a; 1。 2024年 5月以后 国内很多IP都 。。。懂的都懂&#xff0c;很多 VPN 也是。。。 懂的都懂&#x…