|
import streamlit as st |
|
from PIL import Image |
|
|
|
import matplotlib.pyplot as plt |
|
|
|
st.write(""" |
|
## 📝 Итоги. |
|
""") |
|
""" |
|
### 1. Классификация киноотзывов |
|
Датасет для обучения оказался крайне несбалансированным, отзывы разделены на три класса: Нейтральный, \ |
|
Положительный, Отрицательный |
|
""" |
|
st.image('images/classes.png') |
|
''' |
|
\n Датасет был поделен на три выборки: |
|
''' |
|
st.text('Тренировочный сет - 21954 отзывов') |
|
st.text('Валидационный сет - 8782 отзывов') |
|
st.text('Тестовый сет - 5855 отзывов') |
|
|
|
""" |
|
##### 1. Rubert-tiny2, модель-классификатор: LogisticRegression |
|
""" |
|
""" |
|
Была проведена балансировка классов в тренировочном наборе методом Oversampling(RandomOverSampler). На скорость обучения повлияла \ |
|
максимальная длина твита после токенизации в train, MAX_LEN = 4548, она была ограничена 1024 в виду возможностей производительности \ |
|
системы. Классификатором была выбрана LogisticRegression, также исходя из скорости обучения. |
|
\n ##### Classification Report: |
|
""" |
|
st.image('images/classification_report.png') |
|
|
|
""" |
|
Метрика качества f1-macro показала наилучший результат 0.62 |
|
""" |
|
|
|
""" |
|
##### 2. ML-алгоритм, обученный на TF-IDF представлении, модель-классификатор: LogisticRegression |
|
""" |
|
|
|
""" |
|
Прежде всего для этого алгоритма был проведена предобработки текста, а именно очистка текста от лишних символов, \ |
|
лемматизация текста, затем, была проведена балансировка классов в тренировочном наборе методом Oversampling(SMOTE). \ |
|
Для TfidfVectorizer был указан параметр max_features=5000, т.е. было выбрано максимальное количество признаков \ |
|
(слов или термов), которые были учтены при создании матрицы TF-IDF. Классификатором была выбрана LogisticRegression, \ |
|
исходя из скорости обучения. |
|
\n Метрика качества f1-macro показала наилучший результат 0.65 |
|
""" |
|
|
|
""" |
|
##### 3. Модель на основе LTSM |
|
""" |
|
|
|
""" |
|
Предобработка текста осуществлялась аналогичным с предыдущими моделями способом, для обеспечения сравнимых результатов \ |
|
Векторизация текста проводилась с помощью Word2Vec, встроенного в модель. Модель обрабатывала текст через \ |
|
LTSM слои, были выбраны значения hidden_size 128, embedding_dim 128. В модели также применялся механизм \ |
|
Attention. Классификация производилась внутри модели полносвязными слоями. |
|
\n Метрика качества f1-macro в конце обучения составила 0.57 |
|
""" |
|
""" |
|
### 2. Оценка степени токсичности пользовательского сообщения |
|
Задача была решена с помощью модели [rubert-tiny-toxicity](https://huggingface.co/cointegrated/rubert-tiny-toxicity), \ |
|
доработанной для классификации токсичности и неуместности коротких неофициальных текстов на русском языке, \ |
|
таких как комментарии в социальных сетях. |
|
\n Датасет: 14412 сообщений из соцсетей, разделенных на два класса: токсичные и не токсичные. Токсичные \ |
|
преимущественно наполнены оскорбительной и нецензурной лексикой. |
|
""" |
|
|
|
|