2019-设计与开发项目详细设计方案_第1页
2019-设计与开发项目详细设计方案_第2页
2019-设计与开发项目详细设计方案_第3页
2019-设计与开发项目详细设计方案_第4页
2019-设计与开发项目详细设计方案_第5页
已阅读5页,还剩42页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统技术文档网络零售商品分类系统(HPTC-System)队伍名称:飞天小仙女参赛选手:,使用人:公开密级:公开日期:2019-03-27版本历史版本/状态作者参与者起止日期备注V0.1.012.171.20设计技术文档总体框架V0.1.11.202.12撰写引言、系统概述V0.1.22.122.20撰写前后端实现文档算法建模与实验分析、参数调优V0.1.32.203.16V0.1.43.163.17参考文献附录V0.1.53.173.26润色语言,调整格式V0.1.53.27校对格式,润色措辞文件状态: 草稿 正式发布 正在修改文件标识:飞天小仙女V0.1.52019-3-27当前版本:作者

2、:完成日期:目录系统技术文档1引言4设计背景4数据来源4系统概述7需求概述7展示系统总体设计流程82.4 硬件环境1012环境112.5对比模型建模与算法分析11文本特征的提取(词向量训练)11TF-IDF 算法11CBOW 模型13skip-gram 模型14对比模型-文本分类模型15基于传统机器学习的支持向量机153.2.2 基于深度学习的N173.2.3 基于深度学习的TextRNN19基于 smote 改进的fastText 文本分类模型19层次 softmax19FastText 原始模型22OneHot-smote 过采样文本抽取技术24基于 smote 改进的fastText 的

3、精准快速分类模型27实验预工作28实验环境与实验数据28实验环境28实验数据29数据预处理305.2.1 分词30停用词32异常数据的处理33分类评价33实验与分析34实验总体流程说明34各参数调校与实验结果的分析35本算法与其他算法的分析与比较40前后端功能实现43前端实现(B/S 架构)43后端实现45数据库设计46参考文献471引言1.1 问题背景分类一直是数据科学界研究的重点问题,它被广泛地应用到生活的各个方面。伴随着行业的快速发展,商品的数量越来越多,需要对商品制定分类,便于找寻自己所需的商品。针对现在每天都会产生的大量商品名称,如果人工去为商品分类,不仅工作量巨大、速度慢,而且也会

4、出现分类错误的情况。因此,很多企业对该问题进行重金投入研究,期待寻找一种分类方法,能够实现对商品的快速准确的分类,降低人工成本以及出错率。1.2 数据来源本文通过scrapy 框架 32 进程对国内各大的商品标题与分类进行了爬取。以天猫电扇进行举例:(图 1.1 爬取红色框一级)(图 1.2 爬取二,三级)(图 1.3 基于整体爬取商品信息)以天猫为主体,以其他为辅,构建了一个 200w 条商品信息的数据集。(图 1.3 训练集部分展示)作为其实际分类,同 1258 种,其中分类统计其中每个商品均包含 3 级得到一级22 个,二级192 个,三级1258 个,并且如表 1.1,1.2,1.3

5、所示的各级样例,训练数据各类的表 1.1 一级样本极其不均衡:(共计 22 个)数目数目服饰鞋帽323476珠宝饰品91500厨具锅具90716运动户外电脑/办公56384杂志128272箱具95024家用/家具6224教育音像7296数码138764宠物生活9072表 1.2 二级(共计 192 个)数目数目-营养健康1572杂志-外语学习3168-护理护具5104杂志-艺术3908器械4332厨具锅具-刀剪菜板1428-本地生活1400生鲜水果1908汽配用品331200家用电器7412家居家装124056音乐影视14164钟表礼品家装建材食品/饮料/酒水49288母婴用品/玩具乐器147

