一、数据准备
问题场景:在电商行业,想统计一类商品的销量如何,需要对商品做分类加标签,以完成后续的数据统计。
从商品标题(productTitle)中分类出商品品类(secondtype)。
分类标签观察数据后,定义为:['上衣','其它','包包','外套','套装','家纺','日常','日用','裙子','裤子','连衣裙','配饰','链表','鞋']
数据是用爬虫抓的某网站的商品标题,对商品标题人工标记分类做训练数据。
二、环境配置
脚本:python3.6,anaconda3
安装包:jieba分词,scikit-learn
三、数据处理
分词,去除停用词,转成词向量1
2
3
4
5
6
7
8
9import jieba
import pandas as pd
import random
sentences=[]
df = pd.read_csv('./data/product.csv',encoding='UTF-8')
for i,item in enumerate(df['productTitle']):
segs=jieba.lcut(item)
sentences.append((" ".join(segs),df['secondtype'][i]))
四、模型训练
1 | random.shuffle(sentences) |
准确率:1
2->
88.95%
五、模型检验
1 | # load the model from disk |
结果输出:1
2
3
4
5
6
7
8
9
10
11->
['nan' 'nan' 'nan' 'nan' 'nan' '裙子']
['nan' 'nan' '套装' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' '裤子' '套装']
['nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' '日用' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan']
['nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' '日用' 'nan' 'nan' 'nan' 'nan']
['nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' '日用'
'nan']
结果中可以看到,每个标题被分词,转换成词向量,并建立单个词和类型的对应权重,返回的结果数组中出现最多的词即为该标题的类型。