Модификация кода для поиска с помощью регулярок
Как можно улучшить код, чтобы генерировались предложения:
- начинались в заглавной буквы
- чтобы не начиналось со слова со знаком пунктуации (hello.)
- в конце предложения всегда был ?, ! или точка
- предложение 5 слов
Часть моего кода:
while sentence_count != 0:
generated_sentence = []
current_word = random.choice(text1)
generated_sentence.append(current_word)
count = 9
while count != 0:
next_word = Counter(head_tail[current_word]).most_common(1)[0][0]
generated_sentence.append(next_word)
current_word = next_word
count -= 1
print(" ".join(generated_sentence))
sentence_count -= 1```
Текст беру из инпута. Придумала две регулярки, но не знаю, куда и как их поставить в код.
r'^[A-Z].*[^.?!]$'
(r'.+[.?!]$', generated_sentence[-1]) или (generated_sentence[-1][-1] in '.?!')
Ответы (1 шт):
Автор решения: moondust
→ Ссылка
Было бы неплохо написать всю задачу и поделиться полным кодом, а не просто предоставить вырванный кусок. Вот небольшой код, который просто перемешивает все слова в списке и выводит полученный текст
import random
words = ['hello', 'hi', 'friend', 'dear', 'my', 'world', 'human']
ending = ['.', '!', '?']
random.shuffle(words)
words[0] = words[0].title()
print(' '.join(words), random.choice(ending), sep='')