背景:商品智能赋码是利用大数据+算法,对不同商品按照国家税率分类表做分类的工作,其难点在于:
- 国家税率分类有3000多个类别
-
训练样本基于 1000多万已有的发票信息,商品名称由开发票的商户填写,名称随意不规范,且归属的税率不准确。
税率分类1.png
目标: 研究在不同的切词方法对相同分类算法的准确性影响以及影响程度量化比较
切词方法:
结巴分词(jieba)
斯坦福分词(stanfordcorenlp)
Simplified Chinese Text Processing(snownlp)
清华分词(thulac)
结巴分词(jieba):jieba是一个在中文自然语言处理中用的最多的工具包之一,它以分词起家,目前已经能够实现包括分词、词性标注以及命名实体识别等多种功能。
斯坦福分词(stanfordcorenlp):是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger)、命名实体识别(named entity recognizer (NER))、情感分析(sentiment analysis)等功能。
Simplified Chinese Text Processing(snownlp):snownlp是一个处理中文的类库,有中文分词、词性标注、情感分析、文本分类、拼音、繁简、提取关键词摘要等功能。
清华分词(thulac):是一款相当不错的中文分词工具,准确率高、分词速度快;并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等。
训练集: 用于不同分词器的商品税率分类训练、交叉验证等,包含200个标准税率编码,共388516条数据,每个税率编码中随机选取500-5000条数据;
测试集: 用于模型效果验证,包含200个标准税率编码,与训练集完全一致,共 20998 条数据,每个税率编码中随机选取20-200条数据,数据的格式与训练集一致。
模型算法:
1. fastText
2. LSTM
模型说明:
-
fastText:
fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,其特点是 1. 它是一个浅层网络,通过构造softmax线性多类别分类器对文本进行分类;2. 在训练时间上比深度网络快许多数量级。在标准的多核CPU上, 能够训练10亿词级别语料库的词向量在10分钟之内,能够分类有着30万多类别的50多万句子在1分钟之内。
下面是fastText模型架构:
fasttext架构.jpg
fastText模型也只有三层:输入层、隐含层、输出层(Hierarchical Softmax),输入都是多个经向量表示的单词,输出都是一个特定的target,隐含层都是对多个词向量的叠加平均。
-
LSTM:
长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络(RNN),相比普通的RNN,LSTM能够在更长的序列中有更好的表现。
在短文本多分类的算法中,LSTM也有很好的表现。
下面是LSTM的模型架构(摘自百度百科):
lstm模型.png
上图底下是四个S函数单元,最左边函数依情况可能成为区块的input,右边三个会经过gate决定input是否能传入区块,左边第二个为input gate,如果这里产出近似于零,将把这里的值挡住,不会进到下一层。左边第三个是forget gate,当这产生值近似于零,将把区块里记住的值忘掉。第四个也就是最右边的input为output gate,他可以决定在区块记忆中的input是否能输出 。
测试结果:
测试说明:
- NOCUT 是不使用任何切词方法,只是将文本切分成单个的字的方法,注意到该方法LSTM模型优于斯坦福切词下的LSTM;
- 各种切词方法均使用默认的设置;
- 不同的切词方法下使用的LSTM和fastText模型均使用相同的参数设置。
结论:
- 分类算法相同的条件下,短文本的不同切词方法其实决定了输入词特征的区分程度,不同的词库、不同的切分方法,对文本的分类准确度有一定的影响,举个简单的例子:汽油,在单个字分词下,被分类到 护肤用化妆品 这个税目下(这是因为大量化妆品中包含 油 这个字),而在清华分词下,汽油被正确分类到 车用汽油 税目下;
- 总体准确率 LSTM 优于 fastText;
- 不同的切词方法对模型的准确率有影响,其中 清华分词器 要优于其它三个分词器;
- 相同的切词方法下,不同的分类算法对准确度的影响差别在 1%-2% 左右,不同的切词方法,不同的分类算法准确度最大差可达 4% 左右;
- 分类的准确度最终取决于样本集的准确程度以及模型算法的参数调整,在经过对大量样本集的不断校验和对模型的参数迭代调优,最终,线上的分类抽样准确度可以达到 90% 。