Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter
Описано розроблений програмний прототип статистичного аналізу висловлювань у соціальних мережах з попереднім фільтруванням висловлювань неінформативного характеру, відбором характеристичних слів і використанням наївного байєсового класифікатору з машинним навчанням для аналізу суджень користувачів....
Saved in:
| Date: | 2014 |
|---|---|
| Main Authors: | , |
| Format: | Article |
| Language: | Ukrainian |
| Published: |
Інститут програмних систем НАН України
2014
|
| Series: | Проблеми програмування |
| Subjects: | |
| Online Access: | https://nasplib.isofts.kiev.ua/handle/123456789/113602 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Cite this: | Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter / А.М. Глибовец, М.А. Гонтар // Проблеми програмування. — 2014. — № 4. — С. 15-25. — Бібліогр.: 6 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-113602 |
|---|---|
| record_format |
dspace |
| spelling |
nasplib_isofts_kiev_ua-123456789-1136022025-02-23T18:59:05Z Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter Development of Web-prototype for analysis of statements in social network Twitter Глибовець, А.М. Гонтар, М.А. Програмування для комп’ютерних мереж та Internet Описано розроблений програмний прототип статистичного аналізу висловлювань у соціальних мережах з попереднім фільтруванням висловлювань неінформативного характеру, відбором характеристичних слів і використанням наївного байєсового класифікатору з машинним навчанням для аналізу суджень користувачів. 2014 Article Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter / А.М. Глибовец, М.А. Гонтар // Проблеми програмування. — 2014. — № 4. — С. 15-25. — Бібліогр.: 6 назв. — укр. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/113602 004.42 uk Проблеми програмування application/pdf Інститут програмних систем НАН України |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| language |
Ukrainian |
| topic |
Програмування для комп’ютерних мереж та Internet Програмування для комп’ютерних мереж та Internet |
| spellingShingle |
Програмування для комп’ютерних мереж та Internet Програмування для комп’ютерних мереж та Internet Глибовець, А.М. Гонтар, М.А. Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter Проблеми програмування |
| description |
Описано розроблений програмний прототип статистичного аналізу висловлювань у соціальних мережах з попереднім фільтруванням висловлювань неінформативного характеру, відбором характеристичних слів і використанням наївного байєсового класифікатору з машинним навчанням для аналізу суджень користувачів. |
| format |
Article |
| author |
Глибовець, А.М. Гонтар, М.А. |
| author_facet |
Глибовець, А.М. Гонтар, М.А. |
| author_sort |
Глибовець, А.М. |
| title |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter |
| title_short |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter |
| title_full |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter |
| title_fullStr |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter |
| title_full_unstemmed |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter |
| title_sort |
розробка web-прототипу для аналізу висловлювань користувачів соціальної мережі twitter |
| publisher |
Інститут програмних систем НАН України |
| publishDate |
2014 |
| topic_facet |
Програмування для комп’ютерних мереж та Internet |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/113602 |
| citation_txt |
Розробка Web-прототипу для аналізу висловлювань користувачів соціальної мережі Twitter / А.М. Глибовец, М.А. Гонтар // Проблеми програмування. — 2014. — № 4. — С. 15-25. — Бібліогр.: 6 назв. — укр. |
| series |
Проблеми програмування |
| work_keys_str_mv |
AT glibovecʹam rozrobkawebprototipudlâanalízuvislovlûvanʹkoristuvačívsocíalʹnoímerežítwitter AT gontarma rozrobkawebprototipudlâanalízuvislovlûvanʹkoristuvačívsocíalʹnoímerežítwitter AT glibovecʹam developmentofwebprototypeforanalysisofstatementsinsocialnetworktwitter AT gontarma developmentofwebprototypeforanalysisofstatementsinsocialnetworktwitter |
| first_indexed |
2025-11-24T12:16:56Z |
| last_indexed |
2025-11-24T12:16:56Z |
| _version_ |
1849674030813020160 |
| fulltext |
Програмування для комп’ютерних мереж та Internet
© А.М. Глибовець, М.А. Гонтар, 2014
ISSN 1727-4907. Проблеми програмування. 2014. № 4 15
УДК 004.42
А.М. Глибовець, М.А. Гонтар
РОЗРОБКА WEB-ПРОТОТИПУ
ДЛЯ АНАЛІЗУ ВИСЛОВЛЮВАНЬ КОРИСТУВАЧІВ
СОЦІАЛЬНОЇ МЕРЕЖІ TWITTER
Описано розроблений програмний прототип статистичного аналізу висловлювань у соціальних мере-
жах з попереднім фільтруванням висловлювань неінформативного характеру, відбором характеристич-
них слів і використанням наївного байєсового класифікатору з машинним навчанням для аналізу су-
джень користувачів.
Вступ
Соціальні мережі (CМ) – надзви-
чайно цікавий об’єкт дослідження, що від-
криває широкі можливості аналізу соціа-
льної взаємодії між людьми, прогнозуван-
ня їх поведінки, класифікації та типології
соціальної поведінки, моделювання інфо-
рмаційних потоків у мережах, розвитку
бізнес проектів. CМ – це ідеальний експе-
риментальний майданчик для вивчення
соціальної поведінки людей, апробації те-
хнологій впливу та реклами, просування
сучасних бізнес проектів [1, 2].
Розвиток CМ поставив питання про
аналіз даних, якими вони наповнені.
Актуальність проблеми аналізу
уподобань користувачів полягає у тому,
що, вивчивши їх уподобання, на основі
даних CМ можна здійснити моделювання
соціальних, економічних та політичних
процесів та створювати нові сервіси, біз-
нес рішення, програмні продукти.
Однак, на сьогоднішній день, не
існує готових програмних рішень, що до-
зволять аналізувати висловлювання кори-
стувачів соціальних мереж. Немає чітких
критеріїв та підходів до аналізу вислов-
лювань у контексті соціальних мереж.
Тут ми опишемо основні характе-
ристики програмної реалізації розроблено-
го нами прототипу, який дозволяє автома-
тично збирати та аналізувати висловлю-
вання користувачів соціальних мереж у
режимі реального часу з застосуванням
попереднього фільтрування висловлювань
користувачів, які дозволили зменшити об-
сяг неінформативних висловлювань та
застосування наївного баєсівського класи-
фікатора з машинним навчанням для пер-
винного аналізу повідомлень і викорис-
тання експертного навчання для покра-
щення ефективності аналізатора.
Практичне застосування прототипу
системи аналізу висловлювань можна уя-
вляти по різному, на нашу думку, кінце-
вий користувач – це хтось з області мар-
кетингу, реклами тощо. Для зазначених
працівників, важливо отримати легкий,
простий та зрозумілий інтерфейс корис-
тування платформою. Для кращого зро-
зуміння їхніх потреб та психології мис-
лення, було проведено багато зустрічей з
представниками знаних фірм, які б хотіли
користуватись такою аналітичною плат-
формою. Звісно ж, що їх цікавила інфор-
мація про позитивні відгуки щодо своєї
компанії та негативні щодо компаній-
конкурентів.
Проаналізовано вимоги майбутніх
користувачів та сформульовано список
вимог до прототипу користувача. Останній
хотів мати можливість:
● переглядати та видаляти існуючі
завдання за аналізом;
● зазначити назву завдання, короткий
опис, умови відбору висловлювань до за-
вдання при створенні;
● переглядати вибірку висловлювань
що потрапила до завдання, при цьому ко-
жне висловлювання має містити інформа-
цію про дату публікації, користувача, а
також оцінку (позитивна, негативна);
● змінювати оцінку висловлювання,
при цьому, оцінка повинна мати інше візу-
альне забарвлення для кращої ідентифіка-
ції оцінки системи та експерта;
Програмування для комп’ютерних мереж та Internet
16
● переглядати загальну статистичну
інформацію за аналізом завдання – кіль-
кість позитивних, негативних висловлю-
вань (з можливістю переходу до них);
● з легкістю проглядати висловлю-
вання;
● фільтрувати висловлювання за оці-
нкою;
● мати захищений доступ до системи.
Проаналізувавши вимоги, можна
зробити висновок, що інтерфейс користу-
вача не має бути складним у реалізації,
проте аналітична система все ж потребує
складних архітектурних рішень в основі.
Правильно спроектованою, вона зможе
надати швидкий та легкий доступ корис-
тувачам.
1. Архітектура прототипу
Для збереження статистичних да-
них необхідно обрати сховище. На дано-
му етапі, як сховище розглядалась реля-
ційна і нереляційна бази даних. Перш за
все, слід оцінити, які можливі сутності
передбачатимуть статистичні дані, а потім
проаналізувати їх та обрати найкращу
систему керуванння даними, можливо
комбінований підхід.
Проектування сутностей та вибір
RDMS. Отже, перш за все, потрібен засіб
для роботи користувача аналітичної плат-
форми. Сутність «користувач» (User) буде
відносно відокремленою від загальної мо-
делі і не впливатиме на аналіз, вона потрі-
бна лише для аутентифікації, підтриму-
вання сесії Web-додатку та позначення
завдання (хто його власник). Для сутності,
достатньо полів, у яких будемо за-
пам’ятовувати унікальне ім’я, закодований
пароль та інформацію про стан облікового
запису.
Для збереження проміжних даних
про висловлювання, потрібна сутність
«висловлювання» (Tweet), з інформацією
про висловлювання, дату публікації та ко-
ристувача, що опублікував його. Така сут-
ність є абсолютно незалежною і не потре-
бує реляційної бази даних (DB).
При первинному аналізі висловлю-
вання, будемо розкладати його на слова.
Звідси, необхідна сутність «слово» (Word),
що характеризуватиме унікальне слово.
Варто зазначити, що «слова» не потребу-
ють залежності з сутністю «висловлюван-
ня», оскільки це не є необхідністю, «сло-
ва» використовуватимуться лише для їх
пошуку серед різних оцінок.
Оскільки користувач платформи за-
хоче створювати унікальні завдання, пот-
рібно ввести поняття «завдання» (Job), що
зможе описати суть завдання – його назву,
короткий опис, а також критерій для філь-
трування висловлювань. Однозначно, що в
кожного завдання має бути власник – «ко-
ристувач». Сутність «завдання» буде інте-
гровано в модель аналізу, що накладає пе-
вні обмеження – тісний реляційний зв’язок
з іншими моделями.
Для оцінювання висловлювання,
введемо поняття «оцінка» (Mark), що ма-
тиме опис оцінки, а також унікальний іде-
нтифікатор.
Для об’єднання всіх понять у ре-
ляційній моделі, потрібно ввести дві до-
даткові реляційні сутності – «аналіз»
(Analysis) та «слова в аналізі» (Words In
Analysis). Кожна з сутностей має
об’єднати унікальні ідентифікатор інших
сутностей, щоб задовольнити головну ви-
могу для кожного «завдання», кожне «ви-
словлювання» повинно мати оцінку та по-
силання на набір «слів», що зустрічаються
у «висловлюваннях».
Перевага в нереляційному підході
полягає у можливості ефективного збере-
ження великих обсягів даних і виграшу в
швидкодії при їх обробці. Проте, для на-
шої задачі, не всю модель потрібно зберег-
ти в нереляційній базі, оскільки більшість
сутностей потребують зв’язків між собою.
Єдине, що можна відокремити від іншої
моделі – це вибірка висловлювань («тві-
тів»), все інше, тобто «оцінки», «завдан-
ня», «слова» тощо, потрібно якось реля-
ційно поєднати (рис. 1).
Реляційний підхід має основний не-
долік – ефективність зчитування/запису
при великих навантаженнях. Проте, його
можна компенсувати заощадливими і не-
частими обчисленнями. А от, збереження
Програмування для комп’ютерних мереж та Internet
17
Рис. 1. Модель реляційної бази даних для збереження статистичних даних
статистичних даних до неструктуровано-
го нереляційного сховища важко компе-
нсувати взагалі. Тому ми обрали реляцій-
ну модель на основі MySQL RDMS плат-
форми.
Взаємодія прототипу з BD-
платформою. Оскільки висловлювання
будуть попередньо опрацьовуватись ін-
шою платформою, то потрібно налагодити
зв’язок між прототипом та такою платфо-
рмою.
Обрана BD-платформа Cloudera,
має інтегрований сервіс швидкого пошуку
Apache Solr, що має реалізований REST-ful
Web-інтерфейс у форматах JSON/XML,
який дозволяє з легкістю налагодити спіл-
кування клієнт-сервер (рис. 2). На схемі
можна розгледіти сервер прототипу аналі-
тичної платформи Social Glutton (виступає
як клієнт), Cloudera Server – BD платфор-
ма, яка зберігатиме всі висловлювання
соціальних мереж та Twitter Server – сер-
вер соціальної мережі.
Варто додати, що спілкування через
REST інтерфейс у такій моделі є виправ-
даним, оскільки задача не потребує спіл-
куватись в режимі реального часу зі схо-
вищем всіх висловлювань. Навпаки, необ-
хідно використати техніку синхронізації,
що зменшить навантаження на централь-
ний сервер-сховище. Синхронізацію, як
таку, варто проводити у визначені інтерва-
ли часу, в залежності від пріоритетності
завдання.
Схема спілкування центрального
сервера та сервера соціальної мережі опи-
сана в [2].
Програмування для комп’ютерних мереж та Internet
18
Налаштування системи розподі-
леного опрацювання та збереження ви-
словлювань. Для налаштування Cloudera,
необхідно вирішити проблему місце роз-
ташування сервера. Ідеальний варіант –
відокремити його та забезпечити безпере-
бійну досяжність у мережі.
Cloudera передбачає можливість
вирішення даної проблеми двома способа-
ми: розгорнути платформу в хмарному
середовищі AWS, розгорнути платформу
на Linux RedHat.
Перший варіант є ідеальним, та, на
жаль, його не вдалось реалізувати із-за
високої платіжної ставки компанії Amazon.
Безкоштовний та пробний варіант викори-
стання хмарного середовища AWS надає
занадто мало ресурсів для безперебійної
роботи платформи Cloudera.
Отже, довелось розгортати платфо-
рму в середовищі Linux RedHat.
Після встановлення всіх необхід-
них компонентів, можна керувати систе-
мою через панель управління Cloudera
Manager (рис. 3).
Варто додати, що платформа на-
лаштована з такими системними ресур-
сами:
● потужність процесора – 2.2
GHz (Intel Core i7);
● обсяг оперативної пам’яті
(RAM) – 4096 MB;
● обсяг пам’яті жорсткого диску
(HDD) – 64 GB.
Не зважаючи на те, що Cloudera –
це платформа для розподілених обчислень,
вона була налаштована в «псевдо-
розподіленому» режимі, тобто в режимі
одного кластера-точки. Додати ще декіль-
ка точок і масштабувати платформу не
важко, але це потребує більше фізичних
ресурсів. Робота в режимі однієї точки не
відзначається високою продуктивністю і
надійністю, проте в умовах даної задачі є
абсолютно самодостатньою.
Встановлення додаткових ком-
понентів. Під час запуску сервера,
Cloudera автоматично запускає сервіси
першої необхідності, хоча необхідні для
синхронізації з соціальною мережею сер-
віси виявились відсутніми. Необхідно
додатково встановити і запустити Apache
Solr, що використовується для швидкого
пошуку по базі даних, та Flume, що вико-
ристовується для потокової Twitter-
інтеграції.
Для того, щоб запустити процес по-
токового скачування «твітів», необхідно
перш за все зареєструватись розробником
соціальної мережі Twitter. Далі, необхідно
створити свій додаток, щоб отримати уні-
кальний API ключ, що дозволить викорис-
товувати Twitter API.
Маючи унікальний ключ розробни-
ка та API ключ, можна налаштувати сервіс
потокового скачування «твітів». Для цього
потрібно описати модель даних, що будуть
приходити з іншого боку «труби» і надати
необхідні ключі.
Після того як модель додано, запуск
Flume з ключами виглядає так:
flume-ng-agent start
[CONSUMER_KEY]
[CONSUMER_SECRET]
[ACCESS_TOKEN]
[ACCESS_TOKEN_SECRET]
Рис. 2. Схема спілкування між прототипом аналітичної мережі, BD-платформою Cloudera
та сервером соціальної мережі Twitter
Програмування для комп’ютерних мереж та Internet
19
Зупинити сервіс можна відповідно
командою – stop.
Для того, щоб перевірити чи скачу-
вання «твітів» успішне, достатньо зайти на
сторінку модуля Hue і скористатись серві-
сом Impala Search, що надає можливість
інтерактивного.
Сервіс Flume буде використано для
інтеграції з Cloudera платформою і синх-
ронізацією «твітів» для завдань. Він надає
REST-інтерфейс, що задовольняє поточну
архітектуру прототипу аналітичної систе-
ми.
2. Проектування та реалізація
прототипу для проведення та
збереження проміжних
результатів статистичного аналізу
Для реалізації прототипу, окрім
проблеми моделі та комунікації з іншим
сервером, перш за все, необхідно було ви-
рішити поширену проблему набору ін-
струментів для реалізації Web-прототипу.
Базовий набір інструментів. До
поля зору найпопулярніших рішень, серед
швидкої розробки Web-додатків, потрапи-
ли Play!, Grails, Ruby on Rails (RoR).
Варто навести порівняльні характе-
ристики вищезазначених інструментів
(таблиця). Всі рішення є простими в нала-
штуванні і продуктивності, а також всі
заохочують TDD-парадигму. Основна від-
мінність RoR від інших двох – це викорис-
тання мови програмування Ruby, що є
скриптовою. Всі інші характеристики є
більш менш однаковими. Тобто, стек тех-
нології у кожному рішенні досить вели-
кий, і є з чого обирати. Основним критері-
єм при виборі готового інструментарію,
стала мова програмування. Вибір впав на
динамічний groovy і grails.
Groovy легко інтегрується в інший
Java-код і легко налаштувати «заміну на
льоту», що так необхідна при розробці
Web-додатків [3]. Ще одною перевагою
grails, виявилося строге структурування
додатку на сервіси, контролери, модель та
Рис. 3. Панель керування Cloudera Manager та список сервісів платформи
Програмування для комп’ютерних мереж та Internet
20
Таблиця. Порівняльні характеристики інструментів
Особливість Grails RoR Play!
Принципи
розробки
Test Driven Development
(TDD)
TDD TDD
Шаблон
розробки
Model View
Controller (MVC),
Dependency Injection
MVC MVC
Інтер-
націоналізація
+ + +
Операційна
система
JVM-сумісна
Linux,
Windows, Mac
OS X
JVM-сумісна
Мова
програмування
Groovy, Scala,
Java, Clojure
Ruby Java, Scala
DB
MySQL, NoSQL,
Oracle, SQLite
MSSQL,
MySQL,
MongoDB,
PostgreSQL,
Drizzle, Oracle,
Redis, SQLite
MSSQL,
MySQL, MongoDB,
NoSQL, PostgreSQL,
Hazelcast, Oracle
Мова
шаблонів
GSP, HAML,
Mustache, Handlebars JS
HAML,
ERB, Radius
Groovy, Japid,
Scala Template
Engine
REST-ful + + +
АОП + – +
Сервер
Jetty, Jboss,
Tomcat
Jboss
Jetty, Jboss,
Tomcat
сторінки (притаманне MVC-парадигмі).
Такий підхід полегшує тестування окре-
мих класів і примушує розробників мисли-
ти модульно.
Користувацький інтерфейс. Для
швидкої реалізації користувацького інтер-
фейсу, вирішено використати розробку
Twitter Bottstrap [4] – безкоштовний набір
інструментів для створення Web-сайтів,
що містить досить великий набір HTML
та CSS-базованих шаблонів для всіляких
HTML елементів (форм, кнопок тощо), а
також інших інтерфейсних компонентів.
Прототип користувацького інтер-
фейсу на основі Bootstrap, розроблено за
допомогою безкоштовного Web-додатку
Jetstrap. За допомогою даного сервісу, вда-
лось легко збудувати скелет сторінок, а
також модифікувати їх стилі [5].
Після того, як скелет сторінок був
збудований, для їх оптимізації, були ство-
ренні gsp-шаблони. Основними перевага-
ми шаблонів є можливість їх функціональ-
ного тестування, а також структурування
коду (рис. 4).
Програмування для комп’ютерних мереж та Internet
21
Рис. 4. Приклад шаблону елемента “Завдання”
Безпека. Для авторизації та аутен-
тифікація користувачів застосовано мо-
дуль Spring Security, який надає комплекс-
ний і розширювальний підхід до проблеми
безпеки.
Даний модуль допоміг розмежува-
ти ролі користувачів та їх доступ до ок-
ремих ресурсів прототипу. На даний мо-
мент, існує дві ролі для авторизованих
користувачів: «адміністратор» та «корис-
тувач» [6].
Роль «користувач» – це базовий вид
авторизованих користувачів, який може
тільки керувати «завданнями». «Адмініс-
тратор» розширює роль «користувача» і
має доступ до керування системними сер-
вісами.
Синхронізація висловлювань.
Комунікація між Web-прототипом та пла-
тформою-сховищем висловлювань корис-
тувачів відбувається через REST-
інтерфейс. Для зменшення навантаження
на сховище, встановлено обмеження на
частоту синхронізації – часовий інтервал в
5 хв. Для усунення ситуації, коли одночас-
но синхронізація відбуватиметься для ве-
ликої кількості завдань, що дуже сильно
завантажить сервер-сховище, було реалі-
зовано власну чергу завдань синхронізації.
Черга представляє собою набір за-
вдань на синхронізацію, де кожне містить
інформацію про пошуковий запит та уні-
кальний ідентифікатор завдання. Для за-
безпечення асинхронного лімітованої син-
хронізації – встановлено ліміт на прове-
дення максимальної кількості одночасних
операцій синхронізації – 3. Така модель
досить гарно себе зарекомендувала при
значній кількості завдань, проте при малій
кількості завдань працює трішки довше
ніж підхід «в лоб».
Синхронізаційний запит складаєть-
ся з декількох параметрів, найважливішим
з яких є запитовий рядок. Очікуваний фо-
рмат відповіді також зазначається як пара-
метр. Основним форматом спілкування
клієнт-сервер обрано JSON (рис. 5). Відпо-
відь містить набір висловлювань, що пред-
ставляють опис загального висловлювання
соціальної мережі Twitter.
Рис. 5. Приклад відповіді сервера-сховища висловлювань
Програмування для комп’ютерних мереж та Internet
22
3. Аналіз основних компонентів
прототипу
Розподілена BD платформа-
сховище. Як BD платформа, Cloudera ви-
правдала очікування та продемонструвала
себе з кращого боку, продукт зручний у
користуванні та керуванні. На день безпе-
рервного збереження «твітів» витрачається
приблизно 3 ГБ місця на жорсткому диску,
що звісно потребує об’ємного сховища в
майбутньому. Оскільки навантаження на
сервер були не сильними, то під час розро-
бки і тестування вистачило однієї фізичної
точки, проте в подальшій розробці та ви-
користані бажано розширити можливості
розподіленого середовища ще декількома
машинами.
Тестування синхронізації Web-
клієнта з BD платформою виконано за до-
помогою додатку JMeter. Для локальних
налаштувань, синхронізація не викликала
ніяких проблем для платформи (максима-
льна кількість одночасних запитів – 3, си-
нхронізація відбувалась що 5 хв).
Модуль аналізу. Алгоритм модуля
аналізу написаний використовуючи підхід
TDD, тому відповідає стандартам, оскіль-
ки повністю покритий функціональними
тестами. Це означає, що всі математичні
поняття алгоритму окремо протестовані
на критичні і випадкові значення. Варто
зазначити, що модуль аналізу активно
співпрацює з базою даних, що негативно
впливає на продуктивність. В подальшо-
му, дану область варто покращувати оскі-
льки саме вона найбільше завантажує
Web-прототип.
Користувацький інтерфейс міс-
тить сторінку управління «завданнями»
(рис. 6). Тут можна додати, видалити,
переглянути інформацію про завдання, а
також припинити / відновити синхроніза-
цію.
Варто зазначити, що для даної сто-
рінки реалізовано посторінкове прогор-
тання (по 10 сторінок), що забезпечує
швидку відповідь сервера на запит корис-
тувача.
Рис. 6. Сторінка управління “Завданнями”
Програмування для комп’ютерних мереж та Internet
23
Сторінка статистики (рис. 7) міс-
тить статистичну інформацію про кіль-
кість позитивних і негативних висловлю-
вань позначених як системою так і експе-
ртом. Додатково реалізовано можливість
натиснути на певний сектор і перейти до
сторінки з переліком висловлювань, від-
повідно позначених так як вказано в назві
категорії.
Сторінка детальної інформації «за-
вдання» містить посторінковий набір «ви-
словлювань», що потрапили до даного
«завдання» (рис. 8).
З короткою інформацією про автора
висловлювання, текстом висловлювання,
датою публікації, а також можливістю пе-
реглянути і встановити експертну оцінку
для кожного висловлювання. Натиснувши
на окреме висловлювання, відкривається
джерело висловлювання в окремій сторінці.
Рис. 7. Сторінка статистики “Завдання”
Рис. 8. Сторінка детальної інформації «Завдання»
Програмування для комп’ютерних мереж та Internet
24
Висновки
Описано програмну реалізацію ви-
рішення проблеми системного аналізу ви-
словлювання користувачів соціальних ме-
реж за допомогою статичного підходу у
вигляді наївного баєсівського класифіка-
тора. Ключовими поняттями підходу є
взаємна інформація та правдоподібність
висловлювань. Статистичний підхід, в
подальшому, передбачив залучення думки
експерта для встановлення об’єктивної
оцінки висловлювань.
Для вирішення проблеми ефектив-
ної синхронізації та доступу до висловлю-
вань користувачів соціальної мережі, ви-
користано розподілену платформу, що по-
легшила процес інтеграції потужних серві-
сів потокової комунікації соціальної мере-
жі, забезпечила швидке опрацювання та
надійне сховище даних, і надала тонкий
інтерфейс для швидкого пошуку вислов-
лювань за ключовими словами.
Розроблений прототип аналітичної
системи надає зручний та компактний
інструментарій керування завданнями
пошуку та оцінки висловлювань користу-
вачів соціальної мережі за ключовими
словами. Під час планування архітектури
системи, враховано потребу забезпечити
швидкодію, а отже, введено певні обме-
ження під час синхронізаційних задач і
розроблено власну чергу операцій. Пер-
винний аналіз висловлювань показав до-
цільність потреби фільтрування суджень
неінформативного характеру на ранній
стадії, яка була вирішена комплексним
підходом – мовним, сміттєвим та геоло-
каційним фільтрами.
Процес самонавчання прототипу
організовано завдяки існуючим методам
машинного навчання. Аналітична платфо-
рма навчена оцінювати нові висловлюван-
ня на основі попередніх статистичних по-
казників. Ключовим моментом в забезпе-
ченні об’єктивності оцінки аналітичної
платформи виявилось пошук та формуван-
ня набору характеристичних слів. Для
кращої ефективності наївного оцінювання
було розроблено критерій відбору харак-
теристичних слів. Для покращення експер-
тного навчання системи, було запропоно-
вано ввести поняття фільтрування харак-
теристичних слів.
В прототипі реалізовано можли-
вість перегляду статистики конкретного
завдання аналізу, що відображає кількісну
характеристику системної та експертної
оцінок висловлювань користувачів з мож-
ливістю їх сегментованого перегляду.
Варто додати, що вирішення пи-
тань про уподобання користувачів потре-
бує подальших досліджень та вдоскона-
лень. Для покращень прототипу необхід-
но реалізувати нові можливості експерт-
ного навчання і аналізу висловлювання, а
саме: враховувати глобальні характерис-
тичні слова, що дозволить зменшити вагу
експерта для щойно створених завдань;
надати експерту можливість впливати на
характеристичні слова; реалізувати пов-
ний мовний фільтр.
Загальні вимоги до впровадження
прототипу потребують інтеграцію інших
популярних соціальних мереж, а також
проведення додаткової дослідницької ро-
боти і впровадження низки цікавих стати-
стичних відображень.
1. Глибовець М.М., Жигмановський А.А., За-
болотний Р.І., Захоженко П.О. Веб сервіси
оброблення документів. – М.: – К.:
НаУКМА, 2012. – 212 с.
2. Salvatore Catanese, Pasquale De Meo, Emi-
lio Ferrara, Giacomo Fiumara, Alessandro
Provetti Extraction and Analysis of Facebook
Friendship Relations.
www.emilio.ferrara.name/wp-
content/uploads/2011/06/SN-76.pdf
3. Grails. What is Grails? [Електронний ре-
сурс] // Grails: [сайт]. [2014]. URL: https://
grails.org/learn
4. Bootstrap: [сайт]. [2014]. URL: http://
getbootstrap.com/
5. JetStrap. The Bootstrap 3 builder [Електрон-
ний ресурс] // Jetstrap: [сайт]. [2014]. URL:
https://jetstrap.com/
6. Spring Security [Електронний ресурс] //
Spring IO: [сайт]. [2014]. URL: http://
projects.spring.io/spring-security/
Одержано 09.04.2014
http://www.emilio.ferrara.name/wp-content/uploads/2011/06/SN-76.pdf
http://www.emilio.ferrara.name/wp-content/uploads/2011/06/SN-76.pdf
https:///grails.org/learn
https:///grails.org/learn
http:///getbootstrap.com/
http:///getbootstrap.com/
https:///jetstrap.com/
http:///projects.spring.io/spring-security/
http:///projects.spring.io/spring-security/
Програмування для комп’ютерних мереж та Internet
25
Про авторів:
Глибовець Андрій Миколайович,
кандидат фізико-математичних наук,
доцент кафедри мережних технологій,
Гонтар Максим Андрійович,
магістр,
розробник в компанії GlobalLogic.
Місце роботи авторів:
Національний університет
«Києво-Могилянська академія»,
04655, Київ,
вул. Г. Сковороди, 2.
Тел. (044) 425 0245.
E-mail: andriy@glybovets.com.ua
GlobalLogic Україна
03680, Київ,
вул. Миколи Грінченка 2/1.
Тел.: (044) 492 9695.
E-mail: maksym.hontar@gmail.com
mailto:andriy@glybovets.com.ua
mailto:maksym.hontar@gmail.com
|