NLTK WordNet: Encontre sinônimos do NLTK WordNet em Python

⚡ Resumo Inteligente

O WordNet é um banco de dados lexical e leitor de corpus NLTK para inglês que agrupa substantivos, verbos, adjetivos e advérbios em conjuntos de sinônimos, permitindo... Python Os programas consultam sinônimos, antônimos, hiperônimos e significados de palavras para processamento de linguagem natural.

  • 🧩 Leitor de corpus: O WordNet é importado do nltk.corpus e funciona como um dicionário de inglês com orientação semântica.
  • 🔁 Conjuntos de sinônimos: Um synset é uma coleção de palavras sinônimas, como os oito sentidos retornados para "cachorro".
  • 🔗 Relações lexicais: As relações semânticas recíprocas conectam sinônimos, antônimos, hiperônimos e hipônimos.
  • 🧪 Sinônimos e antônimos: Looping A função `over synsets and lemmas` coleta todos os sinônimos e antônimos de uma palavra.
  • ???? Hierarquia: Hiperônimos, hipônimos, holônimos e merônimos organizam palavras em sub-redes de substantivos, verbos, adjetivos e advérbios.
  • 🤖 Benefícios da IA: O WordNet possibilita tarefas de análise de texto, como correção ortográfica, tradução e detecção de spam.

NLTK WordNet

O que é WordNet?

WordNet é um leitor de corpus NLTK, um banco de dados lexical para inglês. Pode ser usado para encontrar o significado de palavras, sinônimos ou antônimos. Pode ser definido como um dicionário de inglês com orientação semântica. O WordNet é importado com o seguinte comando:

from nltk.corpus import wordnet as guru

Como o WordNet é distribuído como um corpus pronto para uso, você pode carregá-lo uma única vez e começar imediatamente a consultar relações entre palavras sem precisar construir nenhum dicionário.

Encontre sinônimos do NLTK WordNet em Python

As estatísticas revelam que existem 155287 palavras e 117659 sinônimos Os conjuntos incluídos no WordNet em inglês. Os diferentes métodos disponíveis no WordNet podem ser encontrados por typing dir(guru), que lista todos os atributos de carregamento e métodos auxiliares expostos pelo leitor de corpus.

Conjunto de sinônimos: Também é chamado de conjunto de sinônimos ou coleção de palavras sinônimas. Vejamos um exemplo.

from nltk.corpus import wordnet
syns = wordnet.synsets("dog")
print(syns)

Saída:

[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')]

Relações Lexicais: Essas são relações semânticas recíprocas. Se existe uma relação entre {x1, x2, ..., xn} e {y1, y2, ..., yn}, então também existe uma relação entre {y1, y2, ..., yn} e {x1, x2, ..., xn}. Por exemplo, sinônimo é o oposto de antônimo, enquanto hiperônimos e hipônimos são um tipo de conceito lexical.

Vamos escrever um programa usando Python Para encontrar sinônimos e antônimos da palavra "ativo" usando o WordNet.

from nltk.corpus import wordnet
synonyms = []
antonyms = []
for syn in wordnet.synsets("active"):
    for l in syn.lemmas():
        synonyms.append(l.name())
        if l.antonyms():
            antonyms.append(l.antonyms()[0].name())
print(set(synonyms))
print(set(antonyms))

A saída do código:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym

Explicação do código:

  • O WordNet é um corpus, portanto é importado do pacote nltk.corpus.
  • Duas listas, uma para sinônimos e outra para antônimos, são consideradas vazias e serão usadas para adicionar elementos.
  • Os sinônimos da palavra "ativo" são pesquisados ​​pelo método synsets e adicionados à lista de sinônimos. O mesmo processo coleta antônimos.
  • A saída é impressa como Python Configurações que removem entradas duplicadas automaticamente.

Além de sinônimos e antônimos, o WordNet também expõe hiperônimos (termos mais abrangentes), hipônimos (termos mais específicos), holônimos e merônimos, de modo que uma única consulta pode posicionar uma palavra dentro de toda uma hierarquia de relações. Essas relações tornam o WordNet um dicionário de sinônimos prático para corretores ortográficos, tradução de idiomas, detecção de spam e outras tarefas de análise de texto em inteligência artificial.

Perguntas Frequentes

O WordNet é um leitor de corpus NLTK e um banco de dados lexical para inglês. Ele funciona como um dicionário semanticamente orientado, permitindo que você consulte o significado, sinônimos e antônimos de uma palavra com facilidade. Python comandos.

Um synset, abreviação de conjunto de sinônimos, é um grupo de palavras que compartilham o mesmo conceito. Chamar wordnet.synsets(“dog”) retorna vários synsets, cada um representando um sentido distinto da palavra “dog”.

Percorra wordnet.synsets(word) e, em seguida, itere sobre os lemas de cada conjunto de sinônimos. Adicione lemma.name() para coletar sinônimos e chame lemma.antonyms() para coletar antônimos. Envolva o loop.ping Os resultados em set() removem entradas duplicadas.

Um hiperônimo é um termo genérico mais amplo (refeição é um hiperônimo de café da manhã), enquanto um hipônimo é um termo mais específico (arroz é um hipônimo de refeição). O WordNet relaciona esses termos para formar uma hierarquia "é um/uma".

O WordNet em inglês inclui cerca de 155,287 palavras organizadas em aproximadamente 117,659 conjuntos de sinônimos. O banco de dados abrange quatro classes gramaticais: substantivos, verbos, adjetivos e advérbios, cada uma armazenada em sua própria sub-rede.

Em inteligência artificial, o WordNet auxilia em tarefas de análise de texto, como desambiguação de sentidos de palavras, correção ortográfica, tradução de idiomas e detecção de spam. Suas relações estruturadas fornecem aos modelos de aprendizado de máquina características linguísticas mais ricas do que apenas tokens brutos.

Sim. Os fluxos de trabalho de IA e aprendizado de máquina usam medidas de similaridade do WordNet, como similaridade de caminho e similaridade de Wu-Palmer. Eles avaliam a proximidade entre dois conjuntos de sinônimos medindo o caminho mais curto entre eles na hierarquia de hiperônimos e hipônimos.

Um dicionário comum lista definições em ordem alfabética. O WordNet, por sua vez, relaciona palavras por significado através de conjuntos de sinônimos e relações lexicais, comportando-se, portanto, como um dicionário e um tesauro combinados que as máquinas podem percorrer programaticamente.

Resuma esta postagem com: