从文本中识别中文商品名称的方法和装置制造方法
【专利摘要】本发明提供一种从文本中识别中文商品名称的方法和装置,有助于准确识别文本中的中文商品名称。该方法包括:保存商品信息词词库;确定文本中的句子属性信息序列;对所述句子属性信息序列依次进行粗判断和细判断;其中,所述粗判断的标准是:所述句子属性信息序列包含中心词、品牌、以及属性,或者包含中心词和一个以上属性;所述细判断的标准是:句子属性信息序列大于第一预设值并且其中不属于所述商品信息词词库的词所占比例小于第二预设值;对于同时满足所述粗判断和细判断的句子属性信息序列,确认其为中文商品名称。
【专利说明】从文本中识别中文商品名称的方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别地涉及一种从文本中识别中文商品名称的方法和装置。
【背景技术】
[0002]自动应答机器人在电子商务零售行业中日益凸显其重要性。很多入驻电子商务网站平台的商家,为了保证服务质量,需要守在电脑旁对咨询的客户进行解答,这对一般的网上个体经营者无疑是一个很大的人力成本。在这种情况下,能解决大部分常见咨询问题的自动应答机器人运而生,这可以为很多网店商家解决无人值守时无法回答客户咨询的问题。
[0003]在实际咨询过程中,客户经常会复制一个商品名称再加上要咨询的问题进行咨询,这种问题的识别对自动应答机器人来说是一个难点。因为网站上的商品名称一般较长(比如手机、服装等类目的商品,例如:“茵曼2013冬装新款纯棉格子撞布拼接连帽中长款棉衣橙红色”),而这些商品信息都是由商家自行录入和维护,会受到市场促销、季节性变化等因素经常改变,目前无论是基于分类还是基于关键词匹配的自动应答机器人都很难对这种包含较长的商品名称的中心业务问题(例如问题“茵曼2013冬装新款纯棉格子撞布拼接连帽中长款棉衣橙红色这件衣服外面是什么料子”的中心业务问题是“这件衣服外面是什么料子”)进行识别,这时如果可以把商品名称从客户输入的句子中提取出来,再对句子的剩余部分进行分析,可以有效的解决这类问题咨询。所以需要一种从文本中识别中文商品名称的方法,以便于识别包含中文商品名称的咨询问题从而使自动应答机器人对这类问题进行处理。
【发明内容】
[0004]有鉴于此,本发明提供一种从文本中识别中文商品名称的方法和装置,有助于准确识别文本中的中文商品名称。
[0005]为实现上述目的,根据本发明的一个方面,提供了一种从文本中识别中文商品名称的方法。
[0006]本发明的从文本中识别中文商品名称的方法包括:步骤A:保存商品信息词词库,所述商品信息词包括中心词、品牌、属性、以及分隔词;步骤B:确定文本中的句子属性信息序列,所述句子属性信息序列是所述文本中从左向右的第一个分隔词之前的序列,或者是所述文本中从左向右的第一个不属于所述商品信息词词库的词之前的序列;步骤C:对所述句子属性信息序列依次进行粗判断和细判断;其中,所述粗判断的标准是:所述句子属性信息序列包含中心词、品牌、以及属性,或者包含中心词和一个以上属性;所述细判断的标准是:句子属性信息序列大于第一预设值并且其中不属于所述商品信息词词库的词所占比例小于第二预设值;步骤D:对于同时满足所述粗判断和细判断的句子属性信息序列,确认其为中文商品名称。
[0007]可选地,所述步骤B之前,判断所述文本的长度是否超过设定值,并仅在判断结果为是的情况下进行所述步骤B。
[0008]可选地,所述设定值的取值范围是[25,30]。
[0009]可选地,所述设定值按如下步骤确定:统计指定品类商品的商品名称字数的平均长度,或者统计包含指定品类商品名称的文本的平均长度;然后将统计结果乘以一个预设系数得到所述设定值。
[0010]可选地,所述步骤B包括:对所述文本进行分词,在分词过程中,按照分词得到的词为所述中心词、品牌、属性、或者分隔词,或者该词不属于上述任一者,分别为该词分配第一标记至第五标记;对分词后的所述文本从左至右遍历,在遍历到分配有第四标记的词的情况下将该词之前的序列作为所述文本中的句子属性序列,否则将所述文本中的最后一个分配到非第五标记的词及该词之前的序列作为所述文本中的句子属性序列。
[0011]可选地,所述细判断的标准中的第一预设值的范围是[6,10],第二预设值的范围是[0.25,0.45]。
[0012]可选地,所述文本是电子商务客户的在线咨询的问题的文本。
[0013]根据本发明的另一方面,提供了一种从文本中识别中文商品名称的装置。
[0014]本发明的从文本中识别中文商品名称的装置包括:商品信息词词库模块,用于保存商品信息词词库,所述商品信息词包括中心词、品牌、属性、以及分隔词;句子属性信息序列模块,用于确定文本中的句子属性信息序列,所述句子属性信息序列是所述文本中从左向右的第一个分隔词之前的序列,或者是所述文本中从左向右的第一个不属于所述商品信息词词库的词之前的序列;判断模块,用于对所述句子属性信息序列依次进行粗判断和细判断;其中,所述粗判断的标准是:所述句子属性信息序列包含中心词、品牌、以及属性,或者包含中心词和一个以上属性;所述细判断的标准是:句子属性信息序列大于第一预设值并且其中不属于所述商品信息词词库的词所占比例小于第二预设值;输出模块,用于对于同时满足所述粗判断和细判断的句子属性信息序列,输出该句子属性信息序列。
[0015]可选地,还包括预判断模块,用于在所述句子属性信息序列模块确定文本中的句子属性信息序列之前,判断所述文本的长度是否超过设定值,并仅在判断结果为是的情况下触发所述句子属性信息序列模块。
[0016]可选地,所述预判断模块还用于:统计指定品类商品的商品名称字数的平均长度,或者统计包含指定品类商品名称的文本的平均长度;然后将统计结果乘以一个预设系数得到所述设定值。
[0017]可选地,所述句子属性信息序列模块还用于:对所述文本进行分词,在分词过程中,按照分词得到的词为所述中心词、品牌、属性、或者分隔词,或者该词不属于上述任一者,分别为该词分配第一标记至第五标记;对分词后的所述文本从左至右遍历,在遍历到分配有第四标记的词的情况下将该词之前的序列作为所述文本中的句子属性序列,否则将所述文本中的最后一个分配到非第五标记的词及该词之前的序列作为所述文本中的句子属性序列。
[0018]可选地,所述文本是电子商务客户的在线咨询的问题的文本。
[0019]根据本发明的技术方案,基于商品信息词词库分析文本中的词语,有助于准确识别文本中的中文商品名称。通过实际系统测试能够很好地印证这一点。
【专利附图】
【附图说明】
[0020]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0021]图1是根据本发明实施例的从文本中识别中文商品名称的方法的主要步骤的示意图;
[0022]图2是根据本发明实施例的从文本中识别中文商品名称的装置的主要模块的示意图。
【具体实施方式】
[0023]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0024]本实施例的技术方案能够从文本中识别中文商品名称,这种文本可以是电子商务的客户在线咨询时提出的问题的文本,也可以是其他情况中的文本。在本发明实施例的技术方案中,主要通过分析属于商品名称中的词在文本中出现的量,来判断该文本中是否包含中文商品名称。以下对本发明实施例的技术方案作详细说明,其中主要以上述的客户在线咨询时提出的问题的文本为例。
[0025]图1是根据本发明实施例的从文本中识别中文商品名称的方法的主要步骤的示意图。如图1所示,该方法主要包括如下的步骤Sll至步骤S14。
[0026]步骤Sll:保存商品信息词词库。商品信息词包括中心词、品牌、属性、以及分隔词。中心词是表示商品品类的信息,例如手机、电脑、长裤、衬衣等。属性是电子商务领域中表示商品的属性的信息,例如商品的材质、工艺、尺码、作者等信息。通过对大量中文商品名称的分析可以得出,中心词、品牌、属性是商品名称一般包括的三个最主要的特征。商品信息词词库中的具体词是采用网络爬虫等技术手段从电子商务网站上获取,在获取品牌和属性词时,最好是从包含商品品类的页面中抓取,例如从包含服装类商品的页面中获取品牌、尺码、材质等。需要说明的是,对于某些商品,可能没有品牌信息。
[0027]分隔词在文本通常与商品名称相邻。通过对1500条包含中文商品名称的问题进行分析,发现大部分问题的构成模式是“中文商品名称+分隔词(比如:请问、这款、有、是等)+中心问题”,比如“茵曼2013冬装新款纯棉格子撞布拼接连帽中长款棉衣橙红色这件衣服外面是什么料子”。其中的“这件衣服外面是什么料子”就是中心问题。中心问题一般是客户咨询问题中的实质性内容。这类词并不多,在本实施例中,对问题进行统计后只提取了六个:请、还、有、没、这、是,把这类分隔词也加入商品信息词词库。在实现中可以根据需要增加分隔词的数量。
[0028]在保存了商品信息词词库之后,就可以对目标文本进行处理,例如对用户在线咨询的问题进行处理,在处理之前如果需要,可以先对目标文本进行预处理,包括繁简转换,空白符、标点等去除,网址链接的替换等。然后进入步骤S12。
[0029]步骤S12:对于当前的目标文本,确定文本中的句子属性信息序列。句子属性信息序列是文本中从左向右的第一个分隔词之前的序列,或者是文本中从左向右的第一个不属于商品信息词词库的词之前的序列。所以可通过对文本从左向右进行遍历,按照上述句子属性信息序列的定义对其进行确定。本实施例中,利用标记进行上述处理,分两步进行。
[0030]第一步:句子分词及词汇特征标记。采用正向最大匹配对目标文本或预处理后的文本进行分词,匹配的最大长度为6个字符(该值是通过统计商品信息词库的词汇长度设定的,也可以设定其他值)。在分词过程中,如果匹配到商品信息词词库的中心词、品牌、属性、和分隔词,分别给予不同的数字标记:1、2、3、4,未匹配到词库的单字符标记为O。比如对于文本:“茵曼2013冬装新款纯棉格子撞布拼接连帽中长款棉衣橙红色有货吗”,分词处理并且添加标记后为:茵曼2#20133#冬装1#新款3#纯棉3#格子3#撞布3#拼接3#连帽3#中长款3#棉衣1#橙红色3#有4#货0#吗0#。
[0031]第二步:提取句子属性信息序列。如果序列中包含分隔词标记4,则提取4之前的序列作为该句子的属性信息序列,比如上例中的句子信息序列为:231333333313400,则句子属性信息序列为:231333333313 ;如果序列中不包含分隔词标记,则提取整个句子序列中最后一个非O标记之前的子序列作为属性信息序列,比如句子信息序列为:2313333300130000,则句子属性信息序列为:231333330013。
[0032]需要说明的是,因为中文商品名称比较长,所以包含中文商品名称的文本也相应较长,所以在步骤S12之前,可以先对文本的长度进行预判断,如果比较短则可以直接认定其不包含中文商品名称。通过对363万条网站中文商品名称的统计,其平均长度为36.03个字符;通过对14万条不包含中文商品名称的客户咨询问题的统计,该类问题的平均长度为7.8个字符。可参考此数据设定包含中文商品名称句子的阈值长度为25至30个字符,句子长度超过该阈值均可认为其包含中文商品名称。该阈值小于中文商品名称的平均长度,是考虑到也有相当数量的中文商品名称长度小于该平均长度,在实际应用中需要尽可能地由机器处理客户咨询问题,所以需要尽量将包含中文商品名称的文本纳入处理范围。为了得到更好的预判断效果,可针对某个具体品类的商品统计其商品名称的平均长度,或者统计包含该具体品类的商品名称的文本的平均长度,然后将统计结果乘以一个预设系数,例如0.7或0.75,作为上述预判断的阈值,如针对该品类的文本例如讨论该品类的论坛中客户咨询的问题小于该阈值,则认为该文本未包含中文商品名称。
[0033]步骤S13:对句子属性信息序列依次进行粗判断和细判断。由于部分中文商品名称不包含品牌这一特征,所以粗判断标准有两条,满足其中一条即通过粗判断:1、句子的属性信息序列同时包含中心词、属性和品牌,如采用上文中的添加标记的方式处理,则序列中需同时包含1、2和3,则粗判断结果为真;2、句子的属性信息序列包含中心词和多于一个的属性词,即序列中包含1,和一个以上的3,则粗判断结果为真。对于粗判断结果为真的文本,进一步进行下述的细判断。
[0034]由于很多中文商品名称中包含有非商品信息词库的词汇,比如“【包邮】男士修身纯棉韩版立领休闲长袖衬衫”,由于“包邮”属于客户问题中的业务词汇,分词并添加标记后的结果为:包0#邮0#男士 3#修身3#纯棉3#韩版3#立领3#休闲3#长袖衬衫1#,该句的属性信息序列为:00333331。通过对110万条中文商品名称的属性信息序列进行统计分析,其平均序列长度为9.3,序列中O的数量平均占比为0.26,根据此数据,设定属性信息序列的长度阈值N的范围是[6,10], O的数量占比阈值P的范围是[0.25,0.45],如果属性信息序列长度大于N并且O的数量占比低于P,则细判断结果为真。
[0035]步骤S14:输出依次通过粗判断和细判断的文本。本步骤即确认了当前目标文本中包含中文商品名称。在这种情况下,便于分析当前目标文本中的其他部分,例如客户咨询内容的中心问题,进而由自动应答机器人作进一步分析处理。
[0036]图2是根据本发明实施例的从文本中识别中文商品名称的装置的主要模块的示意图。如图2所示,从文本中识别中文商品名称的装置20主要包括商品信息词词库模块21、句子属性信息序列模块22、判断模块23、以及输出模块24。
[0037]商品信息词词库模块21,用于保存商品信息词词库。句子属性信息序列模块22,用于确定文本中的句子属性信息序列。判断模块23,用于对所述句子属性信息序列依次进行粗判断和细判断。输出模块24,用于对于同时满足所述粗判断和细判断的句子属性信息序列,输出该句子属性信息序列。
[0038]从文本中识别中文商品名称的装置20还可包括预判断模块,用于在句子属性信息序列模块确定文本中的句子属性信息序列之前,判断文本的长度是否超过设定值,并仅在判断结果为是的情况下触发句子属性信息序列模块22。该预判断模块还可用于:统计指定品类商品的商品名称字数的平均长度,或者统计包含指定品类商品名称的文本的平均长度;然后将统计结果乘以一个预设系数得到上述设定值。
[0039]句子属性信息序列模块22还可用于:对文本进行分词,在分词过程中,按照分词得到的词为中心词、品牌、属性、或者分隔词,或者该词不属于上述任一者,分别为该词分配第一标记至第五标记;对分词后的文本从左至右遍历,在遍历到分配有第四标记的词的情况下将该词之前的序列作为该文本中的句子属性序列,否则将该文本中的最后一个分配到非第五标记的词及该词之前的序列作为该文本中的句子属性序列。
[0040]根据本发明实施例的技术方案,基于商品信息词词库分析文本中的词语,有助于准确识别文本中的中文商品名称。对本发明实施例的技术方案进行测试如下:
[0041]测试环境:联想ThinkPad 430C, Windows 7操作系统,4G内存,Intel酷睿?5处理器,代码用Python语言编写。
[0042]测试语料:某网站客户实际咨询的5000条关于服装品类的长句问题(句子长度大于25),其中,包含中文商品名称的问题3000条。
[0043]商品信息词库词汇量:服装类品牌特征词汇11940个,服装类属性特征词汇2142个,服装类中心词特征词汇1070个,分隔词6个。
[0044]程序中重要参数设置:判定为长句的长度阈值为25,句子属性信息序列长度阈值为6,属性信息序列中O数量占比阈值为0.42。
[0045]测试结果:识别得到2862条包含中文商品名称的长句,其中,准确率为97.62%,即2794条识别正确;召回率为93.13%,即206条未被召回(在步骤S12的预判断中,实际包含了中文商品名称的文本被认为未包含,则其未被召回)。
[0046]测试结论:本发明实施例的技术方案能很好的识别和提取长句中的中文商品名称,可以用于实际的电子商务零售行业自动应答机器人中,这对于提高问题识别率、提升客户满意度将会有很大的帮助。
[0047]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0048]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0049]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0050]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.从文本中识别中文商品名称的方法,其特征在于,包括: 步骤A:保存商品信息词词库,所述商品信息词包括中心词、品牌、属性、以及分隔词; 步骤B:确定文本中的句子属性信息序列,所述句子属性信息序列是所述文本中从左向右的第一个分隔词之前的序列,或者是所述文本中从左向右的第一个不属于所述商品信息词词库的词之前的序列; 步骤C:对所述句子属性信息序列依次进行粗判断和细判断;其中,所述粗判断的标准是:所述句子属性信息序列包含中心词、品牌、以及属性,或者包含中心词和一个以上属性;所述细判断的标准是:句子属性信息序列大于第一预设值并且其中不属于所述商品信息词词库的词所占比例小于第二预设值; 步骤D:对于同时满足所述粗判断和细判断的句子属性信息序列,确认其为中文商品名称。
2.根据权利要求1所述的方法,其特征在于,所述步骤B之前,判断所述文本的长度是否超过设定值,并仅在判断结果为是的情况下进行所述步骤B。
3.根据权利要求2所述的方法,其特征在于,所述设定值的取值范围是[25,30]。
4.根据权利要求2所述的方法,其特征在于,所述设定值按如下步骤确定:统计指定品类商品的商品名称字数的平均长度,或者统计包含指定品类商品名称的文本的平均长度;然后将统计结果乘以一个预设系数得到所述设定值。
5.根据权利要求1所述的方法,其特征在于,所述步骤B包括: 对所述文本进行分词,在分词过程中,按照分词得到的词为所述中心词、品牌、属性、或者分隔词,或者该词不属于上述任一者,分别为该词分配第一标记至第五标记; 对分词后的所述文本从左至右遍历,在遍历到分配有第四标记的词的情况下将该词之前的序列作为所述文本中的句子属性序列,否则将所述文本中的最后一个分配到非第五标记的词及该词之前的序列作为所述文本中的句子属性序列。
6.根据权利要求1所述的方法,其特征在于,所述细判断的标准中的第一预设值的范围是[6,10],第二预设值的范围是[0.25,0.45]。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述文本是电子商务客户的在线咨询的问题的文本。
8.从文本中识别中文商品名称的装置,其特征在于,包括: 商品信息词词库模块,用于保存商品信息词词库,所述商品信息词包括中心词、品牌、属性、以及分隔词; 句子属性信息序列模块,用于确定文本中的句子属性信息序列,所述句子属性信息序列是所述文本中从左向右的第一个分隔词之前的序列,或者是所述文本中从左向右的第一个不属于所述商品信息词词库的词之前的序列; 判断模块,用于对所述句子属性信息序列依次进行粗判断和细判断;其中,所述粗判断的标准是:所述句子属性信息序列包含中心词、品牌、以及属性,或者包含中心词和一个以上属性;所述细判断的标准是:句子属性信息序列大于第一预设值并且其中不属于所述商品信息词词库的词所占比例小于第二预设值; 输出模块,用于对于同时满足所述粗判断和细判断的句子属性信息序列,输出该句子属性信息序列。
9.根据权利要求8所述的装置,其特征在于,还包括预判断模块,用于在所述句子属性信息序列模块确定文本中的句子属性信息序列之前,判断所述文本的长度是否超过设定值,并仅在判断结果为是的情况下触发所述句子属性信息序列模块。
10.根据权利要求9所述的装置,其特征在于,所述预判断模块还用于:统计指定品类商品的商品名称字数的平均长度,或者统计包含指定品类商品名称的文本的平均长度;然后将统计结果乘以一个预设系数得到所述设定值。
11.根据权利要求8所述的装置,其特征在于,所述句子属性信息序列模块还用于: 对所述文本进行分词,在分词过程中,按照分词得到的词为所述中心词、品牌、属性、或者分隔词,或者该词不属于上述任一者,分别为该词分配第一标记至第五标记; 对分词后的所述文本从左至右遍历,在遍历到分配有第四标记的词的情况下将该词之前的序列作为所述文本中的句子属性序列,否则将所述文本中的最后一个分配到非第五标记的词及该词之前的序列作为所述文本中的句子属性序列。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述文本是电子商务客户的在线咨询的问题的文本。
【文档编号】G06F17/27GK104331395SQ201410586116
【公开日】2015年2月4日 申请日期:2014年10月28日 优先权日:2014年10月28日
【发明者】岳兴明 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司