【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请一实施例提供的特征词汇提取方法的流程示意图。如图1所示,该方法包括:
101、获取网络资源的描述信息作为提取语料。
102、对上述提取语料进行词组标记,以获得词组标记结果。
103、从上述词组标记结果中,提取可以反映网络资源特征的特征词汇。
本实施例提供一种特征词汇提取方法,可由特征词汇提取装置来执行,用以从网络资源的描述信息中,提取可以反映网络资源特征的特征词汇,从而保证所提取的特征词汇的数量和质量。
在详细介绍本实施例的流程之前,首先对本申请中的特征词汇进行解释说明:
网络资源的特征词汇也可以称为网络资源的亮点词汇,是最能描述网络资源的风格、特点等特征的词汇,甚至可以作为网络资源的标签。特征词汇可以表达一个完整的意思,其可以是单词,也可以是词组。其中,词组比单词具有更加有效的表述力,因此词组更加适合成为特征词汇,但不限于此。对用户而言,通过网络资源的特征词汇可以快速的了解到该网络资源的内容以及相关特征。举例说明,假设网络资源为服装,则词组long-sleeve(长袖),描述这件衣服是长袖的,可以作为服装的一个特征词汇。
提取特征词汇的第一步是:准备提取语料。本实施例获取网络资源的描述信息作为提取语料。
网络资源的描述信息主要是一些与网络资源相关的信息,例如可以包括但不限于:网络资源的标题、属性信息、关键词、详情信息以及评论信息中的至少一种。值得说明的是,网络资源的描述信息优选是文本信息,但不限于此。
上述网络资源的属性信息可以是网络资源提供者在发布网络资源时手动填写的,例如包括但不限于:长度、大小、产地、款式、饰品等。
上述网络资源的标题和关键词也是网络资源提供者在发布网络资源时手动填写的。
在电子商务领域,上述网络资源可以是商品或服务。以商品为例,网络资源的标题、属性信息和标题实际上也就是商品的标题、属性信息和关键词。
一种商品的标题的示例如下:
SEXY style girls’black dresses package-hip-dress one shouder’longSLEEVE++Green flowers+v-neck%oneck COCKAILDR-ESS+wholesale and retail+free shipping 100%cotton
一种商品的属性信息的示例如下:
Length:floor-length|Decoration:beading|Gender:woman|Season:summer|Pattern Type:print|Sleeve Style:off the shoulder|Neckline:o-neck|Style:casual|Place of Origin:Fujian,China Mainland|Number:LC2132-1LC2132-2LC2132-3
一种商品的关键词(逗号分隔)的示例如下:
Blue Dress Party,Fashion Ladies Blue Dress Party,Fashion LadiesBlue Dress Party
值得说明的是,由于是大数据处理,本实施例提取的网络资源的描述信息是非常多的,甚至可以达到亿级别。
在一可选实施方式中,可以从数据仓库中,获取网络资源的原始描述信息,将原始描述信息直接作为提取语料。
在另一可选实施方式中,考虑到网络资源的原始描述信息存在一些不规范和错误的地方,例如使用奇怪的符号连接单词,多个单词写在一起无法区分,单词的拼写错误,同一个单词或者词组在多个地方的写法不一致等,若直接采用原始描述信息,会为后面的处理带来一定困难,降低所提取的特征词汇的质量。基于此,如图2所示,上述步骤101包括:
101a、从数据仓库中,获取网络资源的原始描述信息。
101b、对原始描述信息进行文本预处理,以获得标准化描述信息作为提取语料。
简单来说,就是在获取原始描述信息之后,对原始描述信息进行文本预处理,执行数据清洗,得到清晰可用的数据。图2中其它步骤与图1所示相同,下面一并详细描述。
值得说明的是,上述网络资源的原始描述信息包括:网络资源的标题、属性信息、关键词、详情信息以及评论信息中的至少一种;而网络资源的标准化描述信息包括:经过文本处理后网络资源的标题、属性信息、关键词、详情信息以及评论信息中的至少一种。
进一步,对原始描述信息进行文本预处理包括但不限于:
对原始描述信息进行连接符号预留处理、大小写转换处理、拼写一致性检查处理、单词分割处理、拼写纠错处理以及名词词形还原处理中的至少一种。
连接符号预留处理:
在原始描述信息中,可能存在一些奇怪的连接符号,例如加号“+”,去除这些奇怪的连接符号,原始描述信息就变得比较规范,方便后续处理。但是,有一些特殊的连接符号,可能能够表达特殊或更加丰富的含义。
例如,短线“-”,通过分析发现,这个符号一般是网络资源提供者在填写网络资源的描述信息的过程中主动加上去的,往往连接着两个或多个相关的词,网络资源提供者可能希望将这些词连接在一起,表达一个更加丰富的语义。以o-neck为例,是一个正确的拼写,表达“圆领”的意义,若将短线“-”去掉,则变成oneck,这是一个错误拼写,有可能在后续纠错过程中被纠正为neck,使其丧失原本的意义。
又例如,百分号“%”,在某些情况下可能会用于表示成分含量,例如“100%cotton”中的百分号表示含棉量百分百,所以应该保留。当然,对于不需要保留的情况,可以将其去掉,例如“v-neck%”中的百分号则是不需要保留的,将其删除。
又例如,单引号“’”,在某些情况下可能会表达所属关系,例如girls’中的单引号表示所属关系,需要保留。当然,对于不需要保留的情况,可以将其去掉,例如shoulder’中的单引号就是多余的,将其删除。
基于上述,对于短线、单引号或百分号,可以预先指定需要保留的格式。在对原始描述信息进行连接符号预留处理时,可以判断原始描述信息中是否包含符合指定格式的短线、单引号或百分号,若判断结果为存在,则保留原始描述信息中符合指定格式的短线、单引号或百分号。对于原始描述信息中存在的不符合指定格式的短线、单引号和百分号以及其它连接符号,均删除。
以上述商品的标题为例:
连接符号预留处理之前如下:
SEXY style girls’black dresses package-hip-dress one shouder’longSLEEVE++Green flowers+v-neck%oneck COCKAILDR-ESS+wholesale and retail+free shipping 100%cotton
连接符号预留处理之后如下:
SEXY style girls’black dresses package-hip-dress one shouderlongSLEEVE Green flowers v-neck oneck COCKAIL DR-ESS wholesaleand retail free shipping 100%cotton
值得说明的是,在处理百分号时,当发现需要保留时,若在百分号与后面的单词之间没有空格,则可以加一个空格,例如上面的“100%cotton”,变成了“100%cotton”,使得预处理后的信息更加规范。
大小写转换处理:
这里主要是进行大小写之间的统一。根据具体应用需求,可以将大写统一转换为小写,也可以将小写统一转换为大写。
以上述商品的标题为例,在进行连接符号预留处理之后,大小写转换处理之前的标题示例如下:
SEXY style girls’black dresses package-hip-dress one shouderlongSLEEVE Green flowers v-neck oneck COCKAIL DR-ESS wholesaleand retail free shipping 100%cotton
经过连接符号预留处理和大小写转换处理之后的标题示例如下:
sexy style girls’black dresses package-hip-dress one shouderlongsleeve green flowers v-neck oneck cockail dr-ess wholesale-retail freeshipping 100%cotton
拼写一致性检查处理:
经过分析发现,同样一个单词,在不同的地方可能会以不同的拼写方式出现。例如,dresses这个单词,就存在着如下不同的拼写方法(不完全统计):dresses、dr-esses、dress-es等。这种拼写的不一致性,也会给后面的分析带来困难,影响所提取到的特征词汇的质量。基于此,这里预先对原始描述信息进行拼写一致性检查处理,将这些拼写不一致的单词转换为一致的拼写方式。
具体的,对于原始描述信息中的每个单词或词组,若该单词或词组在原始描述信息中出现多种拼写方式,统计每种拼写方式在数据仓库中重复出现的次数;根据每种拼写方式在数据仓库中重复出现的次数,从多种拼写方式中,选择重复出现的次数最多且大于预设阈值的拼写方式作为目标拼写方式,将该单词或词组在原始描述信息中出现的其它拼写方式替换为目标拼写方式。
例如,假设dresses这个单词,在原始描述信息中共出现了dresses、dr-esses和dress-es三种拼写方式,经过统计发现dresses在数据仓库中出现的次数最多且大于预设的次数阈值,则可以将dresses作为目标拼写方式,将dr-esses和dress-es这两种拼写方式替换为dresses。
仍以上述商品的标题为例,则上面经过连接符号预留处理和大小写转换处理的标题示例,进一步经过拼写一致性检查处理之后转化为:
sexy style girls’black dresses package-hip-dress one shouderlongsleeve green flowers v-neck o-neck cockail dress wholesale-retail freeshipping 100%cotton
单词分割处理:
经过分析发现,原始描述信息中经常出现多个单词写在了一起的情况,比如上面标题中的“longsleeve”,还有单词拼写错误的情况,比如上面标题中的“shouder”(应该是shoulder)和“cockail”(应该是cocktail)。这些错误会严重影响后续处理过程,所以需要订正。
针对上述问题,一种具体订正方式是:对原始描述信息进行单词分割处理,即识别出原始描述信息中存在的连写在一起的单词,对所识别出的连写在一起的单词进行分割。
举例说明,单词分割处理的结果示例如下:
longsleevefloorlengthdress->long sleeve floor length dress
dgdhlongsleevekl->dgdh long sleeve kl
swearskirt->swear skirt
在上述示例中,“->”左侧的是连写在一起的单词,“->”右侧的是分割后的结果。在上述第一个示例中,待处理字符串是由单词组成的,经过单词分割之后,每个单词都分割出来了。在上述第二个示例中,前面有几个干扰字符,后面也有干扰字符,经过单词分割之后,不仅分割出了确定的单词(long sleeve),而且也将干扰字符识别出来了。在上述第三个示例中,通过采用最优的分割策略,使分割出来的单词更加符合上下文的语义。
综上所述,单词分割处理的过程,就是尽可能的排除前后的干扰字符,识别出单词,并结合上下文确定最优分割策略,使得语义上更加顺畅。
拼写纠错处理:
拼写纠错,就是将错误的拼写形式,订正为正确的形式。例如,将sleve修改为sleeve。值得说明的是,这里的拼写纠错是针对任意字符串(token)的,这里的字符串可以是单词,也可以是多个单词,这样,拼写纠错不仅可以纠正拼写错误的单词,还可以纠正由多个单词形成但拼写错误的词组。
举例说明,拼写纠错处理的结果示例如下:
sleve->sleeve
dres->dress
wholesle->wholesale
shouder->shoulder
saikaaadffdsaf->saikaaadffdsaf
sleevc->sleeve
sleever->sleeve
sleeev->sleeve
sleeevt->sleeve
longsleve->longsleeve
在上述示例中,“->”左侧的错误的拼写形式,“->”右侧的是订正后正确的拼写形式。
上面单独对单词分割处理和拼写纠错处理进行了说明。在实际应用中,两者也可以结合使用。由于某些单词写在了一起,但是也有可能写错,比如上面标题示例中的“longsleve”,这种错误的拼写形式,无法直接被单词分割,所以需要首先被订正,例如会被订正为“longsleeve”。在订正之后,就可以对其进行单词分割处理,将单词分割为正确的形式“long sleeve”。这里将单词分割和拼写纠错结合起来使用,可以解决很多只靠单一技术无法解决的问题,提高了数据预处理的效果。
仍以上述商品的标题为例,则上面经过连接符号预留处理、大小写转换处理以及拼写一致性检查处理的标题示例,进一步经过单词分割和拼写纠错之后转化为:
sexy style girls’black dresses package-hip-dress one shoulder longsleeve green flowers v-neck o-neck cocktail dress wholesale-retail freeshipping 100%cotton
名词词形还原:
名词词形还原主要是指将原始描述信息中的名词进行词形还原,即名词复数变单数。
值得说明的是,本实施例考虑到动名词或者动词的过去式可能是形容词,有可能表达特定的意思,所以暂不考虑对动词和形容词进行词形还原。
在本实施例中,可以根据词典和预设单复数变换规则中的至少一种,对原始描述信息中的名词进行词形还原。
其中,基于词典的名词词形还原方式,比较暴力,但是比较可靠。具体的做法是:从词典中获取了所有名词及其复数形式,构建名词和其复数形式之间的映射关系,后续基于该映射关系,识别原始描述信息中的名词复数,并将其还原为名词单数。
基于预设单复数变换规则的名词词形还原方式,预先设定名词单复数变换规则,例如名词变成复数形式的方法一般有后面加“s”,末尾字符是“y”的变成“ies”等,后续基于该变换规则,识别原始描述信息中的名词复数,并按照变换规则对识别出的名词复数进行逆向处理,以还原为名词单数。
在实际应用上,可以优先基于词典进行名词词形还原处理,如果基于词典无法还原为名词单数,进一步,基于单复数变换规则进行名词词形还原处理。一般来说,词典的准确率比较高,而规则的覆盖面比较广泛,将两者结合使用,既可以保证名词词形还原的准确率,又可以保证名词复数尽可能被还原为名词单数。当然,也可以使用上述两种名词词形还原方式中的一种。
仍以上述商品的标题为例,则上面经过连接符号预留处理、大小写转换处理、拼写一致性检查处理、单词分割和拼写纠错的标题示例,进一步经过名词词形还原之后转化为:
sexy style girls’black dress package-hip-dress one shoulder longsleeve green flower v-neck o-neck cocktail dress wholesale-retail freeshipping 100%cotton
值得说明的是,上面单独对每种文本预处理方式进行了说明。在实际应用中,各种文本预处理方式可以单独使用,也可以相互结合使用。
原始描述信息在经过上述各种文本预处理之后,将变得规范化,为便于区分,将现在的描述信息称为标准化描述信息。
之后,可以将标准化描述信息作为提取语料,进行特征词汇的提取处理。
具体的,考虑到单个单词往往在意义表达上不够完整,例如“sleeve”没有意义,但是“long sleeve”就是一个特征词汇,即“长袖的”。也就是说,词组成为特征词汇的概率更高,所以为了提取更多高质量的特征词汇,在获得提取语料之后,首先需要将提取语料中的词组标记出来,然后,基于标记结果进行特征词汇的提取。
在一可选实施方式中,上述对提取语料进行词组标记的实施方式包括:
对提取语料分别执行显示词组提取流程和模式词组提取流程,以从提取语料中提取显示词组和隐式词组;
根据显示词组和隐式词组的出现频次,确定提取语料中的待标记词组;
在提取语料中对待标记词组进行标记,以获得词组标记结果。
在本实施例中,为了更加全面的从提取语料中提取词组,从两方面进行词组提取,一方面是对提取语料执行显示词组提取流程,以从提取语料中提取显示词组,另一方面是对提取语料执行模式词组提取流程,以从提取语料中提取隐式词组。
其中,显示词组是指容易发现的词组,隐式词组是指不容易发现的词组。由此可见,本实施例既能提取显示词组,又能提取隐式词组,所以能够更加全面的提取词组。另外,本实施例基于海量描述信息进行词组提取,不依赖于人工,因此可以避免人工带来的错误,保证词组的质量。
值得说明的是,本实施例并不限制提取显示词组的操作与提取隐式词组的操作之间的执行顺序,可以按照任意先后顺序执行,也可以并行执行。
进一步,上述显示词组提取流程包括:加载预设的显示词组规则的步骤和根据显示词组规则从提取语料中提取显示词组的步骤。基于此,上述对提取语料执行显示词组提取流程,以从提取语料中提取显示词组的实施方式包括:
加载预设的显示词组规则;
从提取语料中,提取符合显示词组规则的信息片段作为显示词组。
在一可选实施方式中,上述显示词组规则包括但不限于:指定字符串条件规则、领域词典规则以及属性值规则中的至少一个规则。
上述指定字符串条件规则用于指示符合指定字符串条件的字符串可以作为显示词组。
上述领域词典规则用于指示属于领域词典中的词组可以作为显示词组。根据领域的不同,领域词典也会有所不同。例如,在服装领域,《英汉纺织大辞典》可以算作一种领域词典。
上述属性值规则用于指示网络资源的属性信息中的属性值可以作为显示词组。
基于上述具体的显示词组规则,从提取语料中,提取符合显示词组规则的信息片段作为显示词组,具体可以包括以下至少一种操作:
从提取语料中,提取满足指定字符串条件的字符串作为显示词组;
从提取语料中,提取属于领域词典中的词组作为所述显示词组;
在提取语料包括网络资源的属性信息时,提取属性信息中的属性值作为显示词组。
下面对提取满足指定字符串条件的字符串作为显示词组的方案进行详细说明。
具体的,考虑到网络资源的提取语料中存在短线“-”连接的字符串,例如,package-hip-dress、v-neck、o-neck、wholesale-retail、one-shoulder、long-sleeve等均属于通过短线“-”连接的字符串。以短线“-”连接的字符串一般是将多个单词连接在一起,能够表达更加丰富的含义,所以短线“-”连接的字符串是词组的概率较大。当然,也有一些以短线“-”连接的字符串由于不具有实际含义,所以不能作为词组,例如a-b,v-neck-half-sleeve-dress等不属于词组。
基于上述,可以设定一些条件,用于限定能够作为词组的以短线“-”连接的字符串,这些限制条件称为字符串条件,具体包括但不限于以下条件:
字符串以短线“-”连接:这个条件用于限定必须是以短线“-”连接的字符串才能成为词组,其中,以短线“-”连接的字符串可以称为token;
字符串的出现次数大于预设次数阈值:这个条件要求字符串的出现次数大于预设次数阈值,例如大于500次;这里字符串的出现次数是指统计出的该字符串在数据仓库中的出现次数;
字符串不是英文单词:这个条件用于排除单词,即单词不是词组;
字符串的最后一个单词不是以s、es、ex、ed、d、ing、ings、ry、ies、ves、y或a结束:这个条件主要用于避免词组中包含名词复数、动词过去式、现在进行时等;
字符串中不含有连词:这个条件主要用于避免词组中含有连词(如and、but、or、for、so、nor等);
字符串中不含有停用词:这个条件主要用于避免词组中出现停用词(如of、a等);
字符串包含指定个数的单词:这个条件的意思是字符串必须包含指定个数的单词才能成为词组,否则不能成为词组;
字符串中不含有数字(百分数除外):这个条件的意思是含有数字的字符串不能成为词组;
字符串中单词长度小于指定长度(例如小于20个字母):这个条件的意思是字符串中单词的长度要小于指定长度才能成为词组,反之不能成为词组;
字符串的长度大于字符串包含的单词的个数:这个条件的意思是指字符串的长度要大于字符串包含的单词的个数才能成为词组,反之不能成为词组;
字符串不满足指定的正则规则:这个条件的意思是不满足指定的正则规则的字符串才能成为词组,反之,满足正则规则的不能成为词组。例如,这里的正则规则包括但不限于:“as-\w+”,表示以“as-”开头的字符串,“so-\w+”,表示以“so-”开头的字符串。
基于上述字符串条件可以确定哪些字符串是显示词组,哪些字符串不是显示词组。举例说明:
不是词组的字符串:
sleeve-less:最后一个单词以s结束;
dress-es:最后一个单词以s或es结束;
sleeve-s:最后一个单词以s结束;
full-sleevevneckdresssexyclubwear:字符串中单词长度超过了指定长度;
a-b:字符串的长度不大于字符串包含的单词的个数;
half-3sleeve:字符串中含有数字3;
v-neck-half-sleeve-dress:字符串包含的单词过多;
fashion-ladies-blue-dress-party:字符串包含的单词过多;
as-picture:字符串满足了指定的正则规则;
so-good:字符串满足了指定的正则规则。
是词组的字符串:
v-neck
deep-v-neck
green-flower
floor-length
100%-silk
考虑到上述提取语料可以包括但不限于:网络资源的标题、属性信息以及关键词等。在提取满足指定字符串条件的字符串作为显示词组的实施过程中,可以将网络资源的标题、属性信息以及关键词等整合为一个信息集合,然后从该信息集合中提取满足指定字符串条件的字符串作为显示词组。或者,在提取满足指定字符串条件的字符串作为显示词组的实施过程中,可以单独从网络资源的标题中提取满足指定字符串条件的字符串作为显示词组,单独从网络资源的属性信息中提取满足指定字符串条件的字符串作为显示词组,以及单独从网络资源的关键词中提取满足指定字符串条件的字符串作为显示词组,等等。
对于网络资源来说,一般具有多个属性,但不是每个属性对词组提取都有用。基于此,可以根据具体应用场景,预先配置筛选规则,用于从所有属性中筛选出对词组提取有用的属性,称为关键属性。然后,以关键属性为语料,进行词组提取。
以电子商务领域为例,网络资源为商品。用户预先配置筛选规则,通过筛选规则选择关键属性。其中,不同资源类目对应的筛选规则不同,筛选出的关键属性也不相同。假设id为3的类目为Apparel,则按照预设的筛选规则筛选出的关键属性包括但不限于表1所示。
表1
下面对提取属于领域词典中的词组作为显示词组的方案进行详细说明。
具体的,领域词典中存储有本领域的词组,因此,可以直接判断提取语料中是否包括属于领域词典中的词组,若包括,则可以直接确定该词组属于显示词组。这种方式实现相对简单,效率较高,尤其适合发现比较明显的词组。
下面对上述提取属性信息中的属性值作为显示词组的方案进行详细说明。
具体的,属性信息一般包括属性名和属性值,一般实现结构为属性名:属性值。在这种实现结构中,属性值多为语义明确的词组,所以可以直接从提取语料中发现属性信息,然后提取属性信息中的属性值作为显示词组。
在上述实施例或实施方式中,可以采用上述几种方式提取到显示词组。值得说明的是,上述提取显示词组的几种方式可以单独使用,也可以以任意组合结合使用。
进一步,上述模式词组提取流程包括:加载预设的模式组合规则的步骤和根据模式组合规则从提取语料中提取隐式词组的步骤。基于此,上述对提取语料执行模式词组提取流程,以从提取语料中提取隐式词组的实施方式包括:
加载预设的模式组合规则;
从提取语料中,提取符合模式组合规则的信息片段作为隐式词组。
在一可选实施方式中,上述模式组合规则包括但不限于:词性组合规则、正则表达式规则以及属性表达规则中的至少一个规则。
上述词性组合规则用于指示符合指定词性组合条件的单词组合可以作为隐式词组。
上述正则表达式规则用于指示满足指定正则表达式的单词组合可以作为隐式词组。
上述属性表达规则用于指示按照预设生成规则,根据属性信息生成隐式词组。
基于上述具体的模式词组规则,从提取语料中,提取符合模式词组规则的信息片段作为隐式词组,具体可以包括以下至少一种操作:
从提取语料中,提取满足指定词性组合条件的单词组合作为隐式词组;
从提取语料中,提取满足指定正则表达式的单词组合作为隐式词组;
在提取语料包括网络资源的属性信息时,按照预设生成规则,根据属性信息,生成隐式词组。
下面对上述从提取语料中,提取满足指定词性组合条件的单词组合作为隐式词组的方案进行详细说明。
具体的,经过研究分析发现,有些词性组合模式往往是词组,例如,形容词+名词("^JJ\\s+NNS{0,1}$")、形容词+形容词+名词("^JJ\\s+JJ\\s+NNS{0,1}$")等构成的单词组合,一般是词组。基于此,词性组合条件可以包括:形容词+名词模式、形容词+形容词+名词模式。当然,除了这两种词性组合模式之外,还有其它词性组合模式。例如,green flowers,natural-color,hooded-collar等属于形容词+名词模式的单词组合,属于词组。又例如,small green flowers等属于形容词+形容词+名词模式的单词组合,也属于词组。
在具体实现上,可以按照词组包括的单词个数设置窗口长度,按照设定的窗口长度对提取语料依次采样,然后判断采样到的单词组合在词性上是否符合词性组合条件,若判断结果为是,则确定该单词组合为隐式词组;若判断结果为否,则丢弃,并继续下一次采样。
其中,若设置词组包括2或3个单词,则可以设置两个窗口长度,分别为2和3,用于采样长度为2和3的单词组合。
下面对上述从提取语料中,提取满足指定正则表达式的单词组合作为隐式词组的方案进行详细说明。
具体的,考虑到有些词组,既不是固定搭配形成的词组,也不符合词性组合模式,即无法通过正常的语法手段来得到,但是这些词组符合一定的构词方式,比如都以style结尾,或者有百分数开头等。针对这些词组,预先设定正则表达式,符合预设正则表达式的单词组合,也是词组。
列举几个表示词组的正则表达式:
"^[a-z]*?\\s+style$"表示xxx style,即单词+style形式的单词组合,可能是词组,需要获取,例如"sexy style","bohemia style";
"^[0-9]+%\\s+[a-z]+$"表示xx%xxx,即百分数+单词的单词组合,可能是词组,需要获取,例如"100%cotton";
"^%[0-9]+\\s+[a-z]+$"表示%xx xxx,即百分数+单词的单词组合,可能是词组,需要获取,例如"%100cotton"。
在具体实现上,可以根据正则表达式中的标识部分(例如style、%),在提取语料中进行查找,当确定该标识部分后,按照正则表达式的格式判断该标识部分之前或之后的单词是否符合正则表达式的要求,若判断结果为是,则获取由该标识部分以及该标识部分之前或之后的单词形成的单词组合作为隐式词组。
下面对上述按照预设生成规则,根据属性信息,生成隐式词组的方案进行详细说明。
具体的,网络资源的属性信息包括属性名和属性值。在提取语料包括网络资源的属性信息时,可以按照预设生成规则,根据属性信息,生成隐式词组。
进一步,上述生成规则用于指示将属性名转换为展示属性名,将属性值和展示属性名进行组合,以生成隐式词组。
基于上述,按照预设生成规则,根据属性信息,生成隐式词组包括:
根据属性信息中的属性名生成展示属性名,将属性信息中的属性值和展示属性名进行组合,以生成隐式词组。
其中,可以预先设定属性名到展示属性名之间的转换规则,然后基于该转换规则生成展示属性名。根据不同应用场景,该转换规则可以适应性设置。以电子商务领域中的服装类目为例,一种属性名到展示属性名之间的转换规则的示例如下所示:
dresses length/dress
sleeve length/sleeve
sleeve style/sleeve
sleeve type/sleeve
sleeve/sleeve
hooded/hooded
material/NULL
neckline/neckline
waistline/waistline
decoration/decoration
style/style
silhouette/silhouette
fabric type/fabric
season/NULL
for season/NULL
for the season/NULL
pattern type/pattern
color/NULL
color style/NULL
technics/technics
item type/NULL
item name/NULL
product category/NULL
outerwear type/outerwear
eyewear type/NULL
scarves type/NULL
clothing length/clothing
collar/collar
closure type/closure
thickness/thickness
back design/back
built-in bra/built-in bra
waistline/waistline
wedding dress fabric/NULL
在上述示例中,每个示例包含三部分,属性名、斜线和展示属性名。斜线用以分割属性名和展示属性名,斜线左侧是属性名,斜线右侧是展示属性名。
基于上述示例,一种生成隐式词组的方式为:属性值+展示属性名。在具体实现上,可以获取属性信息,根据上述转换规则,将属性信息中的属性名转换为展示属性名,再按照上述方式将属性值与展示属性名组合在一起,形成隐式词组。
例如,假设一属性信息为sleeve length:half,其中,属性名是“sleevelength”,属性值是“half”,可以将属性名“sleeve length”转换为展示属性名“sleeve”,将属性值“half”和展示属性名“sleeve”进行组合,生成隐式词组“half-sleeve”。
又例如,假设一属性信息为sleeve style:bat wing,其中,属性名是“sleeve style”,属性值是“bat wing”,可以将属性名“sleeve style”转换为展示属性名“sleeve”,将属性值“bat wing”和展示属性名“sleeve”进行组合,生成隐式词组“bat-wing-sleeve”。
值得说明的是,上述展示属性名可以为“NULL”,即生成隐式词组时,展示属性名为空,不使用属性名。
另外,对于一些属性值是布尔类型的,例如一属性信息为“build-in-bra:yes”(一般在婚纱类目的商品中,用以表达婚纱是否内置了文胸),如果是属性值是“yes”或“y”等表示“是”,则形成隐式词组时可以直接省略属性值,否则不省略。例如,根据属性信息“build-in-bra:yes”,形成的隐式词组为“build-in-bra”。例如,根据属性信息“build-in-bra:not”,形成的隐式词组“not-build-in-bra”。
由此可见,经过上述几种操作可以提取到隐式词组。值得说明的是,上述提取隐式词组的几种方式可以单独使用,也可以以任意组合结合使用。
在从提取语料中提取到显示词组和隐式词组之后,可以统计显示词组和隐式词组中各词组的出现频次,即统计各词组在数据仓库这个语料库中出现的频次,用于指导词组标记。一种具体统计各词组的出现频次的方法是:判断各词组是否出现在数据仓库中,如果判断结果为是,则将相应词组的频次加1,否则将相应词组的频次保持不变。这样可以得到各词组的出现频次。
词组标记的原则是将最可能是词组的单词组合标记出来。基于此,若识别出的某个词组的出现频次越高,说明是词组的概率就越高,因此,可以根据各词组的出现频次,确定提取语料中的待标记词组,例如,将出现频次最高的词组作为待标记词组,然后在提取语料中对待标记词组进行标记,以获得词组标记结果。
举例说明,假设一待标记词组的句子如下所示:
new arrive mini dress club wear dress deep v neck off shoulder antiwinkle dress live leopard print dress free shipping
经过词组提取和频次统计,可以得到以下词组及其频次:
上述mini-dress和dress-club以及club-wear-dress都可以作为词组,但是明显有冲突,于是根据频次最大原则,得到了如下的词组标记结果:
new arrive mini-dress club-wear-dress deep-v-neck off-shoulderanti-winkle-dress live leopard-print-dress free shipping
在上述标记结果中,短线连接的词组为待标记词组。
另外,以上述商品的标题为例,在经过文本预处理之后,对其进行词组标记可得到如下结果:
sexy-style girls’black-dress package-hip-dress one-shoulderlong-sleeve green-flower v-neck o-neck cocktail-dress wholesale-retailfree-shipping 100%-cotton
值得说明的是,词组标记的作用是巨大的,实现了英文的词组分词,通过词组分词,可以得到一个个语义上最小粒度的文本处理单元,接下来,就可以基于词组标记结果提取特征词汇了。
一种具体从词组标记结果中,提取特征词汇的实施方式包括:
从词组标记结果中,提取候选词汇;
根据候选词汇的出现频次,计算候选词汇的权重;
根据候选词汇的权重,选择权重位于预设权重区间范围内的候选词汇作为网络资源的特征词汇。
可选的,上述从词组标记结果中,提取候选词汇具体包括:去除词组标记结果中的无用词,以获得候选词汇,即将剩余的单词或词组作为候选词汇。
上述无用词包括但不限于:停用词、量词、方向词以及符合正则表达式规则的词。
停用词:是自然语言处理中无用的词。在英文中,有标准的停用词列表,例如英文中的标准停用词有:
[u'i',u'me',u'my',u'myself',u'we',u'our',u'ours',u'ourselves',u'you',u'your',u'yours',u'yourself',u'yourselves',u'he',u'him',u'his',u'himself',u'she',u'her',u'hers',u'herself',u'it',u'its',u'itself',u'they',u'them',u'their',u'theirs',u'themselves',u'what',u'which',u'who',u'whom',u'this',u'that',u'these',u'those',u'am',u'is',u'are',u'was',u'were',u'be',u'been',u'being',u'have',u'has',u'had',u'having',u'do',u'does',u'did',u'doing',u'a',u'an',u'the',u'and',u'but',u'if',u'or',u'because',u'as',u'until',u'while',u'of',u'at',u'by',u'for',u'with',u'about',u'against',u'between',u'into',u'through',u'during',u'before',u'after',u'above',u'below',u'to',u'from',u'up',u'down',u'in',u'out',u'on',u'off',u'over',u'under',u'again',u'further',u'then',u'once',u'here',u'there',u'when',u'where',u'why',u'how',u'all',u'any',u'both',u'each',u'few',u'more',u'most',u'other',u'some',u'such',u'no',u'nor',u'not',u'only',u'own',u'same',u'so',u'than',u'too',u'very',u's',u't',u'can',u'will',u'just',u'don',u'should',u'now']
在本实施例中,对上述标准停用词进行了一些处理,去除了其中一些对于词组来说有用的词,例如with,between,under,over等,另外,结合网络资源所属领域,添加了一些新的无用词或者词组,比如wholesale,retail,shipping,free-shipping,fashion,price,offer,none,quantity,shipment等,生成了停用词列表。
值得说明的是,上述在停用词列表中添加新的无用词或者词组时,这些无用词或词组是经过数据分词之后,确定对于描述网络资源的特征无用且容易造成干扰的词。这词或词组可由人工分析发现,也可以是自动化分析发现。
具体的,可以将词组标记结果中的每个单词或词组,在上述停用词列表中进行匹配,若在停用词列表中匹配到相同的单词或词组,则确定该单词或词组为停用词,于是将其从词组标记结果中删除。
量词:以英文为例,常见的量词包括one、two、three、width、thin、thick等。具体的,可以形成量词表。在实际应用时,将词组标记结果中的每个单词或词组,在上述量词表中进行匹配,若在量词表中匹配到相同的单词或词组,则确定该单词或词组为量词,于是将其从词组标记结果中删除。
方向词:以英文为例,常见的方向词包括front、back、left、right、up、down等。具体的,可以形成方向词表。在实际应用时,将词组标记结果中的每个单词或词组,在上述方向词表中进行匹配,若在方向词表中匹配到相同的单词或词组,则确定该单词或词组为方向词,于是将其从词组标记结果中删除。
符合正则表达式规则的词:例如,类似"^[sxlm-]+$","^\\d+%$","^%\\d+$"等。第一个表示去除某些型号词,比如xl,xxxl等,第二个和第三个去除单个的百分数,如果是有意义的百分数,则会被标记为词组。
以上述商品的标题为例,可以从词组标记结果中提取到的候选词汇如下:
sexy-style girls’black-dress package-hip-dress one-shoulderlong-sleeve green-flower v-neck o-neck cocktail-dress 100%-cotton
进一步,以商品的属性信息为例,则可以从词组标记结果中提取到的候选词汇如下:
floor-length beading-decoration woman summer print-patternoff-shoulder o-neck casual-style
更进一步,若同时以商品的标题和属性信息为例,则可以从词组标记结果中提取到的候选词汇如下:
sexy-style girls’black-dress package-hip-dress one-shoulderlong-sleeve green-flower v-neck o-neck cocktail-dress 100%-cottonfloor-length beading-decoration woman summer print-patternoff-shoulder o-neck casual-style
在获得候选词汇之后,可以计算每个候选词汇的权重。在一种实施方式中,可以用TF-IDF值表示候选词汇的权重。
具体的,将每个网络资源的候选词汇形成一个文档,记为D,大量网络资源的候选词汇形成的文档组成了一个文档的集合;
对每个网络资源,计算其候选词汇的词频(即该候选词汇在当前网络资源的候选词汇列表当中的重复次数,假设网络资源的某个候选词汇A在文档D中的频率为TFD-A;
计算所有文档中候选词汇的逆文档频率,假设候选词汇A的逆文档频率计算公式为:IDFA=log(NDOC/(NDOCIN+1));
其中,NDOC为所有文档的总数,NDOCIN为出现候选词汇A的文档的个数。值得说明的是,候选词汇的逆文档频率是唯一的;
对每个网络资源,计算其候选词汇的TF-IDF值,例如计算候选词汇A的TF-IDF值的公式为:TF-IDF(A)=TFD-A×IDFA。
对每个网络资源的各候选词汇,都计算出了一个权重,即TF-IDF值。通过比较,可以看出类似fashion、sexy等词其TF-IDF值很低,说明这些词汇出现的极少,其覆盖的商品量极低,对于表达网络资源特征也没有用处;当然,也有一些词汇其TF-IDF值异常高,这说明这个词汇可能是错误的,对于表达网络资源特征也是没有用处的。
基于上述分析,可以预先定义一个权重区间范围,选择权重位于预设权重区间范围内的候选词汇作为特征词汇。例如,具体可以定义两个变量,即TF-IDFHIGH,TF-IDFLOW,来分别过滤极高和极低的TF-IDF值。经过过滤之后,剩下的是TF-IDF值位于预设TF-IDF区间范围内的候选词汇,也就是最终选择出的特征词汇。
由上述可见,本申请首先以网络资源的描述信息作为提取语料,通过组词标记,从中提取特征词汇,实现了一种自动提取特征词汇的方法,无需人工干预,效率较高,进一步由于无需人工干预,可以处理海量数据,有利于可以保证特征词汇的数量和质量。进一步,在提取过程中,对描述信息进行各种文本预处理,以及从候选词汇中选择权重位于权重区间范围内的特征词汇,有利于进一步提高特征词汇的质量。
在获得特征词汇之后,可以将上述获得的特征词汇应用于个性化推荐***,用以提高推荐效率和精度。另外,也可以将上述获得的特征词汇用于网络资源的展示页面,便于用户更加快速、直观的了解网络资源。
例如,在个性化推荐***中使用特征词汇的具体方式包括:根据用户以往关注(例如浏览、加购物车、收藏等)的网络资源(例如商品),给用户打上相应的标签;当用户再次浏览网络资源时,可以根据用户的标签,与网络资源的特征词汇进行关联,将关联到的网络资源推荐给用户。以电子商务领域为例,与商品类目相比,特征词汇具有一定的发散性,因此基于特征词汇进行商品推荐,往往可以让用户发现更加新奇并中意的商品。
更进一步,在特征词汇应用过程中,往往会涉及特征词汇的选择或排序。在获得特征词汇的同时,可以得到特征词汇的权重,特征词汇的权重在一定程度上可以体现特征词汇的重要性,因此可以基于特征词汇的权重对特征词汇进行排序。但是,考虑到之前计算在计算特征词汇的权重时,主要考虑的是特征词汇的频次,没有考虑其他因素。基于此,如图3所示,在提取到特征词汇之后,所述方法还包括:
104、根据指定的修正因素,对特征词汇的权重进行修正;其中,修正后的权重能够从更多方面反映特征词汇的重要性。
105、基于修正后的权重,对特征词汇进行排序。在实际应用中,可以优选选择排序靠前的特征词汇。
可选的,上述指定因素包括但不限于以下表2中所列举几种:
表2
本申请在获得特征词汇之后,还可以综合考虑各种因素,例如词汇的搜索热度、搜索热度的变化趋势、新兴程度、表达力等,对特征词汇的权重进行修正,使得修正后的权重能够从更多方面反映特征词汇的重要性,为特征词汇的应用提供便利条件。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图4为本申请又一实施例提供的特征词汇提取装置的结构示意图。如图4所示,该装置包括:获取模块41、标记模块42和提取模块43。
获取模块41,用于获取网络资源的描述信息作为提取语料。
标记模块42,用于对提取语料进行词组标记,以获得词组标记结果。
提取模块43,用于从词组标记结果中,提取可以反映网络资源特征的特征词汇。
在一可选实施方式中,获取模块41具体可用于:
从数据仓库中,获取网络资源的原始描述信息;
对原始描述信息进行文本预处理,以获得标准化描述信息作为提取语料。
可选的,上述网络资源的原始描述信息包括:网络资源的标题、属性信息、关键词、详情信息以及评论信息中的至少一种。
进一步,获取模块41在对原始描述信息进行文本预处理,以获得标准化描述信息作为提取语料时,具体用于:
对原始描述信息进行连接符号预留处理、大小写转换处理、拼写一致性检查处理、单词分割处理、拼写纠错处理以及名词词形还原处理中的至少一种。
更进一步,获取模块41在对原始描述信息进行连接符号预留处理时,具体用于:
保留原始描述信息中符合指定格式的短线、单引号或百分号,将原始描述信息中存在的不符合指定格式的短线、单引号和百分号以及其它连接符号删除。
更进一步,获取模块41在对原始描述信息进行拼写一致性检查处理时,具体用于:
对于原始描述信息中的每个单词或词组,若单词或词组在原始描述信息中出现多种拼写方式,统计每种拼写方式在数据仓库中重复出现的次数;
从多种拼写方式中,选择重复出现的次数最多且大于预设次数阈值的拼写方式作为目标拼写方式,将单词或词组在原始描述信息中出现的其它拼写方式替换为目标拼写方式。
更进一步,获取模块41在对原始描述信息进行名词词形还原处理时,具体用于:
根据词典和预设单复数变换规则中的至少一种,对原始描述信息中的名词进行词形还原。
进一步,标记模块42具体用于:
对提取语料分别执行显示词组提取流程和模式词组提取流程,以从提取语料中提取显示词组和隐式词组;
根据显示词组和隐式词组的出现频次,确定提取语料中的待标记词组;
在提取语料中对待标记词组进行标记,以获得词组标记结果。
进一步,提取模块43具体用于:
从词组标记结果中,提取候选词汇;
计算候选词汇的权重;
根据候选词汇的权重,选择权重位于预设权重区间范围内的候选词汇作为特征词汇。
更进一步,提取模块43在从词组标记结果中,提取候选词汇时,具体用于:
去除词组标记结果中的无用词,以获得候选词汇。
进一步,如图5所示,该装置还包括:修正模块44和排序模块45。
修正模块44,用于根据指定的修正因素,对特征词汇的权重进行修正;
排序模块45,用于根据修正后的权重,对特征词汇进行排序。
本实施例提供的特征词汇提取装置,使用网络资源的描述信息作为提取语料,对提取语料进行词组标记,然后从中提取可以反映网络资源特征的特征词汇,与现有技术中引导网络资源提供者手动填写特征词汇的方案相比,消除了网络资源提供者主观因素的影响,不仅可以提取足够数量的特征词汇,而且可以保证特征词汇的质量。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。