分词处理方法、装置、服务器及存储介质与流程

文档序号:33703083发布日期:2023-03-31 20:26阅读:27来源:国知局
分词处理方法、装置、服务器及存储介质与流程

1.本技术属于计算机技术领域,尤其涉及一种分词处理方法、装置、服务器及存储介质。


背景技术:

2.在中文自然语言处理的各种各样的场景中,通常需要对文本进行分词。比如,为了根据用户输入的搜索文本从商品库中召回相匹配的商品,需要对用户输入的搜索文本以及商品库中商品的文本进行分词,以进行文本匹配来召回商品。
3.而在相关技术中的文本分词方案中,工业中通常是使用机器从预先标注好的语料库中学习,然后根据学习到的内容对需要分词的原始文本进行分词。但是,由于语料库中的语料通常是由人工对文本进行标注得到,因此,需要占用较多的人力资源进行标注,导致获取分词训练语料的成本较高,进而导致分词成本较高。


技术实现要素:

4.本技术实施例提供一种分词处理方法、装置、服务器及存储介质,能够解决由于需要占用较多的人力资源进行标注以得到分词训练语料,使得获取分词训练语料的成本较高,进而导致分词成本较高的问题。
5.一方面,本技术实施例提供一种分词处理方法,包括:
6.对待分词的原始文本进行分词处理,得到第一分词结果,所述第一分词结果中包括m个词,所述m个词中第i个词包括汉字文本和/或非汉字文本,m为正整数;
7.按照第一切分规则对所述m个词进行切分处理以得到第一切分结果,所述第一切分规则包括:将所述第i个词中相邻的同类型字符切分成单个字符串,并对切分出的汉字字符串进行单字切分,非汉字字符串不进行单字切分,i∈[1,m],且i为整数;
[0008]
按照第二切分规则对所述m个词进行切分处理以得到第二切分结果,所述第二切分规则包括将所述第i个词中相邻的同类型字符切分成单个字符串,并且对切分出的汉字字符串和非汉字字符串均不进行单字切分;
[0009]
在所述第一切分结果和所述第二切分结果符合预设条件的情况下,对所述第i个词进行滑窗处理,得到所述第i个词的第一分词集合;
[0010]
使用所述第i个词的第一分词集合更新所述第一分词结果。
[0011]
另一方面,本技术实施例提供了一种分词处理装置,包括:
[0012]
第一分词模块,用于对待分词的原始文本进行分词处理,得到第一分词结果,所述第一分词结果中包括m个词,所述m个词中第i个词包括汉字文本和/或非汉字文本,m为正整数;
[0013]
第一切分模块,用于按照第一切分规则对所述m个词进行切分处理以得到第一切分结果,所述第一切分规则包括:将所述第i个词中相邻的同类型字符切分成单个字符串,并对切分出的汉字字符串进行单字切分,非汉字字符串不进行单字切分,i∈[1,m],且i为
整数;
[0014]
第二切分模块,用于按照第二切分规则对所述m个词进行切分处理以得到第二切分结果,所述第二切分规则包括将所述第i个词中相邻的同类型字符切分成单个字符串,并且对切分出的汉字字符串和非汉字字符串均不进行单字切分;
[0015]
滑窗模块,用于在所述第一切分结果和所述第二切分结果符合预设条件的情况下,对所述第i个词进行滑窗处理,得到所述第i个词的第一分词集合;
[0016]
第一更新模块,用于使用所述第i个词的第一分词集合更新所述第一分词结果。
[0017]
再一方面,本技术实施例提供了一种服务器,所述服务器包括:处理器以及存储有计算机程序指令的存储器;
[0018]
所述处理器执行所述计算机程序指令时实现第一方面提供的分词处理方法。
[0019]
再一方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面提供的分词处理方法。
[0020]
本技术实施例的分词处理方法、装置、服务器及存储介质,先对待分词的原始文本进行分词处理,得到第一分词结果,并对第一分词结果中的词再分别进行两种切分处理,得到第一切分结果和第二切分结果。然后,在第一切分结果和第二切分结果符合预设条件的情况下,对该词进行滑窗处理,得到分词集合。使用分词集合更新第一分词结果,更新后的分词结果质量较高,能够满足应用需求。利用本技术的实施例,可以实现对原始文本的自动多粒度分词,分词处理不再依赖于语料库,从而避免占用较多的人力资源来获取不同粒度的分词训练语料,降低文本的分词成本。
附图说明
[0021]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]
图1是本技术提供的分词处理方法的一个实施例的流程示意图。
[0023]
图2是本技术提供的分词处理方法的另一个实施例的流程示意图。
[0024]
图3是本技术提供的分词处理方法的又一个实施例的流程示意图。
[0025]
图4是使用多种分词处理方法对一个示例的原始文本进行分词得到的分词结果的示意图。
[0026]
图5是使用多种分词处理方法对另一个示例的原始文本进行分词得到的分词结果的示意图。
[0027]
图6是本技术提供的一种分词处理装置的一个实施例的结构示意图。
[0028]
图7是本技术提供的服务器的一个实施例的硬件结构示意图。
具体实施方式
[0029]
下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细
描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
[0030]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0031]
为了解决现有技术问题,本技术实施例提供了一种分词处理方法、装置、服务器及存储介质。下面首先对本技术实施例所提供的分词处理方法进行介绍。
[0032]
图1是本技术提供的分词处理方法的一个实施例的流程示意图。如图1所示,分词处理方法包括:
[0033]
s102,对待分词的原始文本进行分词处理,得到第一分词结果,第一分词结果中包括m个词,m个词中第i个词包括汉字文本和/或非汉字文本,m为正整数。
[0034]
其中,非汉字文本包括但不限于以下至少一项:阿拉伯数字、英文字母和符号等。英文字母包括大写字母和小写字母。符号可以包括数学符号(比如“﹢”、“﹣”、
“×”

“÷”
等)、标点符号(比如“;”“{}”、“《》”等)、单位符号(比如“℃”、
“㎎”

“㎏”
等℃)。
[0035]
作为一个示例,s102具体可以包括:采用smart分词器对待分词的原始文本进行smart分词,得到第一分词结果。
[0036]
比如,待分词的原始文本为“苹果x手机iphone12和华为mate都很好让人爱不释手”,对该原始文本进行smart分词,得到第一分词结果,第一分词结果具体是“苹果x|手机|iphone12|和|华为|mate|都|很好|让|人|爱不释手”。
[0037]
分词处理方法还包括:
[0038]
s104,按照第一切分规则对m个词进行切分处理以得到第一切分结果,第一切分规则包括:将第i个词中相邻的同类型字符切分成单个字符串,并对切分出的汉字字符串进行单字切分,非汉字字符串不进行单字切分,i∈[1,m],且i为整数。
[0039]
其中,第i个词可以是m个词中的任意一个词,第i个词中可以包括汉字。在将第i个词中相邻的同类型字符切分成单个字符串时,由于相邻的同类型字符放在一起通常被认为会组成词,具有组合意义,因此将第i个词中相邻的同类型字符切分在一起,形成单个字符串,而不相邻的字符则会分开。其中,字符类型包括但不限于汉字、字母(不分大小写)和数字。切分出的字符串分为汉字字符串和非汉字字符串,汉字字符串是指字符均为汉字的字符串,非汉字字符串是指除了汉字字符串之外的字符串,比如,非汉字字符串是字符均为字母的字符串或者字符均为数字的字符串。
[0040]
比如第i个词为“苹果x”,在按照第一切分规则对第i个词“苹果x”进行切分时,得到的第一切分结果是三个词,具体地,第一切分结果“苹|果|x”。
[0041]
再比如,第i个词为“爱不释手”,按照第一切分规则对第i个词进行切分,得到的第一切分结果是4个词,具体地,第一切分结果是“爱|不|释|手”。
[0042]
分词处理方法还包括:
[0043]
s106,按照第二切分规则对m个词进行切分处理以得到第二切分结果,第二切分规则包括对切分出的汉字字符串和非汉字字符串均不进行单字切分。
[0044]
其中,第一切分规则和第二切分规则之间的区别是:第一切分规则对汉字字符串进行单字切分,而第二切分规则对汉字字符串不进行单字切分。
[0045]
比如,第i个词为“苹果x”,在按照第二切分规则对第i个词“苹果x”进行切分时,得到的第二切分结果是两个词,具体地,第二切分结果是“苹果|x”。
[0046]
再比如,第i个词为“爱不释手”,按照第二切分规则对第i个词进行切分,由于“爱不释手”这个词中均是汉字,则第二切分结果还是“爱不释手”。
[0047]
分词处理方法还包括:
[0048]
s108,在第一切分结果和第二切分结果符合预设条件的情况下,对第i个词进行滑窗处理,得到第i个词的第一分词集合;
[0049]
s110,使用第i个词的第一分词集合更新第一分词结果。
[0050]
在本技术实施例中,先对待分词的原始文本进行分词处理,得到第一分词结果,并对第一分词结果中的第i个词分别进行两种切分处理,得到第一切分结果和第二切分结果。然后,在第一切分结果和第二切分结果符合预设条件的情况下,对第i个词进行滑窗处理,得到第i个词的第一分词集合。使用第i个词的第一分词集合更新第一分词结果。如此,可以实现对原始文本的自动多粒度分词,不需要语料库,从而避免占用较多的人力资源来获取不同粒度的分词训练语料,降低文本的分词成本。
[0051]
本技术实施例可以应用于商品搜索的场景中。在此场景中,上述的原始文本可以为用于在商品库中搜索商品的文本,比如,上述的原始文本可以为用户为了搜索商品而输入的搜索文本。上述的原始文本还可以为用于描述商品库中商品的文本。
[0052]
比如,可以先利用本技术实施例的分词处理方法对商品库中的商品的描述文本进行分词,得到商品的分词结果。在用户输入搜索文本的情况下,再利用本技术实施例的分词处理方法对用户输入的搜索文本进行分词,得到用户的搜索文本的分词结果。然后,将搜索文本的分词结果分别与商品库中各商品的分词结果进行匹配,并根据匹配结果在商品库中召回与用户的搜索文本相匹配的商品。
[0053]
当然本技术实施例的应用场景并不限于商品搜索场景,还可以应用于网页搜索场景、多媒体信息推荐以及社交媒体数据分析等场景。
[0054]
比如,如果本技术实施例应用于网页搜索场景中,那么可以利用本技术实施例的分词处理方法对用户输入的搜索文本以及网页中的文本分别进行分词处理,并根据分词结果获取相匹配的网页。
[0055]
再比如,如果本技术实施例应用于多媒体信息推荐的场景中,那么可以利用本技术实施例的分词处理方法对多媒体库中多媒体信息的相关文本进行分词,并将用户的兴趣点信息与多媒体库中各多媒体信息的分词结果进行匹配,以匹配出用户可能感兴趣的多媒体信息,并向用户推荐匹配出的多媒体信息。其中,多媒体信息推荐包括但不限于视频推荐(比如短视频推荐)、文章推荐等。
[0056]
又比如,如果本技术实施例应用于社交媒体数据分析的场景中,那么可以利用本技术实施例的分词处理方法对用户的社交媒体数据进行文本分词,并根据文本分词的结果
确定用户的喜好和行为偏向等信息。
[0057]
在本技术的一个或多个实施例中,s108具体可以包括:
[0058]
如果第一切分结果中的字符串个数大于第一预设值(比如第一预设值为1),并且第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值大于第二预设值(比如第二预设值为1),并且第i个词的长度大于第三预设值(比如第三预设值为4),则对第i个词进行滑窗处理;其中,第三预设值大于第一预设值。
[0059]
其中,第i个词的长度是第i个词的第一切分结果中的词数。比如,第i个词为“苹果x”,那么第i个词的长度为3。
[0060]
在上述示例中,预设条件包括第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值大于第二预设值,在第一切分结果和第二切分结果满足此条件的情况下,说明第i个词中的汉字数量比较多。比如,如果第二预设值为1,那么在第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值大于1的情况下,说明第i个词中至少具有2个汉字。
[0061]
另外,预设条件还包括第一切分结果中的字符串个数大于第一预设值,并且第i个词的长度大于第三预设值。如果第一切分结果和第i个词还满足此条件,说明第i个词比较长,那么需要对第i个词进行滑窗处理,从而得到第i个词更多的拆分结果。
[0062]
在本技术的一个或多个实施例中,滑窗处理包括以单个字符串为步长分别进行的正向滑窗处理和反向滑窗处理;对第i个词进行滑窗处理,包括:
[0063]
从第i个词的第二个字符串至最后一个字符串进行滑窗处理;
[0064]
以及从第i个词的最后一个字符串至第i个词的第一个字符串进行滑窗处理。
[0065]
下面以第i个词为“苹果x”为例分别对正向滑窗处理和反向滑窗处理进行说明,并且正向滑窗处理和反向滑窗处理的滑窗长度均为单个字符串。其中,该单个字符串是指使用第一切分规则切分出来的一个字符串。
[0066]
在对第i个词进行正向滑窗处理时,基于第i个词的第一切分结果中的字符串,从第i个词的第二个字符串至最后一个字符串进行滑窗处理,得到如下的结果:“苹果”和“苹果x”。
[0067]
在对第i个词进行反向滑窗处理时,基于第i个词的第一切分结果中的字符串,从第i个词的最后一个字符串至第i个词的第一个字符串进行滑窗处理,得到如下的结果:“x”、“果x”和“苹果x”。
[0068]
在本技术实施例中,通过对第i个词进行正向滑窗处理和反向滑窗处理,可以尽可能多的得到第i个词的字符串组合,使得原始文本具有更多和更全面的分词结果。
[0069]
在本技术的一个或多个实施例中,如果第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值小于或等于第二预设值,或者,第i个词的长度小于或等于第三预设值,分词处理方法还包括对第i个词进行单字物品词切分,其中,对第i个词进行单字物品词切分,具体包括:
[0070]
确定第i个词中的单字物品词;
[0071]
将第i个词中的与单字物品词相邻的字与单字物品词切分开,得到第i个词的第一分词集合;
[0072]
使用第i个词的第一分词集合更新第一分词结果。
[0073]
其中,单字物品词为用于表示物品且具有一个汉字的词,单字物品词可以是某个场景下常用的物品描述单字词,以二手电商场景为例,单字物品词包括但不限于:“桌”,“床”,“柜”,“鞋”,“包”。
[0074]
在进行单字物品词切分时,为了避免由于对第i个词的中间词进行切分而导致切分出的词产生歧义,因此,如果第i个词中的最后一个字为单字物品词,那么对第i个词进行单字物品词切分。
[0075]
比如第i个词为“单肩包”,其中的最后一个字“包”是单字物品词,则第i个词的单物品词切分结果为“单肩|包”。
[0076]
在本技术实施例中,通过对第i个词进行单字物品词切分,得到第i个词中的单字物品词,以适应用户的习惯。因为用户比较喜欢少输入搜索,比如输入“桌”、“包”等单字物品词,所以进行单字物品词切分是为了迎合用户的习惯,开发者可以结合自身场景下用户的习惯进行调整。
[0077]
需要说明的是,如果第i个词中没有单字物品词,则对第i个词不需要进行单字物品词的相关处理。比如,第i个词为“苹果x”,由于该词中没有单字物品词,则对该词不进行处理。
[0078]
在本技术的一个或多个实施例中,在原始文本为用于在商品库中搜索商品的文本的情况下,使用第i个词的第一分词集合更新第一分词结果,包括:
[0079]
将第一分词结果中的第i个词替换为第i个词的第一分词集合。
[0080]
由于第i个词新分词得到的第一分词集合中包括更多第i个词的细粒度分词,因此,将第一分词结果中的第i个词替换为第一分词集合中词,可以使得第一分词结果中偏向保留细粒度分词,尽量减少长词,从而增加原始文本与文本库中的文本之间的匹配性。比如,在原始文本为用户输入的搜索词的情况下,可以增加搜索词和商品文本之间的匹配度。
[0081]
在本技术的一个或多个实施例中,在原始文本为用于在商品库中搜索商品的文本的情况下,分词处理方法还可以包括:
[0082]
将第一分词结果中的第i个词替换为第二切分结果中的词。
[0083]
由于第二切分结果中包括更多第i个词的细粒度分词,因此,将第一分词结果中的第i个词替换为第二切分结果中的词,可以使得第一分词结果中偏向保留细粒度分词,尽量减少长词,从而增加原始文本与文本库中的文本之间的匹配度。
[0084]
在本技术的一个或多个实施例中,在原始文本为用于描述商品库中商品的文本的情况下,使用第i个词的第一分词集合更新第一分词结果,包括:
[0085]
将第i个词的第一分词集合添加至第一分词结果中。
[0086]
如此保留第一分词结果中的第i个词,这样第一分词结果中不仅具有由原始文本分词得到的长词(即第i个词),还具有由第i个词切分得到的短词。因此,第一分词结果中包括更多种可能的词,可以增加原始文本与文本库中的文本之间的匹配度。
[0087]
在本技术的一个或多个实施例中,在原始文本为用于描述商品库中商品的文本的情况下,分词处理方法还可以包括:
[0088]
将第二切分结果中的词添加至第一分词结果中。
[0089]
如此,可以使得第一分词结果中包括更多种可能的词,增加搜索文本和商品文本间的匹配度。
[0090]
在本技术的一个或多个实施例中,分词处理方法还包括:
[0091]
对滑窗处理得到的第i个词的第一分词集合中的词进行分词处理,得到第i个词的第二分词集合;
[0092]
将第i个词的第二分词集合中的词合并至第一分词结果中并进行去重处理。
[0093]
在本技术的一个或多个实施例中,分词处理方法还包括:
[0094]
若第二分词集合中任意第k个词为长度大于预设词长的中文词,比如,预设词长为1,第k个词为长度为2或3的中文词,则对第k个词进行单字物品词切分,得到第k个词的单字物品词切分结果,k为正整数;
[0095]
使用第k个词的单字物品词切分结果更新第一分词结果。
[0096]
其中,关于第k个词的单字物品词切分,由于对第二分词集合中的第k个词进行单字物品词切分与对上述第i个词进行单字物品词切分类似,而上述已经说明如何对第i个词进行单字物品词切分,因此,关于如何对第k个词进行单字物品词切分,此处不再赘述。
[0097]
使用第k个词的单字物品词切分结果更新第一分词结果具体分以下两种情况实现:
[0098]
情况一:原始文本为用于在商品库中搜索商品的文本
[0099]
使用第k个词的单字物品词切分结果更新第一分词结果具体包括:将第一分词结果中的第k个词替换为第k个词的单字物品词切分结果。
[0100]
情况二:原始文本为用于描述商品库中商品的文本
[0101]
使用第k个词的单字物品词切分结果更新第一分词结果具体包括:将第k个词的单字物品词切分结果添加至第一分词结果中。
[0102]
在本技术的一个或多个实施例中,分词处理方法还包括:
[0103]
在第i个词的长度大于第四预设值的情况下,重新对第i个词进行分词处理,得到第三分词集合,并且第三分词集合是第i个词的新的分词结果;
[0104]
将第一分词结果中的第i个词替换为第三分词集合。
[0105]
比如,在s102之后且在s104之前,重新对第i个词进行分词处理。如此,实现了对第一分词结果中的长词进行重分词,可以减少长词匹配难的问题。
[0106]
在本技术的一个或多个实施例中,分词处理方法还包括:
[0107]
在重新对第i个词进行分词处理,并且没有得到第i个词的新的分词结果的情况下,确定第i个词中的单字物品词;
[0108]
将第i个词中的与单字物品词相邻的字与单字物品词切分开,得到第i个词的第四分词集合;
[0109]
将第一分词结果中的第i个词替换为第四分词集合。
[0110]
为了避免由于对第i个词的中间词进行切分而导致切分出的词产生歧义,因此,当第i个词中的单字物品词为第i个词中的最后一个字时,将第i个词中的与单字物品词相邻的字与单字物品词切分开。
[0111]
下面以本技术实施例应用于商品搜索的场景中为例,对本技术实施例进行书面。
[0112]
图2是本技术提供的分词处理方法的另一个实施例的流程示意图。如图2所示,分词处理方法包括:
[0113]
s202,获取待分词的原始文本,原始文本可以为用于在商品库中搜索商品的文本;
[0114]
s204,对原始文本进行分词得到第一分词结果,第一分词结果使用res表示,res=[word1,word2...wordm],m表示第一分词结果中的词的总数;
[0115]
s206,判断len(wordi)是否大于l,len(wordi)表示第一分词结果中的第i个词的长度,wordi可以是第一分词结果中的任意一个词,在判断len(wordi)大于l的情况下,执行s208,在判断len(wordi)不大于l的情况下,执行s228,其中,i为正整数,l为大于1的整数,比如l=4;
[0116]
s208,对wordi进行分词;
[0117]
s210,判断wordi是否有新的分词结果,在判断结果为是的情况下,执行s214,在判断结果为否的情况下,执行s212;
[0118]
s212,对wordi进行单物品词切分,得到wordi的单物品词切分结果,其中,该单物品词切分结果中的词的集合即是上述的第四分词集合;
[0119]
s214,使用新的分词结果替换原词wordi,具体地,在wordi有新的分词结果的情况下,使用wordi的新的分词结果替换原词wordi,在wordi没有新的分词结果的情况下,使用第四分词集合替换原词wordi,如此,得到更新后的wordi;
[0120]
s216,分别按照第一切分规则和第二切分规则对wordi进行切分,得到第一切分结果result1和第二切分结果result2,其中,s216中的wordi是s214中更新后的wordi中的任意一个词,比如,在s214中,原词wordi为“红烧牛肉面”,使用s208中分的词“红烧”和“牛肉面”替换原词wordi,那么s216中的wordi就是“红烧”或者“牛肉面”;
[0121]
s218,判断len(result1)是否大于1,len(result1)表示第一切分结果result1中的字符串个数,在len(result1)大于1的情况下,执行s220,在len(result1)不大于1的情况下,不做处理;
[0122]
s220,判断len(result1)减去len(result2)得到的差值是否大于1,在判断结果为是的情况下执行s228,在判断结果为否的情况下执行s222,其中,len(result2)表示第二切分结果result2中的字符串个数;
[0123]
s222,判断是否满足len(wordi)=2以及wordi为中文词的条件,在判断结果为是的情况下,执行s224,在判断结果为否的情况下,不做处理;
[0124]
s224,对wordi进行单物品词切分;
[0125]
s226,使用wordi的单物品词切分结果替换切分之前的词wordi;
[0126]
s228,判断是否满足len(wordi)大于等于m、len(wordi)小于等于l以及wordi是中文词,在判断结果为是的情况下执行s230,在判断结果为否的情况下执行s234;
[0127]
s230,对wordi进行单物品词切分;
[0128]
s232,使用wordi的单物品词切分结果替换切分之前的词wordi;
[0129]
s234,对wordi进行滑窗处理,得到第一分词集合,其中,滑窗处理包括正向滑窗处理和反向滑窗处理,正向滑窗处理得到词forwardslidstr=result1[1,bi],(bi=2,

,len(result1)),反向滑窗处理得到词backwardslidstr=result1[fi,len(result1)],(fi=1,

,len(result1)),,正向滑窗处理得到词和反向滑窗处理得到词形成第一分词集合;
[0130]
s236,对第一分词集合中的词进行分词,得到第二分词集合,第二分词集合中的词使用slidstr_word表示;
[0131]
s238,判断slidstr_word是否为中文词,以及len(slidstr_word)等于2或3,在
slidstr_word为中文词,以及len(slidstr_word)等于2或3的情况下,执行s240,在slidstr_word不是中文词,和/或len(slidstr_word)不等于2也不等于3的情况下,执行s244,其中,len(slidstr_word)表示slidstr_word的长度;
[0132]
s240,对slidstr_word进行单物品词切分;
[0133]
s242,使用slidstr_word的单物品词切分结果替换原词slidstr_word,以更新滑窗处理得到的第一分词集合中的词;
[0134]
s244,对滑窗处理得到的第一分词集合中的词进行去重,并替换原词;
[0135]
s246,汇集分词结果,更新原始文本的第一分词结果。
[0136]
图3是本技术提供的分词处理方法的又一个实施例的流程示意图。如图3所示,分词处理方法包括:
[0137]
s302,获取待分词的原始文本,原始文本可以为用于在商品库中搜索商品的文本;
[0138]
s304,对原始文本进行分词得到第一分词结果,第一分词结果使用res表示,res=[word1,word2...wordm],m表示第一分词结果中的词的总数;
[0139]
s306,判断len(wordi)是否大于l,len(wordi)表示第一分词结果中的第i个词的长度,wordi可以是第一分词结果中的任意一个词,在判断len(wordi)大于l的情况下,执行s308,在判断len(wordi)不大于l的情况下,执行s328,其中,i为正整数,l为大于1的整数,比如l=4;
[0140]
s308,对wordi进行分词;
[0141]
s310,判断wordi是否有新的分词结果,在判断结果为是的情况下,执行s314,在判断结果为否的情况下,执行s312;
[0142]
s312,对wordi进行单物品词切分,得到wordi的单物品词切分结果,其中,该单物品词切分结果中的词的集合即是上述的第四分词集合;
[0143]
s314,使用新的分词结果替换原词wordi,具体地,在wordi有新的分词结果的情况下,使用wordi的新的分词结果替换原词wordi,在wordi没有新的分词结果的情况下,使用第四分词集合替换原词wordi,如此,得到更新后的wordi;
[0144]
s316,分别按照第一切分规则和第二切分规则对wordi进行切分,得到第一切分结果result1和第二切分结果result2,其中,s316中的wordi是s314中更新后的wordi中的任意一个词,比如,在s314中,原词wordi为“红烧牛肉面”,使用s308中分的词“红烧”和“牛肉面”替换原词wordi,那么s316中的wordi就是“红烧”或者“牛肉面”;
[0145]
s318,判断len(result1)是否大于1,len(result1)表示第一切分结果result1中的字符串个数,在len(result1)大于1的情况下,执行s320,在len(result1)不大于1的情况下,不做处理;
[0146]
s320,判断len(result2)是否大于2,以及len(result1)减去len(result2)得到的差值是否大于1,在判断结果为是的情况下执行s328,在判断结果为否的情况下执行s322,其中,len(result2)表示第二切分结果result2中的字符串个数;
[0147]
s322,判断是否满足len(wordi)=2以及wordi为中文词的条件,在判断结果为是的情况下,执行s324,在判断结果为否的情况下,不做处理;
[0148]
s324,对wordi进行单物品词切分;
[0149]
s326,保留切分之前的词wordi,即在s346中,在汇聚分词结果时,汇聚的分词结果
中包括wordi的单物品词切分结果以及切分之前的词wordi;
[0150]
s328,判断是否满足len(wordi)大于等于m、len(wordi)小于等于l以及wordi是中文词,在判断结果为是的情况下执行s330,在判断结果为否的情况下执行s334;
[0151]
s330,对wordi进行单物品词切分;
[0152]
s332,保留切分之前的词wordi,即在s346中,在汇聚分词结果时,汇聚的分词结果中包括wordi的单物品词切分结果以及切分之前的词wordi;
[0153]
s334,对wordi进行滑窗处理,得到第一分词集合,其中,滑窗处理包括正向滑窗处理和反向滑窗处理,正向滑窗处理得到词forwardslidstr=result1[1,bi],(bi=2,

,len(result1)),反向滑窗处理得到词backwardslidstr=result1[fi,len(result1)],(fi=1,

,len(result1)),正向滑窗处理得到词和反向滑窗处理得到词形成第一分词集合;
[0154]
s336,对第一分词集合中的词进行分词,得到第二分词集合,第二分词集合中的词使用slidstr_word表示;
[0155]
s338,判断slidstr_word是否为中文词,以及len(slidstr_word)等于2或3,在slidstr_word为中文词,以及len(slidstr_word)等于2或3的情况下,执行s340,在slidstr_word不是中文词,和/或len(slidstr_word)不等于2也不等于3的情况下,执行s344,其中,len(slidstr_word)表示slidstr_word的长度;
[0156]
s340,对slidstr_word进行单物品词切分;
[0157]
s342,使用slidstr_word的单物品词切分结果替换原词slidstr_word,以更新滑窗处理得到的第一分词集合中的词;
[0158]
s344,对滑窗处理得到的第一分词集合中的词进行去重,并保留原词slidstr_word;
[0159]
s346,汇集分词结果,更新原始文本的第一分词结果。
[0160]
需要说明的是,图2和图3的主要区别在于:
[0161]

