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

news2024/9/24 3:21:17
        传统语义知识库最常见的更新方法是依赖人工手动更新,使用这种更新方法的语义知识库包括最早的 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 wn

import networkx as nx
import matplotlib
from nltk.corpus import wordnet as wn


def 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 G


def 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.coloradmin.cn/o/2078272.html

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

相关文章

C++ | Leetcode C++题解之第376题摆动序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();if (n < 2) {return n;}int prevdiff nums[1] - nums[0];int ret prevdiff ! 0 ? 2 : 1;for (int i 2; i < n; i) {int diff n…

记一次NULL与空字符串导致的分组后产生重复数据

目录 一&#xff0c;场景说明二&#xff0c;实现功能三&#xff0c;修改原实现方法四&#xff0c;说明 一&#xff0c;场景说明 想实现这样一个功能&#xff0c;统计人员信息中不同性别的人的总工资。 实现方式&#xff1a;将数据group by 分组后累加。 二&#xff0c;实现功…

叉车(工业车辆)安全管理系统,云端监管人车信息运营情况方案

近年来&#xff0c;国家和各地政府相继出台了多项政策法规&#xff0c;从政策层面推行叉车智慧监管&#xff0c;加大叉车安全监管力度。同时鼓励各地结合实际&#xff0c;积极探索智慧叉车建设&#xff0c;实现作业人员资格认证、车辆状态认证、安全操作提醒、行驶轨迹监控等&a…

探秘Facebook的人工智能战略:如何用智能技术重塑社交网络

人工智能&#xff08;AI&#xff09;正以前所未有的速度渗透到各个领域&#xff0c;社交网络也不例外。作为全球最大的社交平台之一&#xff0c;Facebook&#xff08;现Meta&#xff09;正利用人工智能技术重塑其网络环境&#xff0c;提升用户体验。本文将深入探讨Facebook的人…

对SpringBoot项目Jar包进行加密防止反编译

最近项目要求部署到其他公司的服务器上,但是又不想将源码泄露出去,要求对正式环境的启动包进行安全性处理,防止客户直接通过反编译工具将代码反编译出来,本文介绍了如何对SpringBoot项目Jar包进行加密防止反编译,需要的朋友可以参考下 场景: 最近项目要求部署到其他公司的服…

华为HCIP-datacom 真题 (2024年下半年最新题库)

备考HCIP-datacom的小伙伴注意啦 2024年下半年8月份最新题库带解析,有需要的小伙伴移动至文章末 1.BGP 邻居建立过程的状态存在以下几种&#xff1a;那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、3-5-1-2-4 D、3-1-5-2-4 答案&#xff1a;D 解析…

界面控件DevExpress VCL v24.2路线图预览——增强云集成、简化应用程序皮肤等

DevExpress VCL Controls是Devexpress公司旗下老牌的用户界面套包&#xff0c;所包含的控件有&#xff1a;数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验&#xff0c;提供高影响力的业务解决方案&#xff0c;并利用您现有的VCL技能为未来构建下一…

el-pagination 下拉条目数最后一个样式改成全部

2024.08.27今天我学习了如何把el-pagination的下拉条目数修改&#xff0c;效果如下&#xff1a; 我们需要把最后一条选择换成全部展示&#xff0c;其实传给后端的还是总的数量&#xff0c;只是换了一个content&#xff0c; 通过f12查看元素可以拿到.el-select-dropdown__item …

华为鸿蒙NEXT大揭秘:微信版功能曝光,简洁界面回归

在科技界&#xff0c;每一次操作系统的更新迭代都是一场期待与猜测的盛宴。华为的鸿蒙系统自问世以来&#xff0c;就以其独特的设计理念和强大的功能吸引了全球的目光。而今&#xff0c;随着微信版鸿蒙NEXT的曝光&#xff0c;我们似乎又将迎来一次科技的飞跃。但这一次&#xf…

【多系统萎缩患者必看!】营养补给站,守护健康每一刻✨

Hey小伙伴们~ 今天我们来聊聊一个需要特别关爱的话题——多系统萎缩&#xff08;MSA&#xff09;患者的营养补充秘籍&#xff01;&#x1f31f; MSA是一种复杂的神经系统疾病&#xff0c;它影响我们的多个身体系统&#xff0c;让每一天的生活都充满了挑战。但别担心&#xff0c…

【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密

前言 &#x1f34a;缘由 SQLite里藏秘密&#xff0c;微信聊天有痕迹 &#x1f423;闪亮主角 大家好&#xff0c;我是JavaDog程序狗 今天跟大家分享一个开源小工具PyWxDump&#xff0c;是一个用于获取 wx 账户信息&#xff08;昵称/账户/电话/电子邮件/数据库密钥&#xff0…

利用autoDecoder工具在数据包加密+签名验证站点流畅测试

站点是个靶场 https://github.com/0ctDay/encrypt-decrypt-vuls 演示地址http://39.98.108.20:8085/ 不是仅登录位置暴力破解的那种场景&#xff0c;使用autoDecoder&#xff08;https://github.com/f0ng/autoDecoder&#xff09;的好处就是每个请求自动加解密&#xff0c;测…

35岁失业后,这3个AI副业,也能养活自己

不少粉丝曾问我&#xff0c;有没有用AI赚钱的方法。 *眼看就快到35岁中年危机&#xff0c;想提前安排个退路。* 对于大家的焦虑&#xff0c;我很能理解&#xff0c;花钱容易挣钱难&#xff0c;尤其是在当下&#xff0c;大环境不是那么好&#xff0c;很多人进入佛系状态&#…

【STM32】位带操作

一、位带操作 1.意义 回想以前写51代码 ​ P0 0x10; //将P0端口设置为0x10 P1_01; //将P1端口0号引脚设置为高电平 a P2_2; //获取P2端口2号引脚的电平 根据上述的方法&#xff0c;我们可以发现快速定位修改某个引脚的电平还有获取引脚的状态 2.原因 GPIO_SetBits、GPI…

2025深圳国际微波射频及天线技术应用展览会

2025深圳国际微波射频及天线技术应用展览会 2025 Shenzhen International Microwave RF and Antenna Technology Application Exhibition 时间&#xff1a;2025年04月9-11日 地点&#xff1a;深圳会展中心(福田&#xff09; 详询主办方陆先生 I38&#xff08;前三位&#…

CRMEB 多店版供应商订单管理

订单列表 一、功能介绍 查看所有供应商订单数据&#xff0c;详情&#xff0c;可以提醒发货 根据供应商筛选&#xff0c;可以查看不同类订单 二、操作流程 供应商 &#xff1e; 订单管理 > 订单列表 三、功能说明 售后列表 一、功能介绍 查看所有供应商售后订单数据&a…

一个案例讲透如何做好竞品分析!

随着国内互联网市场进入下半场&#xff0c;各个领域的相关产品层出不穷&#xff0c;即使是新鲜事物&#xff0c;一旦出现&#xff0c;也会迅速造成行业内部拥挤。行业发展如此之快&#xff0c;闭门造车绝对不是产品迭代更新应有的设计方式。敞开大门&#xff0c;出去看看别人家…

基于 Llama factory 微调 Llama3.1-70B-Chinese-Chat

​ 本文旨在探讨基于Llama factory使用LoRA&#xff08;Low-Rank Adaptation&#xff09;技术对Llama3.1-70B-Chinese-Chat模型进行微调的过程&#xff0c;重点介绍在单机多卡和多机多卡两种分布式训练环境下的实现方法。 1.环境准备 1.1 平台环境 微调Llama3.1-70B模型&…

Anthropic 公开 Claude AI 模型的系统提示词

硅纪元快讯栏目&#xff0c;每日追踪AI领域的最新动态&#xff0c;快速汇总最新科技新闻&#xff0c;助您时刻紧跟行业趋势。简明扼要的呈现资讯概要&#xff0c;让您快速了解前沿资讯。 1分钟速览新闻 特斯拉“Cortex”超级计算机亮相&#xff0c;预计10月全面运行 Anthropic…

Clickhouse集群化(一)k8s集群搭建

环境准备&#xff1a; vm 17 pro 有些功能必须pro版本才会提供&#xff08;https://download.csdn.net/download/weixin_40663313/89677277?spm1001.2014.3001.5501&#xff09;夸克下载链接 centos 7.9 docker&#xff1a;1.26 k8s&#xff1a;1.21.14 1. 创建虚拟机 …