6、812-传统滋补584杂志-经济1392-中西药品2040杂志-童书18656厨具锅具-餐具8792杂志-文学4940厨具锅具-茶具/咖啡具31200杂志-农业/林业576.表 1.3 三级(共计 1258 个)数目数目家用电器_生活电器-净化器112_中西药品-感冒咳嗽344100家用电器_生活电器-机456_中西药品-补肾壮阳236224家用电器_生活电器-挂烫机/熨斗132_中西药品-补气养血160268家用电器_生活电器-生活电器配件84_中西药品-肠胃消化352104家装建材_五金家装-家用五金1176_中西药品-儿科用药5656.(数据的的统计可以查看附录文件 total_labe

7、l.execl)2系统概述2.1 需求概述根据开档,HPTC 网络零售商品分类系统从功能上可以分为三个模块:数据库、高效的分类算法()以及bs 界面(前端)可视化展示。每个模块之间彼此关过整理得到各模块功能要求如下:家装建材_五金家装-手动工具1820_中西药品-眼科用药家用电器_生活电器-加湿器64_中西药品-耳鼻喉用药家用电器_生活电器-取暖电器48_中西药品-皮肤用药家用电器_生活电器-电风扇164_中西药品-风湿骨外伤家用电器_生活电器-除湿机60_中西药品-维矿物质家用电器_生活电器-净水器1044_中西药品-妇科用药140厨具锅具-厨房配件22092杂志-建筑6244厨具锅具-烹饪

8、锅具4036杂志-小说4636厨具锅具-水具酒具23168杂志-历史4392-营养成分1692杂志-中小学162802.2展示系统总体设计流程(图 2.1 HPTC-System 总体流程)本方案针对项目需求,创立一套对文本进行快速而准确的文本分类的解决方训练数据 200w 条商品信息数据库不允许出现两个相同的商品信息与空白的商品信息与 bs 端进行交互与数据库进行交互立一种分类模型,利用训练数据对商品进行合理的判定。前端实现根据用户输入实现实时分类问题界面支持文本数据单输入(单条)支持文本数据多输入(多条)案。该方案能基于商品文本实现自动三级自动、快速、精准分类,同时实现了可视化展示的(前、

9、功能)基本能力。用户在可视化界面下依次或批量提交需要的文本后,服务器便会通过计算返回分类结果,用户可以根据结果分析的准确性或是结合其生产环境来提高生产力。系统设计从三个方面展开,如上图所示;首先通过分析训练集,建立与之相匹配的模型,并通过调参优化模型,包括模型的准确率、计算速度。使用第一方面建立的模型来建立测试集的数据库,其中包括测试集的数据、分词结果以及,这么做是为了优化测试集的查询速度。对于不在测试集的输入,提供实时方法。输入可以为单条文本或多条文本,这取决于用户的输入。服务端接收到用户输入时,通过我们建立的算法模型,实时计算出分类结果并将之返回于 Web 端展示。2.3 运行环境表前台运

10、行环境1表运行环境2表3 知识库构建(EMDT+QGDT)运行环境2.4 硬件环境Pymongo3.7.2Pkuseg0.0.21Tensorflow1.13.0Cython0.29.6Fasttext0.8.3Numpy1.16.2Keras2.2.4scikit-learn0.20.33.6Flask1.0.2Pkuseg0.0.21Fasttext0.8.3pymongo3.7.2MongoDB4.0.3Chrome任意版本1el(R) Xeon(R) CPU E5-2682 v4 2.50GHzRAM 8GBSSD 50GB2.5环境Centos 7 x64对比模型建模与算法分析33.

