PyQt5 - Проєкт "Балачка"
Якщо спробувати поглянути на мовні речення з точки зору програмування, то можна зауважити деяку закономірність:
- Учень весело кричить
- Продавець швидко працює
- Він повільно пише
- Вона красиво говорить
- Мама красиво малює
Структура кожного з цих речень однакова: підмет-обставина-присудок.
Якщо створити набір (список) можливих підметів, обставин, присудків (і можливо інших частин речення), то можна створити генератор випадкових речень.
Завдання проекту: Розробити форму, в якій у текстові написи будуть генеруватись випадкові фрази після клацання відповідних кнопок pushButton.
У конструкторі Designer потрібно створити компоненти: написи Label та кнопка PushButton:
Скористаємось початковою заготовкою:
from PyQt5 import QtWidgets, uic import sys from PyQt5.QtGui import * class Ui(QtWidgets.QMainWindow): def __init__(self): super(Ui, self).__init__() uic.loadUi('talk.ui', self) self.show() app = QtWidgets.QApplication(sys.argv) window = Ui() app.exec_()
До цієї програми потрібно додати опис компонентів форми
self.pushButton = self.findChild(QtWidgets.QPushButton, 'pushButton') self.pushButton.clicked.connect(self.button1) self.label = self.findChild(QtWidgets.QLabel, 'label') self.label_2 = self.findChild(QtWidgets.QLabel, 'label_2') self.label_3 = self.findChild(QtWidgets.QLabel, 'label_3')
Решту компонентів форми опишіть самостійно.
На початку проекту визначаємо списки можливих підметів, присудків, обставин тощо. Загалом, ці списки можуть зберігатись у зовнішніх файлах і зчитуватись так, як описано в темі http://dystosvita.org.ua/mod/page/view.php?id=893
import random pidmet=["Учень","Продавець","Він","Вона","Мама"] prysodok=["ричить","працює","пише","говорить","малює"] obstavyna=["весело","швидко","повільно","красиво"]
Метод обробки для клацання кнопки полягає у тому, що беремо випадкове значення зі списку підметів, присудків, обставин, і записуємо це значення у відповідні написи:
def button1(self): a=random.choice(pidmet) self.label.setText(a)
Команди вибору випадкових обставин та присудків напишіть самостійно.
Можна створити й інші універсальні конструктори фраз, наприклад:
За схожим принципом, можна сказати, працюють чат-боти. Вони видають певні випадкові фрази, іноді залежні від контексту розмови. Звичайно, новіші технології застосовують методи штучного інтелекту, проте у своїй основі вони враховують принципи побудови речень певної мови (української, англійської тощо).