Skip to content

Caiyuan-Zheng/Product-Title-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Product-Title-Classification

Description

本项目是2019年服务外包大赛A01赛题--商品标题分类的深度学习开发部分。

项目总结:

我们的比赛选题是商品标题分类,属于nlp问题中的短文本分类。
我们的项目的基础框架包括数据的预处理,语言模型的预训练和文本分类模型。
在数据预处理时,jieba分词是中文分词最好的选择,使用方便且运行效率高。
去停用词的方法需要根据不同预料做出不同的调整。
对于中文数据,数据增强的效果一般不好,因为中文nlp任务缺乏对应的库。
语言模型的预训练有word2vec,glove,fasttext等方法,具体的效果也需要根据实际效果决定。
我们尝试了cnn,rnn,transform等多种模型,在rnn上的效果最好,一般来说cnn,rnn擅长处理短文本,transform适合处理长文本。
在完成了基础模型的搭建之后,我们针对原来模型的问题作出了不少的改进。
focal loss对应数据不均衡,数据不足可以通过在京东上爬取数据缓解,标签错误可以进行数据清洗。除此之外还有层次分类,半监督等提升准确率的方法。

项目结构

准备:我们是在google的colab上进行训练。可以从data文件google drive链接文件中获取数据集和预训练词向量,然后存放在你的项目的data文件夹中

(1)预处理:代码在预处理文件夹下。首先运行convert.py进行分词,再执行create_data.py将标题和标签转换为序列。你也可以考虑使用create_embedding.py生成词向量
(2)分类模型:可以直接运行对应的模型文件。对于层次模型,你需要分别训练三个层次对应的模型,最后进行层次分类
(3)爬虫:执行爬虫文件夹下面的try_colab.py就可以从京东上爬去每个分类的标题

模型的效果和对比(在50w数据集上,按4:1划分训练集和验证集,baseline)
CNN 84.8%
Abilstm 86.1%
Adversarial(word) 87.1%
Fasttext 86.0%
Adversarial(char) 83.8%
Bert 86.0%

Releases

No releases published

Packages

No packages published

Languages