11、1文本特征的提取(词向量训练)3.1.1 TF-IDF 算法Frequency)是一种用于资讯检索TF-IDF(Term Frequency-Inverse与资讯探勘的常用技术。TF-IDF 是一种统计方法,用以评估一对于一个文件集或一个语料库中的其中一份文件的重要程度的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。MongoDB3.6Pycharm、Anaconda3、HTML+CSS+Javscript阿里云-轻量应用服务器 (华南-广州 39.105.17

12、6.189)Chrome 或其他浏览器这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否)其公式表现为(1)某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的 TF-IDF。因此,TF-IDF 倾向于过滤掉常见的词语,保留重要的词语。3.1.2 CBOW 模型CBOW 模型是一个两层结构, CBOW 模型没有隐含层, 通过上下文来中心词, 并且抛弃了词序信息。输入层: n 个节点,上下文共 2m 个词的词向量的平均值;输入层到输出层的连接边:输出词矩阵(图 3.1

13、 CBOW 模型)3.1.3 skip-gram 模型Skip-gram 词向量的基本是将每个词成一个k 维实数向量。它是Nikolov 等人一种可以在大规模数据集上进行训练的神经网络语言模型。Skip-Gram 模型和 CBOW 的思路是反着来的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量,即后验概率。训练流程如下:(图 3.2 skip-gram 模型)3.2对比模型-文本分类模型3.2.1 基于传统机器学习的支持向量机SVM 作为一种常用的模式识别方法,在上世纪 90 年代被 Vapnik 首次提出之后,目前已经广泛应用于文本分类中。当给定输入的训练样本集合D=(x1

14、,y1),(x2,y2),(xm,ym,其中 x1 为n 维特征向量,y-1,+1,若训练样本线性可分,则在空间中存在如公式 5 所示的超平面将样本分为两类。其中 w 为n 维法向量,主要决定超平面的方向,b 为偏置项,决定超平面与远点之间的距离(图 3.3 基于 SVM 的二分类数据划分示意图)进一步将样本中存在的噪声和不确定性等考虑到分类过程中,在上述样本都满足公式 6 所示硬间隔的概念下引入了软间隔的概念,即允许某些样本不满足公式6 中的约束条件,并为此加上“松弛向量”根据样本数量及特征复杂度等特点进行选择,函数本身必须连续,且所有样本相互形成的核函数矩阵正定。(图 3.4N 网络模型)

15、一维卷积使用不同尺寸的kernel_size 来模拟语言模型中的N-Gram,提取句子中的信息。即N 中的卷积用的是一维卷积,通过不同kernel_size 的滤波器获取不同宽度的视野。词向量sic 的方式采用预训练的词向量,训练过程不更新词向量,本质就是迁移学习,主要用于数据量比较小的情况。not-sic 的方式是在训练过程中更新词向量。的方式是not-sic 的fine-tunning 方式,它是以预训练的词向量进行初始化,训练过程中调整词向量。在工程实践中,通常使用字嵌入的方式也能得到非常不错的效果,这样就避免了中文分词。最大池化N 中的池化保留的是Top-1 最大信息,但是可能保留To

16、p-K 最大信息更有意义。比如,在情感分析场景中,“我觉得这个地方景色还不错,但是人也实在太多了”,这句话前半部分表达的情感是正向的,后半部分表达的情感是负向的,显然保留Top-K 最大信息能够很好的捕获这类信息。经过词向量调试本文以词向量结合N 进行短文本分类,其效果最为优秀.3.2.3 基于深度学习的 TextRNNTextRNN 再根据已知类别的词向量表示模型代入其分类模型中,训练出循环神经网络模型(RNN)分类模型的每一层的权重和阙值,再利用分类模型对待测文本进行处理即到待测文本的类别。其分类模型是对每个神经元的输出进行 Mean Pooling 处理后,即算术平均处理后,再应用 so

17、ftmax 函数激活后得到给定的分类输出值。(图 3.4 TextNN 网络模型)经过词向量调试,本文以Skip-gram 词向量结合 TextCRNN 进行短文本分类,其效果最为优秀.4 基于 smote 改进的 fastText 文本分类模型4.1 层次 softmaxSoftmax 回归( Softmax Regres)又被称作多项逻辑回归,它是逻辑回归在处理多类别任务上的推广,或者说逻辑回归是 Softmax回归在类标为2 时的特例。所以,使用 Softmax 回归可以处理多类别问题,假如训练集(图 3.5 分层 softmax 示例图)树的结构是根据类标的频数构造的树。K 个不同的类

18、标组成所有的叶子节点,K-1 个节点作为参数,从根节点到某个叶子节点经过的节点和边形成一条路径,路径长度被表示为下文词条,得出的是需要的目标词条的概率FastText 模型的输入是多个单词组成的词序列及该词序列进行n-gram 处理后学习到的词语词之间的特征:在模型输入方面,CBOW 模型要对输入的上下文词条进行 onehot 编码处理,而 FastText 模型则对输入词序列进行向量化处理:在模型输出方面,CBOW 输出的是根据上下文词条得出的目标单词及其概率值,而 Fasttext 模型的输出是短文本应属于的类别及其概率值。对于 Fasttext 算法,从隐藏层到输出层相当于个 Softm

19、ax 回归。分类器的输入是一个用来表征当前文档的向量:模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量Softmax 回归又被称作多项逻辑回归,它是逻辑回归在处理多类别任务上的推广。在Softmax 回归中,对于样本集然后使用one hot 编码技术对每段话提取特征向量:(图 3.7 提取特征向量 1)(图 3.8 提取特征向量 2)(图 3.9 提取特征向量 3)得到了最终的特征向量为因此我,爱,中国 1,1,0,0,1, , 爱, 我 1,1,1,1,0, , 爱, 中国 0,1,1,1,1SMOTE 过采样技术成与最大数类数目一样,接着通过查找词向

20、量将其生成的词向量为中文,得到一个平衡数据的训练集合,算法步骤如下:a)准备一个分类数目为n(n1)且数据不平衡的训练集i;b)对每一个实例(每个做训练的句子)进行分词,去停用词;c)将其每一个分类分别抽取保存,得到n 个训练集,统计得到最大训练集的训练数据为m 条;d)对于smote,迭代输入每个非最大训练集,同时进行调参,使得输出的新训练集实例个数与最大训练集的实例个数一致;e)将所有训练集数据合并,得到平衡数据的新训练集j。4.5基于 smote 改进的 fastText 的精准快速分类模型(图 3.9 基于 smote 改进的fastText 的精准快速分类模型)改进后算法流程:首先对

