基于CNN+GRU的文本分类实践

前情提要 最近打比赛用到了这个,记录一下,方便以后复用。下面是比赛的要求 赛题简介:介绍整个赛题的实现目标、实用价值、涉及技术和整体要求 新闻发展越来越快,每天各种各样的新闻令人目不暇接,对新闻进行科学的分类既能够方便不同的阅读群体根据需求快速选取自身感兴趣的新闻,也能够有效满足对海量的新闻素材提供科学的检索需求。 赛题业务场景:描述赛题相关的真实企业业务背景。从真实场景中,适当简化或者提炼出适合比赛的赛题场景 赛题以新闻数据为赛题数据,整合划分出如下候选分类类别:财经、房产、教育、科技、军事、汽车、体育、游戏、娱乐和其他共十类的新闻文本数据。选手根据新闻标题和内容,进行分类。输入为新闻的标题和正文内容,输出为新闻的分类。 说了这么多,实际上就是要解决一个文本十分类的问题,下面是题目中给出的数据集。如图所示,数据集被分成了很多sheet,每一张sheet对应了一类新闻,其中有三列,分别是新闻内容、新闻分类、新闻标题但是这样的数据集我们还用不了,于是我进行了如下处理。将所有数据合并到同一张表下,再导出为以制表符分隔的txt文件经过观察发现,数据存在许多空缺,如有的新闻只有标题没有内容,这些问题我将在后面的代码中解决。 首先还是import相关模块 from sklearn.model_selection import train_test_split import jieba from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from sklearn import preprocessing from tensorflow.python.keras.utils.np_utils import to_categorical import pandas as pd from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Embedding, Conv1D, MaxPooling1D, BatchNormalization, LeakyReLU, GRU from tensorflow.keras.layers import Flatten, Dropout import tensorflow as tf import numpy as np import os import matplotlib....

April 9, 2021 · 2 min · Rufus