Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/9753
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorБілоніг , Анатолій Вікторович-
dc.contributor.authorСатанівський, Євгеній Ігорович-
dc.date.accessioned2026-06-28T12:14:22Z-
dc.date.available2026-06-28T12:14:22Z-
dc.date.issued2026-06-17-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/9753-
dc.description.abstractАНОТАЦІЇ Студент Сатанівський Євгеній Ігорович. Тема: Програмний агент із визначення тональності повідомлень у віртуальних соціальних групах. Кваліфікаційна робота бакалавра зі спеціальності 121 «Інженерія програмного забезпечення». Черкаський державний технологічний університет, Черкаси, 2026. Кваліфікаційна робота містить 95 сторінок, 44 рисунки, 4 таблиці, 4 додатки та 20 використаних джерел. Метою роботи є розробка програмного агента для автоматизованого визначення тональності повідомлень у віртуальних соціальних групах на основі технологій обробки природної мови та методів машинного навчання. Основними завданнями роботи є формування вимог до програмного забезпечення, моделювання предметної області, проектування архітектури системи, реалізація програмного агента та проведення його тестування. Об’єктом дослідження є методи, моделі та програмні засоби визначення тональності повідомлень у віртуальних соціальних групах. Предметом дослідження є процес розробки програмного забезпечення для автоматизованого аналізу текстових повідомлень у віртуальних соціальних групах. У результаті виконання роботи проведено аналіз сучасних програмних засобів аналізу тональності тексту, досліджено можливість створення власної моделі машинного навчання, виконано проектування програмної системи та бази даних, розроблено програмний агент із використанням Python, Telethon, SQLite та моделі clapAI/roberta-base-multilingual-sentiment, реалізовано механізми збору коментарів, класифікації повідомлень, формування CSV-звітів і статистичних даних, а також проведено модульне, інтеграційне, системне та приймальне тестування програмного забезпечення.uk_UA
dc.description.abstractABSTRACT Student Yevhenii Ihorovych Satanivskyi. Software Agent for Sentiment Analysis of Messages in Virtual Social Groups. Bachelor's Qualification Thesis in Specialty 121 "Software Engineering". Cherkasy State Technological University, Cherkasy, 2026. The qualification thesis consists of 95 pages, 44 figures, 4 tables, 4 appendices, and 20 references. The aim of the thesis is to develop a software agent for automated sentiment analysis of messages in virtual social groups using natural language processing technologies and machine learning methods. The main objectives of the thesis include analyzing existing methods of text sentiment analysis, studying modern natural language processing tools, defining software requirements, modeling the domain area, designing the system architecture, implementing the software agent, and conducting its testing. The object of research is the process of automated analysis of text messages in virtual social groups. The subject of research is methods, models, and software tools for sentiment analysis of messages in virtual social groups. As a result of the work, modern approaches to text sentiment analysis were investigated, the possibility of developing a custom machine learning model was studied, the software system and database were designed, and a software agent based on Python, Telethon, SQLite, and the clapAI/roberta-base-multilingual-sentiment model was developed. Mechanisms for collecting comments, classifying messages, generating CSV reports, and producing statistical data were implemented. In addition, unit, integration, system, and acceptance testing of the software were performed.uk_UA
dc.language.isoukuk_UA
dc.subjectПрограмний агентuk_UA
dc.subjectаналіз тональностіuk_UA
dc.subjectобробка природної мовиuk_UA
dc.subjectPythonuk_UA
dc.subjectTelethonuk_UA
dc.subjectSQLITEuk_UA
dc.subjectTelegram APIuk_UA
dc.subjectштучний інтелектuk_UA
dc.subjectвіртуальні соціальні групиuk_UA
dc.subjectSoftware agentuk_UA
dc.subjectsentiment analysisuk_UA
dc.subjectnatural language processinguk_UA
dc.subjectPythonuk_UA
dc.subjectTelethonuk_UA
dc.subjectSQLITEuk_UA
dc.subjectTelegram APIuk_UA
dc.subjectartificial intelligenceuk_UA
dc.subjecttransformer modelsuk_UA
dc.subjecttext classificationuk_UA
dc.subjectvirtual social groupsuk_UA
dc.titleПрограмний агент із визначення тональності повідомлень у віртуальних соціальних групах.uk_UA
dc.typeBachelor Thesisuk_UA
Appears in Collections:121 Інженерія програмного забезпечення (Інженерія програмного забезпечення)



Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
Факультет інформаційних технологій і систем 
Кафедра інженерії програмного забезпечення 
 
 
ПОЯСНЮВАЛЬНА ЗАПИСКА 
до кваліфікаційної роботи 
бакалавра 
 
 
на тему:  «Програмний агент із визначення тональності повідомлень у 
віртуальних соціальних групах» 
 
 
Виконав: студент 4 курсу, групи ПЗС-2204 
спеціальності  
121 «Інженерія програмного забезпечення»  
(шифр і назва напряму підготовки) 
 
 
Студент Сатанівський Є. І. 
 (прізвище та ініціали) 
Керівник  Білоніг А. В. 
 (прізвище та ініціали) 
Рецензент  Журавель П. Д. 
 (прізвище та ініціали) 
 
 
 
Черкаси 2026 
4 
 
 
 
                                               Черкаський державний технологічний університет                         _ 
повне найменування вищого навчального закладу 
Факультет                інформаційних технологій і систем                                                                _ 
Кафедра                   програмного забезпечення автоматизованих систем                                    _     
Освітній рівень       бакалавр                                                                                                             _ 
Спеціальність         121 «Інженерія програмного забезпечення»                                                    _    
Освітня програма   Інженерія програмного забезпечення                                                              _ 
 
ЗАТВЕРДЖУЮ 
Зав. кафедри ПЗАС, професор 
____________________ С. В. Голуб  
«___» _______________ 2026 року 
 
З А В Д А Н Н Я 
НА КВАЛІФІКАЦІЙНУ РОБОТУ СТУДЕНТУ 
                                                  Сатанівський Євгеній Ігорович                                                   _ 
(прізвище, ім’я, по батькові) 
1. Тему проекту (роботи) Програмний агент із визначення  тональності повідомлень у 
віртуальних соціальних групах.                                                                                                                          _ 
Керівник проекту (роботи) Білоніг Анатолій Вікторович                                                                   _ 
(прізвище, ім’я , по батькові, науковий ступінь, вчене звання) 
Затверджені наказом Черкаського державного технологічного університету від « 12 » березня 
2026 року №56/03-03 
2. Строк подання студентом проекту (роботи) 1 червня 2026 р.____________________________ 
3. Вхідні дані до проекту (роботи) стандарти програмного забезпечення; процеси управління; 
вимоги до проекту; календарне планування проекту; управління ризиками проекту;                -  
управління ресурсами                                                                                                                        _ 
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)  
Вступ;_Теоретичний аналіз поняття штучного інтелекту і особливості його застосування; 
Розробка концепції проекту; Управління проектом розробки програмного агента із визначення 
тональності повідомлень у віртуальних соціальних групах; Оцінювання ефективності; Висновки; 
Список використаних джерел; 
Додатки.                                                                                                                                               _ 
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових робіт проекту);  
5 
 
Слайд 1, Слайд 2, Слайд 3, Слайд 4, Слайд 5, Слайд 6, Слайд 7, Слайд 8, Слайд 8, Слайд 9, Слайд 
10, Слайд 11, Слайд 12, Слайд 13, Слайд 14, Слайд 15, Слайд16, Слайд 17, Слайд 18, Слайд 19, 
Слайд 20, Слайд 21, Слайд 22, Слайд 23, Слайд 24. 
6. Консультанти розділів роботи
Прізвище, ініціали та посади Підпис, дата 
Розділ 
консультанта Завдання видав Завдання прийняв 
1 
2 
3 
7. Дата видачі завдання 02 грудня 2025 р. _ 
КАЛЕНДАРНИЙ ПЛАН 
Строк 
виконання 
№ 
Назва етапів випускної роботи етапів Примітки 
п/п 
випускної 
роботи 
Постановка задачі 12.12.2025 виконано 
Підготовка завдання 14.12.2025 виконано 
Погодження завдання 10.01.2026 виконано 
Затвердження завдання 20.01.2026 виконано 
Основна стадія 
Підбір матеріалів 21.01.2026 виконано 
Аналіз шляхів вирішення поставленої задачі 15.02.2026 виконано 
Розрахунок основних параметрів роботи 1.03.2026 виконано 
Вибір кінцевого варіанту проектного рішення 10.04.2026 виконано 
Оформлення первісної редакції роботи 20.04.2026 виконано 
Заключна стадія 
Узгодження прийнятих проектних рішень з 3.05.2026 виконано 
керівником 
Оформлення пояснювальної записки роботи в 15.05.2026 виконано 
кінцевій редакції 
Попередній захист роботи 22.05.2026 виконано 
Затвердження роботи 26.05.2026 виконано 
Рецензування роботи 30.05.2026 виконано 
Захист роботи 
Студент _____________________         Сатанівський Є. І. 
(підпис)  (прізвище та ініціали) 
Керівник роботи _____________________         Білоніг А. В. 
(підпис)  (прізвище та ініціали) 
6 
 
АНОТАЦІЇ 
Студент Сатанівський Євгеній Ігорович.  
Тема: Програмний агент із визначення тональності повідомлень у 
віртуальних соціальних групах.  
Кваліфікаційна робота бакалавра зі спеціальності 121 «Інженерія 
програмного забезпечення».  
Черкаський державний технологічний університет, Черкаси, 2026. 
Кваліфікаційна робота містить  95 сторінок, 44 рисунки, 4 таблиці, 4 додатки 
та 20 використаних джерел. 
Метою роботи є розробка програмного агента для автоматизованого 
визначення тональності повідомлень у віртуальних соціальних групах на основі 
технологій обробки природної мови та методів машинного навчання. 
Основними завданнями роботи є формування вимог до програмного 
забезпечення, моделювання предметної області, проектування архітектури 
системи, реалізація програмного агента та проведення його тестування. 
Об’єктом дослідження є методи, моделі та програмні засоби визначення 
тональності повідомлень у віртуальних соціальних групах. 
Предметом дослідження є процес розробки програмного забезпечення для 
автоматизованого аналізу текстових повідомлень у віртуальних соціальних групах. 
У результаті виконання роботи проведено аналіз сучасних програмних 
засобів аналізу тональності тексту, досліджено можливість створення власної 
моделі машинного навчання, виконано проектування програмної системи та бази 
даних, розроблено програмний агент із використанням Python, Telethon, SQLite та 
моделі clapAI/roberta-base-multilingual-sentiment, реалізовано механізми збору 
коментарів, класифікації повідомлень, формування CSV-звітів і статистичних 
даних, а також проведено модульне, інтеграційне, системне та приймальне 
тестування програмного забезпечення. 
Ключові слова: Програмний агент, аналіз тональності, обробка природної 
мови, Python, Telethon, SQLITE, Telegram API, штучний інтелект, трансформерні 
моделі, класифікація тексту, віртуальні соціальні групи. 
7 
 
 
ABSTRACT 
Student Yevhenii Ihorovych Satanivskyi. 
Software Agent for Sentiment Analysis of Messages in Virtual Social Groups.  
Bachelor's Qualification Thesis in Specialty 121 "Software Engineering". 
Cherkasy State Technological University, Cherkasy, 2026. 
The qualification thesis consists of 95 pages, 44 figures, 4 tables, 4 appendices, and 
20 references. 
The aim of the thesis is to develop a software agent for automated sentiment 
analysis of messages in virtual social groups using natural language processing 
technologies and machine learning methods. 
The main objectives of the thesis include analyzing existing methods of text 
sentiment analysis, studying modern natural language processing tools, defining software 
requirements, modeling the domain area, designing the system architecture, 
implementing the software agent, and conducting its testing. 
The object of research is the process of automated analysis of text messages in 
virtual social groups. 
The subject of research is methods, models, and software tools for sentiment 
analysis of messages in virtual social groups. 
As a result of the work, modern approaches to text sentiment analysis were 
investigated, the possibility of developing a custom machine learning model was studied, 
the software system and database were designed, and a software agent based on Python, 
Telethon, SQLite, and the clapAI/roberta-base-multilingual-sentiment model was 
developed. Mechanisms for collecting comments, classifying messages, generating CSV 
reports, and producing statistical data were implemented. In addition, unit, integration, 
system, and acceptance testing of the software were performed. 
Keywords: Software agent, sentiment analysis, natural language processing, 
Python, Telethon, SQLITE, Telegram API, artificial intelligence, transformer models, 
text classification, virtual social groups. 
 
  
8 
 
 
ЗМІСТ 
ЗМІСТ…………………………………………………………………………………...4 
ВСТУП .............................................................................................................................. 7 
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ 
ЗАВДАНЬ ....................................................................................................................... 11 
1.1. Від математики до штучного інтелекту ..................................................... 11 
1.2. Існуючі дослідження в області ................................................................... 14 
1.3. Існуючі програмні рішення ......................................................................... 17 
1.4. Постановка задачі......................................................................................... 21 
ВИСНОВОК ДО ПЕРШОГО РОЗДІЛУ ..................................................................... 24 
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У ПРАКТИКУ 
ПРОЕКТУВАННЯ ......................................................................................................... 25 
2.1. Моделювання предметної області .............................................................. 25 
2.1.1. Предметна область моделювання. Моделювання предметної 
області. Словник предметної області .......................................................... 25 
2.1.2. Елементи моделювання предметної області .................................... 28 
2.1.3.  Робоча область моделювання ........................................................... 30 
2.2. Формування та аналіз вимог ....................................................................... 32 
2.2.1. Формування вимог до програмного забезпечення. Первинні і 
детальні вимоги. Вимоги замовника і розробника. Функціональні та 
нефункціональні вимоги .............................................................................. 32 
2.2.2. Формування вимог за допомогою діаграми прецедентів ............... 36 
2.3. Проектування логічної структури програмного комплексу .................... 38 
 
 
ЧДТУ 262246.002ПЗ 
Змн. Арк. № докум. Підпис Дата 
 Розроб.  Сата нівський Є. І. «Програмний агент із визначення Літ. Лист Листів 
 Перевір.   Білоніг А. В. тональності повідомлень у віртуальних 4  
 соціальних групах» 
  Пояснювальна записка. 
 Н. Контр.   Півень О.Б. ФІТІС, кафедра ПЗАС, ПЗС-2204 
 Затверд.  Г олуб С.В. 
9 
 
 
2.3.1. Діаграми класів ................................................................................... 38 
2.3.2. Діаграми пакетів .................................................................................. 41 
2.4. Архітектурне проектування ........................................................................ 43 
2.4.1. Діаграма компонентів ......................................................................... 43 
2.4.2. Розгортання програмної системи на апаратних засобах. Діаграма 
розгортання .................................................................................................... 45 
2.5. Моделювання поведінки системи .............................................................. 48 
2.5.1. Діаграма діяльності ............................................................................. 48 
2.5.2. Діаграма послідовності....................................................................... 50 
2.5.3. Діаграма комунікації .......................................................................... 52 
2.5.4. Діаграма скінченного автомату ......................................................... 54 
ВИСНОВОК ДО ДРУГОГО РОЗДІЛУ ....................................................................... 57 
3.1. Розробка програмного комплексу .............................................................. 58 
3.1.1. Обґрунтування вибору засобів реалізації ......................................... 58 
3.1.2. Опис структурної (функціональної) схеми ...................................... 61 
3.1.3. Опис логічної схеми ........................................................................... 64 
3.1.4. Розробка бази даних ........................................................................... 67 
3.1.5. Розробка інтерфейсу користувача ..................................................... 71 
3.1.6. Опис розробки програмних компонентів ......................................... 74 
3.2. Тестування системи ..................................................................................... 78 
3.2.1. Модульне тестування ......................................................................... 78 
3.2.2. Інтеграційне тестування ..................................................................... 80 
3.2.3. Системне тестування .......................................................................... 83 
3.2.4. Приймальне тестування...................................................................... 86 
 
ЧДТУ 262246.002 ПЗ 
Змн. Арк.  № докум. Підпис Дата 
     
10 
 
 
3.3. Приклади впровадженого програмного комплексу ................................. 88 
ВИСНОВОК ДО ТРЕТЬОГО РОЗДІЛУ ..................................................................... 93 
ВИСНОВКИ ................................................................................................................... 95 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ..................................................................... 97 
Додаток А ....................................................................................................................... 99 
Додаток Б...................................................................................................................... 101 
Додаток В ..................................................................................................................... 109 
Додаток Г ..................................................................................................................... 112 
 
  
 
ЧДТУ 262246.002 ПЗ 
Змн. Арк. № докум. Підпис Дата 
     
11 
 
 ЧДТУ 262246.002 ПЗ   