21、每个文本内分词的进行词向量提取,将得到句向量利用SMOTE 过采样技术对其每个K值进行取样,进而生成更多的相似类实例。生成的词向量数据可以查询词向量表回中文分词,将生成的中文分词与原始数据合并输入fasttext 模型进行快速训练,也可以之间将词向量输入fasttext 模型。同时因为全部为 1252 类,一口气进行 1252 多分类是不太现实的,因此采取分级,对文本的进行切分为 1,2,3级,对于输入的文本,首先其一级标题,接着根据一级标题调用相对应的mode 进行二级标题,类似的,根据二级标题的结果,对三级标题进行,最终把全部合并,得到需要的结果。5 实验预工作5.1 实验环境与实验数据5

22、.1.1 实验环境本文数据頂处理的分词、smote 过采样技术实现等所有算法均基于语言实现。其中TF-IDE 和支持向量机算法均使用为scikit-learn 0.18.1: FastText算法使用的 FasText 库,版本号为0.8.3 另外本文的 Fasttexte 的训练和阶段使用Vmware Fu11.0.虚拟机,创建 Cent Os7 的虚拟机运行,或者在 Ubuntu 16.04.3 LTS 下直接运行,其他阶段均在 Windows10、macOS Mojave10.14.3、Ubuntu 16.04.3 LTS 下进行。其实验环境如表 4.1 和表 42 所示。服务端相关环境

23、2.7 GHzel Core i54 GiBel Xeon(Skylake) Platinum 8163 2.5 GHzUbutun 16.04.3 LTS5.1.2 实验数据基于 One-hot Vector 的 smote 过采样数据集原始数据是不均衡的,这对于分类器来说,很容易导致分类过拟合,因为在 3.3.3 中提出了一种基于 One-hot Vector 的smote 过采样样本抽取技术,利用该技术,得到符合原有数据向量分布规律的全平衡新数据,在后面的实验中,该数据集训练的m对于分类算法的准确率提高存在着较大的帮助,并较好地避免了过拟合现象.利用该算法自动生成的文本为分词后文本,其数

24、量分布如下表所示:表 5.1 一级(共计 22 个)数目数目服饰鞋帽82800珠宝饰品82800厨具锅具8280082800运动户外82800电脑/办公82800杂志82800箱具82800家用/家具82800教育音像82800数码82800宠物生活82800表 5.2 三级(共计 192 个)数目数目-器械1276厨具锅具-刀剪菜板7800本地生活82800生鲜水果82800汽配用品82800家用电器82800家居家装82800音乐影视82800钟表礼品82800家装建材82800食品/饮料/酒水82800母婴用品/玩具乐器828003.6,Html+CSS+JavaScriptPychar

