本章节主要研究内容:基于PyTorch 深度学习工具来完成短文本分类
文章分类服务对文章内容进行深度分析,输出文章的主题一级分类、主题二级分类及对应的置信度,该技术在个性化推荐、文章聚合、文本内容分析等场景具有广泛的应用价值.
根据文本描述的内容方向,针对新闻媒体的文章做自动分类,例如军事类、农业类、体育类、娱乐类等多种类别方向
定制训练文本审核的分类模型,如判断文本中是否有交易、涉黄涉赌小广告等违规描述类型的内容
电商业务可根据用户对商品的评价内容维度,做物流类、服务类、产品类等问题描述方向的自动分类
通过对需要舆情监控的实时文字数据流进行情感倾向性分析,把握用户对热点信息的情感倾向性变化
下面时在整个新闻个性化推荐领域 文本分类的数据内容
那么,我们接下来就一个真实的案例给大家介绍如何通过深度学习来对新闻文本进行分类
文本分类作为文本理解的基本任务、能够服务于大量应用(如文本摘要、情感分析、推荐系统等等),更是长期以来学术界与工业界关注的焦点.
(1)文本分类处理方案:
采取人设定特征(词袋、词性标注、树核等)或者ML/DNN对文本进行表达(朴素贝叶斯 、SVM)。
(2)具体来说分为以下几种:
(3)短文本处理难点
短文本由于内容简短,易于阅读和传播,被民众广泛使用,在新闻标题、社交媒体信息和短信中随处可见,但是内容简短、缺失会引起数据稀疏,与段落或者文章不同,短文本并不总能观察出句法,且短文本存在的多义和错误往往使内容不清楚,难以理解语义,导致模型分类没有足够特征进行类别判断,分类任务困难
import numpy as np
import pandas as pd
import torch
import jieba
print('numpy.version = ',np.__version__)
print('pandas.version = ',pd.__version__)
print('torch.version = ',torch.__version__)
print('jieba.version = ',jieba.__version__)
numpy.version = 1.16.2
pandas.version = 0.23.4
torch.version = 1.0.1.post2
jieba.version = 0.39
GPU显存:16G(GPU环境下训练深度学习模型非常快)/CPU环境:12G (训练模型慢)
Python版本:3.7
依赖库:
numpy 1.13.3
jieba 0.39
torch 1.x
pandas 0.23x
tqdm
sklearn
对于多分类问题,可以使用softmax函数作为分类器,最小化交叉熵(Cross Entropy)
传统机器学习文本分类算法
深度学习文本分类算法
基于深度学习方法 (基于word2vec):
这里基于PyTorch深度学习工具,TextCNN 模型训练
对于大型项目在线服务功能,我们需要使用JAVA或者C++、Go 进行Web 服务部署,对于我们中小型项目我们采用Flask Web 框架进行部署
http://127.0.0.1:5000/v1/p?q=昆明拟规定乘地铁禁止手机外放声音
《Convolutional Neural Networks for Sentence Classification》
$tensorboard --logdir 08-25_14.54
文本分类项目主要 基于深度学习来完成。这里采用CNN完成短文本的分类,采用PyTorch 深度学习工具。
$ tree -L 2
.
├── api.py
├── config_file
├── data
│ ├── ckpts
│ ├── data
│ ├── log
├── data_processing.py
├── dataset.py
├── docs
├── images
├── main.py
├── models
│ ├── TextCNN.py
├── notebook
├── static
│ ├── css
│ ├── img
│ └── js
├── templates
│ └── index.htm
└── utils.py
### tensorboardX 可视化
### 在线服务