ВСТУП 
Актуальність роботи обумовлена необхідністю створення програмної 
системи, яка забезпечує автоматизований збір даних із зовнішнього джерела, їх 
подальшу обробку засобами штучного інтелекту, збереження результатів аналізу 
та формування звітності для кінцевого користувача. Розробка програмного агента 
потребує вирішення комплексу задач, пов'язаних із проєктуванням архітектури 
системи, інтеграцією з Telegram API, використанням моделей машинного 
навчання, організацією зберігання даних та забезпеченням зручного 
користувацького інтерфейсу. 
У сучасних умовах розвитку інформаційних технологій та програмних 
систем значно зростають обсяги текстових даних, що потребують автоматизованої 
програмної  обробки та аналізу. Одним із найбільш популярних засобів комунікації 
є Telegram, який використовується для обміну повідомленнями, ведення 
інформаційних каналів, тематичних спільнот та професійних груп. Значна 
кількість коментарів, що публікуються користувачами, формує великі масиви 
неструктурованих текстових даних, обробка яких традиційними методами є 
складною та малоефективною. 
Актуальною є задача розробки програмних систем, здатних автоматизовано 
збирати, обробляти та аналізувати текстову інформацію в режимі реального часу. 
Ручний аналіз великої кількості повідомлень потребує значних ресурсів та не 
забезпечує необхідної швидкості отримання результатів. Тому виникає потреба у 
створенні програмних засобів, які дозволяють автоматизувати процес аналізу 
повідомлень, зберігати результати обробки та формувати статистичні звіти для 
подальшого використання. 
Одним із перспективних напрямків розробки таких систем є використання 
технологій обробки природної мови та моделей машинного навчання. Їх 
застосування дозволяє реалізувати програмні рішення для автоматичного 
визначення тональності текстових повідомлень, класифікації даних та аналізу 
реакції користувачів на інформаційні події. Розробка програмного агента для 
7 
ЧДТУ 262246.002 ПЗ 
визначення тональності повідомлень забезпечує можливість автоматизації 
процесу аналізу текстових даних, підвищення швидкості обробки інформації та 
отримання узагальнених статистичних показників, що підтверджує актуальність 
обраної теми кваліфікаційної роботи. 
Метою роботи є розробка програмного агента для автоматизованого 
визначення тональності повідомлень у віртуальних соціальних групах на основі 
технологій обробки природної мови та методів машинного навчання. 
Для досягнення поставленої мети необхідно вирішити такі завдання: 
– провести аналіз існуючих методів програмного визначення тональності
текстових повідомлень;
– дослідити сучасні моделі машинного навчання та нейронні мережі, що
застосовуються для аналізу тексту;
– виконати порівняльний аналіз існуючих програмних рішень у сфері
програмного аналізу тональності;
– сформувати функціональні та нефункціональні вимоги до програмного
забезпечення;
– виконати моделювання предметної області та спроєктувати архітектуру
програмної системи;
– реалізувати програмний агент для автоматичного отримання коментарів
із Telegram;
– інтегрувати систему з моделлю штучного інтелекту для класифікації
текстових повідомлень;
– реалізувати механізми збереження результатів аналізу та формування
звітів;
– провести тестування розробленого програмного забезпечення.
Об’єктом розробки є методи, моделі та програмні засоби визначення 
тональності повідомлень у віртуальних соціальних групах. 
     Предметом розробки є процес розробки програмного забезпечення для 
автоматизованого аналізу текстових повідомлень у віртуальних соціальних 
групахД. ля досягнення поставленої мети застосовано такі методи дослідження: 
8 
 ЧДТУ 262246.002 ПЗ  
аналіз і порівняння — під час дослідження існуючих підходів до визначення 
тональності тексту; моделювання — для побудови моделей предметної області та 
архітектури програмної системи; системний підхід — при проєктуванні структури 
програмного агента та взаємодії його компонентів; методи машинного навчання та 
обробки природної мови — для класифікації текстових повідомлень за 
тональністю; тестування — для перевірки коректності функціонування 
програмного забезпечення; узагальнення та систематизація — при формуванні 
висновків за результатами проведених досліджень. 
Практичне значення отриманих результатів 
Практичне значення роботи полягає у створенні програмного агента, який 
дозволяє автоматизувати процес аналізу тональності коментарів у Telegram. 
Розроблена система забезпечує отримання коментарів із вибраних публікацій, їх 
автоматичну класифікацію на позитивні, негативні та нейтральні повідомлення, а 
також формування звітів для подальшого аналізу. 
Програмний агент може використовуватися адміністраторами Telegram-
каналів, аналітиками, маркетологами, журналістами та дослідниками для 
оперативного отримання інформації про реакцію аудиторії на опубліковані 
матеріали. Використання автоматизованого аналізу дозволяє суттєво скоротити 
час обробки великих обсягів текстових даних та підвищити об'єктивність 
отриманих результатів. 
Результати аналізу зберігаються у форматі електронних таблиць, що 
забезпечує можливість їх подальшої обробки та використання в аналітичних 
системах. Також реалізовано механізм накопичення статистики за визначений 
період часу та побудови графіків зміни настроїв аудиторії. 
Проведене тестування підтвердило працездатність програмного агента та 
його готовність до практичного використання. 
Особистий внесок автора 
У процесі виконання бакалаврської роботи автором було самостійно 
проведено аналіз предметної області, сформовано вимоги до програмного 
забезпечення, виконано моделювання системи та розроблено програмний агент 
9 
 ЧДТУ 262246.002 ПЗ  
для визначення тональності повідомлень у віртуальних соціальних групах. 
Особисто автором виконано: 
– аналіз існуючих підходів до автоматичного визначення тональності 
текстових повідомлень; 
– дослідження можливості створення власної моделі машинного навчання 
для класифікації текстів; 
– проведення експериментів із навчанням власної моделі аналізу 
тональності; 
– аналіз результатів навчання та оцінка точності класифікації; 
– обґрунтування вибору готової трансформерної моделі для подальшого 
використання; 
– проєктування архітектури програмного агента; 
– реалізація модулів отримання коментарів із Telegram за допомогою 
бібліотеки Telethon; 
– інтеграція програмного забезпечення з моделлю штучного інтелекту 
clapAI/roberta-base-multilingual-sentiment; 
– реалізація механізмів збереження результатів аналізу в базі даних SQLite; 
– розробка механізму формування звітів у форматі CSV; 
– створення графічного інтерфейсу користувача;ШІ 
– проведення тестування та налагодження програмного забезпечення. 
Комплексне виконання зазначених робіт дозволило створити 
функціональний програмний агент, який забезпечує автоматизований аналіз 
тональності коментарів та надає користувачу зручні інструменти для отримання 
статистичної інформації щодо настроїв аудиторії. 
10 
 ЧДТУ 262246.002 ПЗ  
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ 
ПОСТАВЛЕНИХ ЗАВДАНЬ 
У сучасному цифровому середовищі соціальні мережі та месенджери стали 
одним із основних джерел отримання та поширення інформації. Щодня 
користувачі залишають мільйони повідомлень, коментарів та відгуків, які 
відображають їхнє ставлення до подій, товарів, послуг, політичних процесів та 
інших аспектів суспільного життя. Значна частина цієї інформації існує у вигляді 
неструктурованого тексту, що ускладнює її аналіз традиційними методами. 
Одним із перспективних напрямів обробки текстової інформації є 
автоматичне визначення тональності повідомлень. Аналіз тональності дозволяє 
встановити емоційне забарвлення тексту та класифікувати його як позитивний, 
негативний або нейтральний. Отримані результати можуть використовуватися для 
моніторингу громадської думки, аналізу реакції аудиторії на інформаційні 
повідомлення, оцінки ефективності маркетингових кампаній та дослідження 
соціальних процесів. 
Розв'язання задачі автоматичного аналізу тональності стало можливим 
завдяки розвитку технологій штучного інтелекту, машинного навчання та обробки 
природної мови. Сучасні нейронні мережі здатні аналізувати контекст 
повідомлення, враховувати взаємозв'язки між словами та визначати емоційне 
забарвлення тексту з високою точністю. Саме тому дослідження існуючих методів 
та засобів визначення тональності повідомлень є важливим етапом під час 
створення програмного агента для аналізу коментарів у Telegram. 
1.1. Від математики до штучного інтелекту 
Основою будь-якої системи штучного інтелекту є математичні методи та 
алгоритми обробки інформації. Незважаючи на складність сучасних моделей 
машинного навчання, принципи їх роботи базуються на фундаментальних 
математичних дисциплінах, зокрема лінійній алгебрі, математичному аналізі, 
теорії ймовірностей, математичній статистиці та теорії оптимізації. 
Перші дослідження у сфері штучного інтелекту розпочалися ще в середині 
11 
 ЧДТУ 262246.002 ПЗ  
XX століття. У 1950 році британський математик Алан Тюрінг запропонував підхід 
до оцінювання інтелектуальності комп'ютерних систем, який згодом отримав 
назву тесту Тюрінга. Його основна ідея полягала у визначенні здатності машини 
вести діалог таким чином, щоб людина не могла відрізнити її від іншої людини. 
Подальший розвиток штучного інтелекту привів до появи експертних 
систем, які використовували великі набори правил для прийняття рішень. Однак зі 
збільшенням складності задач стало очевидно, що створення правил вручну є 
надто трудомістким процесом. Це сприяло розвитку машинного навчання — 
підходу, за якого система самостійно виявляє закономірності у даних та формує 
власну модель прийняття рішень. 
Машинне навчання є одним із підрозділів штучного інтелекту та являє собою 
сукупність методів, що дозволяють комп'ютерним системам покращувати якість 
своєї роботи на основі накопиченого досвіду. У більшості випадків навчання 
відбувається шляхом аналізу великої кількості прикладів, які містять правильні 
відповіді. Після завершення навчання модель може використовувати отримані 
знання для обробки нових даних. 
Одним із найважливіших напрямів машинного навчання є використання 
штучних нейронних мереж. Їх створення було натхненне принципами 
функціонування людського мозку. Штучна нейронна мережа складається з великої 
кількості взаємопов'язаних обчислювальних елементів — нейронів, які приймають 
вхідні дані, виконують математичні операції та передають результати іншим 
нейронам. 
Спрощена модель штучного нейрона включає набір вхідних сигналів, вагові 
коефіцієнти, функцію активації та вихідний сигнал. Кожному входу відповідає 
певна вага, яка визначає ступінь впливу відповідного параметра на результат 
роботи нейрона. Під час навчання мережі ці ваги поступово змінюються таким 
чином, щоб зменшити помилку прогнозування. 
Навчання нейронної мережі базується на використанні алгоритмів 
оптимізації. Найбільш поширеним методом є алгоритм зворотного поширення 
помилки (Backpropagation). Його сутність полягає в тому, що після отримання 
12 
 ЧДТУ 262246.002 ПЗ  
результату система порівнює його з еталонним значенням, визначає величину 
помилки та коригує вагові коефіцієнти мережі для покращення майбутніх 
прогнозів. 
Однією з галузей, у яких глибоке навчання продемонструвало особливо 
високі результати, стала обробка природної мови (Natural Language Processing, 
NLP). Метою NLP є забезпечення можливості автоматичного аналізу, розуміння та 
генерації текстової інформації. До основних задач цієї галузі належать машинний 
переклад, розпізнавання мовлення, автоматичне реферування текстів, пошук 
інформації та аналіз тональності повідомлень [1, 2]. 
Перші системи обробки тексту використовували словникові підходи та 
статистичні моделі. Такі методи аналізували окремі слова або фрази та намагалися 
визначити їх емоційне забарвлення на основі попередньо підготовлених словників. 
Однак подібні системи мали суттєві обмеження, оскільки не враховували контекст 
використання слів. 
Наприклад, слово «добре» у більшості випадків має позитивне значення. 
Проте в реченні «Добре, що цього не сталося» його вплив на загальну тональність 
відрізнятиметься від речення «Все пройшло добре». Аналогічно сарказм, 
заперечення та складні мовні конструкції можуть суттєво змінювати емоційне 
забарвлення повідомлення. 
Для подолання цих обмежень були створені сучасні трансформерні моделі. 
Революційним етапом розвитку NLP стала поява архітектури Transformer, 
запропонованої дослідниками компанії Google у 2017 році. На відміну від 
попередніх підходів, трансформери здатні аналізувати взаємозв'язки між усіма 
словами речення одночасно, що значно підвищує якість розуміння контексту. 
На основі архітектури Transformer було створено велику кількість мовних 
моделей, серед яких особливе місце займає BERT (Bidirectional Encoder 
Representations from Transformers). Головною особливістю BERT є 
двонаправлений аналіз тексту, завдяки якому модель враховує як попередні, так і 
наступні слова речення під час визначення значення окремого слова. 
Подальшим розвитком цієї ідеї стала модель RoBERTa (Robustly Optimized 
13 
 ЧДТУ 262246.002 ПЗ  
BERT Approach), яка використовує вдосконалені механізми навчання та 
забезпечує вищу точність при виконанні багатьох задач обробки природної мови. 
Саме моделі сімейства RoBERTa сьогодні широко використовуються для 
класифікації текстів, аналізу тональності, тематичного аналізу повідомлень та 
інших задач NLP [1]. 
У рамках даної роботи для визначення тональності коментарів 
використовується готова багатомовна модель clapAI/roberta-base-multilingual-
sentiment. Дана модель підтримує декілька мов, зокрема українську, російську та 
англійську, що є важливою перевагою при аналізі коментарів у Telegram, де 
користувачі можуть використовувати різні мови навіть у межах одного 
обговорення. 
На початковому етапі розробки розглядалася можливість створення власної 
моделі класифікації тональності. Для цього було проведено експерименти з 
навчанням нейронної мережі на підготовленому наборі текстових даних. Однак 
отримані результати продемонстрували недостатню точність класифікації та 
значну залежність від обсягу і якості навчального набору даних. Крім того, 
ефективне навчання власної моделі потребувало значних обчислювальних 
ресурсів та великої кількості розмічених текстів. 
З огляду на це було прийнято рішення використовувати готову попередньо 
навчену модель, яка забезпечує високу якість класифікації повідомлень та 
дозволяє зосередитися на вирішенні задач інженерії програмного забезпечення, 
пов'язаних із розробкою програмного агента, інтеграцією з Telegram API, 
організацією зберігання даних та формуванням аналітичної звітності навчання 
1.2. Існуючі дослідження в області  
Аналіз тональності текстових повідомлень є одним із найбільш активно 
досліджуваних напрямів сучасної обробки природної мови. Зростання 
популярності соціальних мереж, месенджерів та інформаційних платформ 
призвело до появи значних обсягів текстових даних, які відображають думки, 
емоції та реакцію користувачів на різноманітні події. У зв'язку з цим виникла 
14 
 ЧДТУ 262246.002 ПЗ  
потреба в автоматизованих засобах аналізу таких даних, здатних оперативно 
визначати ставлення аудиторії до певних об'єктів, подій або інформаційних 
повідомлень. 
Перші дослідження в області аналізу тональності були спрямовані на 
визначення емоційного забарвлення окремих текстів за допомогою словникових 
підходів. Основна ідея полягала у використанні спеціально підготовлених 
словників позитивних та негативних слів. Під час аналізу система підраховувала 
кількість слів кожної категорії та на основі отриманих результатів визначала 
загальну тональність повідомлення. 
Подальший розвиток досліджень був пов'язаний із використанням 
статистичних методів машинного навчання. Для аналізу тональності почали 
застосовуватися алгоритми класифікації, зокрема Naive Bayes, Logistic Regression, 
Decision Tree та Support Vector Machine. На відміну від словникових підходів, такі 
методи могли навчатися на підготовлених наборах даних та самостійно виявляти 
закономірності між текстом повідомлення і його тональністю. 
Використання машинного навчання дозволило суттєво підвищити якість 
класифікації текстів. Проте ефективність подібних моделей значною мірою 
залежала від якості попередньої обробки тексту та формування ознак. Для 
представлення текстової інформації найчастіше використовувалися методи Bag of 
Words та TF-IDF, які описували документ у вигляді числового вектора. 
Незважаючи на ефективність таких підходів, вони не дозволяли повноцінно 
враховувати семантичні зв'язки між словами та їх контекстне значення. 
Новий етап розвитку досліджень розпочався із впровадження технологій 
глибокого навчання. Учені почали використовувати багатошарові нейронні 
мережі, здатні автоматично формувати внутрішні представлення тексту без 
необхідності ручного виділення ознак. Особливо поширеними стали рекурентні 
нейронні мережі (RNN) та їх вдосконалені модифікації Long Short-Term Memory 
(LSTM) і Gated Recurrent Unit (GRU) [3]. 
Рекурентні мережі забезпечували врахування послідовності слів у реченні та 
дозволяли аналізувати залежності між окремими елементами тексту. Завдяки 
15 
 ЧДТУ 262246.002 ПЗ  
цьому якість визначення тональності значно покращилася порівняно з класичними 
статистичними методами. Водночас такі моделі мали складну процедуру навчання 
та не завжди ефективно працювали з довгими текстами. 
Подальший розвиток галузі пов'язаний із появою архітектури Transformer, 
яка стала одним із найбільших досягнень сучасного штучного інтелекту. На 
відміну від попередніх підходів, трансформери використовують механізм 
самоуваги (Self-Attention), що дозволяє одночасно аналізувати взаємозв'язки між 
усіма словами повідомлення незалежно від їх розташування в тексті. 
На базі архітектури Transformer було створено низку мовних моделей нового 
покоління, серед яких BERT, RoBERTa, ALBERT, DistilBERT та інші. Результати 
численних досліджень демонструють, що такі моделі забезпечують значно вищу 
точність класифікації текстів порівняно з класичними алгоритмами машинного 
навчання та рекурентними нейронними мережами [2]. 
Дослідження показують, що користувачі соціальних мереж часто 
використовують змішані мовні конструкції, поєднуючи слова різних мов в одному 
повідомленні. Особливо актуальною ця проблема є для українського сегмента 
мережі Інтернет, де в межах одного обговорення можуть одночасно 
використовуватися українська, російська та англійська мови. У зв'язку з цим 
особливого значення набувають багатомовні моделі обробки природної мови. 
Telegram є одним із найбільш популярних месенджерів у світі та активно 
використовується як платформа для поширення інформації та обговорення 
суспільно важливих подій. Новинні канали можуть об'єднувати десятки або навіть 
сотні тисяч підписників, а кількість коментарів під окремими публікаціями іноді 
досягає декількох тисяч повідомлень. Такий обсяг даних робить ручний аналіз 
практично неможливим та потребує використання автоматизованих засобів 
обробки інформації. 
Важливим аспектом сучасних досліджень є також питання інтеграції 
моделей штучного інтелекту в програмні системи реального часу. Якщо ранні 
роботи були переважно зосереджені на підвищенні точності класифікації, то 
сучасні дослідження дедалі більше уваги приділяють практичним аспектам 
16 
 ЧДТУ 262246.002 ПЗ  