25、m()-营养健康1276杂志-外语学习4664-护理护具1276杂志-艺术4664-传统滋补1276杂志-经济4664-营养成分1276杂志-中小学4664-中西药品1276杂志-童书4664厨具锅具-餐具7800杂志-文学4664厨具锅具-茶具/咖啡具7800杂志-农业/林业4664.表 5.3三级(共计 1258 个)数目数目家用电器_生活电器-净化器261_中西药品-感冒咳嗽88家用电器_生活电器-除湿机261_中西药品-维矿物质88家用电器_生活电器-机261_中西药品-补肾壮阳88家用电器_生活电器-电风扇261_中西药品-风湿骨外伤88家用电器_生活电器-挂烫机/熨斗261_中西药

26、品-补气养血88家用电器_生活电器-取暖电器261_中西药品-皮肤用药88家用电器_生活电器-生活电器配件261_中西药品-肠胃消化88家用电器_生活电器-加湿器261_中西药品-耳鼻喉用药88家装建材_五金家装-家用五金455_中西药品-儿科用药88家装建材_五金家装-手动工具455_中西药品-眼科用药88.(数据的的统计可以查看附录文件 total_label.execl)5.2 数据预处理5.2.1 分词对于中文的文本数据进行分词处理。中文分词是中文类型的自然语言处理的家用电器_生活电器-净水器261_中西药品-妇科用药88厨具锅具-厨房配件7800杂志-建筑4664厨具锅具-烹饪锅具7

27、800杂志-小说4664厨具锅具-水具酒具7800杂志-历史4664第一个阶段,也是必不可少的阶段。中文的句意是由词语组成的。分词的意义在于将中文词语分成一个个有效的,符合句意的词语。而分词的难点在于个字和前面字可以组成词语,和后面的字也可以组成词语,这样就会导致计算机无法正确的判断出切断词语的位置。本文没有使用的jieba 模块进行分词,而是采用了pkuseg 模块进行分词,并且引入了 1213 个停用词来进行优化分词结果。停用词一般是指中文的语气词,助词等无意义的词语。pkuseg 具有如下几个特点:多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预

28、训练模型。根据待分词文本的领域特点,用户可以地选择不同的模型。目前支持了领域,网络领域,领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,使用在混合领域上训练的通用模型。更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg 可以取得更高的分词准确率。支持用户自训练模型。支持用户使用全新的标注数据进行训练。支持词性标注。Pkuseg 与各类分词工具包的性能对比:选择jieba、THULAC 等国内代表分词工具包与pkuseg 做性能比较。考虑到jieba 分词和THULAC 工具

29、包等并没有提供细领域的预训练模型,为了便于比较,重新使用它们提供的训练接口在细领域的数据集上进行训练,用训练得到的模型进行中文分词。选择Linux 作为测试环境,在数据(MSRA)、混合型文本(CTB8)、网络文本(WEIBO)数据上对不同工具包进行了准确率测试。使用了第二届国际汉语分词评测比赛提供的分词评价。其中MSRA 与 WEIBO 使用标准训练集测试集划分,CTB8 采用随机划分。对于不同的分词工具包,训练测试数据的划分都是一致的;即所有的分词工具包都在相同的训练集上训练,在相同的测试集上测试。对于所有数据集,pkuseg 使用了不使用词典的训练和测试接口。考虑到很多用户在尝试分词工具

30、的时候,大多数时候会使用工具包自带模型测试。为了直接对比“初始”性能,也比较了各个工具包的默认模型在不同领域的测试效果。如图其中,表 3 显示的是在各测试集上F1-score .5.2.2 停用词对于中文文本中,经常含有一些助词、语气词等词语。但是这些词语没有具体的含义,也没有明确的感情,所以对于分词结果,进行停用词去除的处理,如果分词结果中含有停用词,则删除该停用词。选取其中具有实际意义的词语作为分词结果停用词的去除,降低了分类的误差,分类的准确性。因为停用词属于各类情感中都会出现的词语。这里在哈工大的停用词表 1213 个停用DefaultMSRACTB8PKUWEIBOAll Avera

