Python自然语言处理第二章-2.5WordNet(III)——更多词汇关系:部分、整体、集合、蕴含等
来源:互联网 发布:汽车脚垫 知乎 编辑:程序博客网 时间:2024/05/18 01:43
WordNet(III)——更多词汇关系:部分、整体、集合、蕴含等
0. 本节内容
从条目到部分(部件、实质)
- part_holonyms()
- substance_holonyms()
或从条目到包含它们的东西(整体)
- part_meronyms( )
- substance_meronyms( )
- 或从条目到集合
- member_meronyms( )
特别注意:本文提到的部分方法在书中并没有括号,但是笔者在加了方法名后加了括号( )后才输出预期的结果,否则会输出类似<bound method Synset.name of Synset('car.n.01')>
这样的结果
还有记得导入:from nltk.corpus import wordnet as wn
1. 首先如何理解“部分(部件、实质)”,“整体”,“集合”呢?
书上的例子是这样的:
条目–部件(树–树干、树冠、等部件)——part_meronyms( )
条目-实质(芯材和边材)——substance_meronyms( )
条目–集合(森林)——member_holonyms( )
而对于树干、树冠,或者芯材与边材等等,其“整体”便是树本身。
如果一时理解的还不到位,可以考虑用 人 来做类似的解释:
部件:人——头、手、足、臂、心脏等等
实质:人——细胞、骨、皮肉、血等
集合:人——人群
整体便是一个人本身。
(不是医学的、可能分的不太准确,但是大致上可以这么理解的,这和上述的对 tree的分析逻辑是类似的,这些概念都是相对的)
关于部分,一个是从结构、部件这个角度,一个是从本质上、实质上去分析,这是理解的关键。
2. 那么如何理解这两组方法的关系呢(条目-部件,条目-整体)?
- holo有全息的含义,part_holonyms( ) 、substance_holonyms( )是指从部分到整体的方向;meronyms有部分名词的含义,part_meronyms( )、substance_meronyms( )是指从整体到部分的方向;
- part_holonyms( ) 、substance_holonyms( )与part_meronyms( )、substance_meronyms( )可以理解为两组逆方向的方法,可以看下图的分析;
3. 围绕词集 tree.n.01应的练习及对应关系如下
>>> wn.synset('tree.n.01').part_meronyms()#tree的部件(条目-部件)[Synset('burl.n.02'), Synset('crown.n.07'), Synset('limb.n.02'), Synset('stump.n.01'), Synset('trunk.n.01')]>>> wn.synset('tree.n.01').substance_meronyms()#tree的实质(条目-实质)[Synset('heartwood.n.01'), Synset('sapwood.n.01')]>>> wn.synset('tree.n.01').member_holonyms()#tree集合是森林[Synset('forest.n.01')]>>> wn.synset('burl.n.02').part_holonyms()#由上边第一行代码的输出结果可知'burl.n.02'是'tree.n.01'的一个部件,因此burl的整体是tree无疑[Synset('tree.n.01')]>>> wn.synset('heartwood.n.01').substance_holonyms()#同理,heartwood是tree的一个实质,其整体也是tree无疑[Synset('tree.n.01')]>>>
4. 其他词汇关系:蕴含、反义词
蕴含:entailments()
以上的分析多是针对名词,对于动词,也存在关系。这里只有列出了一种蕴含的关系:
entailments()方法,同样由一个词集调用:
>>> wn.synset('walk.v.01').entailments()#走路蕴含着抬脚[Synset('step.v.01')]
反义词:antonyms()
由一个词条调用:wn.lemma(‘supply.n.02.supply’)
>>> wn.lemma('supply.n.02.supply').antonyms()[Lemma('demand.n.02.demand')]>>>
注意所用词语的词性,笔者试着对形容词取反义词:
>>> wn.lemma('hot.a.01.hot').antonyms()#hot对cold,中间的词性标记为a,而不是n或v[Lemma('cold.a.01.cold')]>>>
也可以试着测试更多的词汇,但是由于不清楚具体的词汇结构,可能有的测试不是你想的那样~,多测测总是好玩的~
PS:如有错误,欢迎大家指正,一起学习~,还在摸索学习中,持续更新~~
- Python自然语言处理第二章-2.5WordNet(III)——更多词汇关系:部分、整体、集合、蕴含等
- Python自然语言处理第二章-2.5 WordNet(II)——wordnet的层次结构
- Python自然语言处理第二章-2.5 WordNet(I)——意义与同义词
- Python自然语言处理第二章-2.5WordNet(IV)——语义相似度
- python自然语言处理-WordNet
- Python自然语言处理第二章部分习题
- python自然语言处理学习笔记第二章第二部分
- 《用Python进行自然语言处理》代码笔记(二):第二章 获得文本语料和词汇资源
- python自然语言处理 第二章(上)
- Python自然语言处理-第二章总结:获得文本语料与词汇
- python 自然语言处理 第二章
- python自然语言处理学习笔记第一章第二部分
- PythonNLP学习进阶:第二章练习题(Python自然语言处理)
- python自然语言处理学习笔记第二章
- 《Python自然语言处理》学习笔记-第二章
- python自然语言处理第二章笔记
- 读《统计自然语言处理》——词汇获取
- 统计自然语言处理(词汇获取)
- PAT Basic 1018
- Javascript获取select下拉框选中的的值,select中指定option选中触发事件
- 一招搞定苹果数据线破皮
- 在tensorboard中创建日志目录
- OpenH323开发入门
- Python自然语言处理第二章-2.5WordNet(III)——更多词汇关系:部分、整体、集合、蕴含等
- 关于单独科目考试总结
- c语言指针实现冒泡排序及其优化
- 浅述AJAX
- 使用TPUT将命令输出刷新
- Spring核心模块
- tps(第三人称射击游戏) 2.人物基础运动
- 计算机视觉-椒盐噪声
- sscanf 其实很强大