Алгоритмы жанровой классификации текста
ВведениеАктуальность
Данная работа актуальна, так как обработка текстовых данных является неотъемлемой частью современного мира, и важно иметь эффективные инструменты для классификации больших объемов текстовой информации.
Несмотря на то, что современные модели классификации текста достигли впечатляющей точности и производительности, выбор подходящего алгоритма для конкретного приложения по-прежнему требует тщательного рассмотрения. Необходимо принимать во внимание такие факторы, как характер данных, доступные вычислительные ресурсы и стоимость разработки. Несмотря на то, что современные модели часто дают отличные результаты, они могут предъявлять более высокие вычислительные требования и быть более сложными, что может оказаться неосуществимым или практичным в определенных сценариях. Кроме того, важно учитывать наличие и доступность необходимых предварительно подготовленных моделей или наборов данных для классификации. В некоторых областях или языках доступность помеченных данных
Оглавление
Введение2
1.Постановка задачи6
2.Этапы классификации текста7
2.1.Предобработка текста9
2.2.Векторизация данных9
2.3.Обзор моделей10
3.Реализация18
3.1.Обоснование выбора средств разработки.18
3.2.Сбор данных.19
3.3.Предобработка данных.21
3.4.Разработка моделей для классификации.25
4.Результаты.29
Заключение.41
Литература.42
Приложение 143
Приложение 248
Приложение 349
results.append({'Model': name, 'Accuracy': cv_results.mean()})
# Построение матрицы ошибок и сохранение ее
cm = confusion_matrix(y_test, y_pred)
plt.figure(figsize=(8, 8))
np.set_printoptions(precision=2)
plt.figure() plot_confusion_matrix(cm, classes=topics, normalize=True,
title='Нормализованная матрица ошибок')
plt.savefig(f'{name}_confusion_matrix.png')
# plt.show() #rnn -----------------------------------------------------------------------------------------------------------
y_test_rnn, y_pred_rnn, name_rnn, test_acc_rnn, training_time_rnn, predicting_time_rnn = RnnClassifier.rnn_process() results.append({'Model': name_rnn, 'Accuracy': test_acc_rnn})
# Построение матрицы ошибок и сохранение ее
cm = confusion_matrix(y_test_rnn, y_pred_rnn)
plt.figure(figsize=(8, 8))
np.set_printoptions(precision=2)
plt.figure() plot_confusion_matrix(cm, classes=topics, normalize=True,
title='Нормализованная матрица ошибок')
plt.savefig(f'{name_rnn}_confusion_matrix.png')
# plt.show() training_times.append(training_time_rnn)
predicting_times.append(predicting_time_rnn)
#---------------------------------------------------------------------------------------------------------------
# cnn -----------------------------------------------------------------------------------------------------------
y_test_cnn, y_pred_cnn, name_cnn, test_acc_cnn, training_time_cnn, predicting_time_cnn = m_cnn.cnn_process() results.append({'Model': name_cnn, 'Accuracy': test_acc_cnn})
# # Построение матрицы ошибок и сохранение ее
cm = confusion_matrix(y_test_cnn, y_pred_cnn)
plt.figure(figsize=(8, 8))
np.set_printoptions(precision=2)
plt.figure() plot_confusion_matrix(cm, classes=topics, normalize=True,
title='Нормализованная матрица ошибок')
plt.savefig(f'{name_cnn}_confusion_matrix.png')
# plt.show() training_times.append(training_time_rnn)
predicting_times.append(predictin
Основные методы для работы:
Объект BeautifulSoup принимает два параметра, HTML-данные в формате строки и параметр, который определяет синтаксический анализатор.
BeautifulSoup(content, 'lxml').<tag_name> – вернет первый тег с именем name.
Методы find и find_all возвращают тег или список тегов, основные принимаемые параметры:
3.1tag_name – строка с название искомого тега.
3.2class_ – строка с названием класса тега.
3.3id – строка с идентификатором тега.
Атрибуты children и parent возвращают дочерние и родительские теги соответственно.
Библиотека хорошо работает в связке с библиотекой requests.
Для выполнения асинхронных HTTP-запросов нам необходимо воспользоваться некоторыми новыми функциями Python 3. Хотя у библиотеки Requests есть различные дополнения и плагины для асинхронного программирования, одной из наиболее популярных библиотек для этого является библиотека aiohttp. Используя ее вместе с библиотекой acincio, мы можем эффективно исполнять ас