基于word2vec+TextCNN 实现中文文本分类

本文介绍了一种结合word2vec与TextCNN进行中文文本分类的方法,通过实例演示了从环境配置到模型训练的全过程。

基于word2vec+TextCNN 作文本分类

一. 准备工作:

  1. 环境:python3.7+torch+GPU

  2. 数据集:网上下载的4分类中文文本,如下图:

    文本内容样例:
    1.体育:“今晚19:30,《天下足球》不见不散黄小猫:今晚519:30的《天下足球》将由邵圣懿为您带来,因为段暄同学生病未愈”
    2.女性:“米园要不,我们试试?巫女的魔法瘦身:魔力减肥汤让你月减20斤汉方瘦身枳术汤”
    3.文学:“意林感恩节豪礼感恩双重回馈《意林》2012第1期附刮奖卡”
    4.校园:“新浪四川:成都城事50万年薪招教师外貌须有明星脸”

  3. 模块使用:

import os
import jieba
import torch
import joblib
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
import torch.optim as optim
  1. 模型参数配置
# 模型配置参数
class Config:
    label_map_dict = {
   
   '体育': 0, '女性': 1, '文学': 2, '校园': 3}  # 类别映射字典
    stopword = [i.strip() for i in open('./datasets/stop/stopword.txt', encoding='utf-8')]  # 停用词
    sentence_lenth = 50  # 句子截断长度
    batch_size = 10  # 批次数
    output_channel = 3  # 输出通道
    embedding_size = 5  # 嵌入词向量长度
    vocab_dict_ = joblib.load('./models/vocab_dict')
  1. 中文分词后编辑词汇表
# 生成词汇表
def vocab_dict(*args, base_path='./datasets/train'):
    vocab = set()
    for i in args:
        dataset = Dataset_(base_path, i)
        for s in range(len(dataset)):
            for v in dataset[s][0]:
                vocab.add(v)
    vocab_dict = {
   
   word: idx+1 for idx, word 
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值