впровадження таких рішень. До них належать продуктивність системи, швидкість 
обробки даних, масштабованість архітектури, можливість інтеграції із зовнішніми 
сервісами та зручність використання для кінцевого користувача. 
Таким чином, аналіз наукових досліджень показав, що найбільш 
перспективним підходом до визначення тональності текстових повідомлень є 
використання сучасних трансформерних моделей обробки природної мови. Висока 
точність класифікації, підтримка декількох мов та можливість інтеграції з 
програмними системами роблять їх ефективним інструментом для створення 
програмного агента аналізу тональності повідомлень у віртуальних соціальних 
групах Telegram [1, 3]. 
1.3. Існуючі програмні рішення 
Зростання обсягів текстової інформації в мережі Інтернет сприяло появі 
великої кількості програмних продуктів, призначених для автоматичного аналізу 
текстів та визначення їх тональності. Сучасні системи використовуються в 
маркетингу, журналістиці, соціологічних дослідженнях, моніторингу репутації 
компаній та аналізі громадської думки. Більшість таких рішень базуються на 
технологіях машинного навчання та обробки природної мови. 
Під час виконання даної роботи було проведено аналіз існуючих програмних 
рішень, які можуть використовуватися для визначення тональності текстових 
повідомлень. 
Google Cloud Natural Language 
Google Cloud Natural Language є хмарним сервісом компанії Google, 
призначеним для автоматичного аналізу текстових даних. Система дозволяє 
визначати тональність повідомлень, виконувати синтаксичний аналіз тексту, 
розпізнавати сутності та класифікувати документи за тематикою. 
Основною перевагою сервісу є використання сучасних моделей машинного 
навчання та висока якість обробки текстових даних. Крім того, сервіс підтримує 
значну кількість мов та має добре документований програмний інтерфейс. 
До недоліків можна віднести платний характер використання, залежність від 
17 
 ЧДТУ 262246.002 ПЗ  
зовнішньої хмарної інфраструктури та відсутність спеціалізованих засобів для 
автоматичного отримання коментарів із Telegram. 
 
 
Рисунок 1.1 – Інтерфейс сервісу Google Cloud Natural Language 
 
Microsoft Azure AI Language 
Azure AI Language є частиною хмарної платформи Microsoft Azure та надає 
інструменти для аналізу текстових даних. Система дозволяє визначати тональність 
повідомлень, виявляти ключові фрази, аналізувати структуру тексту та виконувати 
класифікацію документів.  
 
 
Рисунок 1.2 – Інтерфейс сервісу Azure AI Language 
18 
 ЧДТУ 262246.002 ПЗ  
Сервіс характеризується високою точністю аналізу та можливістю інтеграції 
з іншими рішеннями екосистеми Microsoft. Для взаємодії із сервісом доступний 
програмний інтерфейс, який підтримує різні мови програмування. 
Основними недоліками є необхідність використання хмарної 
інфраструктури, обмеження безкоштовного тарифного плану та відсутність 
готових механізмів аналізу Telegram-коментарів. 
Brand24 
Brand24 є системою моніторингу соціальних мереж та засобів масової 
інформації. Програмне забезпечення призначене для відстеження згадувань 
брендів, організацій, товарів або подій у різних інформаційних джерелах. 
Система автоматично виконує аналіз тональності повідомлень та надає 
статистичні дані щодо позитивних, негативних і нейтральних згадувань. 
Результати аналізу відображаються у вигляді графіків та аналітичних звітів. 
Перевагою Brand24 є наявність готових інструментів аналітики та зручних 
засобів візуалізації результатів. Недоліком є орієнтація переважно на моніторинг 
брендів і маркетингових кампаній, а також висока вартість використання для 
індивідуальних користувачів. 
 
Рисунок 1.3 – Інтерфейс системи Brand24 
19 
 ЧДТУ 262246.002 ПЗ  
YouScan 
YouScan є платформою для моніторингу соціальних мереж та аналізу 
громадської думки. Система використовує технології штучного інтелекту для 
обробки текстових повідомлень та визначення їх тональності. 
Функціональні можливості YouScan включають збір повідомлень із різних 
джерел, автоматичне визначення настроїв аудиторії, побудову статистичних звітів 
та візуалізацію отриманих результатів. 
Перевагою платформи є висока якість аналітики та широкий набір 
інструментів для роботи з великими обсягами даних. Недоліком є комерційний 
характер продукту та орієнтація на корпоративний сектор. 
 
 
Рисунок 1.4 – Інтерфейс системи YouScan 
 
Порівняльний аналіз існуючих рішень 
Проведений аналіз показав, що більшість сучасних систем аналізу 
тональності орієнтовані на корпоративний сектор та функціонують у вигляді 
хмарних сервісів. Вони забезпечують високу якість класифікації текстів, однак 
мають низку обмежень для використання в рамках поставленої задачі. 
На основі проведеного аналізу можна зробити висновок, що жодне з 
розглянутих рішень не забезпечує повного виконання поставлених вимог. 
Основними недоліками є залежність від сторонніх сервісів, обмежені можливості 
роботи з Telegram та відсутність спеціалізованого механізму накопичення 
20 
 ЧДТУ 262246.002 ПЗ  
статистики для окремих каналів. 
Тому доцільним є розроблення власного програмного агента, який 
забезпечуватиме автоматичне отримання коментарів із Telegram, визначення їх 
тональності за допомогою сучасної моделі штучного інтелекту, збереження 
результатів аналізу в локальній базі даних SQLite та формування статистичних 
звітів у форматі CSV. 
1.4. Постановка задачі 
Проведений аналіз існуючих методів визначення тональності текстових 
повідомлень та сучасних програмних рішень показав, що автоматичний аналіз 
повідомлень у соціальних мережах є актуальною задачею, яка активно вирішується 
із застосуванням технологій штучного інтелекту. Водночас більшість наявних 
програмних продуктів орієнтована на використання хмарних сервісів, має 
обмежені можливості інтеграції з Telegram або потребує значних фінансових 
витрат для повноцінного використання. 
У процесі аналізу було встановлено, що Telegram є одним із найбільш 
популярних засобів поширення інформації та організації онлайн-обговорень. 
Великі новинні канали можуть містити значну кількість коментарів, аналіз яких 
вручну є малоефективним та потребує значних часових витрат. Тому виникає 
необхідність створення програмного забезпечення, здатного автоматично 
отримувати коментарі, визначати їх тональність та надавати користувачеві 
узагальнену статистичну інформацію. 
Метою розробки є створення програмного агента для автоматизованого 
визначення тональності повідомлень у віртуальних соціальних групах Telegram із 
використанням сучасних технологій обробки природної мови та штучного 
інтелекту. 
Для досягнення поставленої мети програмний агент повинен забезпечувати 
виконання таких функцій: 
– авторизацію користувача в Telegram; 
– отримання коментарів до обраної публікації за посиланням; 
21 
 ЧДТУ 262246.002 ПЗ  
– відбір повідомлень, що містять текстову інформацію; 
– автоматичне визначення тональності кожного коментаря; 
– класифікацію повідомлень на позитивні, негативні та нейтральні; 
– підрахунок статистики за результатами аналізу; 
– збереження результатів у базі даних; 
– формування звітів у форматі CSV; 
– накопичення статистичних даних для подальшого аналізу; 
– побудову графіків зміни тональності повідомлень для обраного каналу. 
Для виконання аналізу текстових повідомлень передбачається використання 
попередньо навченої багатомовної трансформерної моделі clapAI/roberta-base-
multilingual-sentiment, яка підтримує українську, російську та англійську мови. 
Використання готової моделі дозволяє забезпечити високу якість класифікації 
повідомлень та уникнути необхідності створення власного великого навчального 
набору даних. 
Після запуску аналізу користувач вводить посилання на публікацію 
Telegram, для якої необхідно визначити тональність коментарів. Система отримує 
всі доступні коментарі, що містять текстову інформацію, після чого кожне 
повідомлення послідовно передається до модуля аналізу тональності. 
Результатом роботи моделі є визначення однієї з трьох категорій: 
– позитивне повідомлення; 
– негативне повідомлення; 
– нейтральне повідомлення. 
Після завершення аналізу виконується підрахунок кількості повідомлень 
кожної категорії та формується статистичний звіт. 
Для зберігання інформації використовується база даних SQLite. Обрана 
система керування базами даних характеризується простотою використання, 
відсутністю необхідності встановлення окремого серверного програмного 
забезпечення та достатньою продуктивністю для поставленої задачі. 
У базі даних зберігаються: 
– відомості про проаналізовані публікації; 
22 
 ЧДТУ 262246.002 ПЗ  
– результати проведених аналізів; 
– статистичні показники для кожного дослідження; 
– інформація про сформовані звіти. 
Після завершення аналізу система автоматично створює файл звіту у форматі 
CSV. До звіту включаються відомості про авторів коментарів, текст повідомлень 
та визначену тональність кожного коментаря. У разі повторного аналізу тієї самої 
публікації відповідний звіт оновлюється. 
Однією з функціональних можливостей програмного забезпечення є 
побудова статистичних графіків. Користувач може обрати Telegram-канал, після 
чого система автоматично відобразить графік зміни кількості позитивних, 
негативних та нейтральних коментарів у часовому розрізі відповідно до дати 
публікації проаналізованих повідомлень. 
Для забезпечення зручності використання система повинна мати графічний 
інтерфейс користувача. Інтерфейс має забезпечувати можливість введення 
посилання на Telegram-публікацію, вибору каталогу для збереження звітів, 
запуску аналізу та перегляду статистичної інформації. 
Таким чином, у результаті аналізу предметної області було сформульовано 
основні вимоги до програмного агента для визначення тональності повідомлень у 
віртуальних соціальних групах. Отримані результати є основою для подальшого 
моделювання системи, проєктування її архітектури та реалізації програмного 
забезпечення [9,10]. 
  
23 
 ЧДТУ 262246.002 ПЗ  
ВИСНОВОК ДО ПЕРШОГО РОЗДІЛУ 
У першому розділі було проведено аналіз існуючих методів і засобів 
визначення тональності текстових повідомлень. Розглянуто основні етапи 
розвитку штучного інтелекту, машинного навчання та технологій обробки 
природної мови, які стали основою для створення сучасних систем аналізу тексту. 
Дослідження показало, що найбільш ефективними засобами визначення 
тональності повідомлень є трансформерні моделі, побудовані на архітектурі 
Transformer. Особливу увагу приділено моделям сімейства BERT та RoBERTa, які 
забезпечують високу точність класифікації текстів завдяки врахуванню контексту 
повідомлень. 
Також було проаналізовано сучасні програмні рішення для аналізу 
тональності тексту. Встановлено, що більшість існуючих систем функціонують як 
хмарні сервіси та не забезпечують повного виконання вимог, необхідних для 
автоматизованого аналізу коментарів у Telegram із локальним зберіганням 
результатів та формуванням статистичних звітів. 
На основі проведеного аналізу сформульовано вимоги до програмного 
агента для визначення тональності повідомлень у віртуальних соціальних групах. 
Визначено основні функції системи, джерела даних, вимоги до зберігання 
інформації та формування статистики. 
Отримані результати є основою для подальшого моделювання предметної 
області, проєктування архітектури програмного забезпечення та реалізації 
програмного агента, що буде розглянуто в наступному розділі. 
24 
 ЧДТУ 262246.002 ПЗ  
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У ПРАКТИКУ 
ПРОЕКТУВАННЯ 
2.1. Моделювання предметної області 
Моделювання предметної області дозволяє сформувати цілісне уявлення про 
систему, визначити її основні компоненти та встановити взаємозв'язки між ними. 
Це забезпечує основу для подальшого проєктування програмного комплексу. 
2.1.1. Предметна область моделювання. Моделювання предметної області. 
Словник предметної області 
Предметна область моделювання. Предметна область моделювання 
програмного агента для визначення тональності повідомлень у віртуальних 
соціальних групах охоплює процес автоматизованого отримання, обробки та 
аналізу текстових повідомлень користувачів Telegram. Основною метою системи 
є визначення емоційного забарвлення коментарів та формування статистичної 
інформації про настрої аудиторії. 
Система повинна забезпечувати автоматичний збір коментарів із Telegram-
публікацій, виконувати їх аналіз за допомогою моделі штучного інтелекту та 
надавати користувачу результати у вигляді статистичних даних і звітів. 
Основні компоненти предметної області для даної системи включають: 
 отримання коментарів – процес збору текстових повідомлень із Telegram-
публікації; 
 аналіз тональності – процес визначення емоційного забарвлення 
повідомлень; 
 формування статистики – підрахунок кількості позитивних, негативних 
та нейтральних коментарів; 
 збереження результатів – запис результатів аналізу до бази даних; 
 формування звітів – створення CSV-файлів з результатами аналізу; 
 накопичення статистики – збереження історичних даних для побудови 
графіків та аналізу тенденцій. 
25 
 ЧДТУ 262246.002 ПЗ  
Моделювання предметної області. Виявлення абстракцій. Основними 
концептуальними об'єктами, що належать до предметної області програмного 
агента аналізу тональності повідомлень, є: 
 користувач – особа, яка використовує програмний агент; 
 Telegram-публікація – повідомлення каналу, для якого виконується 
аналіз; 
 коментар – текстове повідомлення користувача Telegram; 
 аналіз тональності – процес класифікації повідомлення; 
 модель штучного інтелекту – програмний компонент, що визначає 
тональність тексту; 
 звіт – файл із результатами аналізу; 
 статистика – узагальнені результати роботи системи; 
 база даних – сховище інформації про проведені аналізи. 
 
 
Рисунок 2.1 – Діаграма предметної області 
 
26 
 ЧДТУ 262246.002 ПЗ  
Словник предметної області 
Користувач – особа, яка взаємодіє з програмним агентом та виконує аналіз 
повідомлень. 
Telegram-публікація – повідомлення каналу Telegram, для якого виконується 
аналіз коментарів. 
Коментар – текстове повідомлення користувача, залишене під Telegram-
публікацією. 
Аналіз тональності – процес визначення емоційного забарвлення текстового 
повідомлення. 
Позитивна тональність – категорія повідомлень, що містять позитивну 
оцінку, схвалення або позитивні емоції. 
Негативна тональність – категорія повідомлень, що містять негативну 
оцінку, критику або негативні емоції. 
Нейтральна тональність – категорія повідомлень, що не містять вираженої 
позитивної або негативної оцінки. 
Telegram API – програмний інтерфейс, що забезпечує доступ до 
функціональних можливостей Telegram. 
Telethon – програмна бібліотека Python для взаємодії з Telegram API. 
Модель штучного інтелекту – програмний компонент, який виконує 
класифікацію текстових повідомлень за тональністю. 
База даних – сховище інформації про проведені аналізи та результати роботи 
системи. 
SQLite – система керування базами даних, що використовується для 
локального зберігання інформації. 
CSV-звіт – файл електронної таблиці, який містить результати аналізу 
коментарів. 
Статистика – сукупність показників, отриманих у результаті аналізу 
повідомлень та накопичених за певний проміжок часу.Виконане моделювання 
предметної області дозволяє визначити основні сутності системи та їх 
призначення. Отримані результати використовуються під час подальшого 
27 
 ЧДТУ 262246.002 ПЗ  
формування UML-моделей та проєктування архітектури програмного комплексу. 
2.1.2. Елементи моделювання предметної області 
У процесі моделювання предметної області програмного агента для 
визначення тональності повідомлень у віртуальних соціальних групах будуть 
використовуватися різні елементи UML (Unified Modeling Language), які 
дозволяють наочно представити структуру та функціональність системи. Основні 
елементи UML, що використовуються під час моделювання, включають класи, 
атрибути, операції, асоціації та діаграми класів. 
Мова UML є загальноприйнятим стандартом об'єктно-орієнтованого 
моделювання та широко використовується під час проєктування програмного 
забезпечення різного рівня складності. 
 
 
Рисунок 2.2 – Основні графічні символи UML 
28 
 ЧДТУ 262246.002 ПЗ  
 
Рисунок 2.3 – Єднальні елементи UML 
29 
 ЧДТУ 262246.002 ПЗ  
Для моделювання предметної області буде використано діаграми UML, які 
забезпечують можливість візуалізації, специфікації, конструювання та 
документування програмної системи. Основними елементами моделювання UML, 
що використовуються для опису предметної області програмного агента, є класи, 
об'єкти, атрибути, методи, асоціації та різні типи діаграм. 
Елементи моделювання предметної області за допомогою UML включають 
класи, об'єкти, атрибути, методи, асоціації та різні типи діаграм. Використання 
UML для моделювання програмного агента дозволяє створити наочну та зрозумілу 
структуру системи, забезпечити ефективну взаємодію між елементами 
програмного комплексу, а також спростити процес проєктування, реалізації та 
тестування програмного забезпечення. 
Побудовані UML-моделі будуть використані під час подальшого 
проєктування логічної структури програмного комплексу, архітектури системи та 
опису взаємодії між її компонентами. 
2.1.3.  Робоча область моделювання 
Робоча область моделювання представляє всі аспекти системи, які 
підлягають моделюванню для розуміння, аналізу та подальшого проєктування. У 
контексті розробки програмного агента для визначення тональності повідомлень у 
віртуальних соціальних групах робоча область моделювання охоплює всі сутності 
та їх взаємодії, необхідні для реалізації основних функцій системи. Вона включає 
опис сутностей, їх атрибутів, взаємодій та функцій, які повинні бути реалізовані 
для забезпечення ефективної роботи програмного комплексу. 
Моделювання робочої області дозволяє визначити основні компоненти 
системи, встановити зв'язки між ними та сформувати основу для подальшого 
проєктування архітектури програмного забезпечення. Графічна модель предметної 
області відображає взаємодію користувача із системою, процес отримання 
коментарів із Telegram, аналіз тональності повідомлень, збереження результатів та 
формування статистичних звітів. 
30 
 ЧДТУ 262246.002 ПЗ  
 