31、gejieba THULACpkuseg81.4585.5587.2979.5887.8491.7781.8392.2992.6883.5686.6593.4381.6188.0891.29词的基于上,在训练集、测试集上的利用工具分析改进进行增加,共计 2614 个停用词5.2.3 异常数据的处理在分词并且去停用词后,有些文本的词向量为全 0,也就是其文本全为停用词,这里有 3 条,其作为离群数据,采用去除操作处理.5.3 分类评价F- score 是综合考虑准确率与率的一个指标,准确率只是表示了一个分类器的的精准程度,而率反映了一个分类器的判定比例。在同一个数据集合中,准确率和率两者之间相互

32、制约,一般情况下,准确率,就意味着召回率的下降,两者之间存在负相关的关系F- score 的计算公式。6.2 各参数调校与实验结果的分析对参数调校使用控制变量法,除需调整的参数外,其他参数保持默认不变,同时为了增强信服力,使用原始数据集作为实验数据。本实验将原始数据集分为5 份,其中 4 份作为训练数据集,剩余 1 份作为测试数据集, 利用交叉检验的方式,即对训练数据进行 5 此交叉验证,得到 5 个模型的准确率,每次取其平均值作为宏评价值,下面为一级标题模型的训练为例进行调优.:损失函数对损失函数( loss function)进行相关的验证, loss 分别使用ns、hs 和 softma

33、x这三种不同的损失函数并对准确率进行对比,图 6.1 展示了选择不同损失函数时fastText 模型的分类准确率。从图中可以看出,使用本文获取到的数据集进行训练和时,选择 softmax 作为损失函数可以获得较高的准确率,因此本章节之后的各项试验中均使用softmax 作为损失函数。(图 6.1 各损失函数与准确率之间的关系)词向量的维度损失函数名称hs0.936028512ns0.937936497softmax0.9408884730.9330.9340.9350.9360.9370.9380.9390.940.9410.942准确率图 6.2、图 6.3 分别展示了词向量的维度与准确率和

34、模型的大小之间的关系,由图可见随着词向量的维度的变化,考虑到随着词向量维度从 75 增加到 300 时可能会引入一些无关的信息,因此会导致准确率的降低,但是词向量维度从 225 开始逐渐增加时,模型的准确率也随之增加。不过考虑到词向量维度与模型的大小成正比,且模型的大小与耗时成正比,因此词向量维度为 75 时是最好的选择。(图 6.2 词向量维度与准确率之间的关系)(图 6.3 词向量维度与模型大小之间的关系)上下文窗口大小模型大小(MB)词向量维度与准确率之间的关系500450400350300250200150100500255075100125150175200225250275300词

35、向量维度0.94120.9410.94080.94060.94040.94020.94255075100 125 150 175 200 225 250 275 300词向量维度图 6.4 展示了选择不同上下文窗口大小时fastText 模型的分类准确率的变化,从图中可以看出,准确率先增加,上下文窗口为 3 时到达最大值,之后相对于上下文窗口为3 逐渐减小,到10 开始又恢复上升,但是考虑到内存与训练时间,因此选择3的窗口大小最为合适.(图 6.4 上下文窗口大小与准确率之间的关系)迭代次数图 4.12 展示了选择不同迭代次数时 FastText 模型的分类准确率,从图中可以看出,准确率先是逐

36、渐增加,直到迭代次数为 4 时开始逐渐减小在迭代次数为 5 之后,准确率趋于稳定.准确率(%)0.9410.94090.94080.94070.94060.94050.94040.940312345678910上下文窗口大小(图 6.5 迭代次数与准确率之间的关系)不同词语最少出现次数图 6.6 展示了选择不同词语最少出现次数时 FastText 模型的分类准确率,从图中可以看出,准确率逐渐减少,词语的最少出现次数为 1 时,准确率为最大值,之后逐渐减低,因此词语最少出现次数设定为 1 效果较为立项(图 6.6 迭代次数与准确率之间的关系)输入词序列N-gram图 6.6 展示了选择不同输入词

