-》
WordNet
去搞清楚:
是什么
用来干什么
WordNet
“WordNet是一个由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下建立和维护的英语字典。开发工作从1985年开始,从此以后该项目接受了超过300万美元的资助。 由于它包含了语义信息,所以有别于通常意义上的字典。WordNet根据词条的意义将它们分组,每一个具有相同意义的字条组称为一个synset。”
【总结】
WordNet
- 是什么:英语字典
- 核心和特点:
- 包含了语义信息
- 不是普通的字典
- 关系
- 关系种类
- 主要都是同义词,同义关系=synonymy
- 举例
- shut和close
- car和automotive
- 指的是:在很多语境下都可以互换interchangeable
- 还有其他关系
- 反义词,反义关系=antonymy
- 上下位关系hypernymy/hyponymy
- 整体和部分关系(meronymy)
- 继承关系(entailment)
- 同义词被分组合并成一个:synset
- synset=同义词集合:
- 包含
- 各种类型单词
- 名词Nouns
- 动词verbs
- 形容词adjectives
- 副词adverbs
- 都有
- gloss:简短,概要的定义
- 大多数:一句话
- 描述了此synset中单词的用法
- 是什么
- 每一个具有相同意义的字条组
- 表达了一个唯一的概念concept
- 无序的集合
- 总数:11.7万个
- 总体上
- 不同synset互相关联
- 记录不同synset之间的语义关系
- 通过:conceptual relations=逻辑概念上的关系
- 注意
- 不同形式表现不同含义的单词:会被放到不同的synset中
- -》每一个 形式-含义 对 在wordnet中是唯一的
- 词汇结构=关系
- 九大类
- 上下位关系=hyperonymy, hyponymy or ISA (动词、名词)
- 最多:占了近80%
- 蕴含关系=整体-部分Holonymy(动词)
- 相似关系(名词)
- 成员部分关系(名词)
- 物质部分关系(名词)
- 部件部分=部分-整体关系=Meronymy(名词)
- 致使关系=转指关系=Metonymy(动词)
- 相关动词关系(动词)
- 属性关系(形容词)
- 目的:
- 既是一个字典,又是一个辞典
- 比单纯的辞典或词典都更易于使用
- 用于:
- 文本分析
- 人工智能应用
- NLP自然语言处理
- 输出结果
- 名词网络
- 最顶层:11个抽象概念
- =基本类别始点(unique beginners)
- 比如:
- 实体(entity,“有生命的或无生命的具体存在”)
- 心理特征(psychological feature,“生命有机体的精神上的特征)
- 缺点
- 中文支持度不够好
- 词条太少
- 共11.7万
- 中文:4.2万
- 中文名词:2.7万
- 没有一些常见的词汇:
- 城市:上海、伦敦
- 其他
- 共产党
- 普通话
- 汉语词义存在错误
- 部分词条存在结构性问题
- 网球问题
- 消歧问题
- 词性较少
【WordNet技术细节】
背景:NLTK中集成了WordNet
-》去NLTK中导入(使用)WordNet:
from nltk.corpus import wordnet 或: from nltk.corpus import wordnet as wn
- 类比说明
- 如果:WordNet 数据库
- 那么:
- 每一条数据:代表的是一个词义
- 其主键是:Synset
>>> wn.synsets('dog') # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE [Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
WordNet的输出:
- 三部分:
- =word.pos.nn
- =词义.词性.编号
- 举例说明:
- dog.n.01
- dog:词义
- n:词性,none,名词
- 01:编号
所以可以指定词性:
>>> wn.synsets('dog', pos=wn.VERB) [Synset('chase.v.01')]
注:WordNet中的4个词性:
- wordnet.VERB=动词
- wordnet.NOUN=名词
- wordnet.ADJ=形容词
- wordnet.ADV=副词
去看看定义definition:
>>> wn.synset('dog.n.01') Synset('dog.n.01') >>> print(wn.synset('dog.n.01').definition()) a member of the genus Canis (probably descended from the common wolf) that has been domesticated by man since prehistoric times; occurs in many breeds
以及有哪些示例:
>>> len(wn.synset('dog.n.01').examples()) 1 >>> print(wn.synset('dog.n.01').examples()[0]) the dog barked all night
查看其他的词条=还原词性后的单词=lemma=全称是lemmatization:
>>> wn.synset('dog.n.01').lemmas() [Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'), Lemma('dog.n.01.Canis_familiaris')] >>> [str(lemma.name()) for lemma in wn.synset('dog.n.01').lemmas()] ['dog', 'domestic_dog', 'Canis_familiaris'] >>> wn.lemma('dog.n.01.dog').synset() Synset('dog.n.01')
注:
中文含义:
狗=家犬domestic dog=(由狼演化来的)食肉类哺乳动物Canis familiaris
反义词:
>>> good = wn.synset('good.a.01') >>> good.lemmas()[0].antonyms() [Lemma('bad.a.01.bad')]
查询两个词之间的语义相似度
>>> dog = wn.synset('dog.n.01') >>> cat = wn.synset('cat.n.01') >>> dog.path_similarity(cat) 0.2
注意:
- 名词和动词被组织成了完整的层次式分类体系
- 形容词和副词没有被组织成分类体系
- 所以不能用path_distance
- 形容词和副词最有用的关系是similar to
>>> beau.similar_tos() [Synset('beauteous.s.01'), Synset('bonny.s.01'), Synset('dishy.s.01'), Synset('exquisite.s.04'), Synset('fine-looking.s.01'), Synset('glorious.s.03'), Synset('gorgeous.s.01'), Synset('lovely.s.01'), Synset('picturesque.s.01'), Synset('pretty-pretty.s.01'), Synset('pretty.s.01'), Synset('pulchritudinous.s.01'), Synset('ravishing.s.01'), Synset('scenic.s.01'), Synset('stunning.s.04')]
更多代码示例详见:
转载请注明:在路上 » 【整理】WordNet