Рисунок 2.4 – Графічна модель предметної області 
 
Основні компоненти: 
1 користувач (User); 
2 Telegram-публікація (Telegram Post); 
3 коментар (Comment); 
4 програмний агент (Sentiment Agent); 
5 модель штучного інтелекту (AI Model); 
6 база даних (Database); 
7 звіт (Report); 
8 статистика (Statistics); 
9 Telegram API. 
31 
 ЧДТУ 262246.002 ПЗ  
Наведена модель предметної області відображає основні елементи системи 
та взаємозв'язки між ними. Вона буде використана як основа для подальшого 
формування вимог, побудови UML-діаграм та проєктування програмного 
комплексу. 
2.2. Формування та аналіз вимог 
2.2.1. Формування вимог до програмного забезпечення. Первинні і детальні 
вимоги. Вимоги замовника і розробника. Функціональні та нефункціональні 
вимоги 
Формування вимог до програмного забезпечення є одним із 
найважливіших етапів розробки програмного продукту. Правильно сформовані 
вимоги дозволяють визначити призначення системи, її функціональні можливості 
та обмеження, а також забезпечують єдине розуміння майбутнього програмного 
забезпечення між замовником і розробником. Якісно сформовані вимоги є 
основою для проєктування, реалізації та тестування системи [3, 4]. 
Первинні вимоги 
– програмний агент повинен забезпечувати авторизацію користувача в 
Telegram; 
– програмний агент повинен отримувати коментарі з Telegram-публікацій 
за наданим посиланням; 
– система повинна аналізувати всі коментарі, що містять текстову 
інформацію; 
– система повинна визначати тональність повідомлень як позитивну, 
негативну або нейтральну; 
– програмний агент повинен формувати статистику за результатами 
аналізу; 
– система повинна зберігати результати аналізу в базі даних SQLite; 
– програмний агент повинен створювати звіти у форматі CSV; 
– система повинна забезпечувати перегляд накопиченої статистики у 
вигляді графіків; 
32 
 ЧДТУ 262246.002 ПЗ  
– інтерфейс програми повинен бути простим та зрозумілим для 
користувача; 
– програмний агент повинен бути реалізований мовою програмування 
Python. 
Детальні вимоги 
Аналіз коментарів 
 користувач повинен мати можливість вказати посилання на Telegram-
публікацію; 
 система повинна автоматично отримувати всі доступні текстові 
коментарі; 
 система повинна виконувати аналіз кожного отриманого повідомлення. 
Визначення тональності 
 система повинна класифікувати повідомлення на позитивні, негативні та 
нейтральні; 
 для класифікації повинна використовуватися модель штучного інтелекту 
clapAI/roberta-base-multilingual-sentiment; 
 система повинна підтримувати аналіз української, російської та 
англійської мов. 
Формування звітів 
 система повинна створювати CSV-файл з результатами аналізу; 
 звіт повинен містити автора коментаря, текст повідомлення та визначену 
тональність; 
 при повторному аналізі тієї самої публікації звіт повинен оновлюватися. 
Формування статистики 
 система повинна накопичувати статистику проведених аналізів; 
 користувач повинен мати можливість переглядати статистику для 
окремого Telegram-каналу; 
 статистика повинна відображатися у вигляді графіка зміни кількості 
позитивних, негативних та нейтральних повідомлень. 
 
33 
 ЧДТУ 262246.002 ПЗ  
Вимоги замовника і розробника 
Вимоги замовника визначають основні цілі створення програмного агента та 
його функціональні можливості. Вони формуються на основі потреб користувачів 
та особливостей предметної області. 
 простота використання та зрозумілий інтерфейс; 
 можливість автоматичного аналізу великої кількості коментарів; 
 отримання статистичних даних без необхідності ручної обробки 
повідомлень; 
 збереження результатів аналізу для подальшого використання; 
 підтримка декількох мов повідомлень. 
Вимоги розробника визначають технічні умови створення та підтримки 
програмного забезпечення. 
 використання сучасних засобів обробки природної мови та штучного 
інтелекту; 
 застосування бібліотеки Telethon для взаємодії з Telegram API; 
 використання бази даних SQLite для локального зберігання інформації; 
 забезпечення можливості подальшого розширення функціональності 
системи; 
 використання архітектурних рішень, які спрощують супровід та 
модернізацію програмного забезпечення. 
Функціональні та нефункціональні вимоги 
Функціональні вимоги визначають можливості системи та перелік дій, які 
вона повинна виконувати.  
Авторизація користувача 
 авторизація користувача в Telegram; 
 збереження параметрів доступу для повторного використання. 
  Отримання даних 
 отримання інформації про Telegram-публікацію; 
 отримання текстових коментарів до публікації; 
 фільтрація повідомлень без текстового вмісту. 
34 
 ЧДТУ 262246.002 ПЗ  
 Аналіз тональності 
 визначення тональності кожного повідомлення; 
 підрахунок кількості позитивних повідомлень; 
 підрахунок кількості негативних повідомлень; 
 підрахунок кількості нейтральних повідомлень. 
Формування результатів 
 створення CSV-звіту; 
 збереження результатів аналізу в базі даних; 
 формування статистики за каналами; 
 відображення статистичних графіків. 
Нефункціональні вимоги 
Продуктивність 
 система повинна забезпечувати обробку великої кількості коментарів без 
втрати працездатності; 
 час очікування результатів повинен залежати лише від кількості 
отриманих повідомлень та швидкості доступу до Telegram API. 
Надійність 
 система повинна забезпечувати коректне збереження результатів аналізу; 
 у разі виникнення помилки користувач повинен отримувати відповідне 
повідомлення. 
Безпека 
 доступ до Telegram повинен здійснюватися засобами офіційного API; 
 дані користувача не повинні передаватися стороннім сервісам без 
необхідності. 
Інтерфейс користувача 
 інтерфейс повинен бути інтуїтивно зрозумілим; 
 усі основні функції повинні бути доступні з головного вікна програми. 
   Масштабованість 
 система повинна підтримувати можливість заміни моделі штучного 
інтелекту; 
35 
 ЧДТУ 262246.002 ПЗ  
 архітектура програмного комплексу повинна дозволяти додавання нових 
функцій без суттєвої переробки існуючого коду. 
2.2.2. Формування вимог за допомогою діаграми прецедентів 
Діаграма прецедентів (use case diagram) — це один з типів діаграм UML, що 
відображає взаємодію користувачів (акторів) із системою через певні 
функціональні прецеденти (випадки використання). Вона допомагає зрозуміти 
вимоги до системи та визначити основні функції, які система повинна виконувати 
[11, 12]. 
Призначення діаграми прецедентів 
 визначає функціональність системи з точки зору користувачів; 
 допомагає зібрати вимоги до системи та їх пріоритизацію; 
 сприяє комунікації між замовниками, розробниками та іншими 
зацікавленими сторонами. 
 
 
Рисунок 2.5 – Діаграма прецедентів для програмного агента визначення 
тональності повідомлень 
36 
 ЧДТУ 262246.002 ПЗ  
Основними прецедентами системи є: 
 авторизація в Telegram; 
 введення посилання на публікацію; 
 запуск аналізу; 
 перегляд результатів аналізу; 
 формування CSV-звіту; 
 перегляд статистики; 
 вихід із облікового запису. 
Авторизація в Telegram: 
 актор: користувач; 
 користувач виконує авторизацію в Telegram для надання програмному 
агенту доступу до необхідних даних. 
Введення посилання на публікацію: 
 актор: користувач; 
 користувач вводить посилання на Telegram-публікацію, коментарі якої 
необхідно проаналізувати. 
Запуск аналізу: 
 актор: користувач; 
 користувач запускає процес отримання коментарів та визначення їх 
тональності. 
Перегляд результатів аналізу: 
 актор: користувач; 
 після завершення аналізу система відображає кількість позитивних, 
негативних та нейтральних повідомлень. 
Формування CSV-звіту: 
 актор: програмний агент; 
 система автоматично створює файл звіту, що містить авторів коментарів, 
тексти повідомлень та результати класифікації. 
Перегляд статистики: 
 актор: користувач; 
37 
 ЧДТУ 262246.002 ПЗ  
 користувач обирає канал та переглядає графік зміни кількості 
позитивних, негативних і нейтральних коментарів відповідно до часу 
публікації проаналізованих дописів. 
Вихід із облікового запису: 
 актор: користувач; 
 користувач завершує роботу із системою та виходить із свого облікового 
запису. 
Діаграма прецедентів дозволяє отримати чітке уявлення про функціональні 
можливості програмного агента та взаємодію користувача із системою. Вона є 
основою для подальшого проєктування логічної структури програмного 
комплексу та деталізації його функціональних можливостей. 
2.3. Проектування логічної структури програмного комплексу 
Проектування логічної структури програмного комплексу – це процес 
створення концептуальної моделі програмного забезпечення, яка визначає, як різні 
компоненти системи взаємодіють між собою. 
2.3.1. Діаграми класів 
На цій діаграмі класів (див. рис. 2.5) відображаються основні сутності 
(класи) та їх взаємозв'язки у системі. 
Користувач (User): 
 це клас, який представляє користувача системи; 
 користувач може виконувати аналіз коментарів та переглядати 
результати роботи програмного агента. 
Telegram-публікація (TelegramPost): 
 це клас, який представляє Telegram-публікацію, для якої виконується 
аналіз; 
 публікація містить коментарі, що підлягають обробці. 
Коментар (Comment): 
 це клас, який представляє окремий коментар користувача Telegram; 
38 
 ЧДТУ 262246.002 ПЗ  
 коментар може бути проаналізований та віднесений до однієї з категорій 
тональності. 
Аналізатор тональності (SentimentAnalyzer): 
 це клас, який виконує аналіз текстових повідомлень; 
 аналізатор використовує модель штучного інтелекту для визначення 
тональності коментарів. 
 
 
Рисунок 2.6 – Діаграма класів без атрибутів та методів для програмного агента 
аналізу тональності 
 
На цій діаграмі класів (рисунок 2.6) відображаються основні сутності 
системи, їх атрибути, методи та взаємозв'язки. 
Класи та їх атрибути: 
Користувач (User): 
 атрибути: 
 sessionName: String – назва сесії користувача; 
39 
 ЧДТУ 262246.002 ПЗ  
 reportPath: String – шлях до каталогу звітів; 
 методи: 
 login(): void – авторизація користувача в Telegram; 
 logout(): void – вихід із Telegram; 
 startAnalysis(): void – запуск аналізу коментарів; 
 viewStatistics(): void – перегляд статистики. 
Telegram-публікація (TelegramPost): 
 атрибути: 
 url: String – посилання на публікацію; 
 postId: Integer – ідентифікатор публікації; 
 commentCount: Integer – кількість коментарів; 
 методи: 
 getComments(): List – отримання коментарів публікації. 
Коментар (Comment): 
 атрибути: 
 author: String – автор коментаря; 
 text: String – текст повідомлення; 
 sentiment: String – визначена тональність; 
 методи: 
 classify(): String – визначення тональності повідомлення. 
Аналізатор тональності (SentimentAnalyzer): 
 атрибути: 
 modelName: String – назва моделі штучного інтелекту; 
 методи: 
 analyze(text: String): String – аналіз повідомлення; 
 calculateStatistics(): void – підрахунок статистики. 
Взаємозв'язки між класами: 
 аналізує: клас SentimentAnalyzer аналізує повідомлення класу Comment; 
 містить: клас TelegramPost містить один або декілька об'єктів класу 
Comment; 
40 
 ЧДТУ 262246.002 ПЗ  
 запускає: клас User запускає аналіз через клас SentimentAnalyzer; 
 переглядає: клас User отримує результати аналізу та статистику.  
 
 
Рисунок 2.7 – Діаграма класів для програмного агента аналізу тональності 
 
Ця діаграма класів демонструє взаємодію основних компонентів системи. 
Користувач запускає аналіз Telegram-публікації, отримані коментарі передаються 
до аналізатора тональності, після чого результати класифікації використовуються 
для формування статистики та подальшого створення звітів. 
2.3.2. Діаграми пакетів 
Компоненти діаграми пакетів 
Керування Базою Даних: 
 створення таблиць; 
 збереження результатів аналізу; 
 оновлення даних при повторному аналізі публікації; 
 збереження статистики за каналами. 
Керування Telegram-з'єднанням: 
41 
 ЧДТУ 262246.002 ПЗ  
 авторизація користувача в Telegram; 
 отримання доступу до Telegram-публікації; 
 отримання коментарів до публікації; 
 фільтрація повідомлень без текстового вмісту. 
Аналіз Тональності: 
 передача тексту повідомлення до моделі штучного інтелекту; 
 визначення позитивної, негативної або нейтральної тональності; 
 підрахунок кількості повідомлень кожної категорії. 
Формування Звітів: 
 створення CSV-файлу з результатами аналізу; 
 збереження авторів коментарів; 
 збереження тексту повідомлень та результатів класифікації; 
 формування файлу статистики за останній місяць. 
Компоненти Інтерфейсу: 
 введення посилання на Telegram-публікацію; 
 вибір папки для збереження звітів; 
 запуск аналізу; 
 відкриття папки звітів; 
 перегляд статистики; 
 вихід із Telegram-акаунта. 
Діаграма пакетів — це тип UML-діаграми, яка відображає організацію і 
взаємозв'язки між різними пакетами, тобто групами класів, інтерфейсів або 
компонентів у програмній системі. Вона допомагає зрозуміти і управляти 
складністю великого проєкту, показуючи, як різні частини системи взаємодіють 
одна з одною [3]. 
У програмному агенті для визначення тональності повідомлень діаграма 
пакетів дозволяє відобразити логічний поділ системи на окремі частини: інтерфейс 
користувача, модуль роботи з Telegram, модуль аналізу тональності, базу даних та 
модуль формування звітів. Такий поділ спрощує розуміння структури програмного 
комплексу та полегшує його подальшу підтримку. 
42 
 ЧДТУ 262246.002 ПЗ  
Рисунок 2.8 – Діаграма пакетів для програмного агента аналізу тональності 
повідомлень 
 
2.4. Архітектурне проектування 
2.4.1. Діаграма компонентів 
Діаграма компонентів — це тип UML-діаграми, яка показує структуру 
системи на рівні компонентів та їх взаємозв'язки. Вона відображає фізичні та 
логічні частини системи, такі як модулі, бібліотеки, файли та компоненти, а також 
їх взаємодію [3]. 
Компоненти інтерфейсу користувача (UI Components): 
 головне вікно програми (Main Window); 
 вікно перегляду статистики (Statistics Window); 
 модуль вибору каталогу звітів (Report Directory Selector); 
 журнал повідомлень системи (Log Output). 
Модуль роботи з Telegram (Telegram Module): 
 авторизація користувача (Telegram Login); 
 отримання Telegram-публікації (Get Post); 
 отримання коментарів (Get Comments); 
 завершення сесії користувача (Logout). 
43 
 ЧДТУ 262246.002 ПЗ  
Модуль аналізу тональності (Sentiment Analysis Module): 
 завантаження моделі штучного інтелекту; 
 аналіз текстових повідомлень; 
 визначення позитивної тональності; 
 визначення негативної тональності; 
 визначення нейтральної тональності. 
База даних (Database): 
 SQLite; 
 створення таблиць; 
 збереження результатів аналізу; 
 збереження статистичних даних; 
 оновлення результатів при повторному аналізі. 
Модуль формування звітів (Report Module): 
 створення CSV-звіту; 
 збереження даних про коментарі; 
 формування файлу статистики; 
 експорт результатів аналізу. 
Модуль статистики (Statistics Module): 
 підрахунок результатів аналізу; 
 формування статистики за каналами; 
 побудова графіків; 
 відображення історії аналізів. 
Дана діаграма демонструє, як компоненти взаємодіють між собою та як вони 
організовані в окремі логічні модулі системи. Кожен компонент виконує власний 
набір функцій та взаємодіє з іншими компонентами через визначені інтерфейси 
[11]. 
Архітектура програмного агента побудована таким чином, щоб забезпечити 
незалежність окремих модулів, спростити супровід програмного забезпечення та 
надати можливість подальшого розширення функціональності системи без 
суттєвих змін її структури. 
44 
 ЧДТУ 262246.002 ПЗ  
 
Рисунок 2.9 – Діаграма компонентів для програмного агента визначення 
тональності повідомлень 
 
2.4.2. Розгортання програмної системи на апаратних засобах. Діаграма 
розгортання 
Діаграма розгортання (Deployment Diagram) в UML відображає фізичне 
розташування програмних компонентів на апаратних вузлах і показує, як різні 
частини системи взаємодіють між собою. Вона включає вузли (nodes), які 
представляють апаратні або віртуальні машини, і артефакти (artifacts), що 
45 
 ЧДТУ 262246.002 ПЗ  
представляють програмні компоненти, розгорнуті на цих вузлах (рисунок 2.9). 
Клієнтський вузол: 
 містить графічний інтерфейс користувача; 
 містить модуль роботи з Telegram API; 
 містить модуль аналізу тональності повідомлень; 
 містить бібліотеки Python, необхідні для роботи системи; 
 забезпечує взаємодію користувача з програмним агентом. 
Модуль аналізу тональності: 
 містить модель штучного інтелекту clapAI/roberta-base-multilingual-
sentiment; 
 виконує класифікацію повідомлень на позитивні, негативні та 
нейтральні; 
 взаємодіє з модулем отримання коментарів та базою даних. 
Локальне сховище даних: 
 містить базу даних SQLite; 
 забезпечує збереження результатів аналізу; 
 зберігає статистичну інформацію за каналами; 
 забезпечує доступ до накопичених результатів. 
Файлова система: 
 містить сформовані CSV-звіти; 
 містить файл статистики за останній місяць; 
 забезпечує зберігання результатів роботи програмного агента. 
