基于在线评论的服装质量特征挖掘方法
2021-11-03周俊妍薛文良魏孟媛刘蕴莹钱竞芳
周俊妍, 薛文良, 魏孟媛, 刘蕴莹, 钱竞芳, 丁 亦
(1. 东华大学 纺织面料技术教育部重点实验室,上海 201620; 2. 中华人民共和国 上海海关,上海 200120)
随着互联网及自媒体的兴起,消费者可以在不同网络平台对商品进行评价,这些最贴合市场的用户自生成内容对商品质量监管而言,是相对实时、有价值、可信的。基于电商评论内容,从专业角度挖掘服装质量特征,帮助消费者及服装企业和检验机构等使用者更好地了解服装质量的动态。商品评论中的产品特征挖掘方法主要是基于统计、规则和机器学习等方法。
基于统计的方法包括基于词性、词频[1-3]、关联规则及点互信息等。Hu等[4]提出产品特征集合中的频繁项利用关联规则提取,非频繁项基于与频繁项共现度高的形容词集合抽取,这种方法易引入高频非特征集合。Popescu等[5]通过计算候选特征和特征基准词间的PMI(pointwise mutual information)值对其进行优化,使准确率提升20%。王永等[6]利用frequent pattern-growth(FP-growth)算法,进一步降低关联规则的复杂度。这类方法原理简单且应用较为广泛,但受分词效果局限,召回率普遍偏低,易忽视低频非名词特征词。
基于规则的方法一般包括两类:一是自定义语言规则,二是利用句法分析工具构建句法规则集合[7]。李盛[8]提出词组规则、特征词和评价词的双向循环过滤规则,并建立特征词库。Kobayashi等[9]和Zhuang等[10]建立特征词与观点词的共现规则,从而抽取特征词。刘涛[11]利用依存句法分析工具,抽取5种主要依存关系构建句法规则,再经剪枝策略抽取产品特征。规则依赖于人工构建,但很难覆盖所有形式,这是因为自然语言表达的多样性和复杂性导致的。
基于机器学习的方法包括主题模型、条件随机场[12]、深度学习等。主题模型(latent dirichlet allocation, LDA)对低频属性词的召回率不高,且细粒度主题分类不够精确[13]。Lafierty等[14]提出的条件随机场(conditional random field, CRF)模型特征设计灵活,但特征工程构建要求与标注成本较高。深度学习模型凭借自动抽取深层抽象特征的优势,突破CRF依赖人工特征的限制。张俊飞等[15]优化特征词识别框架,该框架组合输入层、BLSTM(bi-directional long short term memory)模块和线性CRF模块,可在不依赖于特征工程的情况下提高特征词识别性能。与CRF相比,融合深度学习的模型效果更好,但计算开销大,因此对小样本而言适当特征工程的CRF模型更为实用。
目前,针对服装产品评论的质量特征识别研究较少,以上方法抽取的特征粒度粗,层次混乱,如面料、衣服等粗粒度特征词与服装质量没有直接关联,可解释性较差。为使抽取结果具有更深的行业应用价值,提出一种服装细粒度质量特征挖掘方法。基于语料库和先验知识建立服装质量特征词库与服装质量特征树;基于特征词库与特征树,利用词库匹配、CRF模型抽取特征;基于特征树对抽取的特征词集合进行分类。
1 细粒度服装质量特征挖掘方法
提出的细粒度服装质量特征挖掘方法框架图如图1所示。在建立服装质量特征词库与特征树的基础上,采用词库匹配与CRF模型结合的方式抽取质量特征。具体分为5步:(1)数据采集与预处理,即在剔除重复无意义的评论数据后对文本进行分词与词性标注。(2)建立服装质量特征词库。利用FP-growth 算法、词向量与聚类,结合行业知识,输出特征词库。(3)基于纺织检测专业知识,结合特征词库,建立服装质量特征树。(4)实现评论细粒度服装质量特征抽取,包括词库匹配和CRF匹配。(5)基于服装质量特征树,实现特征词集合的细粒度分类。
图1 细粒度服装质量特征挖掘方法框架Fig.1 Framework for fine-grained clothing quality feature mining method
1.1 建立服装质量特征词库
本文的服装质量特征词库构建方法由两部分组成:一是基于产品知识;二是基于语料库自动抽取。产品知识由服装属性描述、术语等组成,如颜色、版型、厚度、裁剪等;基于语料库的自动抽取方法则结合了FP-growth、 word2vec等算法。自动抽取方法既能从词频角度高效检索频繁特征集合,又可通过与频繁非特征集合的交叉过滤,提高服装质量特征词库的精准性。
基于语料库自动抽取建立特征词库的具体步骤如下:
(1) 调用Python的jieba模块分词,去除停用词,词性标注,保存预处理语料库C1。仅保留C1中的名词另存为语料库C2,在C2中抽取语料库名词集合Noun_set。
(2) 采用FP-growth算法扫描预处理后的评论集C2,获得频繁特征项集合I1。具体过程包括:统计名词出现的频率,删除词频小于最小支持度S1(本文取0.5%)的名词,得到集合I0;遍历I0,构建频繁模式树;从树中递归获取条件模式基,设定最小支持度S2(本文取2)时构建条件频繁模式树,做频繁模式挖掘,最终得到频繁项集合I1。
(3) 利用Python中的gensim模块对预处理语料库C1进行词向量训练。训练算法取skip-gram,最低词频取 2,其余采用默认参数;加载词向量模型,利用K-means聚类算法,对名词集合Noun_set进行聚类。K-means的聚类簇数量取9,其余采用默认参数;分析聚类结果,抽取频繁非特征集合N1。
(4) 步骤(1)所得的特征集合具有一定的频率和语义关联度,但为了尽可能多地提取特征词,因此最小支持度设置得均较低,集合内会出现大量无关词。为降低无关词对结果的影响,基于集合N1过滤集合I1,最终得到服装质量特征词库。
1.2 构建服装质量特征树
服装电商评论的细粒度质量特征挖掘要求特征集合与质量高度相关,特征分类结果与纺织品质量检测指标有准确的层次化映射关系,这将有利于消费者评论与检测指标的有机结合,提高方法在服装质量管理方面的实际应用价值。为实现该目标,考虑引入服装领域质量特征树,基于专家先验知识,提高抽取特征的精细化表达能力。
建立服装质量特征树的第一步是建立服装质量特征树本体,简称本体。本体分为一级指标和二级指标。一级指标又分为服装类和检测类,其中服装类是款式、风格等与质量相关度不高的指标。检测类按照质量特征粒度又分为检测细类与检测粗类。检测细类的下级指标指向明确的质量问题,如规格偏差、色牢度不合格、力学性能不合格等。检测粗类的下级指标指向服装的粗粒度属性,如面料、辅料、品类、颜色等,这类指标不直接反映质量问题,但可进一步挖掘消费者对该属性质量的潜在观点。二级指标是在一级指标的基础上细化本体,其构建难点在于检测细类的细分。参考检验检疫机构的高频检测项目以及评论中质量相关的高频特征词,将检测细类分为标签标识、外观质量、物理性能及安全性能,这4类的细化指标共同组成二级指标体系。表1列举了检测细类中不同分类下二级指标的具体内容,检测类一级指标体系涵盖常用纺织服装用品的质量检测问题。
表1 检测细类下的二级指标示例
在构建本体的基础上,抽取评论语料库中高频服装质量描述词,构建二级指标下的特征值种子词集合。鉴于自然语言描述的多样性,遍历已建立的特征词库,通过比较特征词与种子词间的词向量余弦相似度,达到扩充特征词表的目的。最终构建的服装质量特征树共3个一级指标,38个二级指标,其中检测细类29个、检测粗类7个、服装类2个。服装质量特征树示例见表 2。
表2 服装质量特征树示例Table 2 An example of the clothing quality feature tree
1.3 细粒度服装质量特征的抽取与分类
本文提出的细粒度服装质量特征挖掘方法包括特征抽取与分类。特征抽取采用词库匹配与CRF结合的方式,既有利于提高特征识别效率与领域准确性,又不局限于分词结果,可以有效抽取词库外的新特征词。特征分类则是在服装质量特征树的基础上通过计算相似度判断特征所属类别。
1.3.1 基于词库匹配的特征抽取
词库匹配方法:首先判断分词词语是否属于特征词库,若不是则计算分词词语与二级指标下特征值的相似度。判断方法:遍历服装质量特征树的二级指标,计算分词词向量与二级指标所属特征值词向量间的余弦相似度均值Si,计算方式如式(1)所示,若maxSi大于阈值α,则抽取该分词。
(1)
式中:Sij为第i个二级指标中第j个特征值与分词的词向量间余弦相似度;count(Sij>β)为余弦相似度大于β的特征值个数;sum(Sij>β)为余弦相似度大于β部分相似度求和。
1.3.2 基于CRF的特征抽取
若评论分词结果不符合词库匹配标准,或者分词属于检测粗类,则将该评论保存至CRF待分类评论集,由CRF进行特征识别。CRF属于序列标注模型,在文本命名实体识别方面应用较好,这是一种根据输入序列X(x1,x2,x3, …,xn)预测输出序列Y(y1,y2,y3, …,yn)的判别式模型。序列的标注样例如图2所示,特征词的开始字符标注为“B-FEA”,中间以及结尾字符标注为“I-FEA”,其余无关字符标注为“O”。
图2 输入序列与输出序列的样例示意图Fig.2 Examples diagram of the input array and the out put array
模型训练时,输入经过标注的观测序列X,通过极大似然估计得到条件概率模型P(y|x),如式(2)~(3)所示。 再利用改进的迭代尺度法等优化方法训练参数,保存模型。
(2)
(3)
式中:fk(y,x)为转移特征与状态特征在各个位置的求和;wk为特征fk(y,x)的权值;Z(x)为规范化因子。
模型预测是对给定的输入序列X,利用维特比算法求出条件概率最大的输出序列Y,从中抽取符合要求的标注子序列,解码后以特征词的形式输出。
1.3.3 特征词分类
比较抽取的特征词与服装质量特征树的二级指标下特征值的相似度,判断某特征应属于哪个二级指标,从而实现服装质量特征与检测指标结合的细粒度挖掘。
通过遍历服装质量特征树的二级指标,计算抽取的特征词与第i个二级指标所属特征值的相似度均值SCi,计算方式如式(4)~(5)所示。若maxSCi大于阈值α,则说明该特征词属于第i个二级指标,反之,将该词分属为其他。
(4)
SCij=a×Svec+b×Sedit
(5)
式中:SCij为第i个二级指标中第j个特征值与分词的相似度;Svec为词之间的词向量余弦距离;Sedit为词之间的编辑距离;a+b=1;count(SCij>β)为相似度大于β的特征值个数;sum(SCij>β)为相似度大于β部分相似度求和。
2 试验与讨论
2.1 试验数据采集与清洗
采用Python编写爬虫程序,采集网易考拉平台全品类服装商品共39 222件,评论总计1 015 894条。清洗剔除不符合试验条件的无效评论,如文本重复、文本长度过短、系统默认评论以及乱码评论。按以上模式清洗后,基于保留的585 259条评论建立服装评论语料库C,存入MongoDB数据库。
为提高方法对服装全品类的适用性,以品类为标准,如成人内搭、外套、裤子、裙子、内衣、童装等,按各类商品数量占比从语料库中随机抽取评论,分句处理后,将最终得到的3 000条评论组成数据集,其中训练集2 200条、验证集400条、测试集400条。训练集与验证集用于CRF模型的训练与调整,测试集则用于整体方案的试验与评估。
2.2 评论特征抽取与分类
先根据第1.1、 1.2节的步骤构建服装质量特征词库与质量特征树,再人工标注训练集与验证集,训练并保存CRF模型。模型参数设置:批处理大小取64;学习率取0.001; drop out取0.5;梯度阈值设为5。最后对测试集进行预处理,利用jieba模块分词、去除停用词、标注词性,应用细粒度服装质量特征挖掘方法完成特征抽取分类。结果样例如表3所示。
表3 服装质量特征抽取与分类的结果样例
2.3 试验结果讨论
本文利用查全率(R)、查准率(P)、综合值F1评估方法效果,依次按式(6)~(8)计算。
(6)
(7)
(8)
式中:TP为抽取正确的产品属性数量;FP为抽取错误的产品属性数量;FN为没有被抽取出但属于正确的产品属性的数量。
细粒度服装质量特征抽取试验对比结果如表4所示。由表4可知,融合两种模式的质量特征抽取结果比两种模式独立抽取具有更好的表现,查全率相比词库匹配方法提高了14.29%,查准率与综合值F1相比CRF方法分别提高了5.45%和3.60%。词库匹配模式准确率较高,但限制新词识别能力,因此在此基础上融合CRF模型,不局限于分词而且可以捕捉词库外的特征词,提高查全率。
完成特征抽取后,为提高结果在服装领域的应用价值,以服装质量特征树为基础,进行质量特征词的细粒度分类。服装质量特征抽取分类结果示例如表5所示。由表5可知,在消费者评论中,检测粗类与服装类特征更高频地被提及,如面料、品类、款式、颜色等。此外,消费者更关注外观类问题,比如规格偏差、缝制疵点、色差、起毛起球、色牢度等,其中尽管起毛起球与色牢度是物理性能类指标,但从消费者角度而言其优劣是直接表现在外观上的。从内在性能来看,拉伸性能、异味、透气性等也是消费者关注的焦点。以上结论与购物体验相吻合,进一步验证细粒度服装质量特征挖掘方法的有效性。
表4 细粒度服装质量特征抽取试验对比
表5 服装质量特征抽取分类结果示例
3 结 语
基于在线评论的服装质量特征细粒度挖掘方法,利用FP-growth算法结合专业知识构建服装质量特征词库,建立服装质量特征树;结合词库匹配、CRF模型等方式抽取服装评论特征;同时,基于质量特征树,对抽取的特征集合进行分类。该方法有两个优点:一是特征挖掘的粒度细;二是结果的领域专业性强。该方法致力于挖掘服装真实质量问题,细化特征类型,避免抽取大量缺少应用价值的粗类特征;方法真正落地在行业生态中,与服装检测指标结合,完成特征词分类,提高后续应用的针对性。其应用对象广泛,包括消费者、服装企业、质量监管部门等。该方法不足之处在于依赖于人工构建质量特征树,需及时动态更新。另外未考虑隐性特征抽取,这将是课题未来的研究方向之一。