基于LSTM的中文文本多分类实战(详细注释)

本文介绍了使用LSTM进行中文文本多分类的实践,包括数据集介绍、数据预处理、模型构建和训练。数据集来自ChineseNlpCorpus,包含10个类别和6万多条评论。通过Pandas对数据进行预处理,使用factorize转换类别,去除符号和停用词。模型采用Keras的Sequential模型,包含Embedding、SpatialDropout1D和LSTM层,最后是全连接层,激活函数为softmax,损失函数为categorical_crossentropy。经过5个训练周期,模型训练效果良好。
摘要由CSDN通过智能技术生成

使用深度学习中的LSTM(Long Short-Term Memory)长短期记忆网络,来尝试一下中文文本多分类,LSTM它是一种时间循环神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

数据集

ChineseNlpCorpus的online_shopping_10_cats
10 个类别,共 6 万多条评论数据,正、负向评论各约 3 万条,包括书籍、平板、手机、水果、洗发水、热水器、蒙牛、衣服、计算机、酒店

代码

本人没有怎么使用过pandas,注释可能会比较啰嗦

查看数据

import pandas as pd
df = pd.read_csv('文件路径')#将逗号分隔值(csv)文件读取到DataFrame中
df=df[['cat','review']] #id为该评论所属类别 review为评论具体内容
print("数据总量: %d ." % len(df))
df.sample(10)#对数据集进行抽样查看

在这里插入图片描述
查看并清洗空值

print("在 cat 列中总共有 %d 个空值." % df['cat'].isnull().sum())#查看cat列的空值
print("在 review 列中总共有 %d 个空值." % df['review'].isnull().sum())
df[df.isnull().values==True]#isnull返回一个布尔数组
df = df[pd.notnull(df['review'])]#保留非null的review

查看数据分布

前言:DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。类似于matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位

d = {
   'cat':df['cat'].value_counts().index, 'count': df['cat'].value_counts()}#使用字典方法创建dataframe
df_cat = pd.DataFrame(data=d).reset_index
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值