Сервіс Telegram: 
 надає доступ до публікацій та коментарів; 
 забезпечує отримання інформації через Telegram API; 
 взаємодіє з клієнтським застосунком через бібліотеку Telethon. 
Зв'язки між вузлами: 
 користувач взаємодіє з графічним інтерфейсом програми; 
 інтерфейс користувача взаємодіє з модулем роботи з Telegram; 
 модуль Telegram отримує дані із сервісів Telegram; 
46 
 ЧДТУ 262246.002 ПЗ  
 отримані коментарі передаються до модуля аналізу тональності; 
 результати аналізу зберігаються в базі даних SQLite; 
 на основі збережених даних формуються CSV-звіти та статистичні 
графіки. 
Діаграма розгортання демонструє фізичну структуру програмного агента та 
показує взаємодію між його програмними компонентами і зовнішніми сервісами. 
Вона дозволяє наочно відобразити розміщення основних елементів системи та 
потоки даних між ними. 
 
 
Рисунок 2.10 – Діаграма розгортання для програмного агента визначення 
тональності повідомлень 
47 
 ЧДТУ 262246.002 ПЗ  
2.5. Моделювання поведінки системи 
Моделювання поведінки системи – це процес створення моделей, що 
описують реакцію програмного забезпечення на дії користувача та зовнішні події. 
Для цього використовуються діаграми діяльності, послідовності, комунікації та 
скінченних автоматів, які дозволяють відобразити взаємодію між компонентами 
системи та порядок виконання операцій. 
Моделі поведінки допомагають зрозуміти логіку роботи програмного 
комплексу, визначити послідовність виконання функцій та виявити можливі 
проблеми ще на етапі проєктування. 
2.5.1. Діаграма діяльності 
Діаграма діяльності (Activity Diagram) в UML використовується для 
моделювання динамічних аспектів системи, показуючи потік керування між 
різними етапами виконання програмного процесу. Вона відображає послідовність 
дій, необхідних для досягнення певної мети, та дозволяє описати логіку роботи 
системи. 
Для програмного агента визначення тональності повідомлень діаграма 
діяльності відображає основні дії користувача та програмні процеси, які 
виконуються під час аналізу Telegram-коментарів (рисунок 2.10). 
Запуск програми: 
 запуск програмного агента; 
 завантаження компонентів системи; 
 відкриття головного вікна програми. 
Авторизація: 
 користувач проходить авторизацію в Telegram; 
 система перевіряє коректність введених даних; 
 у разі успішної авторизації відкривається доступ до функцій програми. 
Запуск аналізу: 
 користувач вводить посилання на Telegram-публікацію; 
 користувач обирає каталог для збереження звітів; 
48 
 ЧДТУ 262246.002 ПЗ  
  
 Рисунок 2.11 – Діаграма діяльності для програмного агента визначення 
тональності повідомлень 
49 
 ЧДТУ 262246.002 ПЗ  
 запускається процес аналізу. 
Отримання коментарів: 
 система отримує інформацію про публікацію; 
 виконується завантаження коментарів; 
 відбираються лише повідомлення, що містять текст. 
Аналіз тональності: 
 кожний коментар передається до моделі штучного інтелекту; 
 визначається позитивна, негативна або нейтральна тональність; 
 результати класифікації накопичуються для подальшої обробки. 
Формування результатів: 
 обчислюється кількість повідомлень кожної категорії; 
 результати зберігаються в базі даних SQLite; 
 створюється CSV-звіт; 
 оновлюється файл статистики. 
Перегляд статистики: 
 користувач відкриває вікно статистики; 
 обирає необхідний Telegram-канал; 
 система будує графік зміни показників за датами публікацій. 
Завершення роботи: 
 користувач завершує роботу із програмою; 
 виконується вихід із Telegram-сесії; 
 програма завершує роботу. 
Ця діаграма відображає основні дії користувача та програмні процеси, які 
виконуються під час роботи програмного агента для визначення тональності 
повідомлень. 
2.5.2. Діаграма послідовності 
Діаграма послідовності — це тип UML-діаграми, який моделює взаємодію 
між об'єктами в певній послідовності часу. Вона показує, як об'єкти обмінюються 
50 
 ЧДТУ 262246.002 ПЗ  
повідомленнями для виконання функції або процесу (рисунок 2.11). 
Основні елементи діаграми включають: 
 об'єкти: суб'єкти, які взаємодіють між собою; 
 повідомлення: стрілки, які представляють обмін інформацією між 
об'єктами; 
 часова шкала: вертикальні лінії, що показують порядок обміну 
повідомленнями з плином часу. 
Ці діаграми допомагають розробникам зрозуміти та спланувати логіку 
роботи системи, відстежуючи порядок взаємодій між її компонентами. 
Введення посилання на публікацію: 
 користувач вводить посилання на Telegram-публікацію; 
 посилання передається до головного вікна програми; 
 запускається процес аналізу повідомлень. 
Отримання коментарів: 
 головне вікно звертається до модуля роботи з Telegram; 
 модуль Telegram отримує інформацію про публікацію; 
 виконується завантаження коментарів; 
 отримані коментарі передаються до модуля аналізу. 
Аналіз тональності: 
 кожен коментар передається до модуля аналізу тональності; 
 модель штучного інтелекту виконує класифікацію повідомлення; 
 результат аналізу повертається до програмного агента. 
Збереження результатів: 
 результати класифікації передаються до бази даних; 
 база даних зберігає інформацію про коментарі та результати аналізу; 
 формується статистична інформація. 
Формування звіту: 
 модуль звітності отримує результати аналізу; 
 створюється CSV-файл із результатами обробки; 
 звіт зберігається у вибраному каталозі. 
51 
 ЧДТУ 262246.002 ПЗ  
Відображення результатів: 
 система підраховує кількість позитивних, негативних та нейтральних 
повідомлень; 
 результати відображаються користувачу; 
 користувач отримує можливість переглянути статистику. 
Ця діаграма послідовності показує процес аналізу Telegram-коментарів від 
моменту введення посилання на публікацію до отримання статистики та 
формування звіту. 
 
 
Рисунок 2.12 – Діаграма послідовності за сценарієм «Аналіз тональності 
коментарів Telegram-публікації» 
 
2.5.3. Діаграма комунікації 
Діаграма комунікації (Communication Diagram) — це тип UML-діаграми, яка 
моделює взаємодію об'єктів у системі у вигляді послідовності обміну 
52 
 ЧДТУ 262246.002 ПЗ  
повідомленнями. Вона показує, як об'єкти та компоненти системи співпрацюють 
для виконання певної функції або процесу (рисунок 2.12). 
Основні кроки: 
Введення посилання на публікацію: 
 користувач вводить посилання на Telegram-публікацію; 
 головне вікно програми отримує введені дані; 
 запускається процес аналізу повідомлень. 
Отримання коментарів: 
 програмний агент звертається до Telegram API; 
 Telegram API повертає інформацію про публікацію та коментарі; 
 отримані повідомлення передаються до модуля аналізу тональності. 
Аналіз повідомлень: 
 кожний коментар обробляється моделлю штучного інтелекту; 
 визначається тональність повідомлення; 
 результати аналізу передаються до системи збереження даних. 
Збереження результатів: 
 результати класифікації записуються до бази даних SQLite; 
 оновлюється накопичена статистика; 
 зберігається інформація про виконаний аналіз. 
Формування звіту: 
 модуль звітності отримує результати аналізу; 
 створюється CSV-файл із даними про коментарі; 
 сформований звіт зберігається на комп'ютері користувача. 
Перегляд статистики: 
 користувач відкриває модуль статистики; 
 система отримує необхідні дані з бази даних; 
 будується графік із кількістю позитивних, негативних та нейтральних 
повідомлень; 
 результати відображаються користувачу. 
53 
 ЧДТУ 262246.002 ПЗ  
Діаграма комунікації демонструє взаємодію між користувачем, Telegram 
API, модулем аналізу тональності, базою даних та модулем формування звітів. 
Вона дозволяє простежити обмін повідомленнями між компонентами системи та 
зрозуміти логіку виконання основних функцій програмного агента. 
 
 
Рисунок 2.13 – Діаграма комунікації для програмного агента визначення 
тональності повідомлень 
 
2.5.4. Діаграма скінченного автомату 
Діаграма скінченного автомату (Finite State Machine Diagram) — це графічне 
представлення моделі, яка описує можливі стани об'єкта та переходи між ними на 
основі подій або умов. Вона використовується для моделювання поведінки 
системи в різних станах (рисунок 2.13). 
Запуск програми: 
 початковий стан після запуску програмного агента; 
 завантаження необхідних компонентів системи; 
 відкриття головного вікна програми. 
Авторизація в Telegram: 
 користувач проходить авторизацію; 
 виконується перевірка введених даних; 
 у разі успішної авторизації здійснюється перехід до основного режиму 
роботи; 
 у разі помилки користувач повертається до форми авторизації. 
Головне вікно: 
 користувач вводить посилання на Telegram-публікацію; 
54 
 ЧДТУ 262246.002 ПЗ  
 обирає каталог для збереження результатів; 
 запускає процес аналізу. 
Отримання коментарів: 
 система отримує дані про публікацію; 
 виконується завантаження коментарів; 
 здійснюється перевірка наявності текстових повідомлень; 
 після завершення завантаження система переходить до аналізу 
тональності. 
Аналіз тональності: 
 повідомлення передаються до моделі штучного інтелекту; 
 визначається тональність кожного коментаря; 
 накопичуються результати класифікації; 
 після завершення аналізу здійснюється перехід до формування 
результатів. 
Формування результатів: 
 створюється CSV-звіт; 
 результати зберігаються в базі даних SQLite; 
 оновлюється статистична інформація; 
 користувачу відображаються результати аналізу. 
Перегляд статистики: 
 користувач відкриває модуль статистики; 
 обирає необхідний канал; 
 система будує графік на основі накопичених даних; 
 результати відображаються на екрані. 
Завершення роботи: 
 користувач закриває програму; 
 завершується Telegram-сесія; 
 система переходить у кінцевий стан. 
Діаграма скінченного автомату відображає основні стани програмного 
агента та переходи між ними під час виконання аналізу тональності повідомлень. 
55 
 ЧДТУ 262246.002 ПЗ  
Вона дозволяє наочно представити логіку роботи системи та послідовність зміни 
її станів у процесі взаємодії з користувачем. 
 
Рисунок 2.14 – Діаграма скінченного автомату для програмного агента 
визначення тональності повідомлень 
  
56 
 ЧДТУ 262246.002 ПЗ  
ВИСНОВОК ДО ДРУГОГО РОЗДІЛУ 
У другому розділі було розглянуто процес впровадження результатів 
досліджень у практику проєктування програмного забезпечення для визначення 
тональності повідомлень у віртуальних соціальних групах. Відповідно до 
поставлених завдань було виконано моделювання предметної області, сформовано 
вимоги до системи та спроєктовано її логічну структуру й архітектуру. 
У процесі моделювання предметної області визначено основні сутності 
програмного агента та взаємозв'язки між ними. Сформовано словник предметної 
області та побудовано графічну модель системи, що дозволило отримати цілісне 
уявлення про її структуру та принципи функціонування. 
Під час формування та аналізу вимог було визначено первинні та детальні 
вимоги до програмного забезпечення, а також сформовано функціональні та 
нефункціональні вимоги. Для наочного представлення взаємодії користувача із 
системою побудовано діаграму прецедентів, яка відображає основні сценарії 
використання програмного агента. 
У межах проєктування логічної структури програмного комплексу було 
побудовано діаграми класів і пакетів, що дозволили описати основні програмні 
сутності, їх атрибути, методи та взаємозв'язки. Це створило основу для подальшої 
реалізації системи. 
Під час архітектурного проєктування розроблено діаграму компонентів та 
діаграму розгортання, які відображають структуру програмного комплексу, 
взаємодію між його модулями та особливості розміщення програмних компонентів 
на апаратних засобах. 
Для опису динамічних аспектів роботи системи було побудовано діаграми 
діяльності, послідовності, комунікації та скінченного автомату. Вони дозволили 
відобразити порядок виконання операцій, взаємодію між компонентами системи 
та зміну її станів під час роботи. 
Отримані результати проєктування створюють необхідну основу для 
реалізації програмного агента та розробки його програмних компонентів.
57 
 ЧДТУ 262246.002 ПЗ  
РОЗДІЛ 3. РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО 
ЗАБЕЗПЕЧЕННЯ 
3.1. Розробка програмного комплексу 
У цьому підрозділі детально розглядається процес створення програмного 
агента для визначення тональності повідомлень у віртуальних соціальних групах. 
Наведено обґрунтування вибору технологій, описано особливості реалізації 
програмних компонентів, структуру зберігання даних та принципи 
функціонування системи. Це дозволяє сформувати цілісне уявлення про процес 
розробки програмного забезпечення від вибору інструментів до реалізації 
основних функцій програмного комплексу. 
3.1.1. Обґрунтування вибору засобів реалізації 
Для реалізації програмного агента необхідно обрати програмні засоби, які 
забезпечать стабільну роботу системи, зручність розробки, можливість 
подальшого супроводу та достатню продуктивність під час аналізу великої 
кількості повідомлень. Вибір технологій здійснювався з урахуванням 
функціональних вимог до програмного забезпечення, доступності інструментів та 
можливостей інтеграції з технологіями штучного інтелекту. 
1 Python 
Python є однією з найбільш популярних мов програмування для створення 
систем обробки даних та штучного інтелекту. Саме тому вона була обрана як 
основна мова реалізації програмного агента. 
Основні переваги Python: 
 простота та зрозумілість синтаксису, що спрощує розробку та супровід 
програмного забезпечення; 
 велика кількість готових бібліотек для роботи з машинним навчанням, 
обробкою тексту та аналізом даних; 
 підтримка роботи з моделями штучного інтелекту на основі бібліотек 
Transformers та PyTorch; 
 кросплатформеність і можливість запуску програм на різних операційних 
58 
 ЧДТУ 262246.002 ПЗ  
системах; 
 активна спільнота розробників та велика кількість документації; 
 можливість швидкого створення прототипів та реалізації складних 
алгоритмів. 
Завдяки зазначеним перевагам Python є оптимальним вибором для створення 
програмного агента аналізу тональності повідомлень [11, 13, 14]. 
2 Telethon 
Для взаємодії з Telegram було обрано бібліотеку Telethon. Вона є одним із 
найбільш поширених інструментів для роботи з Telegram API мовою Python. 
Основні переваги Telethon: 
 підтримка всіх основних можливостей Telegram API; 
 отримання повідомлень, коментарів та інформації про канали; 
 можливість авторизації користувача через власний Telegram-акаунт; 
 активна підтримка та регулярне оновлення; 
 простота інтеграції з іншими Python-бібліотеками. 
Використання Telethon дозволяє автоматизувати процес отримання 
коментарів без необхідності ручного копіювання даних [13]. 
3 Модель штучного інтелекту clapAI/roberta-base-multilingual-sentiment 
Для визначення тональності повідомлень використовується попередньо 
навчена трансформерна модель clapAI/roberta-base-multilingual-sentiment. 
Під час розробки було проведено експерименти зі створенням власної моделі 
класифікації тексту. Однак отримані результати не забезпечили необхідної 
точності визначення тональності повідомлень. Крім того, подальше покращення 
якості вимагало значного обсягу розмічених даних та додаткових обчислювальних 
ресурсів [12]. 
Основні переваги використання готової моделі: 
 підтримка української, російської та англійської мов; 
 висока точність класифікації повідомлень; 
 відсутність необхідності тривалого навчання моделі; 
59 
 ЧДТУ 262246.002 ПЗ  
 можливість локального використання без звернення до зовнішніх 
сервісів; 
 інтеграція з екосистемою Hugging Face. 
Застосування готової моделі дозволило зосередитися на розробці 
програмного агента та забезпечити якісний аналіз повідомлень. 
4 SQLite 
Для зберігання результатів аналізу було обрано систему керування базами 
даних SQLite. 
Основні переваги SQLite: 
 відсутність необхідності встановлення окремого сервера баз даних; 
 зберігання всієї інформації в одному файлі; 
 простота інтеграції з Python; 
 низьке споживання системних ресурсів; 
 підтримка транзакцій та забезпечення цілісності даних; 
 достатня продуктивність для задач аналізу коментарів. 
SQLite є оптимальним рішенням для локального програмного комплексу, 
який не потребує одночасної роботи великої кількості користувачів [15]. 
5 OpenPyXL 
Для створення звітів у форматі CSV використовується бібліотека OpenPyXL. 
Основні переваги OpenPyXL: 
 підтримка створення та редагування Excel-файлів; 
 можливість автоматичного формування звітів; 
 зручна інтеграція з Python; 
 підтримка форматування даних та створення таблиць; 
 висока швидкість обробки інформації. 
Використання OpenPyXL дозволяє автоматично формувати результати 
аналізу у зручному для подальшого використання форматі. 
Таким чином, обраний набір засобів реалізації забезпечує виконання всіх 
функціональних вимог програмного агента. Використання Python, Telethon, 
60 
 ЧДТУ 262246.002 ПЗ  
SQLite, OpenPyXL та сучасної трансформерної моделі штучного інтелекту 
дозволяє створити програмний комплекс, який забезпечує автоматизований аналіз 
тональності повідомлень, збереження результатів та формування статистичних 
звітів. 
3.1.2. Опис структурної (функціональної) схеми 
Структурна схема програмного агента для визначення тональності 
повідомлень складається з декількох основних компонентів, кожен з яких виконує 
певні функції та взаємодіє з іншими компонентами системи. Нижче наведено опис 
основних компонентів та їх взаємозв'язків. 
Основні компоненти структурної схеми 
Інтерфейс користувача 
 відповідає за взаємодію користувача з програмою; 
 забезпечує введення посилання на Telegram-публікацію; 
 відображає результати аналізу; 
 надає доступ до перегляду статистики. 
