So verwenden Sie das Wordnet-Wörterbuch, um Synonyme für englische Sätze zu erhalten

Inhaltsverzeichnis

Problembeschreibung:

Problem gelöst:

Wordnet-Installation:

Methode eins:

Gedanke:

Code:

Methode 2:

Gedanke:

Code:


Problembeschreibung:

Möchten Sie ein Synonym für einen englischen Satz erhalten? Sie können einen vollständigen Synonymsatz erhalten, indem Sie im Wordnet nach Synonymen suchen und die entsprechenden Wörter ersetzen.

Problem gelöst:

Wordnet-Installation:

Zunächst müssen Sie Wordnet installieren. Die Installationsschritte sind wie folgt:

Installieren Sie zuerst das nltk-Paket -> Geben Sie nach der Installation den Python-Befehl ein, führen Sie import nltk aus -> installieren Sie dann Wordnet und führen Sie den Befehl nltk.download('wordnet') aus -> die Installation ist erfolgreich.

Es gibt zwei Möglichkeiten, Synonyme zu erhalten:

Methode eins:

Gedanke:

Erhalten Sie ein zufälliges Wort in der Synonymliste, das jedem Wort im aktuellen Satz entspricht, aus Wordnet als Synonym für das Wort. Erhalten Sie dadurch den diesem Satz entsprechenden Synonymsatz.

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)

Methode 2:

Gedanke:

Erhalten Sie die Synonymliste, die jedem Wort im aktuellen Satz entspricht, von Wordnet und verwenden Sie das Wort mit der höchsten Ähnlichkeit mit dem aktuellen Wort als Synonym des Wortes, um einen vollständigen Synonymsatz zu erhalten.

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)

 

Ich denke du magst

Origin blog.csdn.net/weixin_41862755/article/details/131435583
Empfohlen
Rangfolge