# 第十届中国大学生服务外包创新创业大赛
分类一直是数据科学界研究的重点问题,它被广泛地应用到生活的各个方面。伴随着电商行业的快速发展。商品的数量越来越多,需要对商品制定分类,便于找寻自己所需的商品。针对现在每天都会产生的大量商品名称,如果人工去为商品分类,不仅工作量巨大,速度慢,而且也会出现分类错误的情况。因此本项目旨在寻找一种分类方法,能够实现**商品的快速准确的分类**,降低人工成本以及出错率。
>可视化Web端链接:http://www.bestdoublelin.com:8080/fuwu/showdata
>项目宣传视频链接:https://pan.baidu.com/s/1jFQ3mY7QW1waBWzvP2JOQg 提取码:n0fp
## 项目创意
本项目采用**基于CNN的文本分类模型**实现自动分类。文本分类模型大体上分为基于**传统机器学习**和基于**深度学习**的文本分类模型,后者与前者最主要的区别是随着数据规模的增加其性能也不断增长。本项目的数据集在万级以上,因此基于深度学习的文本分类模型能够更加完美地解释它。
随着现在大数据时代的到来,基于深度学习模型的文本分类模型已经成为了主流,其中CNN模型在文本分类任务中是兼具效率与质量的理想模型。因此基于CNN的文本分类模型具有良好的商业价值和社会应用价值。
## 项目特色
- 采用针对大量数据集的**深度学习框架**从而可以自动地从已构建的数据集上归纳出一套分类规则;
- 采用**结巴中文分词**技术能够将句子最精确地切开,适合文本分析;
- 采用**One-Hot**技术使文本数值化能够有效降低异常值对模型的影响,增强模型稳定性;
- 采用目前业界普遍认为准确度最高的模型**TextCNN**进行文本分类,兼具效率与质量;
- 采用MVC架构实现用户与系统之间的交互,支持多种查询数据的方式,可视化效果好。
## 数据集
数据集请自行下载: https://pan.baidu.com/s/1Fw9Zb9gV3Y6GaloOSne6hQ 提取码: r1p0
训练结果模型地址:https://pan.baidu.com/s/1hZSDZmBfbA04E_NKfm0taA 提取码:wznj
通过比对模型的训练的结果,最终采取训练集:验证集为 **19:1** .
数据集划分如下:
- 训练集: 475,000
- 验证集: 25,000
- 测试集: 4,500,000
## 环境
- python 3
- jieba(中文分词) 0.39
- pandas 0.24.1
- numpy 1.16.2
- tensorflow 1.13.1
## 数据预处理
我们希望能够得知商品信息,自动对其进行分类,比如针对“腾讯QQ币148元148QQ币148个直充148Q币148个Q币148个QQB★自动充值”这样一个商品信息,预期得到“本地生活--游戏充值--QQ充值”,那么首先第一步就是要对原始数据进行预处理,在本项目中主要处理以下问题:
- 除去非文本部分
- 处理中文编码
- 处理某些行堆积几百条数据
- 结巴中文分词处理
- one-hot表示数据与标签
## CNN文本分类模型
### CNN的大致结构:
![](https://github.com/Cynicicm/Service-outsourcing/blob/master/Image/CNN%E7%BB%93%E6%9E%84.png)
### CNN配置参数
CNN可配置的参数如下所示,在`train_cnn.py`中。
```python
class TCNNConfig(object):
"""CNN配置参数"""
# 模型参数
embedding_dim = 128 # 词向量维度
seq_length = 40 # 序列长度
num_classes = 1199 # 类别数
num_filters = 128 # 卷积核数目
filter_sizes = 3,4,5 # 卷积核尺寸
vocab_size = 160000 # 词汇表大小
fc_hidden_size = 1024 # 全连接层神经元
dropout_keep_prob = 0.5 # 防止过拟合
dropout # 保留比例
learning_rate = 0.001 # 学习率
batch_size = 256 # 每批训练大小
num_epochs = 40 # 总迭代轮次
evaluate_every = 800 # 每多少步进行一次验证
```
### 参数变化过程
| 参数 | 第一次 | 第二次 | 第三次 | 第四次 |
| :---------- | :---------- | :---------- | :---------- | :---------- |
| num_epochs | 35 | 35 | 100 | 40 |
| batch_size | 64 | 512 | 256 | 256 |
| Learn_rate | 0.001 | 0.01 | 0.001 | 0.001 |
| 训练集验证集比例 | 19:1 | 19:1 | 4:1 | 19:1 |
| 最终结果 | 第一次 | 第二次 | 第三次 | 第四次 |
| :---------- | :---------- | :---------- | :---------- | :---------- |
| Recall | 0.628637 | 0.824505 | 0.843764 | 0.857021 |
| accuracy | 0.624419 | 0.823446 | 0.83916 | 0.857925 |
| F | 0.625825 | 0.823799 | 0.840695 | 0.853659 |
根据上表,在这里我们展示第四次效果最佳情况下的一些结果变化过程.
再此之前我们先解释一下一些结果值的概念。
>现在假设我们的分类目标只有两类,计为正例(positive)和负例(negtive)分别是:
>1)True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);
>2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
>3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
>4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。
![](https://github.com/Cynicicm/Service-outsourcing/blob/master/Image/%E6%9C%AF%E8%AF%AD%E6%B7%B7%E6%B7%86%E7%9F%A9%E9%98%B5.png)
```
首先有关TP、TN、FP、FN的概念。大体来看,TP与TN都是分对了情况,TP是正类,TN是负类。
则推断出,FP是把错的分成了对的,而FN则是把对的分成了错的。
1.准确率(Accuracy)。顾名思义,就是所有预测正确(正类负类)的占总的比重。
Accuracy=(TP+TN)/(TP+TN+FP+FN)
2.精确率(Precison),查准率。即正确预测为正的占全部预测为正的比例。
Precision=TP/(TP+FP)
3.召回率(Recall),查全率。即正确预测为正的占全部实际为正的比例。
Recall=TP/(TP+FN)
4.F1值,算数平均数除以几何平均数,且越大越好。
2/F1=1/Precision+1/Recall
5.Epoch,使用训练集的全部数据对模型进行一次完成训练,被称之为“一代训练”。
6.Batch,使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更
新,这一部分样本被称为“一批数据”。
7.Iteration,使用一个Batch数据对模型进行一次参数更新的过程,被称之为“一
次训练”。
```
## 结语
整个模型读取450万待预测数据并处理的效率为 **128,571个/分钟**,打标签的效率为 **97,825个/分钟**、准确率为 **85.792%**,为训练集打标签的准确率为
**91.593%**。实际上如果原始数据集更加规范准确、每类商品信息的数据集更大,我们模型的准确率会更高。
**文件说明**
```
data_helper.py 包含数据预处理函数,以及对文件的操作函数都在里面
predict_cnn.py 提供模型的预测
textCNN.py CNN模型
train_cnn.py 训练模型
```
**运行步骤:**
> 每次更改训练集需要重新运行步骤1,2再进行预测
```
1.运行data_helper.py 构造词汇表,获得数据分类
2.运行train_cnn.py 进行模型的训练(在logs文件可以找到相关日志文件查看记录)
3.运行predict_cnn.py进行预测
```
没有合适的资源?快使用搜索试试~ 我知道了~
基于深度学习的短文本分类源码.zip
共92个文件
class:13个
java:13个
jar:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 199 浏览量
2024-01-18
07:57:53
上传
评论
收藏 49.8MB ZIP 举报
温馨提示
1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设项目的学生、或者相关技术学习者作为学习资料参考使用。 3、该资源包括全部源码,需要具备一定基础才能看懂并调试代码。 基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码.zip基于深度学习的短文本分类源码...
资源推荐
资源详情
资源评论
收起资源包目录
基于深度学习的短文本分类源码.zip (92个子文件)
project_code_0628
官方赛题信息
赛题.pdf 1.15MB
报名.pdf 703KB
DataViewWeb
.classpath 1KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 357B
org.eclipse.core.resources.prefs 63B
.jsdtscope 552B
org.eclipse.wst.common.component 463B
org.eclipse.wst.common.project.facet.core.xml 403B
org.eclipse.wst.jsdt.ui.superType.container 49B
.gitattributes 66B
src
com
fuwu
dao
Conn.java 1KB
ReaderTest.java 2KB
Test.java 4KB
sevlet
upload.java 3KB
Jump_1.java 2KB
Jump_2.java 2KB
BatchQuery.java 3KB
Reduce.java 2KB
SingleQuery.java 2KB
Next.java 2KB
Add.java 2KB
Showdata.java 2KB
vo
Classification.java 914B
WebRoot
show.jsp 2KB
WEB-INF
classes
com
fuwu
dao
Test.class 4KB
ReaderTest.class 2KB
Conn.class 3KB
sevlet
Jump_1.class 2KB
Jump_2.class 2KB
upload.class 3KB
SingleQuery.class 2KB
Next.class 2KB
Showdata.class 2KB
BatchQuery.class 4KB
Reduce.class 2KB
Add.class 2KB
vo
Classification.class 1KB
lib
poi-ooxml-schemas-4.0.1.jar 7.41MB
mysql-connector-java-5.0.5-bin.jar 501KB
jstl.jar 20KB
javacsv-2.1.jar 13KB
poi-ooxml-4.0.1.jar 1.68MB
standard.jar 384KB
poi-4.0.1.jar 2.59MB
index.jsp 3KB
js
bootstrap.js 70KB
jquery-1.11.3.min.js 94KB
tip1.jsp 4KB
show.css 2KB
css
bootstrap.css 149KB
tip3.jsp 5KB
META-INF
MANIFEST.MF 39B
fonts
glyphicons-halflings-regular.svg 106KB
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.woff 23KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.woff2 18KB
tip2.jsp 3KB
.project 1018B
README.md 2KB
Image
批次数据查询.png 62KB
术语混淆矩阵.png 8KB
CNN结构.png 26KB
单一数据查询.png 26KB
整体数据显示.png 56KB
A类-1801047-TempName-2018网络零售平台商品分类项目文件包
A类-1801047-TempName-2018网络零售平台商品分类项目详细方案.pdf 1.63MB
A类-1801047-TempName-2018网络零售平台商品分类项目概要介绍.pdf 334KB
A类-1801047-TempName-2018网络零售平台商品分类项目简介PPT.pptx 3.19MB
A类-1801047-TempName-2018网络零售平台商品分类项目详细方案.doc 1.41MB
A类-1801047-TempName-2018网络零售平台商品分类项目概要介绍.doc 211KB
README.md 8KB
code
.idea
.name 20B
other.xml 233B
vcs.xml 180B
workspace.xml 35KB
misc.xml 303B
Multi_Label_Classify.iml 589B
modules.xml 292B
train_cnn.py 13KB
predict_cnn.py 7KB
data_helper.py 20KB
textCNN.py 5KB
OriginData
category.txt 15KB
handledTrain.csv 72.05MB
trainData.csv 64.93MB
valData.csv 7.13MB
third_Key_Label_Value.txt 67KB
vocab.txt 1.23MB
test.tsv 30KB
__pycache__
textCNN.cpython-37.pyc 3KB
data_helper.cpython-37.pyc 16KB
共 92 条
- 1
资源评论
辣椒种子
- 粉丝: 4237
- 资源: 5837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功