37、序列N-gram 时 FastText 模型的分类准确率,准确率(%)准确率(%)0.9450.940.9350.930.9250.920.9150.910.90517 19 21 23 25 27 29 31 33 35 37 39 41 43 45词语的最少出现次数0.9450.940.9350.930.9250.920.9150.91123456789 10 11 12 13 14 15 16 17 18迭代次数(次)从图中可以看出,当输入词序列N-gram 为 2 时,准确率为最大值,之后逐渐减低,因此词语最少出现次数设定为 1 效果较为立项,同时,根据图 6.7,可以看到随着输入词序

38、列N-gram 增大,模型的大小成倍数几乎直线增长,因此,选择N-gram 为 2 作为最优参数.(图 6.6 输入词序列N-gram 个数与准确率之间的关系)(图 6.7 输入词序列N-gram 个数与模型大小之间的关系)总结:虽然之前对各个参数进行了相关的实验,但是考虑到各个参数之间的相word_ngrams个数模型大小(MB)6000500040003000200010000123456word_ngrams个数50.94014773140.93441392830.93548329720.94892019810.9307984740.920.9250.930.9350.940.9450.

39、950.955准确率(%)互影响,考虑到模型的训练速度与测试的准确率,因此选择softmax 作为损失函数,词向量维度为 75,上下文窗口为 3,迭代次数为 5,词语的最少出现次数为 1,N-gram 为 2,经过试验后选择词向量维度为 100,上下文窗口为 4,迭代次数为 4,词语的最小出现次数为 2,此时准确率达到最大值,最大值为 94.767%,模型调参结果最为优秀.同样地,对于二级标题与三级标题,使用控制变量法获得了最优的参数,其参数如下表:(表 6.1 标题分类最优参数)6.3 本算法与其他算法的分析与比较对于短文本分类,采用 3.2 介绍的三种短分类算法与原始FastText 模型

40、,改进的FastText 模型进行比较,其中二级,三级标题分类以及合并总分类的准确率级别 参数名损失函数 词向量维度上下文窗口迭代次数词语的最少出现次数输入词序列学习率bucket学习率更新速率一级标题二级标题三级标题最优参数最优参数最优参数SoftmaxSoftmaxSoftmax7510010035555404452210.050.050.05200000200000100000100100100与全部标题分类的率为使用宏平均数进行计算,结果如下:(表 6.4 一级标题各分类模型对比)模型准确率 p(%)率 R(%)F-score(%)训练耗时(s)效(条/s)92.7291.2491.9

41、740556725677N+CBOW原始 FastText94.5693.2193.88015329211对于一级标题的 22 分类问题,计算其准确率与宏率,并且统计了模型的训练时间与效率(每秒打的个数),得到结果如上图,可以发现,使用原始数据进行训练与的SVM 分类+TF-IDF 词向量模型效果较为低下,而深度学习的N 分类+CBOW 词向量模型,TextRNN 分类+Skip-gram词向量模型较好,均能达到 90%以上的 F- score,但是存在的较大问题是训练时间过长,并且效率也不近人意,而调好参数的原始 FastText 模型表现则比前面三者性能更为优秀,并且其突出亮点是训练耗时和

42、效率都非常惊人,对于使用smote 改进输入层的FastText 模型表现最为有效,其宏准确率、宏率、宏F-Score 以及训练速度与效率效果非常完美,这证明了模型的优越性。下面表 6.5 为一级标题改进FastText 模型分类模型各分类效果:(表 6.5 一级标题改进 FastText 模型分类模型各分类效果)类别运动户外厨具锅具母婴用品/玩具乐器生鲜水果准确率 P(%)0.9966220.9964040.9968450.980.99612410.9988790.9869450.9996070.9949620.985981率 R(%)0.9968810.9968030.9995130.87

43、50.99458210.9982080.9717220.998430.9941280.981395F- SCORE(%)0.9967510.9966030.9981770.9245280.99535210.9985440.9792750.9990180.9945450.983683箱具本地生活服饰鞋帽音乐影视珠宝饰品家装建材家用电器改进的 FastText99.7498.8699.25488333TextRNN+Skip-gram95.8794.6595.2560961475247SVM+TF-IDF86.9187.6787.2883514743842食品/饮料/酒水杂志电脑/办公教育音像0.

