Pular para o conteúdo principal

Aula 12: WordNet | Introdução à Linguagem de Programação Python *** com NLTK

 Fonte -> https://youtu.be/0OCq31jQ9E4

A WordNet do Brasil -> http://www.nilc.icmc.usp.br/wordnetbr/

NLTK 


synsets = dada uma palavra acha todos os significados, pode informar a língua e a classe gramatical da palavra (substantivo, verbo, advérbio)

from nltk.corpus import wordnet as wn

wordnet.synset(xxxxxx).definition() = descrição do significado

É possível extrair hipernimia, hiponimia, antonimos e os lemas (diferentes palavras/expressões com o mesmo significado) formando uma REDE LEXICAL. Com isso é possível calcular a distância entre 2 synset dentro do grafo. 

Veja trecho de código abaixo:

texto = 'útil'
print('NOUN:', wordnet.synsets(texto, lang='por', pos=wordnet.NOUN))

texto = 'útil'
print('ADJ:', wordnet.synsets(texto, lang='por', pos=wordnet.ADJ))
print(wordnet.synset('handy.s.01').definition())


texto = 'computador'
for synset in wn.synsets(texto, lang='por', pos=wn.NOUN):
    print('DEF:',synset.name(), synset.definition())
    print('EXA:',synset.name(), synset.examples())    
    print('HYPER:', wn.synset(synset.name()).hypernyms())
    print('HYPON:', wn.synset(synset.name()).hyponyms())
    for lemma in synset.lemmas('por'):
        print('LEMMA:', lemma.name())
    print('\n')
origem = wordnet.synsets(texto, lang='por', pos=wordnet.NOUN)[0]

texto = 'programa'
for synset in wordnet.synsets(texto, lang='por', pos=wordnet.NOUN):
    print('DEF:',synset.name(), synset.definition())
destino = wordnet.synsets(texto, lang='por', pos=wordnet.NOUN)[0]
print('Distância entre computador e programa: ', origem.path_similarity(destino))
pt_br_stemmer(texto)

texto = 'bom'
for synset in wordnet.synsets(texto, lang='por', pos=wordnet.ADJ):
    print('DEF:', synset.name(), synset.definition())
print('ANTO:', wordnet.lemma('good.a.01.good').antonyms())
pt_br_stemmer(texto)

Estudando um pouco mais achei esse outro link com mais recursos e vídeos sobre o NLTK e WordNet

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


Comentários

  1. Explorei esse recurso em alguns exemplos com Jupyter notebook

    ResponderExcluir
  2. Estava pesquisando o quanto o pacote python NLTK estaria atualizado com a wordnet em Português (openWordnet-PT) e o descobri que a versão atualizada estaria sendo distribuída em breve através de outro pacote python: wn

    https://wn.readthedocs.io/en/latest/
    https://github.com/goodmami/wn

    O pacote dá suporte a outros idiomas além do Português e Inglês.

    ResponderExcluir

Postar um comentário

Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.