Модуль роботи з Telegram 
 виконує авторизацію користувача в Telegram; 
 отримує інформацію про публікації; 
 завантажує коментарі до обраної публікації; 
 передає отримані дані для подальшої обробки. 
Модуль аналізу тональності 
 виконує обробку текстових повідомлень; 
 використовує модель штучного інтелекту для класифікації коментарів; 
 визначає позитивну, негативну або нейтральну тональність повідомлень. 
База даних 
 зберігає результати виконаних аналізів; 
 накопичує статистичну інформацію; 
 забезпечує доступ до історії досліджень. 
Модуль формування звітів 
61 
 ЧДТУ 262246.002 ПЗ  
 створює CSV-файли з результатами аналізу; 
 формує статистичні звіти; 
 забезпечує збереження результатів у файловій системі. 
Взаємозв'язки між компонентами 
Користувач взаємодіє з інтерфейсом програми та вказує посилання на 
Telegram-публікацію. 
Інтерфейс користувача передає запит модулю роботи з Telegram для 
отримання коментарів. 
Модуль роботи з Telegram отримує коментарі та передає їх модулю аналізу 
тональності. 
На основі збережених результатів модуль формування звітів створює CSV-
файли та статистичні звіти. 
 
 
Рисунок 3.1 –Структурна схема у Visual Studio 
62 
 ЧДТУ 262246.002 ПЗ  
 
Рисунок 3.2 – Модель структурної схеми програмного агента визначення 
тональності повідомлень 
63 
 ЧДТУ 262246.002 ПЗ  
Опис функціональної схеми 
1 Інтерфейс користувача 
 забезпечує введення посилання на Telegram-публікацію; 
 запускає процес аналізу; 
 відображає результати класифікації; 
 надає можливість перегляду статистики. 
2 Модуль роботи з Telegram 
 виконує підключення до Telegram API; 
 отримує коментарі до публікації; 
 передає отримані дані для аналізу. 
3 Модуль аналізу тональності 
 виконує обробку текстових повідомлень; 
 використовує модель clapAI/roberta-base-multilingual-sentiment; 
 класифікує повідомлення за тональністю. 
4 База даних 
 зберігає результати аналізу; 
 накопичує статистичну інформацію; 
 забезпечує доступ до історії аналізів. 
5 Модуль формування звітів 
 створює CSV-файли з результатами аналізу; 
 формує статистичні дані для подальшого відображення; 
 забезпечує експорт результатів дослідження. 
Дана структурна схема дозволяє наочно представити архітектуру 
програмного агента та взаємодію між його основними компонентами, що спрощує 
процес розробки, супроводу та подальшого розширення функціональності 
системи. 
3.1.3. Опис логічної схеми 
Логічна схема програмного агента для визначення тональності повідомлень 
у віртуальних соціальних групах включає декілька основних компонентів та їх 
взаємозв'язки. Вона описує логіку функціонування системи та взаємодію між її 
64 
 ЧДТУ 262246.002 ПЗ  
програмними модулями. 
1 Користувач 
Опис: Користувач взаємодіє із системою через графічний інтерфейс 
програми. Він виконує авторизацію в Telegram, запускає аналіз повідомлень, 
переглядає результати та статистику. 
Основні функції: 
 авторизація в Telegram; 
 введення посилання на Telegram-публікацію; 
 запуск аналізу коментарів; 
 перегляд результатів класифікації; 
 перегляд статистики; 
 збереження сформованих звітів. 
2 Інтерфейс користувача 
Опис: Інтерфейс користувача забезпечує взаємодію між користувачем та 
програмним агентом. Через нього виконуються всі основні операції системи. 
Основні компоненти: 
 головне вікно програми; 
 поле введення посилання на публікацію; 
 кнопка запуску аналізу; 
 вікно перегляду статистики; 
 журнал повідомлень про виконання операцій. 
3 Модуль роботи з Telegram 
Опис: Модуль забезпечує взаємодію з Telegram API через бібліотеку 
Telethon. Він відповідає за отримання інформації про публікації та коментарі. 
Основні функції: 
 авторизація користувача; 
 підключення до Telegram API; 
 отримання даних про публікацію; 
 завантаження коментарів; 
 передача отриманих повідомлень для аналізу. 
65 
 ЧДТУ 262246.002 ПЗ  
4 Модуль аналізу тональності 
Опис: Модуль виконує аналіз текстових повідомлень за допомогою моделі 
штучного інтелекту та визначає тональність кожного коментаря. 
Основні функції: 
 попередня обробка тексту; 
 аналіз повідомлень; 
 визначення позитивної тональності; 
 визначення негативної тональності; 
 визначення нейтральної тональності; 
 формування підсумкової статистики. 
 
  
 Рисунок 3.3 – Блок-схема роботи програмного агента 
66 
 ЧДТУ 262246.002 ПЗ  
5 База даних 
Опис: База даних використовується для зберігання результатів аналізу та 
статистичної інформації. 
Основні таблиці: 
 channels; 
 posts; 
 comments; 
 analysis_results; 
 statistics. 
6 Модуль формування звітів 
Опис: Модуль відповідає за створення та збереження звітів на основі 
результатів аналізу. 
Основні функції: 
 формування CSV-файлів із результатами аналізу; 
 створення статистичних звітів; 
 збереження звітів у файловій системі; 
 оновлення звітів при повторному аналізі публікації. 
Логічна схема системи відображає взаємодію між користувачем, 
інтерфейсом програми, Telegram API, модулем аналізу тональності, базою даних 
та модулем формування звітів. Така структура забезпечує чіткий розподіл функцій 
між компонентами та спрощує подальший супровід і розвиток програмного 
забезпечення. 
3.1.4. Розробка бази даних 
Процес розробки бази даних для програмного агента визначення тональності 
повідомлень включає декілька основних етапів: аналіз вимог та проєктування 
структури даних. База даних використовується для зберігання результатів аналізу, 
інформації про проаналізовані публікації та накопичення статистичних даних. 
1 Аналіз вимог 
На цьому етапі визначаються вимоги до бази даних, які випливають із 
функціональних та нефункціональних вимог програмного забезпечення. 
67 
 ЧДТУ 262246.002 ПЗ  
Основні вимоги: 
Зберігання інформації про канали: 
 назва Telegram-каналу; 
 посилання на канал; 
 дата додавання до бази даних. 
Зберігання інформації про публікації: 
 ідентифікатор публікації; 
 дата публікації; 
 посилання на публікацію; 
 належність до каналу. 
Зберігання результатів аналізу: 
 кількість позитивних коментарів; 
 кількість негативних коментарів; 
 кількість нейтральних коментарів; 
 дата виконання аналізу. 
Зберігання коментарів: 
 автор коментаря; 
 текст повідомлення; 
 визначена тональність; 
 належність до конкретної публікації. 
Статистика та історія аналізів: 
 результати попередніх досліджень; 
 дані для побудови графіків; 
 інформація для формування звітів. 
Завдання аналізу вимог: 
 визначити основні сутності, які необхідно зберігати в базі даних; 
 визначити зв'язки між сутностями; 
 забезпечити можливість накопичення статистичних даних; 
 забезпечити швидкий доступ до результатів аналізу; 
 забезпечити можливість оновлення даних при повторному аналізі 
68 
 ЧДТУ 262246.002 ПЗ  
публікації. 
2 Проєктування структури даних 
На цьому етапі створюється схема бази даних, яка відповідає визначеним 
вимогам. Вона включає набір таблиць, їх поля та взаємозв'язки. 
Основні сутності та їх атрибути: 
Канали (Channels) 
 ChannelID – унікальний ідентифікатор каналу (Primary Key); 
 ChannelName – назва каналу; 
 ChannelLink – посилання на канал; 
 CreatedAt – дата додавання запису. 
Публікації (Posts) 
 PostID – унікальний ідентифікатор публікації (Primary Key); 
 ChannelID – ідентифікатор каналу (Foreign Key); 
 PostLink – посилання на публікацію; 
 PublishDate – дата публікації; 
 AnalysisDate – дата виконання аналізу. 
Коментарі (Comments) 
 CommentID – унікальний ідентифікатор коментаря (Primary Key); 
 PostID – ідентифікатор публікації (Foreign Key); 
 AuthorName – автор коментаря; 
 CommentText – текст коментаря; 
 Sentiment – визначена тональність повідомлення. 
Результати аналізу (AnalysisResults) 
 ResultID – унікальний ідентифікатор результату (Primary Key); 
 PostID – ідентифікатор публікації (Foreign Key); 
 PositiveCount – кількість позитивних повідомлень; 
 NegativeCount – кількість негативних повідомлень; 
 NeutralCount – кількість нейтральних повідомлень. 
Статистика (Statistics) 
 StatisticID – унікальний ідентифікатор запису (Primary Key); 
69 
 ЧДТУ 262246.002 ПЗ  
 ChannelID – ідентифікатор каналу (Foreign Key); 
 PeriodDate – дата статистичного запису; 
 PositiveCount – кількість позитивних повідомлень; 
 NegativeCount – кількість негативних повідомлень; 
 NeutralCount – кількість нейтральних повідомлень. 
Розроблена структура бази даних забезпечує збереження всієї необхідної 
інформації для роботи програмного агента, формування CSV-звітів та побудови 
статистичних графіків. Використання SQLite дозволяє спростити розгортання 
системи та забезпечити надійне зберігання результатів аналізу. 
 
 
Рисунок 3.4 – Модель бази даних 
70 
 ЧДТУ 262246.002 ПЗ  
 
Рисунок 3.5 – Структурна діаграма бази даних 
 
3.1.5. Розробка інтерфейсу користувача 
Розробка інтерфейсу користувача є важливим етапом створення 
програмного агента для визначення тональності повідомлень. Інтерфейс 
забезпечує взаємодію користувача із системою та надає доступ до всіх основних 
функцій програмного комплексу. Під час розробки особлива увага приділялася 
простоті використання, зрозумілості елементів керування та швидкому доступу до 
результатів аналізу. 
1 Вікно авторизації 
Опис: Вікно авторизації є початковим екраном програми. Воно 
використовується для підключення користувача до Telegram та надання доступу 
до функцій програмного агента. 
Компоненти: 
 поле введення номера телефону або даних авторизації; 
 кнопка входу; 
71 
 ЧДТУ 262246.002 ПЗ  
 поле введення коду підтвердження; 
 інформаційні повідомлення про стан авторизації. 
 
 
Рисунок 3.6 – Вікно авторизації 
 
2 Головне вікно програми 
Опис: Головне вікно використовується для запуску аналізу Telegram-
публікацій. Саме в ньому користувач виконує більшість дій під час роботи із 
системою. 
Компоненти: 
 поле введення посилання на Telegram-публікацію; 
 кнопка запуску аналізу; 
 кнопка вибору каталогу для збереження звітів; 
 кнопка відкриття статистики; 
 область відображення службових повідомлень. 
 
Рисунок 3.7 – Головне вікно програми 
72 
 ЧДТУ 262246.002 ПЗ  
3 Відображення результатів аналізу 
Опис: Після завершення аналізу користувач отримує узагальнену 
інформацію про результати класифікації повідомлень. Відображаються кількісні 
показники для кожної категорії тональності. 
Компоненти: 
 кількість позитивних повідомлень; 
 кількість негативних повідомлень; 
 кількість нейтральних повідомлень; 
 інформація про завершення аналізу; 
 шлях до сформованого CSV-звіту. 
 
Рисунок 3.8 – Результати аналізу повідомлень 
 
4 Вікно статистики 
Опис: Вікно статистики призначене для перегляду накопичених результатів 
аналізу. Користувач може обрати канал та переглянути графік зміни кількості 
позитивних, негативних і нейтральних коментарів відповідно до часу публікації 
проаналізованих дописів. 
Компоненти: 
 список доступних каналів; 
73 
 ЧДТУ 262246.002 ПЗ  
 область побудови графіка; 
 елементи навігації між результатами аналізу; 
 інформація про період статистичних даних. 
 
 
Рисунок 3.9 – Вікно перегляду статистики 
 
Розроблений інтерфейс користувача забезпечує зручний доступ до всіх 
функцій програмного агента та дозволяє виконувати аналіз тональності 
повідомлень без необхідності взаємодії з програмним кодом або зовнішніми 
сервісами. Простота інтерфейсу зменшує час освоєння програми та підвищує 
ефективність її використання. 
3.1.6. Опис розробки програмних компонентів 
Програмний агент для визначення тональності повідомлень складається з 
декількох ключових компонентів, які забезпечують його функціональність: 
модуль роботи з Telegram, модуль аналізу тональності, база даних, модуль 
формування звітів та графічний інтерфейс користувача. Взаємодія цих 
компонентів забезпечує повний цикл аналізу повідомлень від отримання 
коментарів до формування статистичних звітів. 
База даних 
Для зберігання інформації програма використовує базу даних SQLite. У базі 
74 
 ЧДТУ 262246.002 ПЗ  
даних створено таблиці для збереження інформації про канали, публікації, 
коментарі та результати аналізу. 
Основні таблиці: 
 channels: для зберігання інформації про Telegram-канали; 
 posts: для зберігання інформації про проаналізовані публікації; 
 comments: для зберігання текстів коментарів та інформації про їх авторів; 
 analysis_results: для зберігання результатів класифікації повідомлень; 
 statistics: для накопичення статистичних даних за каналами. 
 
 
Рисунок 3.10 – Приклад коду роботи бази даних 
 
Графічний інтерфейс користувача 
Графічний інтерфейс програми реалізовано за допомогою бібліотеки Tkinter. 
Інтерфейс забезпечує доступ до всіх функцій програмного агента та дозволяє 
виконувати аналіз без використання командного рядка. 
Інтерфейс включає: 
 вікно авторизації в Telegram; 
 головне вікно програми; 
 вікно перегляду статистики; 
75 
 ЧДТУ 262246.002 ПЗ  
 елементи керування процесом аналізу та формування звітів. 
Модуль роботи з Telegram 
Для взаємодії з Telegram використовується бібліотека Telethon. Даний 
модуль відповідає за отримання інформації з Telegram та передачу її іншим 
компонентам системи. 
 
  
Рисунок 3.11 – Приклад коду реєстрації в Telegram 
 
Основні функції: 
 авторизація користувача; 
 підключення до Telegram API; 
 отримання інформації про публікації; 
 завантаження коментарів; 
 передача отриманих повідомлень для аналізу. 
Модуль аналізу тональності 
Модуль аналізу тональності реалізує основну функцію програмного агента. 
Для класифікації повідомлень використовується модель штучного інтелекту 
clapAI/roberta-base-multilingual-sentiment. 
76 
 ЧДТУ 262246.002 ПЗ  
 
 
Рисунок 3.12 – Приклад коду обробки коментарів перед оцінкою тону 
 
Основні функції: 
 попередня обробка тексту; 
 передача тексту до моделі штучного інтелекту; 
 визначення позитивної тональності; 
 визначення негативної тональності; 
 визначення нейтральної тональності; 
 формування статистичних показників. 
Модуль формування звітів 
Модуль відповідає за створення та збереження результатів аналізу у файлах. 
Основні функції: 
 створення CSV-звіту з результатами аналізу; 
 збереження інформації про авторів та тексти коментарів; 
 формування статистичного файлу; 
 оновлення звітів при повторному аналізі публікації. 
Взаємодія з базою даних 
Кожен програмний модуль, який потребує збереження або отримання 
інформації, використовує SQL-запити для роботи з базою даних SQLite. Це 
забезпечує надійне зберігання результатів аналізу та швидкий доступ до 
77 
 ЧДТУ 262246.002 ПЗ  
накопичених статистичних даних. 
Висновок 
Розроблені програмні компоненти забезпечують повний цикл роботи 
програмного агента: від отримання коментарів із Telegram до визначення їх 
тональності, збереження результатів аналізу та формування статистичних звітів. 
Використання SQLite забезпечує надійне зберігання даних, бібліотека Telethon 
надає доступ до Telegram API, а застосування моделі штучного інтелекту дозволяє 
автоматизувати процес аналізу повідомлень та отримувати результати з 
мінімальною участю користувача. 
3.2. Тестування системи 
У даному розділі описано процес перевірки працездатності програмного 
агента для визначення тональності повідомлень у віртуальних соціальних групах. 
Тестування виконувалося на різних рівнях з метою перевірки коректності роботи 
окремих модулів, взаємодії між компонентами системи та відповідності 
реалізованого програмного забезпечення поставленим вимогам. 
Модульне тестування використовувалося для перевірки окремих функцій та 
методів програми. Інтеграційне тестування дозволило перевірити взаємодію між 
Telegram API, модулем аналізу тональності та базою даних. Системне тестування 
виконувалося для перевірки роботи програмного комплексу в цілому. Приймальне 
тестування дозволило оцінити відповідність розробленої системи функціональним 
вимогам. 
3.2.1. Модульне тестування 
Для проведення модульного тестування використовувалася бібліотека 
unittest, що входить до стандартного набору бібліотек Python. Тестування 
виконувалося для основних функціональних модулів програмного агента. 
Перед виконанням тестів використовувалася окрема тестова база даних, що 
дозволило уникнути впливу тестових даних на результати реальної роботи 
системи. 
Основними об'єктами тестування були: 
78 
 ЧДТУ 262246.002 ПЗ  
 функція підключення до Telegram; 
 функція отримання коментарів; 
 функція аналізу тональності повідомлень; 
 функція збереження результатів у базу даних; 
 функція формування CSV-звітів; 
 функція побудови статистики. 
 
 
Рисунок 3.13 – Запуск модульних тестів у середовищі розробки 
 
   
Рисунок 3.14 – Результати виконання модульних тестів 
 
Таблиця 3.1 
Результат модульного тестування 
Модуль Тестовий Очікуваний Фактичний Статус 
випадок результат результат 
Авторизація Авторизація з Авторизація Авторизація Пройдено 
 коректними виконана виконана 
