DeepClassifier——基于pytorch的易用的文本分类库

DeepClassifier是一个基于PyTorch的文本分类库,旨在简化文本分类任务。它支持多种模型,包括TextCNN和BertTextCNN,并提供数据处理、训练等功能。库的设计允许用户灵活地自定义和重写代码,适用于快速开发和比赛项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DeepClassifier——基于pytorch的易用的文本分类库

动机

首先谈谈我为什么要开发这个库。有两个原因吧~第一,我自身是做NLP这块的,相信做NLP的小伙伴们都知道,文本分类是NLP中最基础并且是最广泛的任务。同时这也是我们入门NLP的尝试的第一个任务。虽然目前已有的文本分类模型都相对简单,但是实现起来用有点费时间,尤其是在打比赛的时候,很耗费时间。而目前市面上并没有这样用于文本分类的库,所以我就希望能够将经典的文本分类模型以及一些常用的模型组合进行实现,将其非常成一个库,那么我就只需要调用这些实现好的模型,而不用再次花时间与精力去复现模型;第二,作为一个程序员,总是希望自己的成果能够被别人看到,所以就索性将这些封装好的模型做成了python库,并进行了开源,也是希望能够帮助更多的人,让世界变得更加美好一些吧(这是我作为一个程序员的信仰吧,相信能够改变世界hhh)~🥳

介绍

地址:https://github.com/codewithzichao/DeepClassifier
地址:欢迎进入DeepClassifier

DeepClassifier是一个易用的文本分类库,基于pytorch进行二次开发。对于DeepClasifier,我不希望封装的太过于高级,那样会让人感到不舒服,所以我主要封装了模型部分以及训练/测试/预测 部分的代码。如果你希望自己写训练/测试/预测 部分,也是可以重写的,各个模块之间是低耦合的,所以灵活性非常大。

欢迎大家安装、star以及fork!🥳

安装

DeepClassifier的安装与其他的python库是一样的,都可以通过pip来进行安装,安装命令如下:

pip install -U deepclassifier

已支持模型列表

model source
TextCNN Convolutional Neural Networks for Sentence Classification ,2014 EMNLP
RCNN Recurrent Convolutional Neural Networks for Text Classification,2015,IJCAI
DPCNN Deep Pyramid Convolutional Neural Networks for Text Categorization ,2017,ACL
HAN Hierarchical Attention Networks for Document Classification, 2016,ACL
BERT BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,2018, ACL
BertTextCNN BERT+TextCNN
BertRCNN BERT+RCNN
BertDPCNN BERT+DPCNN
BertHAN BERT+HAN
coming soon

未来将会支持更多的文本分类模型,请持续关注~喜欢的同学可以安装、star以及fork呀~

快速使用

安装之后,怎么使用呢?非常简单!下面我将展示怎么使用DeepClassifier去完成你的项目~🥳

数据集

kaggle dataset: sentiment-analysis-on-movie-reviews

Pretrained embedding: GloVe download

BERT pretrained weights: download

数据探索

这是一个5分类的文本分类问题,我们首先可以来看看训练集、验证集、测试集的样本长度以及训练集、验证集的标签分布情况~如下:
训练集/验证集/测试集的样本长度分布情况
这是训练集/验证集/测试集的样本长度分布情况,可以看到三者的样本长度分布情况大体一致,并且多数集中在0~150之间。下面来看一下训练集/验证集的标签分布情况:
训练集/验证集的标签分布情况
我们可以看到label为2的标签是最多的,并且最多的标签与最少的标签差距很大,所以可能存在类别不均衡的问题,在进行模型训练的时候,就需要做一些处理。在这里,为了方便,我就不处理了~

数据处理

NLP中的数据处理主要是:1.对样本进行分词;2.根据词汇表来使样本向量化;3.对 data进行padding,以便能够batch 运行,最终输入到模型中的输入的维度是:[batch_size,seq_length]。除此之外,由于我们使用了预训练好的词向量,所以我们需要加载词向量,具体的代码请见
DeepClassifier/examples/preprocessing.py,核心代码如下:

def load_pretrained_embedding(pretrained_embedding_file_path):
    '''
    # 加载预训练的词向量,这里使用GloVe
    :param pretrained_embedding_file_path: 预训练词向量文件存放的路径
    :return:
    '''
    embedding_matrix = []
    word2idx = dic
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值