Найти в Дзене

Замена существительных на синонимы

Замена существительных на синонимы:

Три девушки под окнами

Пряли поздно вечерком.

«Кабы я была королева, —

Говорит одна девушка, —

То на весь крещеный свет

Приготовила б я банкет».

Код:

import nltk

from nltk.corpus import wordnet as wn

from nltk.tokenize import word_tokenize, pos_tag

# Загрузите необходимые ресурсы NLTK

nltk.download('punkt')

nltk.download('averaged_perceptron_tagger')

nltk.download('wordnet')

# Функция для получения синонимов

def get_synonyms(word):

synonyms = set()

for syn in wn.synsets(word):

for lemma in syn.lemmas():

synonyms.add(lemma.name())

return list(synonyms)

# Функция для замены существительных на синонимы

def replace_nouns_with_synonyms(text):

tokens = word_tokenize(text)

tagged = pos_tag(tokens)

new_text = []

for word, tag in tagged:

if tag in ['NN', 'NNS', 'NNP', 'NNPS']: # существительные

synonyms = get_synonyms(word)

if synonyms:

# Заменяем слово на случайный синоним

new_word = synonyms[0] # Можно улучшить, выбирая случайный синоним

new_text.append(new_word)

else:

new_text.append(word)

else:

new_text.append(word)

return ' '.join(new_text)

# Текст поэмы

text = """Три девицы под окном

Пряли поздно вечерком.

«Кабы я была царица, —

Говорит одна девица, —

То на весь крещеный мир

Приготовила б я пир»."""

# Применяем замену существительных

new_text = replace_nouns_with_synonyms(text)

print(new_text)