Визначення образ у коротких текстах



Анотація. Тези доповіді містять опис вибору математич-ної моделі для вирішення задачі класифікації коротких текс-тів за наявність в них образ. В роботі коротко описано дослі-дження методів їх виявлення. Авторами була запропонова-на власна модель класифікації з описом вдосконалень, що покращують ефективність її роботи.

Ключові слова: класифікація текстів, машинне навчання, методи машинного навчання, логістична регресія.

Попко Андрій Валентинович

КПІ ім. Ігоря Сікорського

Київ, Україна

andrew.popko.j@gmail.com

Дорогий Ярослав Юрійович

КПІ ім. Ігоря Сікорського

Київ, Україна

cisco.rna@gmail.com

Insults detection on short texts

Abstract. Theses of the report contain a description of the choice of a mathematical model for solving the problem of classification of short texts for the presence of insults in them. The paper briefly describes the research of methods for their detection. The authors proposed their own model of classification with a description of improvements that increase the efficiency of its work.

Keywords: classification of texts, machine learning, methods of machine learning, logistic regression.

Andrii Popko

Department of ACTS, FICT NTUU “Igor Sikorsky Kyiv Polytechnic Institute”

Kyiv, Ukraine

andrew.popko.j@gmail.com

Yaroslav Dorogyy

Department of ACTS, FICT

NTUU “Igor Sikorsky Kyiv Polytechnic Institute”

Kyiv, Ukraine

cisco.rna@gmail.com

ВСТУП

Незліченна кількість публічних обговорень різноманітних тем у просторі інтернету багато в чому змінила способи спілкування з іншими. Незалежно від того, чи мова йде про коментарі до статті з сенсаційною новиною, чи про обговорення конкретної відеогри на форумі, сучасні онлайн-простори дозволяють нам легко поділитися власними думками та враженнями, а також отримати теж саме від інших. На зважаючи на те, що часто ці обговорення можуть бути результативними та конструктивними, відносна анонімність, яка приховується в акаунтах користувачів, дозволяє людям залишати образливі та/або неприйнятні коментарі. Ці публікації часто можуть створювати негативне та небажане середовище для інших учасників, що може навіть перешкоджати їм відвідувати сайт. Дана проблема являється достатньо серйозною для адміністрації та власників веб-сайтів. Одним з потенційно можливих способів пом'якшення цієї проблеми, окрім ручного адміністрування, є створення системи, яка може визначати чи являється кожен вхідний коментар образливим чи ні. За наявності такої власники веб-сайтів матимуть достатньо непогану гнучкість у вирішенні сформульованої вище проблеми. Наприклад, можна вибрати автоматичне блокування точно визначених «образливих» коментарів та приховувати ті, що під сумнівом у системи, для подальшої обробки модератором сайту. Мета цієї роботи полягає в побудові системи, реалізованої на основі методів машинного навчання, яка може класифікувати короткі тексти за ознакою образливості та/чи емоційного забарвлення.

ПОШУК РІШЕННЯ

У вигляді даних для навчання майбутньої системи та тестування було обрано набір з сайту Kaggle [1], який є найпопулярнішим ресурсом та площадкою, де проводяться змагання з машинного навчання. Набір даних містить близько 4000 прикладів, кожний з яких складається з реального тексту, взятого з просторів інтернету та позначки, що свідчить про його забарвленість (1 – образливий, 0 – звичайний). Приблизне співвідношення класифікованих текстів 3/8 відповідно. Основними показниками оцінки, які використані, були точність тренування (training accuracy) та перехресна перевірка (10-fold cross-validation). Перша необхідна для визначення наскільки добре мережа працює з вхідними даними та модель оптимізується на навчальному наборі текстів, і в якій мірі вона «перенавчається» на ньому. Точність другої перевірки була більш значущою, оскільки вона визначає наскільки добре модель узагальнюється для тестування на прикладах, що ще не подавались до системи. Це значення є більш точним уявленням про те, як реалізована модель буде функціонувати у реальній ситуації. Мовою для кодування було обрано Python, що являється найпопулярнішою для реалізації застосувань пов’язаних з нейромережами та машинним навчання. Це дозволило використовувати наявні безкоштовні бібліотеки для підключення, що значно скоротило час на реалізацію алгоритмів. Для виділення характеристик тексту було використано бібліотеку під назвою NLTK (Natural Language Toolkit) [2]. В ході досліджень наявних моделей машинного навчання було визначено що найпопулярнішими являються: Naive Bayes (наївний баєсів класифікатор), SVM (метод опорних векторів), and Logistic Regression (логістична регресія) [3] для класифікації текстів. Спочатку було застосовано кожний з підходів з 1-грамами (unigram), утвореними з вхідних текстів, попередньо підданими обробці (видалення знаків пунктуації, приведення літер до нижнього регістру), а потім вибрано найкращий.

