Comment utiliser le dictionnaire wordnet pour obtenir des synonymes de phrases en anglais

Table des matières

Description du problème:

problème résolu:

installation wordnet :

première méthode :

Pensée:

Code:

Méthode 2 :

Pensée:

Code:


Description du problème:

Vous voulez obtenir un synonyme pour une phrase en anglais. Vous pouvez obtenir une phrase synonyme complète en recherchant des synonymes sur wordnet et en remplaçant les mots correspondants.

problème résolu:

installation wordnet :

Tout d'abord, vous devez d'abord installer wordnet. Les étapes d'installation sont les suivantes :

Installez d'abord le package nltk --> Après l'installation, entrez la commande python, exécutez import nltk --> puis installez wordnet, exécutez la commande nltk.download('wordnet') --> l'installation est réussie.

Il existe deux façons d'obtenir des synonymes :

première méthode :

Pensée:

Obtenez un mot aléatoire dans la liste des synonymes correspondant à chaque mot de la phrase actuelle de wordnet, comme synonyme du mot. Obtenez ainsi la phrase synonyme correspondant à cette phrase.

Code:

# 随机返回同义词中的一个,作为同义词。
from nltk.corpus import wordnet
import random

def get_synonyms(word):
    synonyms = set()
    for syn in wordnet.synsets(word): # 查询给定单词的WordNet同义词集合(synset)
        for lemma in syn.lemmas(): 
            # 获取同义词集合syn中的所有词条(lemma)。一个同义词集合可以包含多个词条,每个词条代表一个具体的同义词。
            synonyms.add(lemma.name())
    return list(synonyms)

def replace_words(sentence):
    words = sentence.split()
    print("单词是:",words)
    new_sentences =  []
    for word in words:
        synonyms = get_synonyms(word)
        print("synonyms is :", synonyms)
        if synonyms:
            new_word  = random.choice(synonyms) # 随机选择同义词
            new_sentences.append(new_word)
        else:
            new_sentences.append(word)
    return ' '.join(new_sentences)

sentence = "We researched and found the best price at MacConnection . "
new_sentence = replace_words(sentence)
print(new_sentence)

Méthode 2 :

Pensée:

Obtenez la liste des synonymes correspondant à chaque mot de la phrase actuelle à partir de wordnet et utilisez le mot présentant la plus grande similitude avec le mot actuel comme synonyme du mot, afin d'obtenir une phrase synonyme complète.

Code:

def get_synonyms(sentence):
    synonyms = []
    words = sentence.split()
    for word in words:
        max_similarity = 0.0
        best_synonyms = word
        synsets = wordnet.synsets(word)
        print("synsets", synsets)
        for synset in synsets:

            for lemma in synset.lemmas():
                similarity = synset.path_similarity(lemma.synset())
                if similarity is not None and similarity > max_similarity:
                    max_similarity = similarity
                    best_synonyms = lemma.name()
        synonyms.append(best_synonyms)
    return ' '.join(synonyms)

sentence = "we are family, and i like you !"
syn_sentence = get_synonyms(sentence)
print(syn_sentence)

 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41862755/article/details/131435583
conseillé
Classement