Замена существительных на синонимы:
Три девушки под окнами
Пряли поздно вечерком.
«Кабы я была королева, —
Говорит одна девушка, —
То на весь крещеный свет
Приготовила б я банкет».
Код:
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)