前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习|中文文本的分类(建模篇)

深度学习|中文文本的分类(建模篇)

作者头像
罗罗攀
发布2019-02-26 10:37:13
5590
发布2019-02-26 10:37:13
举报

前言

上回我们处理好了中文文本,具体的步骤如下:

  • 数据情况
  • 中文文本分词
  • 建立token
  • token转换为列表
  • 统一长度

那这篇文章我们就使用MLP和LSTM模型来训练我们的数据。

MLP建模

模型结构
  • 嵌入层:用于转换为向量列表(NLP知识点)
  • 平坦层
  • 隐藏层
  • 输出层
建立模型
代码语言:javascript
复制
from keras.models import Sequential
from keras.layers import Dense,Dropout,Embedding,Flatten
model = Sequential()
model.add(Embedding(output_dim=32,
                    input_dim=10000, 
                    input_length=100))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(units=256,
                activation='relu' ))
model.add(Dropout(0.2))

model.add(Dense(units=1,
                activation='sigmoid' ))
训练模型
代码语言:javascript
复制
model.compile(loss='binary_crossentropy', 
              optimizer='adam', 
              metrics=['accuracy'])

train_history =model.fit(X_train, y_train,batch_size=100, 
                         epochs=10,verbose=2,
                         validation_split=0.2)
测试
代码语言:javascript
复制
scores = model.evaluate(X_test, y_test, verbose=1)
scores[1]

# result 0.7925

LSTM建模

LSTM模型是一种递归神经网络,用来解决RNN的长期依赖问题的。

模型结构
  • 嵌入层:用于转换为向量列表(NLP知识点)
  • LSTM层
  • 隐藏层
  • 输出层
建立模型
代码语言:javascript
复制
from keras.models import Sequential
from keras.layers import Dense,Dropout,Embedding,Flatten,LSTM

model = Sequential()
model.add(Embedding(output_dim=32,
                    input_dim=10000, 
                    input_length=100))
model.add(Dropout(0.2))
model.add(LSTM(32))
model.add(Dense(units=256,
                activation='relu' ))
model.add(Dropout(0.2))
model.add(Dense(units=1,
                activation='sigmoid' ))
训练模型
代码语言:javascript
复制
model.compile(loss='binary_crossentropy', 
              optimizer='adam', 
              metrics=['accuracy'])

train_history =model.fit(X_train, y_train,batch_size=100, 
                         epochs=10,verbose=2,
                         validation_split=0.2)
测试
代码语言:javascript
复制
scores = model.evaluate(X_test, y_test, verbose=1)
scores[1]

# result 0.8025
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • MLP建模
    • 模型结构
      • 建立模型
        • 训练模型
          • 测试
          • LSTM建模
            • 模型结构
              • 建立模型
                • 训练模型
                  • 测试
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档