даними успішно успішно 
Авторизація Авторизація з Відображення Відображення Пройдено 
 некоректними повідомлення повідомлення 
даними про помилку про помилку 
79 
 ЧДТУ 262246.002ПЗ  
Продовження таблиці 3.1 
Отримання Отримання Коментарі Коментарі Пройдено 
коментарів коментарів з успішно успішно 
доступної завантажені завантажені 
публікації 
Аналіз Аналіз Визначено Визначено Пройдено 
тональності позитивного позитивну позитивну 
повідомлення тональність тональність 
Аналіз Аналіз Визначено Визначено Пройдено 
тональності негативного негативну негативну 
повідомлення тональність тональність 
Аналіз Аналіз Визначено Визначено Пройдено 
тональності нейтрального нейтральну нейтральну 
повідомлення тональність тональність 
База даних Збереження Дані записані Дані записані Пройдено 
результатів до БД до БД 
аналізу 
Формування Створення Файл Файл створено Пройдено 
звіту CSV-файлу створено успішно 
успішно 
 
Результати модульного тестування показали, що всі основні функції 
програмного агента працюють коректно та відповідають очікуваним результатам. 
Помилок, які б унеможливлювали використання системи, під час тестування 
виявлено не було. 
3.2.2. Інтеграційне тестування 
Інтеграційне тестування є процесом перевірки взаємодії між різними 
компонентами програмного забезпечення для підтвердження їх коректної спільної 
роботи. Основною метою інтеграційного тестування програмного агента було 
підтвердження правильності обміну даними між модулем роботи з Telegram, 
80 
 
 ЧДТУ 262246.002ПЗ  
модулем аналізу тональності, базою даних та модулем формування звітів. 
Основні послідовні дії включали: 
 планування визначення компонентів, що підлягають перевірці; 
 розробку тестових сценаріїв взаємодії між програмними модулями; 
 виконання тестів для перевірки даних між компонентами системи; 
 аналіз отриманих результатів та усунення виявлених недоліків; 
 документування результатів тестування. 
Під час інтеграційного тестування особлива увага приділялася перевірці 
повного циклу обробки повідомлень: від отримання коментарів із Telegram до 
формування статистичних звітів. 
 
Рисунок 3.15 – Перевірка взаємодії модуля Telegram із модулем аналізу 
тональності 
 
 
Рисунок 3.16 – Результат інтеграційного тестування програмного агента 
 
 
81 
 ЧДТУ 262246.002ПЗ  
Таблиця 3.2 
Результат інтеграційного тестування 
Тестовий Очікуваний Фактичний 
Модуль Статус 
випадок результат результат 
Отримання 
Коментарі Коментарі 
 коментарів із 
успішно успішно Пройдено 
 Telegram-
завантажені завантажені 
публікації 
Передача 
Telethon + Повідомлення Повідомлення 
отриманих 
Аналізатор передані без передані без Пройдено 
коментарів на 
тональності втрати даних втрати даних 
аналіз 
Збереження Результати Результати 
Аналізатор 
результатів записані записані Пройдено 
+ База даних 
класифікації до SQLite до SQLite 
База Отримання 
даних + даних для Дані успішно Дані успішно 
Пройдено 
Модуль побудови завантажені завантажені 
статистики графіків 
База даних CSV-файл CSV-файл 
Формування  
+ Модуль сформовано сформовано Пройдено 
CSV-звіту 
звітів успішно успішно 
Аналіз 
Повний Telegram- Отримано Отримано 
цикл публікації від статистику та статистику та Пройдено 
системи початку до сформовано звіт сформовано звіт 
завершення 
 
82 
 ЧДТУ 262246.002ПЗ  
За результатами інтеграційного тестування встановлено, що всі програмні 
модулі коректно взаємодіють між собою. Передача даних між компонентами 
відбувається без втрат інформації, результати аналізу успішно зберігаються в базі 
даних, а модулі статистики та формування звітів працюють відповідно до 
поставлених вимог. 
Отримані результати свідчать про стабільність роботи програмного 
комплексу та його готовність до подальшого системного тестування й 
використання в реальних умовах. 
3.2.3. Системне тестування 
Системне тестування – це процес оцінки програмного забезпечення як 
єдиного цілого для перевірки його відповідності функціональним та 
нефункціональним вимогам. Метою системного тестування програмного агента 
було підтвердження коректної роботи всіх компонентів системи в реальних умовах 
експлуатації. 
Основні кроки системного тестування включали: 
 планування тестування та визначення переліку функцій, які підлягають 
перевірці; 
 підготовку тестових сценаріїв для перевірки повного циклу роботи 
системи; 
 виконання тестів із використанням реальних Telegram-публікацій; 
 аналіз отриманих результатів та оцінку відповідності вимогам; 
 документування результатів тестування; 
 перевірку стабільності роботи програмного агента під час багаторазового 
виконання аналізу. 
Під час системного тестування перевірялася робота всіх компонентів 
програмного комплексу: авторизація в Telegram, отримання коментарів, аналіз 
тональності повідомлень, збереження результатів у базі даних, формування CSV-
звітів та побудова статистичних графіків. 
83 
 ЧДТУ 262246.002ПЗ  
 
Рисунок 3.17 – Виконання системного тестування програмного агента 
 
 
Рисунок 3.18 – Результати аналізу після завершення системного тестування 
84 
 ЧДТУ 262246.002ПЗ  
Таблиця 3.3 
Результат системного тестування 
Тестовий Очікуваний Фактичний 
Модуль Статус 
випадок результат результат 
Вхід до Успішна Авторизація 
Авторизація 
Telegram- авторизація виконана Пройдено 
в Telegram 
акаунта користувача успішно 
Аналіз 
Коментарі Коментарі 
Отримання Telegram-
успішно успішно Пройдено 
коментарів публікації з 
отримані отримані 
коментарями 
Класифікація Визначено Тональність 
Аналіз 
отриманих тональність визначено Пройдено 
тональності 
повідомлень усіх коментарів успішно 
Збереження 
Дані записані Дані записані 
База даних результатів Пройдено 
до SQLite до SQLite 
аналізу 
CSV-файл CSV-файл 
Формування Створення 
сформовано сформовано Пройдено 
звітів CSV-звіту 
успішно успішно 
Побудова 
Графік Графік 
Модуль графіка за 
відображено відображено Пройдено 
статистики накопиченими 
коректно коректно 
даними 
Аналіз 
Результати Результати 
Повний цикл публікації від 
отримано та отримано та Пройдено 
роботи початку до 
збережено збережено 
завершення 
85 
 ЧДТУ 262246.002ПЗ  
За результатами системного тестування встановлено, що програмний агент 
коректно виконує всі передбачені функції. Всі компоненти системи працюють 
узгоджено, результати аналізу зберігаються без втрати даних, а статистичні звіти 
формуються відповідно до встановлених вимог. 
Проведене системне тестування підтвердило готовність програмного 
забезпечення до використання в реальних умовах експлуатації. 
3.2.4. Приймальне тестування 
Приймальне тестування (або приймальні випробування) є завершальним 
етапом перевірки програмного забезпечення, метою якого є підтвердження 
готовності системи до використання кінцевими користувачами. На цьому етапі 
перевіряється відповідність програмного агента функціональним вимогам, 
сформованим на початкових етапах проєктування. 
Основні аспекти приймального тестування включають: 
 планування тестування та визначення критеріїв прийняття системи; 
 підготовку програмного середовища та тестових даних; 
 виконання реальних сценаріїв використання програмного агента; 
 аналіз отриманих результатів та оцінку відповідності вимогам; 
 документування результатів тестування та формування висновків. 
Під час приймального тестування використовувалися реальні Telegram-
публікації з коментарями українською, російською та англійською мовами. 
Перевірялася коректність роботи всіх основних функцій системи від моменту 
авторизації користувача до отримання статистики та формування звітів. 
 
 
Рисунок 3.19 – Аналіз Telegram-публікації під час приймального тестування 
86 
 ЧДТУ 262246.002ПЗ  
 
Рисунок 3.20 – Отримані результати аналізу та статистики 
 
Таблиця 3.4 
Результат приймального тестування 
Тестовий Очікуваний Фактичний 
Модуль Статус 
випадок результат результат 
Авторизація Авторизація 
Вхід користувача 
Авторизація виконана виконана Пройдено 
в Telegram 
успішно успішно 
Аналіз публікації Коментарі Коментарі 
Отримання 
з доступними отримані отримані Пройдено 
коментарів 
коментарями успішно успішно 
Визначення Тональність Тональність 
Аналіз 
тональності визначена визначена Пройдено 
тональності 
повідомлень коректно коректно 
Запис результатів 
Збереження Дані успішно Дані успішно 
аналізу  Пройдено 
результатів збережені збережені 
до бази даних 
Створення CSV-
Формування CSV-файл CSV-файл 
файлу з Пройдено 
звіту сформовано сформовано 
результатами 
Побудова графіка Графік Графік 
Перегляд 
для обраного відображено відображено Пройдено 
статистики 
каналу коректно коректно 
Повний Аналіз публікації Результати Результати 
сценарій від початку до отримані та отримані та Пройдено 
роботи завершення відображені відображені 
87 
 ЧДТУ 262246.002ПЗ  
За результатами приймального тестування встановлено, що програмний 
агент повністю відповідає поставленим функціональним вимогам. Усі основні 
сценарії використання були успішно виконані, результати аналізу відображалися 
коректно, а формування звітів та статистики відбувалося без помилок. 
Проведене приймальне тестування підтвердило готовність програмного 
забезпечення до практичного використання для аналізу тональності повідомлень у 
Telegram-спільнотах та віртуальних соціальних групах. 
3.3. Приклади впровадженого програмного комплексу 
У даному підрозділі наведено приклади роботи розробленого програмного 
агента для визначення тональності повідомлень у Telegram-спільнотах. Розглянуто 
основні етапи взаємодії користувача із системою від авторизації до перегляду 
результатів аналізу та статистики. 
1 Авторизація в Telegram 
Після запуску програми користувач виконує авторизацію у власному 
Telegram-акаунті. Для цього необхідно ввести дані авторизації та підтвердити вхід 
за допомогою отриманого коду. 
 
 
Рисунок 3.21 – Вікно авторизації в Telegram 
88 
 ЧДТУ 262246.002ПЗ  
Опис: Користувач вводить необхідні дані для входу в Telegram. Після 
успішної авторизації відкривається доступ до функцій програмного агента. 
2 Головне вікно програми  
Після успішної авторизації користувач переходить до головного вікна 
програми, де може вказати посилання на Telegram-публікацію для подальшого 
аналізу. 
 
Рисунок 3.22 – Головне вікно програмного агента 
 
Опис: Користувач вставляє посилання на Telegram-публікацію, обирає 
каталог для збереження результатів та запускає процес аналізу повідомлень. 
3 Аналіз коментарів 
Після запуску аналізу програма автоматично підключається до Telegram, 
отримує коментарі під обраною публікацією та виконує їх класифікацію за 
тональністю. 
 
Рисунок 3.23 – Процес аналізу коментарів 
89 
 ЧДТУ 262246.002ПЗ  
Опис: Програма отримує коментарі та передає їх до моделі штучного 
інтелекту для визначення позитивної, негативної або нейтральної тональності. 
4 Результати аналізу 
Після завершення обробки повідомлень користувачу відображаються 
підсумкові результати аналізу. 
 
 
Рисунок 3.24 – Результати визначення тональності повідомлень 
 
Опис: На екрані відображається кількість позитивних, негативних та 
нейтральних коментарів, отриманих під час аналізу Telegram-публікації. 
5 Формування CSV-звіту 
Після завершення аналізу система автоматично формує звіт у форматі CSV 
та зберігає його у вибраному користувачем каталозі. 
90 
 ЧДТУ 262246.002ПЗ  
 
Рисунок 3.25 – Сформований CSV-звіт 
 
Опис: CSV-файл містить інформацію про авторів коментарів, тексти 
повідомлень та результати визначення тональності для кожного коментаря. 
6 Перегляд статистики 
Користувач може перейти до вікна статистики та переглянути накопичені 
результати аналізу для окремого Telegram-каналу. 
 
 
Рисунок 3.26 – Вікно статистики 
91 
 ЧДТУ 262246.002ПЗ  
Опис: Система будує графік, на якому відображається зміна кількості 
позитивних, негативних та нейтральних коментарів відповідно до часу публікації 
проаналізованих дописів. 
Висновок 
Розроблений програмний агент забезпечує автоматизований аналіз 
тональності повідомлень у Telegram-спільнотах, дозволяючи користувачу 
отримувати статистичну інформацію без необхідності ручної обробки великої 
кількості коментарів. Програма успішно виконує отримання повідомлень, їх 
класифікацію за тональністю, збереження результатів у базі даних та формування 
CSV-звітів і статистичних графіків. Це підтверджує працездатність розробленого 
програмного комплексу та можливість його використання для аналізу активності 
віртуальних соціальних груп. 
  
92 
 ЧДТУ 262246.002ПЗ  
ВИСНОВОК ДО ТРЕТЬОГО РОЗДІЛУ 
У третьому розділі було розглянуто процес розробки та тестування 
програмного агента для визначення тональності повідомлень у віртуальних 
соціальних групах. Було обґрунтовано вибір технологій та інструментів розробки, 
які забезпечують ефективне отримання, обробку та аналіз текстових повідомлень 
із Telegram. 
Для реалізації програмного комплексу було обрано мову програмування 
Python, бібліотеку Telethon для взаємодії з Telegram API, систему керування базами 
даних SQLite для зберігання результатів аналізу та модель штучного інтелекту 
clapAI/roberta-base-multilingual-sentiment для визначення тональності повідомлень. 
Використання готової моделі дозволило отримати якісні результати класифікації 
без необхідності створення та навчання власної нейронної мережі. 
У процесі розробки було спроєктовано структурну та логічну схеми 
програмного комплексу, які відображають взаємодію між користувачем, Telegram 
API, модулем аналізу тональності, базою даних та модулем формування звітів. 
Також було розроблено структуру бази даних, що забезпечує збереження 
інформації про канали, публікації, коментарі та результати аналізу. 
Особливу увагу приділено створенню графічного інтерфейсу користувача, 
який забезпечує зручний доступ до функцій програмного агента, запуск аналізу 
повідомлень, перегляд статистики та отримання результатів у вигляді CSV-звітів. 
Для перевірки працездатності системи було проведено модульне, 
інтеграційне, системне та приймальне тестування. Результати тестування 
підтвердили коректність роботи окремих компонентів програмного комплексу, 
правильність їх взаємодії та відповідність функціональним вимогам. Усі тестові 
сценарії були успішно виконані, а критичних помилок під час перевірки виявлено 
не було. 
Наведені приклади роботи програмного агента продемонстрували його 
здатність автоматично отримувати коментарі з Telegram, виконувати їх 
класифікацію за тональністю, накопичувати статистичні дані та формувати звіти 
для подальшого аналізу. Отримані результати свідчать про працездатність 
93 
 ЧДТУ 262246.002ПЗ  
розробленого програмного забезпечення та можливість його практичного 
використання для аналізу повідомлень у віртуальних соціальних групах. 
  
94 
 ЧДТУ 262246.002ПЗ  
ВИСНОВКИ 
У ході виконання дипломної роботи було проведено дослідження методів та 
засобів аналізу тональності текстових повідомлень у віртуальних соціальних 
групах, а також розроблено програмний агент для автоматизованого визначення 
емоційного забарвлення коментарів у Telegram. 
У першому розділі було розглянуто теоретичні основи аналізу тональності 
текстів, проаналізовано існуючі підходи до обробки природної мови та сучасні 
моделі штучного інтелекту, що застосовуються для класифікації текстових 
повідомлень. Також було виконано огляд існуючих програмних рішень та 
сформульовано постановку задачі дослідження. 
У другому розділі було проведено моделювання предметної області, 
сформовано функціональні та нефункціональні вимоги до програмного 
забезпечення, розроблено UML-моделі системи та виконано архітектурне 
проєктування програмного комплексу. Побудовані діаграми дозволили 
формалізувати структуру системи, визначити взаємозв'язки між її компонентами та 
описати поведінку програмного агента під час виконання основних функцій. 
У третьому розділі було реалізовано програмний агент для визначення 
тональності повідомлень у Telegram. Для реалізації програмного забезпечення 
використано мову програмування Python, бібліотеку Telethon для роботи з Telegram 
API, систему керування базами даних SQLite для збереження результатів аналізу та 
модель штучного інтелекту clapAI/roberta-base-multilingual-sentiment для 
класифікації текстових повідомлень. 
У процесі розробки було виконано спробу створення власної моделі 
машинного навчання для визначення тональності повідомлень. Проте отримані 
результати не забезпечили необхідної точності класифікації, а подальше 
підвищення якості вимагало значного обсягу розмічених даних та додаткових 
обчислювальних ресурсів. У зв'язку з цим було прийнято рішення використовувати 
готову попередньо навчену трансформерну модель, що дозволило забезпечити 
належну якість аналізу повідомлень українською, російською та англійською 
мовами. 
95 
 ЧДТУ 262246.002ПЗ  
Розроблений програмний агент забезпечує автоматичне отримання 
коментарів із Telegram-публікацій, їх класифікацію на позитивні, негативні та 
нейтральні, накопичення статистичних даних, формування звітів у форматі CSV та 
побудову графіків для подальшого аналізу результатів. 
Для перевірки працездатності програмного комплексу було проведено 
модульне, інтеграційне, системне та приймальне тестування. Результати 
тестування підтвердили коректність роботи окремих компонентів системи, 
правильність їх взаємодії та відповідність програмного забезпечення визначеним 
вимогам. Усі основні сценарії використання були успішно виконані, а критичних 
помилок у роботі системи виявлено не було. 
Практичне значення роботи полягає у створенні інструменту, який дозволяє 
автоматизувати аналіз настроїв аудиторії в Telegram-спільнотах та суттєво 
скоротити час, необхідний для обробки великої кількості повідомлень. Розроблене 
програмне забезпечення може використовуватися для моніторингу громадської 
думки, аналізу реакції користувачів на інформаційні повідомлення та проведення 
досліджень активності віртуальних соціальних груп. 
Таким чином, поставлені у дипломній роботі завдання були виконані, а 
розроблений програмний агент підтвердив свою працездатність та можливість 
практичного застосування для автоматизованого визначення тональності 
повідомлень у віртуальних соціальних групах. 
 
 
  
