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/
Explorei esse recurso em alguns exemplos com Jupyter notebook
ResponderExcluirEstava 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
ResponderExcluirhttps://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.