基于word2vec+TextCNN 作文本分类
一. 准备工作:
-
环境:python3.7+torch+GPU
-
数据集:网上下载的4分类中文文本,如下图:

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

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