96 
 ЧДТУ 262246.002ПЗ  
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1 Vaswani A., Shazeer N., Parmar N. та ін. Attention Is All You Need 
[Електронний ресурс]. – Режим доступу: https://arxiv.org/abs/1706.03762 
2 Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep 
Bidirectional Transformers for Language Understanding [Електронний ресурс]. 
– Режим доступу: https://arxiv.org/abs/1810.04805 
3 Brown T., Mann B., Ryder N. та ін. Language Models are Few-Shot Learners 
[Електронний ресурс]. – Режим доступу: https://arxiv.org/abs/2005.14165 
4 Jurafsky D., Martin J. H. Speech and Language Processing [Електронний ресурс]. 
– Режим доступу: https://web.stanford.edu/~jurafsky/slp3/ 
5 Natural Language Processing with Python [Електронний ресурс]. – Режим 
доступу: https://www.nltk.org/book/ 
6 Документація бібліотеки NLTK [Електронний ресурс]. – Режим доступу: 
https://www.nltk.org 
7 Документація бібліотеки spaCy [Електронний ресурс]. – Режим доступу: 
https://spacy.io 
8 Документація бібліотеки PyTorch [Електронний ресурс]. – Режим доступу: 
https://pytorch.org/docs/stable/ 
9 Документація бібліотеки Transformers [Електронний ресурс]. – Режим 
доступу: https://huggingface.co/docs/transformers 
10 Документація платформи Hugging Face [Електронний ресурс]. – Режим 
доступу: https://huggingface.co 
11 Документація моделі clapAI/roberta-base-multilingual-sentiment [Електронний 
ресурс]. – Режим доступу: https://huggingface.co/clapAI/roberta-base-
multilingual-sentiment 
12 Документація мови програмування Python [Електронний ресурс]. – Режим 
доступу: https://docs.python.org/3 
13 Документація бібліотеки Telethon [Електронний ресурс]. – Режим доступу: 
https://docs.telethon.dev 
14 Telegram API Documentation [Електронний ресурс]. – Режим доступу: 
97 
 ЧДТУ 262246.002ПЗ  
https://core.telegram.org 
15 Документація SQLite [Електронний ресурс]. – Режим доступу: 
https://www.sqlite.org/docs.html 
16 Документація бібліотеки Pandas [Електронний ресурс]. – Режим доступу: 
https://pandas.pydata.org/docs/ 
17 Goodfellow I., Bengio Y., Courville A. Deep Learning [Електронний ресурс]. – 
Режим доступу: https://www.deeplearningbook.org 
18 Cambria E., Das D., Bandyopadhyay S., Feraco A. A Practical Guide to Sentiment 
Analysis. – Springer, 2017. 
19 Liu B. Sentiment Analysis and Opinion Mining. – Morgan & Claypool Publishers, 
2012. 
20 ACL Anthology: Natural Language Processing Research Papers [Електронний 
ресурс]. – Режим доступу: https://aclanthology.org 
98 
    
ДОДАТОК А 
 
 
   ЗАТВЕРДЖЕНО: 
Зав. кафедрою ПЗАС, професор 
_________________ Голуб С.В. 
„____” ______________ 2026 р. 
 
 
 
 
« Програмний агент із визначення тональності повідомлень у віртуальних 
соціальних групах» 
Специфікація 
482. ЧДТУ 262246.002 
Листів 2 
 
 
 
Розробник ________________ Сатанівський Є. І. 
Керівник ________________ Білоніг А. В. 
 
 
 
 
 
 
Черкаси 2026 
   
 ЧДТУ 262246.01  2 
Позначення Найменування Примітки 
    Документація  
   482.ЧДТУ. 262246 12 01    Лістинг програми  
   482.ЧДТУ. 262246 34 01    Інструкція користувачеві  
   482.ЧДТУ. 262246 90 01    Графічні матеріали  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
100 
 
1 
ДОДАТОК Б 
«Програмний агент із визначення тональності повідомлень у віртуальних 
соціальних групах» 
Лістинг програми 
482. ЧДТУ. 262246 12 01
Листів 8 
 Розробник   ________________ Сатанівський Є. І. 
Черкаси 2026
 482. ЧДТУ. 262246 12 01 2 
Лістинг програми 
report.py 
from __future__ import annotations 
import csv 
from collections import Counter 
from dataclasses import dataclass 
from pathlib import Path 
from .models import SentimentResult 
from .telegram_client import TelegramComment 
SENTIMENT_ORDER = ("positive", "negative", "neutral") 
@dataclass(frozen=True) 
class SentimentStats: 
    total: int 
    positive: int 
    negative: int 
    neutral: int 
    @property 
    def percentages(self) -> dict[str, float]: 
        if self.total == 0: 
            return {label: 0.0 for label in SENTIMENT_ORDER} 
        return { 
            "positive": self.positive / self.total * 100, 
            "negative": self.negative / self.total * 100, 
            "neutral": self.neutral / self.total * 100, 
        } 
def build_stats(results: list[SentimentResult]) -> SentimentStats: 
    counts = Counter(result.label for result in results) 
    return SentimentStats( 
        total=len(results), 
        positive=counts["positive"],
   102 
 482. ЧДТУ. 262246 12 01 3 
        negative=counts["negative"], 
        neutral=counts["neutral"], 
    ) 
def save_csv( 
    path: Path, 
    comments: list[TelegramComment], 
    results: list[SentimentResult], 
) -> None: 
    path.parent.mkdir(parents=True, exist_ok=True) 
    with path.open("w", newline="", encoding="utf-8-sig") as file: 
        writer = csv.DictWriter( 
            file, 
            fieldnames=("comment_id", "author_id", "date", "label", "score", "text"), 
        ) 
        writer.writeheader() 
        for comment, result in zip(comments, results, strict=True): 
            writer.writerow( 
                { 
                    "comment_id": comment.id, 
                    "author_id": comment.author_id, 
                    "date": comment.date, 
                    "label": result.label, 
                    "score": f"{result.score:.4f}", 
                    "text": comment.text, 
                } 
            ) 
def format_stats(stats: SentimentStats) -> str: 
    percentages = stats.percentages 
    return "\n".join( 
       
   103 
 482. ЧДТУ. 262246 12 01 4 
            f"Усього коментарів: {stats.total}", 
            f"Позитивні: {stats.positive} ({percentages['positive']:.1f}%)", 
            f"Негативні: {stats.negative} ({percentages['negative']:.1f}%)", 
            f"Нейтральні: {stats.neutral} ({percentages['neutral']:.1f}%)", 
        ] 
    ) 
preprocessing.py 
from __future__ import annotations 
import re 
URL_RE = re.compile(r"https?://\S+|www\.\S+", re.IGNORECASE) 
MENTION_RE = re.compile(r"(?<!\w)@[\w\d_]{3,}") 
HASHTAG_RE = re.compile(r"(?<!\w)#([\w\d_]+)", re.UNICODE) 
WHITESPACE_RE = re.compile(r"\s+") 
QUOTED_PROFANITY_TOKEN = "цитируемое слово" 
BRACKETED_RE = 
re.compile(r"(\([^()]{1,120}\)|\[[^\[\]]{1,120}\]|\{[^{}]{1,120}\})") 
QUOTED_RE = re.compile(r"([\"'«“„][^\"'»”]{1,160}[\"'»”])") 
QUOTE_LINE_RE = re.compile(r"(?m)^\s*>.+$") 
PROFANITY_RE = re.compile( 
    R*******(" 
    r"******]\w*|х\*+\w*|" 
    r"******\w*|п\*+\w*|" 
    r"*****8w*|" 
    r"*****\w*|" 
    r"*****\w*|" 
    r"*****\w*|" 
    r"*****\w*|" 
    r"*******\w*|" 
    r"*****\w*|shit\w*" 
    r")\b
   104 
  482. ЧДТУ. 262246 12 01 5 
) 
META_CONTEXT_RE = re.compile( 
    r"(?iu)\b(" 
    r"слово|термин|термін|выражени\w*|вираз\w*|вислів|" 
    r"цитат\w*|кавычк\w*|лапк\w*|пример\w*|приклад\w*|" 
    r"лексик\w*|ругательств\w*|лайк\w*|мат\w*|" 
    r"написан\w*|написано|означа\w*|называ\w*|назива\w*|" 
    r"обсуждал\w*|обговорювал\w*|разбор|розбір|" 
    r"перевод|переклад|dictionary|term|word|quote|quoted|example" 
    r")\b" 
) 
EXPLICIT_SENTIMENT_RE = re.compile( 
    r"(?iu)\b(" 
    r"отличн\w*|чудов\w*|классн\w*|круто|супер|хорош\w*|" 
    r"полезн\w*|дякую|спасибо|подоба\w*|понрав\w*|" 
    r"плох\w*|жахлив\w*|ужасн\w*|неприятн\w*|слаб\w*|" 
    r"не\s+понрав\w*|не\s+подоба\w*|сломал\w*|не\s+работа\w*" 
    r")\b" 
) 
def preprocess_for_sentiment(text: str) -> str: 
    normalized = text.strip() 
    if not normalized: 
        return normalized 
    normalized = URL_RE.sub(" [url] ", normalized) 
    normalized = MENTION_RE.sub(" [mention] ", normalized) 
    normalized = HASHTAG_RE.sub(r" \1 ", normalized) 
    normalized = QUOTE_LINE_RE.sub(" [quoted_text] ", normalized) 
    normalized = _mask_meta_profanity(normalized) 
    normalized = _neutralize_pure_meta_profanity(normalized) 
    return WHITESPACE_RE.sub(" ", normalized).strip()
   105 
482. ЧДТУ. 262246 12 01  6 
def _mask_meta_profanity(text: str) -> str: 
    text = _replace_contextual_segments(text, BRACKETED_RE) 
    return _replace_contextual_segments(text, QUOTED_RE) 
def _replace_contextual_segments(text: str, pattern: re.Pattern[str]) -> str: 
    chunks: list[str] = [] 
    last_end = 0 
    for match in pattern.finditer(text): 
        chunks.append(text[last_end : match.start()]) 
        segment = match.group(0) 
        context = text[max(0, match.start() - 80) : min(len(text), match.end() + 80)] 
        if PROFANITY_RE.search(segment) and META_CONTEXT_RE.search(context): 
            chunks.append(f" {QUOTED_PROFANITY_TOKEN} ") 
        else: 
            hunks.append(segment) 
        last_end = match.end() 
    chunks.append(text[last_end:]) 
    return "".join(chunks) 
def _neutralize_pure_meta_profanity(text: str) -> str: 
    if ( 
        QUOTED_PROFANITY_TOKEN in text 
        and META_CONTEXT_RE.search(text) 
        and not EXPLICIT_SENTIMENT_RE.search(text) 
    ): 
        return "Текст о лексике." 
    return text 
gui.py 
2from .config import load_settings 
from .models import XLMRobertaSentimentAnalyzer 
from .report import build_stats, format_stats, save_csv
   106 
 482. ЧДТУ. 262246 12 01      7 
from .storage import ( 
    available_channels, 
    load_month_stats, 
    monthly_reports_dir, 
    post_check_exists, 
    post_report_path, 
    save_post_check, 
) 
from .telegram_client import TelegramCommentClient 
from .telegram_client import create_telegram_client 
class AnalysisWorker(QObject): 
    log = Signal(str) 
    result = Signal(str) 
    error = Signal(str) 
    cancelled = Signal() 
    finished = Signal() 
    def __init__(self, post_url: str) -> None: 
        super().__init__() 
        self._post_url = post_url 
        self._cancel_requested = Event() 
        self._cancel_reported = False 
    def cancel(self) -> None: 
        self._cancel_requested.set() 
    def run(self) -> None: 
        try: 
            asyncio.run(self._analyze()) 
        except Exception as exc: 
            self.error.emit(str(exc)) 
        finally: 
            self.finished.emit()
   107 
       482. ЧДТУ. 262246 12 01       8 
    async def _analyze(self) -> None: 
        channel, post_id = parse_post_url(self._post_url) 
        settings = load_settings() 
        report_path = post_report_path(channel, post_id) 
        if post_check_exists(channel, post_id): 
            self.log.emit("Цей пост уже перевіряли цього місяця. Попередні дані буде 
оновлено.") 
        self.log.emit("Підключаюся до Telegram...") 
        async with TelegramCommentClient(settings) as client: 
            comments = await client.get_post_comments(channel=channel, post_id=post_id) 
        if self._is_cancelled(): 
            return 
        if not comments: 
            self.log.emit("Текстових коментарів під цим постом не знайдено.") 
            return 
   108 
 
ДОДАТОК В 
 
 
 
 
 
 
 
 
«Програмний агент із визначення тональності повідомлень у віртуальних 
соціальних групах» 
Інструкція користувачеві 
482. ЧДТУ. 262246 34 01 
Листів 3 
 
 
 
Розробник                     ________________ Сатанівський Є. І. 
 
 
 
 
 
 
 
 
Черкаси 2026 
 
   
482.ЧДТУ. 252246 34 01  2 
Інструкція користувача 
Загальна інформація 
Програмний агент призначений для автоматичного визначення тональності 
коментарів під публікаціями Telegram-каналів. Система аналізує текстові 
повідомлення та класифікує їх як позитивні, негативні або нейтральні. Результати 
аналізу зберігаються у CSV-файлах та відображаються у вигляді статистики. 
Запуск програми 
Для запуску програми необхідно: 
– відкрити каталог із програмою; 
– запустити головний файл програми; 
– виконати авторизацію в Telegram під час першого запуску. 
Після успішного входу відкривається головне вікно програми. 
Проведення аналізу 
Для аналізу коментарів необхідно: 
– вставити посилання на Telegram-публікацію; 
– вибрати папку для збереження звітів; 
– натиснути кнопку запуску аналізу. 
Після цього програма автоматично отримує коментарі, виконує їх аналіз за 
допомогою моделі штучного інтелекту та формує результати. 
Перегляд результатів 
Після завершення аналізу на екрані відображається: 
– кількість позитивних коментарів; 
– кількість негативних коментарів; 
– кількість нейтральних коментарів. 
Одночасно створюється CSV-файл із текстами коментарів, авторами та 
результатами класифікації. 
Робота зі статистикою 
Для перегляду статистики необхідно натиснути кнопку «Статистика». 
У вікні статистики користувач може:
110 
 
  482.ЧДТУ. 252246 34 01       3 
– вибрати Telegram-канал; 
– переглянути результати попередніх аналізів; 
– побудувати графік зміни кількості позитивних, негативних та 
нейтральних повідомлень. 
Завершення роботи 
Для завершення роботи достатньо закрити головне вікно програми. Перед 
виходом рекомендується дочекатися завершення поточного аналізу та збереження 
результатів. 
    111 
 
ДОДАТОК Г 
 
 
 
 
 
 
 
«Програмний агент із визначення тональності повідомлень у віртуальних 
соціальних групах» 
Графічні матеріали 
482. ЧДТУ. 262246 90 01 
Листів 14 
 
 
 
Розробник                     ________________ Сатанівський Є. І. 
 
 
 
 
 
 
 
 
 
Черкаси 2026 
    
482.ЧДТУ. 262246 90 01 2 
 
 
Слайд 1 – Кваліфікаційна робота бакалавра 
 
 
 
Слайд 2 – Вступ 
    113 
482.ЧДТУ. 262246 90 01 3 
Слайд 3 – Аналіз технічної інформації 
Слайд 4 – Актуальність задач 
114 
482.ЧДТУ. 262246   90 01 4 
Слайд 5 – Аналіз існуючих рішень 
Слайд 6 – Аналіз способів вирішення задачі 
115 
482.ЧДТУ. 262246 90 01 6 
 
 
Слайд 7 – Постановка задачі 
 
 
 
Слайд 8 – Методика проєктування системи 
 
    116 
482.ЧДТУ. 262246 90 01 7 
 
 
Слайд 9 – Результат етапу аналізу вимог 
 
 
 
Слайд 10 – Первинні та детальні вимоги 
 
    117 
482.ЧДТУ. 262246 90 01 8 
 
  
Слайд 11 – Варіанти використання 
 
 
 
Слайд 12 – Логічна структура агента 
 
    118 
482.ЧДТУ. 262246 90 01 9 
 
  
Слайд 13 – Архітектура проєктування 
 
 
 
Слайд 14 – Моделювання поведінки агента 
 
    119 
482.ЧДТУ. 262246 90 01 10 
 
  
Слайд 15 – Обгрунтування вибору засобів реалізації 
 
 
 
Слайд 16 – Структурна схема реалізованої системи 
 
    120 
482.ЧДТУ. 262246 90 01 11 
 
  
Слайд 17 – Логічна схема агента 
 
 
 
Слайд 18 – Структура бази даних 
 
    121 
482.ЧДТУ. 262246 90 01 13 
 
  
Слайд 19 – Інтерфей користувача 
 
 
 
Слайд 20 – Модульне та інтеграційне тестування 
 
    122 
482.ЧДТУ. 262246 90 01 14 
 
  
Слайд 21 – Системне та приймальне тестування 
 
 
 
Слайд 22 – Приклад роботи програмного агента 
 
    123 
482.ЧДТУ. 262246 90 01 14 
Слайд 23 – Висновки 
Слайд 24 – Подяки 
124