zoukankan      html  css  js  c++  java
  • python自然语言处理——2.5 WordNet

    微信公众号:数据运营人
    本系列为博主的读书学习笔记,如需转载请注明出处。

    第二章 获取文本预料和词汇资源

    2.5 WordNet意义和同义词WordNet的层次结构更多的词汇关系语义相似度

    2.5 WordNet

    意义和同义词
    from nltk.corpus import wordnet as wn               
    print(wn.synsets("motorcar"))                       
    print(wn.synset("car.n.01").lemma_names())    
    print(wn.synset("car.n.01").definition())     
    print(wn.synset("car.n.01").examples())     
    print(wn.synset("car.n.01").lemmas())    
    print(wn.lemma('car.n.01.automobile'))  
    print(wn.lemma('car.n.01.automobile').synset())
    print(wn.lemma('car.n.01.automobile').name())  
    print(wn.synsets("car"))                            
    for synset in wn.synsets("car"):                    
        print(synset.lemma_names())   
    print(wn.lemmas('car')) 
    WordNet的层次结构

    Wordnet是一个由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下建立和维护的大型的英语词典,

    WordNet的开发有两个目的:
    1.它既是一个字典,又是一个辞典,它比单纯的辞典或词典都更加易于使用。
    2.支持自动的文本分析以及人工智能应用。
    在WordNet中,名词,动词,形容词和副词各自被组织成一个同义词的网络,每个同义词集合都代表一个基本的语义概念,并且这些集合之间也由各种关系连接。

    Wordnet是一个词典。每个词语(word)可能有多个不同的语义,对应不同的sense。而每个不同的语义(sense)又可能对应多个词,如topic和subject在某些情况下是同义的,一个sense中的多个消除了多义性的词语叫做lemma。例如,“publish”是一个word,它可能有多个sense。

    motorcar = wn.synset('car.n.01')
    types_of_motorcar = motorcar.hyponyms()
    print(types_of_motorcar[26])
    print(sorted([lemma.name() for synset in types_of_motorcar for lemma in synset.lemmas()]))
    print(motorcar.hypernyms())
    paths = motorcar.hypernym_paths()
    print(len(paths))
    print([synset.name for synset in paths[0]])
    print([synset.name for synset in paths[1]])
    print(motorcar.root_hypernyms())
    更多的词汇关系

    所谓的词汇关系就是指上一个词与下一个词之间的关系。

    print(wn.synset('tree.n.01').part_meronyms())
    print(wn.synset('tree.n.01').substance_meronyms())
    print(wn.synset('tree.n.01').member_holonyms())
    for synset in wn.synsets('mint', wn.NOUN):
        print (synset.name , ':', synset.definition)
    print(wn.synset('mint.n.04').part_holonyms())
    print(wn.synset('mint.n.04').substance_holonyms())
    print(wn.synset('walk.v.01').entailments())
    print(wn.lemma('supply.n.02.supply').antonyms())
    语义相似度
    right = wn.synset('right_whale.n.01')
    print(right)
    print(right.lowest_common_hypernyms(right))
    print(wn.synset('baleen_whale.n.01').min_depth())
    print(right.path_similarity(right))
  • 相关阅读:
    从上亿数据中抽取千万数据只需10分钟内
    当硬件成为瓶颈时怎么提高数据仓库的加载?
    监控logshipping 流量
    MSSQLMiRROR
    读取STGMEDIUM中的数据
    一个基本算法题暴露出来的C++基础不扎实
    C++对象模型学习
    从微观看chrome 之一:Singleton<T> 范型类
    从微观看chrome 之二:围绕Profile的ProfileService系统
    DevC++配置问题
  • 原文地址:https://www.cnblogs.com/ly803744/p/10426353.html
Copyright © 2011-2022 走看看