Рис.1. Порівняння базових моделей

Дивлячись на показники для перехресної валідації, очевидно, що модель з логістичною регресією (Logistic Regression) справляється краще ніж дві інші моделі. Тож було вирішено використати даний підхід як базовий для системи класифікації коротких текстів. Також вектор параметрів піддаватиметься навчанню, використовуючи метод стохастичного градієнтного спуску, оскільки він достатньо простий в реалізації. Для того, щоб підвищити точність моделі були додані деякі функції для створюваного класифікатора. Список тих, що дійсно допомогли покращити показники ідентифікації:

Стемінг (скорочення слів до основи) слів за допомогою NLTK Lancaster Stemmer;

$•$ Видалення випадкових символів;

$•$ Виділення лексем за допомогою NLTK Tokenizer;

$•$ Використання списку «поганих» слів;

$•$ Використання буквених 4- та 5-грам.

Процес плину показника точності для класифікатора можна побачити на рисунку 2.

Рис. 2. Покращення моделі в залежності від реалізова-них додаткових функцій

Також була спроба замініти використання 1-грам на 2-, 3-, 4-, 5-грами. Крім останніх двох, Помітне покращення спостерігалось тільки при використанні останніх двох функцій. Завдяки додаванню описаних вище функцій до моделі логістичної регресії система досягла точності навчання 100% на повному наборі даних. В той же час система досягає лише приблизно 86% по точності перехресної перевірки. Отже, стає зрозумілим, що модель значно перенавчилась під час тренування. Два методи, які використані для вирішення цієї проблеми, полягають у наступному:

$•$ Баєсовий апріорний розподіл (Bayesian prior) [4]: замість того, щоб використовувати оцінку максимальної правдоподібності, використано баєсову оцінку максимуму апостеріорної імовірності для визначення ваг. Дані підходи тісно пов’язані, але останній застосовує розширену цільову функцію, що включає апріорний розподіл оцінюваної величини. Це сприяє зменшенню норми вектора параметрів, що дозволяє бути менш чутливим до перенавчання.

$•$ Фільтрація вибору ознак: для кожної з ознак призначено значення, що рівне абсолютній величині синаптичної ваги, визначеній методом стохастичного градієнтного спуску. Ці ознаки будуть більш вагомо впливати на результат під час класифікації. Беручи до уваги лише частину з усіх добутих ознак, величина вектору ознак буде зменшена, що також позитивно впливає на ситуацію з перенавчанням. Після реалізації вище описаних підходів, точність навчання знизилась до 94%, в той час же показник перехресної валідаціїї дещо збільшився, що свідчить про краще узагальнення отриманих знань.

ПЕРСПЕКТИВИ РОЗВИТКУ ТА ВИСНОВКИ

Завдяки всім перерахованим вище функціям і методам, що закладені в системі, з різними маніпуляціями в налаштуваннях, перехресну точність перевірки вдалось підняти до 86,6% від повного набору даних. Хоча вихідні результати цієї системи є перспективними, існує декілька способів, за допомогою яких можна продовжити покращувати результати. Можна використовувати додаткові характеристики. Даний класифікатор розглядає тексти окремо, проте можна розглядати зв’язок між повідомленнями, наприклад, кількість образливих повідомлень у межах одного потоку повідомлень. На нашу думку, в реальному застосуванні ми також можемо включити аналіз історії користувача, наприклад, кількість образливих публікацій, які він написав раніше. Також необхідно поекспериментувати, наскільки добре будуть виконуватися інші алгоритми оптимізації, наприклад, метод Ньютона. Ще одним можливим напрямком покращення показників є навчання системи на ідентифікацію сарказмів, коли образа в тексті є прихованою. За допомогою NLP проектів, таких як, наприклад, «Stanford CoreNLP» можна зрозуміти структуру висловлювання та в певній мірі його зміст, що допоможе покращити результати класифікації.

ЛІТЕРАТУРА

$1.$ Kaggle: Your Home for Data Science [Електронний ресурс] : [Веб-сайт]. – Режим доступу: https://www.kaggle.com/ (дата звернення 16.04.2018). – Назва з екрана.

$2.$ Natural Language Toolkit. NLTK 3.2.5 documentation [Електронний ресурс] : [Веб-сайт]. – Режим доступу: https://www.nltk.org/ (дата звернення 16.04.2018). – Назва з екрана.

$3.$ Логистическая регрессия для решения задач классификации [Електронний ресурс] – Режим доступу: https://goo.gl/uu9DsV.

$4.$ Математические методы обучения по прецедентам (теория обучения машин) [Електронний ресурс] / Ворон-цов К. В. // Курс лекций «Машинное обучение» – С. 18-23. – Режим доступу: https://goo.gl/CoKKBC3. – Назва з екрана.

May 17, 2018