美文网首页
如何使用wordnet

如何使用wordnet

作者: ltochange | 来源:发表于2021-05-31 23:53 被阅读0次

介绍

WordNet是包含语义信息的英语词典。

  1. wordnet根据单词的语义分组,相同语义的单词组合在一起称为synset(同义词集),一个一词多义的单词将出现在它的每个语义对应的同义词集中
  2. wordnet为每一个synset提供了简短,概要的定义,并记录不同synset之间的语义关系
  3. 在 wordnet中,名词,动词,形容词和副词各自组织成一个同义词的网络,四种不同词性的网络之间没有连接

python调用wordnet

可通过nltk工具包来导入wordnet

from nltk.corpus import wordnet

如果导入错误,尝试重新下载wordnet

  import nltk
  nltk.download('wordnet')

获得单词对应的同义词集

print(wordnet.sysnets('room'))
[Synset('room.n.01'), Synset('room.n.02'), Synset('room.n.03'), Synset('room.n.04'), Synset('board.v.02')]

每个同义词集都有自己的名称,词性,以及编号。这里room有5个同义词集,其中四个叫room,是名词,最后一个叫board,是动词。

也可以指定词性,获取不同词性对应的同义词集

print(wordnet.synsets("room", pos=wordnet.NOUN))
# NOUN, ADJ and ADV,VERB
[Synset('room.n.01'), Synset('room.n.02'), Synset('room.n.03'), Synset('room.n.04')]

获得同义词集的定义

对于上面获得的5个同义词集,可以通过以下两种方式来获得第一个同义词集Synset('room.n.01')的定义

(1) 通过返回同义词集列表获得

syn_arr = wordnet.synsets('room')
print(syn_arr[0].definition())
an area within a building enclosed by walls and floor and ceiling
# 楼板建筑物内由墙壁、地板和天花板围起来的区域

(2)直接指定同义词集的名字

print(wordnet.synset('room.n.01').definition())
an area within a building enclosed by walls and floor and ceiling
# 楼板建筑物内由墙壁、地板和天花板围起来的区域

获取同义词集对应的例子

对于单词room的五个不同的语义,给出相应的例句或短语

for syn in wordnet.synsets("room"):
    print(syn.name())
    print(syn.examples())
room.n.01
['the rooms were very small but they had a nice view']
room.n.02
['room to pass', 'make way for', 'hardly enough elbow room to turn around']
room.n.03
['room for improvement']
room.n.04
['the whole room was cheering']
board.v.02
['she rooms in an old boarding house']

获得同义词集包含的lemma

同义词集包含的单词一般是词根(lemma)的形式,比如说love这个单词,同义词集中只会包含love而不会包含loves,loved这些变形。

syn_arr = wordnet.synsets("room")
print(syn_arr[1].lemmas())
print(syn_arr[1].lemma_names())
[Lemma('room.n.02.room'), Lemma('room.n.02.way'), Lemma('room.n.02.elbow_room')]
['room', 'way', 'elbow_room']

同样的,也可以反向获取lemma所在的同义词集

print(syn_arr[1].lemmas()[0].synset())
Synset('room.n.02')

获取单词对应的lemma

当使用wordnet查询单词时,需要知道单词的词根形式

print(wordnet.morphy('denied'))
deny
bike对应的同义集合

获取下位同义词集

不同synset之间的语义关系存在上下位关系,例如日历这个单词对应下位词:阳历,阴历

print(wordnet.synset('calendar.n.01').hyponyms())
[Synset('lunar_calendar.n.01'), Synset('lunisolar_calendar.n.01'), Synset('solar_calendar.n.01')]

获取上位同义词集

同样的,可以通过下位同义词集获得上位同义词集

print(wordnet.synset('solar_calendar.n.01').hypernyms())
[Synset('calendar.n.01')]

上述的结果,除了使用python nltk获得以外,还可以直接进入官网,在线输入,查询

在线查询例子

还有一个重点就是如何使用wordnet计算单词之间的语义相似度,更多的方法可见WordNet Interface

参考

wordnet官网

https://pythonprogramming.net/wordnet-nltk-tutorial/

相关文章

  • 如何使用wordnet

    介绍 WordNet是包含语义信息的英语词典。 wordnet根据单词的语义分组,相同语义的单词组合在一起称为sy...

  • Princeton Algorithms, WordNet

    Princeton Algorithms, Part II, WordNet 普林斯顿大学算法课 WordNet ...

  • WordNet

    WordNet面向语义的英语词典,类似于传统辞典。WordNet的一些操作如下: wordnet的层次结构 在层次...

  • WordNet

    wordNet wordNet 是普林斯顿大学开发的英语语料库,可以理解为就是一个词典,在python中的nltk...

  • wordnet介绍

    wordnet是以同义词集合(synset)作为基本建构单位进行组织的,即每个同义词集是网络里的一个结点,每个同义...

  • DataSet

    ImageNet ImageNet[https://image-net.org/]是根据 WordNet 层次结构...

  • #自然语言处理# Lecture 1: Word2Vec

    1. 如何表示一个词语的意义 通常解决方案: WordNet (包含同义词集和超名称列表的同义词词典) 2. Wo...

  • Linux下超好用词典 -- GoldenDict

    install goldendict 是本体,goldendict-wordnet是一个en-en离线词典,按需安...

  • 知识图谱之WordNet

    1. 说明  今天讨论的是自然语言中的知识抽取和知识表示,换言之,就是如何从大量的书籍文献中剥离出我们关心的...

  • 词表征 1:WordNet、0-1表征、共现矩阵、SVD

    一、基于知识的表征 参见图1.1,WordNet中包含同义词集(synonym sets)和上位词(hyperny...

网友评论

      本文标题:如何使用wordnet

      本文链接:https://www.haomeiwen.com/subject/wobisltx.html