44、9936580.9969380.9943960.9540820.9929910.9991410.9969770.9976660.9881890.9821430.9984230.9964660.995830.9937770.9639180.9976530.9990340.9993940.9988320.9881890.9705880.997898(表 6.5 二级标题各分类模型对比)0.995060.9963840.9940870.9589740.9953160.9990870.9981840.9982490.9881890.9763310.99816汽配用品钟表礼品家居家装宠物生活家用/数码家

45、具准确P(%)率R(%)训练耗时(S)效率(条/S)模型F-SCORE(%)对于二级标题的分类问题,是基于一级下的二级进行分类,每一各一级下都有数目不等的二级,这里计算其宏准确率与宏率(也就是全部分类器的评价数值乘上其用数目大小表示的权重),同样统计了模型的训练时间与效率(每秒打的个数),得到结果如上图,由于二级标签分类器较多,可以发现,与一级类似的,使用原始数据进行训练与预测的SVM 分类+TF-IDF 词向量模型效果较为低下,而深度学习的N 分类+CBOW 词向量模型,TextRNN 分类+Skip-gram 词向量模型较好,均能达到 90%左右的F- score,但是其存在的较大问题依旧

46、是训练时间过长,并且效率也不近人意,而调好参数的原始 FastText 模型表现则比前面三者性能更为优秀,并且其突出亮点是训练耗时和效率都非常惊人,对于使用 smote 改进输入层的FastText 模型表现最为有效,其宏准确率、宏率、宏F-Score 以及训练速度与效率效果非常完美,这再次证明了模型的优越性。下面是三级标题SVM+TF-IDF76.6177.4277.0143291276N+CBOW89.6690.2389.94176912139TEXTRNN+SKIP-GRAM91.5790.4891.02261952157原始 FASTTEXT93.3292.5292.921049337

47、8改进的 FASTTEXT99.9699.9499.9513821908各分类模型对比,其各项评价指标较前两级降低些许(表 6.6 三级标题各分类模型对比)模型准确率P(%)率率R(%)F-SCORE (%)训练耗时(S)效率(条/S)(表 6.7 全部标题合并各分类模型对比)模型SVM+TF-IDFN+CBOW TEXTRNN+SKIP-GRAM原始 FASTTEXT改进的 FASTTEXT表 6.7 是将一二三级准确率 P(%) 64.2777.9479.5381.6197.47进行分级训练耗时(S) 7148277863702311092232效率(条/S)224113561154245

48、11580后合并的最终效果,由于分类过多,这里只计算最终结果的准确率,可以看到,在各种分类器中,基于smote的fasttext 的精准快速分类模型表现极为优秀,其不仅表现为准确率远远其他分类模型,并且其训练耗时与效率较之其他四种模型也是非常可观,实验结果印证了第 4 章的建模与分析,因此以上充分证明了经改进后的FastText 模型能够实现对商品的快速准确的分类,企业级的准确率与模型效率对降低人工成本以及出错率有着很大的意义。7 前后端功能实现7.1 前端实现(B/S 架构)前台设计成Web 界面,用户使用浏览器(PC or Mobile Phone)后便可进入主页面,该页面分为实时(Rea

49、l-time predict)和测试数据查询SVM+TF-IDF64.2767.6965.9356813452241N+CBOW83.8279.5381.6186744233329TEXTRNN+SKIP-GRAM82.2584.3383.2770146813217原始 FASTTEXT86.5288.6487.56717288461改进的 FASTTEXT98.0398.6198.31914318213(Retrieve query)两种模式,可以在主页面上切换模式。用户可在该页面下的输入框输入任意需要分类的内容,输入支持单文本输入和批量输入。前台结构图如下图 2 所示。图 2前台结构图用户在输入框输入文本后并提交数据,前台使用T 方法把数据以 JSON的格式发送给服务器进行请求,服务器在接受到请求之后通过计算出结果,并以 JSON 格式返回为前台。前台收到服务器返回的信息后,将 JSON 数据并以更为友好的方式展现给用户,用户可通过翻页或查找来分析结果。在实时预测的模式中,返回的数据包括原文本及;在测试数据查询模式中,返回的数据包括原文本、分词后的文本、一级、二级、三级便签以及总。用户可通过输入不同的文本来得到相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论