用Text_cnn做NLP文本分类实践

        本次项目是文本分类任务,在做这个任务之前犹豫过是不是先写有个文本生成类的,前段时间也做了个对中文的词预测(只有数据处理和用到的模型不一样),但是考虑到文本分类在NLP也是最普遍的,很多项目的开始都会出现,以下将整理我的知识点,必要的时候会放一些代码

一:数据处理准备

        一:收集数据        

                可通过爬虫,下载,或者是huggingface中提取都可以

        二:数据预处理

                在这一步骤开始非常的重要,数据的质量会直观的影响分类的结果

                1:解析类别:

                 本地中有多个文件数据例如(体育,股票,教育...),每个文件夹里面对应相关的文本信息,首先需要将每个文件夹定一个一个标签,例如(体育:A,股票:B,教育:C)

                2:加载所有文件:

                        读取所有文件下的文本信息

                3:词向量库准备

                        1:分词:使用jieba分词器进行分词,去除停用词

                        2:设置文本长度,过长了就裁剪,长度不够用pad补充

                        3:对分词之后的文本储存,并且另外存储出现的词,每次词出现的次数做个字典,进行排序(需要额外添加一个PAD),为预测不存在的词做准备        

                        4:数据增强:随机截取文本,随机mask;采用此功能是为了增加模型的泛化能力,可以更好的处理不同的输入和输出

                        5:重采样:在文本分类的任务中,数据集的不平衡是一个常见的问题。这种不平衡导致了训练的过程中对出现量多的数据过拟合,对量少的数据容易忽略,因此实现每个epoch重采样,避免较多的类别没有加入训练

                        

三:模型准备

        采用TextCnn模型,是因为是采用了卷积神经网络CNN,模型通过嵌入,卷积层,池化层和全连接层结构提取特征,特征的提取更加适合分类的任务

 四:训练模型

        在准备好数据和模型,以下可以正式的开始训练模型,

        1:数据给模型训练,使用交叉熵损失函数

        2:梯度下降,反向传播,更新梯度

        3:计算准确率,精准率

         4:跟新学习率

五:总结

        数据准备的时候可以使用训练好的词料库,也可以用word2vec,比上述我的方式都更加的适用,另外这个模型的项目采用到的都是一些常见的知识点,很多我都一句话概括。以下我放上代码以供参考。

链接: https://pan.baidu.com/s/1njA1pteHQVe2Q3vC_qlQRw 提取码: ey2i 
--来自百度网盘超级会员v4的分享       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值