项目中用到的算法_TextCNN

本文探讨了在文本分类任务中使用TextCNN的实践,包括环境配置、数据处理、模型结构和代码实现。重点讲解了预训练词向量的作用、模型调优策略以及在实际场景中遇到的badcase分析,如特征抽取不一致、模型过度依赖某特征、泛化能力不足等问题,并提出了相应的优化解决方案。
摘要由CSDN通过智能技术生成

文本分类

训练的trick, 接着看 https://cloud.tencent.com/developer/article/1897835

fasttext

TextCNN 文本分类

1. 环境

torch==1.9.0
gensim==3.8.3

gensim4.x版本与3.x版本有些参数名变了,报错了百度下都可以解决。

2. 数据

百度云:链接
提取码:96fu
(后续整理到Github数据集中)

模型结构在这里插入图片描述

这是一个文本情绪二分类的实现。

  • activation function 激活函数
  • univariate vectors concatenated together to form a single feature vector 单变量向量连接在一起,形成一个单一的特征向量
  • softmax function regularization in this layer 在这一层中,softmax正则化
class TextCNN(nn.Module):
    def __init__(self, config):
        super(TextCNN, self).__init__()
        self.embedding = nn.Embedding(config.vocab_size, config.embedding_size)
        if config.use_pretrained_w2v:
            self.embedding.weight.data.copy_(config.embedding_pretrained)
            self.embedding.weight.requires_grad = True

        self.convs = nn.ModuleList([nn.Conv2d(1, config.kenel_num, (k, config.embedding_size)) for k in config.kenel_size])

        self.dropout = nn.Dropout(config.dropout)
        self.fc = nn.Linear(config.kenel_num * len(config.kenel_size), config.num_classes)
    
    def forward(self, x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值