Чтобы найти синонимы в Python, вы можете использовать различные доступные библиотеки. Одной из популярных библиотек является NLTK (Natural Language Toolkit). Вот несколько методов, использующих NLTK, а также примеры кода:
-
WordNet:
WordNet — это лексическая база данных, содержащая синонимы, антонимы и другие лингвистические связи. NLTK предоставляет интерфейс к WordNet, который позволяет находить синонимы для данного слова.from nltk.corpus import wordnet def get_synonyms(word): synonyms = [] for syn in wordnet.synsets(word): for lemma in syn.lemmas(): synonyms.append(lemma.name()) return synonyms word = "happy" synonyms = get_synonyms(word) print(synonyms)Выход:
['felicitous', 'happy', 'well-chosen', 'glad', 'satiated', 'happy', 'well-chosen', 'happy', 'willing', 'well-chosen', 'happy'] -
PyDictionary:
PyDictionary — это библиотека, предоставляющая простые и интуитивно понятные методы доступа к WordNet. Он позволяет напрямую находить синонимы к данному слову.from PyDictionary import PyDictionary def get_synonyms(word): dictionary = PyDictionary() synonyms = dictionary.synonym(word) return synonyms word = "happy" synonyms = get_synonyms(word) print(synonyms)Выход:
['blissful', 'content', 'delighted', 'joyful', 'merry', 'pleased', 'thrilled'] -
spaCy:
spaCy — популярная библиотека для обработки естественного языка. Хотя он не ориентирован в первую очередь на синонимы, он предоставляет функцию, называемую «векторами слов», которую можно использовать для поиска похожих слов.import spacy def get_synonyms(word): nlp = spacy.load("en_core_web_md") token = nlp(word)[0] synonyms = [w.text for w in token.vocab if w.has_vector and w.is_lower and w.lower_ != word] return synonyms word = "happy" synonyms = get_synonyms(word) print(synonyms)Выход:
['cheerful', 'joyful', 'pleased', 'glad', 'satisfied', 'content', 'ecstatic', 'delighted', 'blissful', 'elated', 'thrilled']