在图2中,在按照第二切分规则对wordi进行切分得到第二切分结果result2之后,使用第二切分结果result2替换原词第一分词结果中的wordi;而在图3中,在按照第二切分规则对wordi进行切分得到第二切分结果result2之后,将第二切分结果result2添加至第一分词结果中,并且保留第一分词结果中的wordi。
[0162]

在图2中,s226、s232和s244均是进行新词替换,即使用单物品词切分得到的词或者滑窗处理得到的词替换第一分词结果中的wordi,而在图3中,s326、s332和s344均是进行新词保留,即不但第一分词结果中包括单物品词切分得到的词和滑窗处理得到的词,而且第一分词结果中保留有原词wordi。
[0163]

在图2中,s220中判断len(result1)减去len(result2)得到的差值是否大于1,而在图3中,s320中不仅判断len(result1)减去len(result2)得到的差值是否大于1,还判断len(result2)是否大于2。
[0164]
下面通过图4和图5的例子进一步地说明本技术实施例提供的分词处理方法。
[0165]
比如,如图4所示,假设原始文本为用户输入的用于在商品库中搜索商品的搜索文本,且搜索文本为“vivoy3”,那么利用iksmart模型对搜索文本进行分词得到的分词结果为“vivoy3”,利用ikmax模型对搜索文本进行分词得到的分词结果为“vivoy3|vivoy|vivo|vo|3”,利用newsmart模型对搜索文本进行分词得到的分词结果为“vivo|y3”,利用newmax模
型对搜索文本进行分词得到的分词结果为“vivo|y|3”。
[0166]
其中,iksmart模型、ikmax模型和newsmart模型是相关技术中的三种分词模型,而newmax模型是利用本技术提供的分词处理方法实现的分词模型,也可以说newmax模型是本技术提供的分词模型。
[0167]
假设原始文本为商品库中的商品的主题,且原始文本为“9成新vivo vivo y3 64g绯玉红”,那么利用ikmax模型对原始文本进行分词得到的分词结果为“9|成|新|vivo|vo|vivo|vo|y3|y|3|64g|64|g|绯|玉|红”,利用newmax模型对原始文本进行分词得到的分词结果为“9成新|vivo|vivo|y3|64g|绯玉红|9|成新|y|3|64|g|绯玉|红|绯|玉红”。
[0168]
假设原始文本为商品库中的商品的描述内容,且原始文本为“9成新vivo vivo y3 64g绯玉红”,那么利用iksmart模型对原始文本进行分词得到的分词结果为“9成|新|vivo|y3|64g|绯玉红”,利用newsmart模型对原始文本进行分词得到的分词结果为“9成新|vivo|vivo|y3|64g|绯玉红”。
[0169]
再比如,如图5所示,假设原始文本为用户输入的用于在商品库中搜索商品的搜索文本,且搜索文本为“大毛绒玩具”,那么利用iksmart模型对搜索文本进行分词得到的分词结果为“大|毛绒玩具”,利用ikmax模型对搜索文本进行分词得到的分词结果为“大|毛绒玩具|毛绒|玩具”,利用newsmart模型对搜索文本进行分词得到的分词结果为“大|毛绒|玩具”,利用newmax模型对搜索文本进行分词得到的分词结果为“大|毛绒|玩具”。
[0170]
假设原始文本为商品库中的商品的主题,且原始文本为“全新大型毛绒玩具羊驼大熊米奇米老鼠生日礼物礼品”,那么利用ikmax模型对原始文本进行分词得到的分词结果为“全新|新大|大型|毛绒玩具|毛绒|玩具|羊|驼|大熊|米奇|米老鼠|生日礼物|生日|礼物|礼品”,利用newmax模型对原始文本进行分词得到的分词结果为“全新|大型|毛绒|玩具|羊驼|大熊|米奇|米老鼠|生日|礼物|礼品|大|型|熊|老|鼠|老鼠|米|米老”。
[0171]
假设原始文本为商品库中的商品的描述内容,且原始文本为“全新大型毛绒玩具羊驼大熊米奇米老鼠生日礼物礼品质量好毛毛好手感好超级可爱”,那么利用iksmart模型对原始文本进行分词得到的分词结果为“全新|大型|毛绒玩具|羊|驼|大熊|米奇|米老鼠|生日礼物|礼品|质量|好|毛毛|好手感|好|超级|可爱”,利用newsmart模型对原始文本进行分词得到的分词结果为“全新|大型|毛绒|玩具|羊驼|大熊|米奇|米老鼠|生日|礼物|礼品|质量|好|毛毛|好|手感|好|超级|可爱”。
[0172]
从图5可以看出,在利用ikmax模型和newmax模型对商品的主题进行分词时,利用ikmax模型分词得到15个词,而利用newmax模型(即本技术提供的分词模型)得到19个词。因此,newmax模型(即本技术提供的分词模型)的分词结果中包括更多粒度的分词结果,使得搜索召回率更高,而同时有newsmart保证搜索召回准确率,因此综合提升了搜索文本匹配的召回率和准确率。
[0173]
与本技术提供的分词处理方法对应地,本技术还提供一种分词处理装置。图6是本技术提供的一种分词处理装置的一个实施例的结构示意图。如图6所示,分词处理装置400包括:
[0174]
第一分词模块402,用于对待分词的原始文本进行分词处理,得到第一分词结果,第一分词结果中包括m个词,m个词中第i个词包括汉字文本和/或非汉字文本,m为正整数;
[0175]
第一切分模块404,用于按照第一切分规则对m个词进行切分处理以得到第一切分
结果,第一切分规则包括:将第i个词中相邻的同类型字符切分成单个字符串,并对切分出的汉字字符串进行单字切分,非汉字字符串不进行单字切分,i∈[1,m],且i为整数;
[0176]
第二切分模块406,用于按照第二切分规则对m个词进行切分处理以得到第二切分结果,第二切分规则包括将第i个词中相邻的同类型字符切分成单个字符串,并且对切分出的汉字字符串和非汉字字符串均不进行单字切分;
[0177]
滑窗模块408,用于在第一切分结果和第二切分结果符合预设条件的情况下,对第i个词进行滑窗处理,得到第i个词的第一分词集合;
[0178]
第一更新模块410,用于使用第i个词的第一分词集合更新第一分词结果。
[0179]
在本技术实施例中,先对待分词的原始文本进行分词处理,得到第一分词结果,并对第一分词结果中的第i个词分别进行两种切分处理,得到第一切分结果和第二切分结果。然后,根据第一切分结果和第二切分结果对第i个词进行滑窗处理,得到第i个词的第一分词集合。使用第i个词的第一分词集合更新第一分词结果。如此,可以实现对原始文本的自动多粒度分词,不需要语料库,从而避免占用较多的人力资源进行标注,降低文本的分词成本。
[0180]
在本技术的一个或多个实施例中,滑窗模块408具体用于:
[0181]
如果第一切分结果中的字符串个数大于第一预设值,并且第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值大于第二预设值,并且第i个词的长度大于第三预设值,则对第i个词进行滑窗处理;其中,第三预设值大于第一预设值。
[0182]
在本技术的一个或多个实施例中,滑窗处理包括以单个字符串为步长分别进行的正向滑窗处理和反向滑窗处理;滑窗模块408包括:
[0183]
第一滑窗单元,用于从第i个词的第二个字符串至最后一个字符串进行滑窗处理;
[0184]
第二滑窗单元,用于从第i个词的最后一个字符串至第i个词的第一个字符串进行滑窗处理。
[0185]
在本技术的一个或多个实施例中,如果第一切分结果中的字符串个数和第二切分结果中的字符串个数之间的差值小于或等于第二预设值,或者,第i个词的长度小于或等于第三预设值,分词处理装置400还包括:
[0186]
第一确定模块,用于确定第i个词中的单字物品词;
[0187]
第三切分模块,用于将第i个词中的与单字物品词相邻的字与单字物品词切分开,得到第i个词的第一分词集合;
[0188]
第二更新模块,用于使用第i个词的第一分词集合更新第一分词结果。
[0189]
在本技术的一个或多个实施例中,原始文本为用于在商品库中搜索商品的文本。
[0190]
在本技术的一个或多个实施例中,第二更新模块具体用于:
[0191]
将第一分词结果中的第i个词替换为第i个词的第一分词集合。
[0192]
在本技术的一个或多个实施例中,分词处理装置400还包括:
[0193]
第一替换模块,用于将第一分词结果中的第i个词替换为第二切分结果中的词。
[0194]
在本技术的一个或多个实施例中,原始文本为用于描述商品库中商品的文本。
[0195]
在本技术的一个或多个实施例中,第二更新模块具体用于:
[0196]
将第i个词的第一分词集合添加至第一分词结果中。
[0197]
在本技术的一个或多个实施例中,分词处理装置400还包括:
[0198]
添加模块,用于将第二切分结果中的词添加至第一分词结果中。
[0199]
在本技术的一个或多个实施例中,分词处理装置400还包括:
[0200]
第二分词模块,用于对滑窗处理得到的第i个词的第一分词集合中的词进行分词处理,得到第i个词的第二分词集合;
[0201]
合并去重模块,用于将第i个词的第二分词集合中的词合并至第一分词结果中并进行去重处理。
[0202]
在本技术的一个或多个实施例中,分词处理装置400还包括:
[0203]
第三分词模块,用于在第i个词的长度大于第四预设值的情况下,重新对第i个词进行分词处理,得到第三分词集合,并且第三分词集合是第i个词的新的分词结果;
[0204]
第二替换模块,用于将第一分词结果中的第i个词替换为第三分词集合。
[0205]
在本技术的一个或多个实施例中,分词处理装置400还包括:
[0206]
第二确定模块,用于在重新对第i个词进行分词处理,并且没有得到第i个词的新的分词结果的情况下,确定第i个词中的单字物品词;
[0207]
第四切分模块,用于将第i个词中的与单字物品词相邻的字与单字物品词切分开,得到第i个词的第四分词集合;
[0208]
第三替换模块,用于将第一分词结果中的第i个词替换为第四分词集合。
[0209]
本技术还提供一种服务器,服务器包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现如上述任意一项实施例的分词处理方法。
[0210]
图7是本技术提供的服务器的一个实施例的硬件结构示意图。
[0211]
如图7所示,服务器可以包括处理器501以及存储有计算机程序指令的存储器502。
[0212]
具体地,上述处理器501可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0213]
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
[0214]
存储器可包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
[0215]
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种分词处理方法。
[0216]
在一个示例中,服务器还可包括通信接口503和总线510。其中,如图7所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
[0217]
通信接口503,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的
通信。
[0218]
总线510包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
[0219]
另外,结合上述实施例中的分词处理方法,本技术实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种分词处理方法。
[0220]
需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0221]
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质可以包括非暂态计算机可读存储介质,比如包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质,机器可读介质还可以包括射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
[0222]
还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0223]
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
[0224]
以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法
实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1