CN109918664B - 分词方法和装置 - Google Patents

分词方法和装置 Download PDF

Info

Publication number
CN109918664B
CN109918664B CN201910164080.7A CN201910164080A CN109918664B CN 109918664 B CN109918664 B CN 109918664B CN 201910164080 A CN201910164080 A CN 201910164080A CN 109918664 B CN109918664 B CN 109918664B
Authority
CN
China
Prior art keywords
character
word
text
child node
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910164080.7A
Other languages
English (en)
Other versions
CN109918664A (zh
Inventor
焦伟
陈孝良
冯大航
常乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing SoundAI Technology Co Ltd
Original Assignee
Beijing SoundAI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing SoundAI Technology Co Ltd filed Critical Beijing SoundAI Technology Co Ltd
Priority to CN201910164080.7A priority Critical patent/CN109918664B/zh
Publication of CN109918664A publication Critical patent/CN109918664A/zh
Application granted granted Critical
Publication of CN109918664B publication Critical patent/CN109918664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Abstract

本申请公开了一种分词方法和装置,通过获取待分词文本;根据前向字典树,对待分词文本进行前向最大匹配分词,得到前向分词结果;根据后向字典树,对待分词文本进行后向最大匹配分词,得到后向分词结果;判断前向分词结果的词数与后向分词结果的词数是否相同;若前向分词结果的词数与后向分词结果的词数相同,则将前向分词结果作为待分词文本的分词结果;若前向分词结果的词数与后向分词结果的词数不相同,则将词数较少的分词结果作为所述待分词文本的分词结果。本申请由于采用了字典树进行分词,分词的速度得到了提高。并且通过采用前向最大匹配分词和后向最大匹配分词,提高了分词的准确率。

Description

分词方法和装置
技术领域
本发明涉及语音识别领域,尤其涉及一种分词方法和装置。
背景技术
语音识别技术应用于智能音箱、客服助手、智能应答系统等多个领域。语音识别技术中最重要的步骤之一是对训练声学模型和语言模型所需要的语料进行分词,即把句子拆分成正确且长度合适的词语,以便于在训练声学模型和语言模型中使用。由于训练声学模型和语言模型所需的语料数量庞大,因此需要较快的分词速度。
现有技术中,通过将词典中的所有词条进行存储,将待分词的文本与存储的词条进行逐一比对,以达到文本分词的目的。由于这种分词方法需要进行逐一比对,存在分词速度较慢的缺点,在语音识别的过程中无法进行快速反馈。
发明内容
基于上述现有技术的不足,本申请提出了一种分词方法和装置,以实现通过字典树提高分词的速度及准确率。
为解决上述问题,现提出的方案如下:
本发明第一方面公开了一种分词方法,包括:
获取待分词文本;
根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果;其中,所述前向字典树是将文本数据按照从前到后的顺序构建得到;
根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果;其中,所述后向字典树是将文本数据按照从后往前的顺序构建得到;
判断所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数是否相同;
若所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数相同,则将所述前向分词结果作为所述待分词文本的分词结果;
若所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数不相同,则将所述前向分词结果和所述后向分词结果中词数较少的分词结果,作为所述待分词文本的分词结果。
可选地,在上述分词方法中,所述根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果,包括:
在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点;
在所述第一个字符所在的根节点的下一层子节点中,查询是否有所述第一个字符的下一个字符所在的子节点;
若查询不到所述第一个字符的下一个字符所在的子节点,则将所述待分词文本中的第一个字符作为词,存储于前向分词结果中,并将所述第一个字符的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤;
若查询到所述第一个字符的下一个字符所在的子节点,则判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
若所述第一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于前向分词结果中,并将所述构成的词的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤;
若所述第一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的下一个字符所在的子节点;
若查询到所述当前子节点中的字符的下一个字符所在的子节点,则将所述当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回执行判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤;
若查询不到所述当前子节点中的字符的下一个字符所在的子节点,则将所述第一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于前向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤。
可选地,在上述分词方法中,所述根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果,包括:
在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点;
在所述最后一个字符所在的根节点的下一层中,查询是否有所述最后一个字符的前一个字符所在的子节点;
若查询不到所述最后一个字符的前一个字符所在的子节点,则将所述待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将所述最后一个字符的前一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤;
若查询到所述最后一个字符的前一个字符所在的子节点,则判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
若所述最后一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于后向分词结果中,并将所述构成的词的前一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤;
若所述最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的前一个字符所在的子节点;
若查询到所述当前子节点中的字符的前一个字符所在的子节点,则将所述当前子节点中的字符的前一个字符所在的子节点作为当前子节点,返回执行判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤;
若查询不到所述当前子节点中的字符的前一个字符所在的子节点,则将所述最后一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于后向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤。
可选地,在上述分词方法中,所述前向字典树和所述后向字典树中的每一个节点,包括:
单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成。
可选地,在上述分词方法中,所述获取待分词文本之后,还包括:
将所述待分词文本存储为二维数组;其中,所述二维数组的第一维表示所述待获取文本的字符个数,所述二维数组的第二维表示所述待获取文本的字符的字节长度。
本发明第二方面公开了一种分词装置,包括:
获取单元,用于获取待分词文本;
前向匹配单元,用于根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果;其中,所述前向字典树是将文本数据按照从前到后的顺序构建得到;
后向匹配单元,用于根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果;其中,所述后向字典树是将文本数据按照从后往前的顺序构建得到;
第一判断单元,用于判断所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数是否相同;
生成单元,若所述第一判断单元判断出所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数相同,则将所述前向分词结果作为所述待分词文本的分词结果;若所述第一判断单元判断出所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数不相同,则将所述前向分词结果和所述后向分词结果词数较少的分词结果,作为所述待分词文本的分词结果。
可选地,在上述分词装置中,所述前向匹配单元,包括:
第一查询单元,用于在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点;
第二查询单元,用于在所述第一个字符所在的根节点的下一层中,查询是否有所述第一个字符的下一个字符所在的子节点;
第一返回单元,用于若查询不到所述第一个字符的下一个字符所在的子节点,则将所述待分词文本中的第一个字符作为词,存储于前向分词结果中,并将所述第一个字符的下一个字符替换成所述待分词文本的第一个字符,返回至所述第一查询单元;
第二判断单元,用于若查询到所述第一个字符的下一个字符所在的子节点,则判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
第二返回单元,用于若所述第一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于前向分词结果中,并将所述构成的词的下一个字符替换成所述待分词文本的第一个字符返回至所述第一查询单元;
第三查询单元,用于若所述第一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的下一个字符所在的子节点;
第三返回单元,用于若查询到所述当前子节点中的字符的下一个字符所在的子节点,则将所述当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回至所述第二判断单元;
第四返回单元,用于若查询不到所述当前子节点中的字符的下一个字符所在的子节点,则将所述第一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于前向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的第一个字符返回至所述第一查询单元。
可选地,在上述分词装置中,所述后向匹配单元,包括:
第一查询单元,用于在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点;
第二查询单元,用于在所述最后一个字符所在的根节点的下一层中,查询是否有所述最后一个字符的前一个字符所在的子节点;
第一返回单元,用于若查询不到所述最后一个字符的前一个字符所在的子节点,则将所述待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将所述最后一个字符的前一个字符替换成所述待分词文本的最后一个字符,返回至所述第一查询单元;
第二判断单元,用于若查询到所述最后一个字符的前一个字符所在的子节点,则判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
第二返回单元,用于若所述最后一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于后向分词结果中,并将所述构成的词的前一个字符替换成所述待分词文本的最后一个字符返回至所述第一查询单元;
第三查询单元,用于若所述最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的前一个字符所在的子节点;
第三返回单元,用于若查询到所述当前子节点中的字符的前一个字符所在的子节点,则将所述当前子节点中的字符的前一个字符所在的子节点作为当前子节点返回至所述第二判断单元;
第四返回单元,用于若查询不到所述当前子节点中的字符的前一个字符所在的子节点,则将所述最后一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于后向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的最后一个字符返回至所述第一查询单元。
可选地,在上述分词装置中,所述前向字典树和所述后向字典树中的每一个节点,包括:
单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成。
可选地,在上述分词装置中,还包括:
存储单元,用于将所述待分词文本存储为二维数组;其中,所述二维数组的第一维表示所述待获取文本的字符个数,所述二维数组的第二维表示所述待获取文本的字符的字节长度。
从上述的技术方案可以看出,本申请提供的分词方法中,通过前向字典树,对待分词文本进行前向最大匹配分词,得到待分词文本的前向分词结果。又通过后向字典树,对待分词文本进行后向最大匹配分词,得到待分词文本的后向分词结果。当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数相同时,则将前向分词结果作为待分词文本的分词结果。当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数不相同时,则将词数较少的分词结果作为待分词文本的分词结果。由于采用了字典树进行分词,分词的速度得到了提高。并且通过采用前向最大匹配分词和后向最大匹配分词,提高了分词的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种字典树的创建方法的流程示意图;
图2为本发明实施例公开的一种字典树的内部结构示意图;
图3为本发明实施例公开的一种分词方法的流程示意图;
图4为本发明实施例公开的一种前向匹配分词方法的流程示意图;
图5为本发明实施例公开的一种后向匹配分词方法的流程示意图;
图6为本发明实施例公开的一种字典树的创建装置的结构示意图;
图7为本发明实施例公开的一种分词装置的结构示意图;
图8为本发明实施例公开的一种前向匹配单元的结构示意图;
图9为本发明实施例公开的一种后向匹配单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本申请实施例公开了一种字典树的创建方法,具体包括以下步骤:
S101、获取词典中的文本数据。
S102、根据词典中的文本数据,分别构建前向字典树和后向字典树。
需要说明的是,字典树又称单词查找树,字典树中存储了词典中的文本数据,利用字符串的公共前缀或公共后缀来进行字符串查询,最大限度地减少无意义的字符串比较,查询效率较高。
字典树由多个以树状结构相连的节点组成。根据节点的位置不同,字典树中的节点可以分为根节点和子节点,根节点即为字典树中处于顶点位置的节点。参见图2,字典树包括根节点201及子节点202。
每一个节点可以包括:单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成。具体的,单个字符可以为单个汉字或单个字母,与本节点相连的下一个子节点的数据信息则可以为单个字符或者单个字母,其与本节点中包括的单个字符具有关联关系,即可以组成中文词组或者组成英文单词。
还需要说明的是,字典树又分为前向字典树和后向字典树,前向字典树是将词典中的文本数据,按照由前到后的顺序构建得到,例如:词典中的词语“今天”,在前向字典树中,“今”作为根节点中存储的单个字符,“天”则作为“今”这个节点中的与本节点相连的下一个节点的数据信息进行保存。并且,“天”还会作为“今”这个节点的下一个节点中存储的单个字符。
同理,后向字典树是将词典中的文本数据按照由后往前的顺序构建得到,同样以“今天”这个词为例,在后向字典树中,“天”作为根节点中存储的单个字符,“今”则作为“天”这个节点中的与本节点相连的下一个节点的数据信息进行保存。并且,“今”还会作为“天”这个节点的下一个节点中存储的单个字符。
并且,在前向字典树中查询字符串,是利用字符串的公共前缀作为查询字符进行字符串查询,而在后向字典树中查询字符串,则是利用字符串的公共后缀进行字符串查询。
可选地,参阅图2,字典树中的节点中,可以采用键值映射的方式存储节点包括的数据。其中,节点的键值可以使用红黑树的方式进行存储,也可以使用哈希表的方式进行存储。键(value)中存储着一个节点中的单个字符,值(map-node)中存储着单个字符、与本节点相连的下一个子节点的数据信息以及用于表示字符串是否构成为词的数据信息。具体的,值(map-node)可以由键(key)、布尔量(bool)及指针(map)组成;其中,键(key)为该节点中存储的字符,布尔量(bool)用于说明字符串是否构成为词,指针(map)用于存储与该节点相连的下一个子节点的数据信息。
在利用字典树进行分词的时候,待分词的文本中的字符通过键值中的数据可查找到对应的节点。
本申请另一实施例还公开了一种分词方法,基本上述实施例公开的方法构建的字典树,具体的,参见图3,本实施例公开的分词方法包括:
S301、获取待分词文本。
其中,待分词文本为训练声学模型和语言模型所需要的语料。并且,待分词文本中可包含中文、英文等多种不同的语言文本。
可选地,在本申请一具体实施例中,执行步骤S301之后,还可以包括:
将待分词文本存储为二维数组;其中,二维数组的第一维表示待获取文本的字符个数,二维数组的第二维表示待获取文本的字符的字节长度。
通过将待分词文本存储为二维数组,二维数组的第二维中的字节长度可以区分出待分词文本中的汉字和英文字母。单个汉字为2~4个字节,单个字母为1个字节。通过二维数组区分出汉字和英文字母,以便选用不同语言的字典树进行查询字符。
S302、根据前向字典树,对待分词文本进行前向最大匹配分词,得到待分词文本的前向分词结果。
其中,前向字典树是将文本数据按照从前到后的顺序构建得到。
可选地,参阅图4,在本申请一具体实施例中,步骤S302的一种实施方式,包括:
S401、在前向字典树的所有根节点中,查询待分词文本中的第一个字符所在的根节点。
可选地,可通过创建指针S,使指针S指向待分词文本中的第一个字符,以实现在前向字典树的所有根节点中,查询待分词文本中的第一个字符所在的根节点。
具体的,将待分词文本中的第一个字符,和前向字典树中的各个根节点中单个字符进行比对,查询待分词文本中的第一个字符所在的根节点。其中,查询到待分词文本中的第一个字符所在的根节点后,可以将第一个字符保存至数组tmp中。需要说明的是,数组tmp用于保存查询到相应节点的字符。
可选地,若在前向字典树的所有根节点中,查询不到待分词文本中的第一个字符所在的根节点,则将待分词文本的第一个字符删除,将第一个字符的下一个字符替换成第一个字符,执行S401。若待分词文本中没有字符了,则停止查找,不执行后续步骤,直到待分词文本中有了字符,才执行S401。
S402、在第一个字符所在的根节点的下一层子节点中,查询是否有第一个字符的下一个字符所在的子节点。
需要说明的是,第一个字符所在的根节点的下一层子节点,指的是与第一个字符所在的根节点相连的子节点。
若查询不到第一个字符的下一个字符所在的子节点,则执行S403。若查询到第一个字符的下一个字符所在的子节点,则执行S404。
S403、将待分词文本中的第一个字符作为词,存储于前向分词结果中,并将第一个字符的下一个字符替换成所述待分词文本的第一个字符并返回执行S401。
具体地,如果查询不到第一个字符的下一个字符所在的子节点,则在前向分词结果的字符串中存储第一个字符的下一个字符,并在前向分词结果的字符串的最后加上一个空格,作为进行分词的标记。可选地,也可以选择在前向分词结果的字符串的最后加别的符号作为分词的标记。之后清空数组tmp,返回执行在前向字典树的所有根节点中,查询待分词文本中的第一个字符所在的根节点步骤,即返回执行S401。具体地,使得第一个字符的下一个字符替换成待分词文本的第一个字符,并将指针S指向第一个字符的下一个字符后执行S401。
S404、判断第一个字符所在的根节点至当前子节点所包含的字符是否构成词。
其中,当前子节点为当前查询到的子节点。若第一个字符所在的根节点至当前子节点所包含的字符构成词,则执行S405。若第一个字符所在的根节点至当前子节点所包含的字符不构成词,则将第一个字符所在的根节点至当前子节点所包含的字符保存至数组tmp中,执行S406。
还需要说明的是,第一个字符所在的根节点至当前子节点所包含的字符是指:第一个字符所在的根节点中的单个字符(即第一个字符)至当前子节点中包括的单个字符之间的所有单个字符所构成的字符串,也可以理解成是在待分词文本中第一个字符到当前子节点所包含的字符之间的所有字符所构成的字符串。
S405、将构成的词存储于前向分词结果中,并将构成的词的下一个字符替换成待分词文本的第一个字符。之后返回执行S401。
具体的,可以将构成的词保存至前向分词结果的字符串中,然后清空数组tmp,另指针S指向构成的词的下一个字符,使得构成的词的下一个字符替换成待分词文本的第一个字符,执行S401。
S406、在当前子节点的下一层中查询是否有当前子节点中的字符的下一个字符所在的子节点。
其中,当前子节点为当前查询到的子节点,当前子节点的下一层为与当前子节点相连的子节点所在的一层。当前子节点中的字符的下一个字符是指:在待分词文本中,当前子节点中的字符的下一个字符。
若查询到当前子节点中的字符的下一个字符所在的子节点,则执行S407。若查询不到当前子节点中的字符的下一个字符所在的子节点,则执行S408。
S407、将当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回执行S404。
如果查询到当前子节点中的字符的下一个字符所在的子节点,则将查询到的当前子节点中的字符的下一个字符保存至数组tmp中,并将当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回执行判断第一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤,即执行S404。
S408、将第一个字符所在的根节点至当前子节点所包含的字符作为词,存储于前向分词结果中,并将当前子节点中的字符的下一个字符替换成待分词文本的第一个字符,之后返回执行S401。
如果查询不到当前子节点中的字符的下一个字符所在的子节点,则将第一个字符所在的根节点至当前子节点所包含的字符作为词,存储于前向分词结果的字符串中,之后清空数组tmp,将指针S指向当前子节点中的字符的下一个字符,即将当前子节点中的字符的下一个字符替换成待分词文本的第一个字符,返回执行S401。
S303、根据后向字典树,对待分词文本进行后向最大匹配分词,得到待分词文本的后向分词结果。
其中,后向字典树是将文本数据按照从后往前的顺序构建得到。
需要说明的是,步骤S302和步骤S303可以并列执行,也可以按照图3中的顺序执行,也可以先执行步骤S303后执行步骤S302。
可选地,参阅图5,在本申请一具体实施例中,步骤S303的一种实施方式,包括:
S501、在后向字典树的所有根节点中,查询待分词文本中的最后一个字符所在的根节点。
可选地,可通过创建指针S,使指针S指向待分词文本中的最后一个字符,以实现在后向字典树的所有根节点中,查询待分词文本中的最后一个字符所在的根节点。查询到待分词文本中的最后一个字符所在的根节点后,将最后一个字符保存至数组tmp中。需要说明的是,数组tmp用于保存已查询到对应节点的字符。若在后向字典树的所有根节点中,查询不到待分词文本中的最后一个字符所在的根节点,则将待分词文本的最后一个字符删除,将最后一个字符的前一个字符替换成最后一个字符,执行S501。若待分词文本中没有字符了,则停止查找,不执行后续步骤,直到待分词文本中有了字符,才执行S501。
S502、在最后一个字符所在的根节点的下一层子节点中,查询是否有最后一个字符的前一个字符所在的子节点。
需要说明的是,最后一个字符所在的根节点的下一层子节点,指的是与最后一个字符所在的根节点相连的子节点。若查询不到最后一个字符的前一个字符所在的子节点,则执行S503。若查询到最后一个字符的前一个字符所在的子节点,则执行S504。
S503、将待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将最后一个字符的前一个字符替换成所述待分词文本的最后一个字符并返回执行S501。
具体地,如果查询不到最后一个字符的前一个字符所在的子节点,则在后向分词结果的字符串中存储最后一个字符的前一个字符,并在后向分词结果的字符串的最后加上一个空格,作为进行分词的标记。可选地,也可以选择在后向分词结果的字符串的最后加别的符号作为分词的标记。之后清空数组tmp,返回执行在后向字典树的所有根节点中,查询待分词文本中的最后一个字符所在的根节点步骤,即返回执行S501。具体地,使得最后一个字符的前一个字符替换成待分词文本的最后一个字符,并将指针S指向最后一个字符的前一个字符后执行S501。
S504、判断最后一个字符所在的根节点至当前子节点所包含的字符是否构成词。
其中,当前子节点为当前查询到的子节点。需要说明的是,判断最后一个字符所在的根节点至当前子节点所包含的字符是否构成词可通过图1中节点内的布尔量bool来进行判断。若最后一个字符所在的根节点至当前子节点所包含的字符构成词,则执行S505。若最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则将最后一个字符所在的根节点至当前子节点所包含的字符保存至数组tmp中,执行S506。
同理,最后一个字符所在的根节点至当前子节点所包含的字符是指:最后一个字符所在的根节点中的单个字符(即最后一个字符)至当前子节点中包括的单个字符之间的所有单个字符所构成的字符串,也可以理解成是在待分词文本中最后一个字符到当前子节点所包含的字符之间的所有字符所构成的字符串。
S505、将构成的词存储于后向分词结果中,并将构成的词的前一个字符替换成待分词文本的最后一个字符。之后返回执行S501。
具体的,可以将构成的词保存至后向分词结果的字符串中,然后清空数组tmp,使得构成的词的前一个字符替换成待分词文本的最后一个字符。即将指针S指向构成的词的前一个字符,执行S501。
S506、在当前子节点的下一层中查询是否有当前子节点中的字符的前一个字符所在的子节点。
其中,当前子节点为当前查询到的子节点,当前子节点的下一层为与当前子节点相连的子节点所在的一层。当前子节点中的字符的前一个字符是指:在待分词文本中,当前子节点中的字符的前一个字符。
若查询到当前子节点中的字符的前一个字符所在的子节点,则执行S507。若查询不到当前子节点中的字符的前一个字符所在的子节点,则执行S508。
S507、将当前子节点中的字符的前一个字符所在的子节点作为当前子节点,返回执行S504。
如果查询到当前子节点中的字符的前一个字符所在的子节点,则将查询到的当前子节点中的字符的前一个字符保存至数组tmp中,并将当前子节点中的字符的前一个字符所在的子节点作为当前子节点,返回执行判断最后一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤,即执行S504。
S508、将最后一个字符所在的根节点至当前子节点所包含的字符作为词,存储于后向分词结果中,并将当前子节点中的字符的前一个字符替换成待分词文本的最后一个字符,之后返回执行S501。
如果查询不到当前子节点中的字符的前一个字符所在的子节点,则将最后一个字符所在的根节点至当前子节点所包含的字符作为词,存储于后向分词结果的字符串中,之后清空数组tmp,将指针S指向当前子节点中的字符的前一个字符,即将当前子节点中的字符的前一个字符替换成待分词文本的最后一个字符,返回执行S501。
S304、判断待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数是否相同。
若待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数相同,则执行S305;若待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数不相同,则执行S306。
S305、将前向分词结果作为待分词文本的分词结果。
如果前向分词结果的词数与后向分词结果的词数相同,按照汉语的语法习惯,前向分词的结果会更为准确。
S306、将词数较少的分词结果作为所述待分词文本的分词结果。
如果前向分词结果的词数与后向分词结果的词数不相同,那么词数划分得更少的结果准确性会更高。
本申请提供的分词方法中,通过前向字典树,对待分词文本进行前向最大匹配分词,得到待分词文本的前向分词结果。又通过后向字典树,对待分词文本进行后向最大匹配分词,得到待分词文本的后向分词结果。当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数相同时,则将前向分词结果作为待分词文本的分词结果。当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数不相同时,则将词数较少的分词结果作为待分词文本的分词结果。由于采用了字典树进行分词,分词的速度得到了提高。并且通过采用前向最大匹配分词和后向最大匹配分词,提高了分词的准确率。
参阅图6,基于上述公开的字典树的创建方法,本申请实施例还对应公开了一种字典树的创建装置,主要包括:获取单元601、创建单元602。
获取单元601,用于获取词典中的文本数据。
创建单元602,用于根据词典中的文本数据,构建前向字典树和后向字典树。
可选地,在本申请一具体实施例中,前向字典树和后向字典树的节点中的数据,包括:单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,字符串由根节点至本节点中包括的单个字符组成。
上述本申请实施例公开的字典树的创建装置中的各个单元和子单元具体的原理和执行过程,与上述本申请实施例公开的字典树的创建方法相同,可参见上述本申请实施例公开的字典树的创建方法中相应的部分,这里不再进行赘述。
基于上述本申请实施例公开的分词方法,本申请实施例还对应公开了一种分词装置,参阅图7,主要包括:获取单元701、前向匹配单元702、后向匹配单元703、第一判断单元704及生成单元705。
获取单元701,用于获取待分词文本。
可选地,在本申请一具体实施例中,还可以包括:
存储单元,用于将待分词文本存储为二维数组。其中,二维数组的第一维表示所述待获取文本的字符个数,二维数组的第二维表示待获取文本的字符的字节长度。
前向匹配单元702,用于根据前向字典树,对待分词文本进行前向最大匹配分词,得到待分词文本的前向分词结果。其中,前向字典树是将文本数据按照从前到后的顺序构建得到。
参阅图8,可选地,在本申请一具体实施例中,前向匹配单元702,包括:第一查询单元801、第二查询单元802、第一返回单元803、第二判断单元804、第二返回单元805、第三查询单元806、第三返回单元807及第四返回单元808。
第一查询单元801,用于在前向字典树的所有根节点中,查询待分词文本中的第一个字符所在的根节点。
第二查询单元802,用于在第一个字符所在的根节点的下一层中,查询是否有第一个字符的下一个字符所在的子节点。
第一返回单元803,用于若查询不到第一个字符的下一个字符所在的子节点,则将待分词文本中的第一个字符作为词,存储于前向分词结果中,并将第一个字符的下一个字符替换成待分词文本的第一个字符,返回至第一查询单元801。
第二判断单元804,用于若查询到第一个字符的下一个字符所在的子节点,则判断第一个字符所在的根节点至当前子节点所包含的字符是否构成词。其中,当前子节点为当前查询到的子节点。
第二返回单元805,用于若第一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于前向分词结果中,并将构成的词的下一个字符替换成待分词文本的第一个字符返回至第一查询单元801。
第三查询单元806,用于若第一个字符所在的根节点至当前子节点所包含的字符不构成词,则在当前子节点的下一层中查询是否有当前子节点中的字符的下一个字符所在的子节点。
第三返回单元807,用于若查询到当前子节点中的字符的下一个字符所在的子节点,则将当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回至第二判断单元804。
第四返回单元808,用于若查询不到当前子节点中的字符的下一个字符所在的子节点,则将第一个字符所在的根节点至当前子节点所包含的字符作为词,存储于前向分词结果中,并将当前子节点字符的下一个字符替换成待分词文本的第一个字符至所述第一查询单元801。
后向匹配单元703,用于根据后向字典树,对待分词文本进行后向最大匹配分词,得到待分词文本的后向分词结果。其中,后向字典树是将文本数据按照从后往前的顺序构建得到。
参阅图9,可选地,在本申请一具体实施例中,后向匹配单元703,包括:第一查询单元901、第二查询单元902、第一返回单元903、第二判断单元904、第二返回单元905、第三查询单元906、第三返回单元907及第四返回单元908。
第一查询单元901,用于在后向字典树的所有根节点中,查询待分词文本中的最后一个字符所在的根节点。
第二查询单元902,用于在最后一个字符所在的根节点的下一层中,查询是否有最后一个字符的前一个字符所在的子节点。
第一返回单元903,用于若查询不到最后一个字符的前一个字符所在的子节点,则将所述待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将最后一个字符的前一个字符替换成待分词文本的最后一个字符,返回至第一查询单元901。
第二判断单元904,用于若查询到最后一个字符的前一个字符所在的子节点,则判断最后一个字符所在的根节点至当前子节点所包含的字符是否构成词。其中,当前子节点为当前查询到的子节点。
第二返回单元905,用于若最后一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于后向分词结果中,并将构成的词的前一个字符替换成待分词文本的最后一个字符返回至第一查询单元901。
第三查询单元906,用于若最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则在当前子节点的下一层中查询是否有当前子节点中的字符的前一个字符所在的子节点。
第三返回单元907,用于若查询到当前子节点中的字符的前一个字符所在的子节点,则将当前子节点中的字符的前一个字符所在的子节点作为当前子节点返回至第二判断单元904。
第四返回单元908,用于若查询不到当前子节点字符的前一个字符所在的子节点,则将最后一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于后向分词结果中,并将当前子节点中的字符的下一个字符替换成所述待分词文本的最后一个字符返回至第一查询单元901。
第一判断单元704,用于判断待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数是否相同。
可选地,在本申请一具体实施例中,所述前向字典树和所述后向字典树中的每一个节点,包括:
单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成。
生成单元705,若第一判断单元704判断出待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数相同,则将前向分词结果作为待分词文本的分词结果;若第一判断单元判断出待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数不相同,则将前向分词结果和后向分词结果词数较少的分词结果,作为待分词文本的分词结果。
上述本申请实施例公开的分词装置中的各个单元和子单元具体的原理和执行过程,与上述本申请实施例公开的分词方法相同,可参见上述本申请实施例公开的分词方法中相应的部分,这里不再进行赘述。
本申请提供的分词装置中,通过前向匹配单元702对待分词文本进行前向最大匹配分词,得到待分词文本的前向分词结果。又通过后向匹配单元703对待分词文本进行后向最大匹配分词,得到待分词文本的后向分词结果。通过生成单元705,当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数相同时,则将前向分词结果作为待分词文本的分词结果;当待分词文本的前向分词结果的词数与待分词文本的后向分词结果的词数不相同时,则将词数较少的分词结果作为待分词文本的分词结果。由于采用了字典树进行分词,分词的速度得到了提高。并且通过采用前向最大匹配分词和后向最大匹配分词,提高了分词的准确率。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种分词方法,其特征在于,包括:
获取待分词文本;
根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果;其中,所述前向字典树是将文本数据按照从前到后的顺序构建得到;
根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果;其中,所述后向字典树是将文本数据按照从后往前的顺序构建得到,所述前向字典树和所述后向字典树中的节点分为根节点和子节点;所述前向字典树和所述后向字典树中的每一个节点,包括:单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成;
判断所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数是否相同;
若所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数相同,则将所述前向分词结果作为所述待分词文本的分词结果;
若所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数不相同,则将所述前向分词结果和所述后向分词结果中词数较少的分词结果,作为所述待分词文本的分词结果。
2.根据权利要求1所述的方法,其特征在于,所述根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果,包括:
在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点;
在所述第一个字符所在的根节点的下一层子节点中,查询是否有所述第一个字符的下一个字符所在的子节点;
若查询不到所述第一个字符的下一个字符所在的子节点,则将所述待分词文本中的第一个字符作为词,存储于前向分词结果中,并将所述第一个字符的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤;
若查询到所述第一个字符的下一个字符所在的子节点,则判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
若所述第一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于前向分词结果中,并将所述构成的词的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤;
若所述第一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的下一个字符所在的子节点;
若查询到所述当前子节点中的字符的下一个字符所在的子节点,则将所述当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回执行判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤;
若查询不到所述当前子节点中的字符的下一个字符所在的子节点,则将所述第一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于前向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的第一个字符,返回执行在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点步骤。
3.根据权利要求1所述的方法,其特征在于,所述根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果,包括:
在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点;
在所述最后一个字符所在的根节点的下一层中,查询是否有所述最后一个字符的前一个字符所在的子节点;
若查询不到所述最后一个字符的前一个字符所在的子节点,则将所述待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将所述最后一个字符的前一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤;
若查询到所述最后一个字符的前一个字符所在的子节点,则判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
若所述最后一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于后向分词结果中,并将所述构成的词的前一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤;
若所述最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的前一个字符所在的子节点;
若查询到所述当前子节点中的字符的前一个字符所在的子节点,则将所述当前子节点中的字符的前一个字符所在的子节点作为当前子节点,返回执行判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词步骤;
若查询不到所述当前子节点中的字符的前一个字符所在的子节点,则将所述最后一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于后向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的最后一个字符,返回执行在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点步骤。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取待分词文本之后,还包括:
将所述待分词文本存储为二维数组;其中,所述二维数组的第一维表示所述待分词文本的字符个数,所述二维数组的第二维表示所述待分词文本的字符的字节长度。
5.一种分词装置,其特征在于,包括:
获取单元,用于获取待分词文本;
前向匹配单元,用于根据前向字典树,对所述待分词文本进行前向最大匹配分词,得到所述待分词文本的前向分词结果;其中,所述前向字典树是将文本数据按照从前到后的顺序构建得到;
后向匹配单元,用于根据后向字典树,对所述待分词文本进行后向最大匹配分词,得到所述待分词文本的后向分词结果;其中,所述后向字典树是将文本数据按照从后往前的顺序构建得到,所述前向字典树和所述后向字典树中的节点分为根节点和子节点;
第一判断单元,用于判断所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数是否相同;
生成单元,若所述第一判断单元判断出所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数相同,则将所述前向分词结果作为所述待分词文本的分词结果;若所述第一判断单元判断出所述待分词文本的前向分词结果的词数与所述待分词文本的后向分词结果的词数不相同,则将所述前向分词结果和所述后向分词结果词数较少的分词结果,作为所述待分词文本的分词结果;
所述前向字典树和所述后向字典树中的每一个节点,包括:
单个字符、与本节点相连的下一个节点的数据信息以及用于表示字符串是否构成为词的数据信息,所述字符串由根节点至本节点中包括的单个字符组成。
6.根据权利要求5所述的装置,其特征在于,所述前向匹配单元,包括:
第一查询单元,用于在所述前向字典树的所有根节点中,查询所述待分词文本中的第一个字符所在的根节点;
第二查询单元,用于在所述第一个字符所在的根节点的下一层中,查询是否有所述第一个字符的下一个字符所在的子节点;
第一返回单元,用于若查询不到所述第一个字符的下一个字符所在的子节点,则将所述待分词文本中的第一个字符作为词,存储于前向分词结果中,并将所述第一个字符的下一个字符替换成所述待分词文本的第一个字符,返回至所述第一查询单元;
第二判断单元,用于若查询到所述第一个字符的下一个字符所在的子节点,则判断所述第一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
第二返回单元,用于若所述第一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于前向分词结果中,并将所述构成的词的下一个字符替换成所述待分词文本的第一个字符返回至所述第一查询单元;
第三查询单元,用于若所述第一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的下一个字符所在的子节点;
第三返回单元,用于若查询到所述当前子节点中的字符的下一个字符所在的子节点,则将所述当前子节点中的字符的下一个字符所在的子节点作为当前子节点,返回至所述第二判断单元;
第四返回单元,用于若查询不到所述当前子节点中的字符的下一个字符所在的子节点,则将所述第一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于前向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的第一个字符返回至所述第一查询单元。
7.根据权利要求5所述的装置,其特征在于,所述后向匹配单元,包括:
第一查询单元,用于在所述后向字典树的所有根节点中,查询所述待分词文本中的最后一个字符所在的根节点;
第二查询单元,用于在所述最后一个字符所在的根节点的下一层中,查询是否有所述最后一个字符的前一个字符所在的子节点;
第一返回单元,用于若查询不到所述最后一个字符的前一个字符所在的子节点,则将所述待分词文本中的最后一个字符作为词,存储于后向分词结果中,并将所述最后一个字符的前一个字符替换成所述待分词文本的最后一个字符,返回至所述第一查询单元;
第二判断单元,用于若查询到所述最后一个字符的前一个字符所在的子节点,则判断所述最后一个字符所在的根节点至当前子节点所包含的字符是否构成词;其中,所述当前子节点为当前查询到的子节点;
第二返回单元,用于若所述最后一个字符所在的根节点至当前子节点所包含的字符构成词,则将构成的词存储于后向分词结果中,并将所述构成的词的前一个字符替换成所述待分词文本的最后一个字符返回至所述第一查询单元;
第三查询单元,用于若所述最后一个字符所在的根节点至当前子节点所包含的字符不构成词,则在所述当前子节点的下一层中查询是否有所述当前子节点中的字符的前一个字符所在的子节点;
第三返回单元,用于若查询到所述当前子节点中的字符的前一个字符所在的子节点,则将所述当前子节点中的字符的前一个字符所在的子节点作为当前子节点返回至所述第二判断单元;
第四返回单元,用于若查询不到所述当前子节点中的字符的前一个字符所在的子节点,则将所述最后一个字符所在的根节点至所述当前子节点所包含的字符作为词,存储于后向分词结果中,并将所述当前子节点中的字符的下一个字符替换成所述待分词文本的最后一个字符返回至所述第一查询单元。
8.根据权利要求5至7任一项所述的装置,其特征在于,还包括:
存储单元,用于将所述待分词文本存储为二维数组;其中,所述二维数组的第一维表示所述待分词文本的字符个数,所述二维数组的第二维表示所述待分词文本的字符的字节长度。
CN201910164080.7A 2019-03-05 2019-03-05 分词方法和装置 Active CN109918664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910164080.7A CN109918664B (zh) 2019-03-05 2019-03-05 分词方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910164080.7A CN109918664B (zh) 2019-03-05 2019-03-05 分词方法和装置

Publications (2)

Publication Number Publication Date
CN109918664A CN109918664A (zh) 2019-06-21
CN109918664B true CN109918664B (zh) 2023-04-18

Family

ID=66963310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910164080.7A Active CN109918664B (zh) 2019-03-05 2019-03-05 分词方法和装置

Country Status (1)

Country Link
CN (1) CN109918664B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543637B (zh) * 2019-09-06 2023-04-28 知者信息技术服务成都有限公司 一种中文分词方法及装置
CN111061829A (zh) * 2019-12-16 2020-04-24 北京软通智慧城市科技有限公司 一种树型检索方法及装置
CN112579765A (zh) * 2020-12-18 2021-03-30 中国平安人寿保险股份有限公司 基于布尔表达式的数据筛选方法、装置、设备及存储介质
CN113033193B (zh) * 2021-01-20 2024-04-16 山谷网安科技股份有限公司 一种基于c++语言的混合型中文文本分词方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799676A (zh) * 2012-07-18 2012-11-28 上海语天信息技术有限公司 一种递归多层次中文分词方法
CN102999534A (zh) * 2011-09-19 2013-03-27 北京金和软件股份有限公司 一种基于逆向最大匹配的中文分词算法
CN103678282A (zh) * 2014-01-07 2014-03-26 苏州思必驰信息科技有限公司 一种分词方法及装置
CN105183788A (zh) * 2015-08-20 2015-12-23 及时标讯网络信息技术(北京)有限公司 一种基于关键词字典树检索的中文ac自动机工作方法
CN105260354A (zh) * 2015-08-20 2016-01-20 及时标讯网络信息技术(北京)有限公司 一种基于关键词字典树构造的中文ac自动机工作方法
CN105528420A (zh) * 2015-12-07 2016-04-27 北京金山安全软件有限公司 文字编码和译码方法、装置及电子设备
CN105843950A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 敏感词过滤方法及装置
CN105893353A (zh) * 2016-04-20 2016-08-24 广东万丈金数信息技术股份有限公司 分词方法和分词系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999534A (zh) * 2011-09-19 2013-03-27 北京金和软件股份有限公司 一种基于逆向最大匹配的中文分词算法
CN102799676A (zh) * 2012-07-18 2012-11-28 上海语天信息技术有限公司 一种递归多层次中文分词方法
CN103678282A (zh) * 2014-01-07 2014-03-26 苏州思必驰信息科技有限公司 一种分词方法及装置
CN105183788A (zh) * 2015-08-20 2015-12-23 及时标讯网络信息技术(北京)有限公司 一种基于关键词字典树检索的中文ac自动机工作方法
CN105260354A (zh) * 2015-08-20 2016-01-20 及时标讯网络信息技术(北京)有限公司 一种基于关键词字典树构造的中文ac自动机工作方法
CN105528420A (zh) * 2015-12-07 2016-04-27 北京金山安全软件有限公司 文字编码和译码方法、装置及电子设备
CN105843950A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 敏感词过滤方法及装置
CN105893353A (zh) * 2016-04-20 2016-08-24 广东万丈金数信息技术股份有限公司 分词方法和分词系统

Also Published As

Publication number Publication date
CN109918664A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN109918664B (zh) 分词方法和装置
CN106776544B (zh) 人物关系识别方法及装置和分词方法
CN109670163B (zh) 信息识别方法、信息推荐方法、模板构建方法及计算设备
US10783171B2 (en) Address search method and device
WO2017084506A1 (zh) 搜索查询词纠错方法和装置
Liu et al. Insertion, deletion, or substitution? Normalizing text messages without pre-categorization nor supervision
CN106776564B (zh) 一种基于知识图谱的语义识别方法及系统
CN102929870B (zh) 一种建立分词模型的方法、分词的方法及其装置
CN104239565B (zh) 一种基于学术搜索的姓名自动提示方法
JP2001043221A (ja) 中国語単語分割装置
JP2013065284A (ja) 言語変換において複数の読み方の曖昧性を除去する方法
CN101131706A (zh) 一种查询修正方法及系统
CN110287286B (zh) 短文本相似度的确定方法、装置及存储介质
CN112800769B (zh) 命名实体识别方法、装置、计算机设备和存储介质
CN106681981B (zh) 中文词性的标注方法和装置
CN113692597A (zh) 电子邮件内容修改系统
CN111460149A (zh) 文本分类方法、相关设备及可读存储介质
CN103914455B (zh) 一种兴趣点检索方法和装置
CN107256212A (zh) 中文搜索词智能切分方法
CN102478968B (zh) 中文拼音输入方法和中文拼音输入系统
CN102929864A (zh) 一种音字转换方法及装置
JP2011008784A (ja) ローマ字変換を用いる日本語自動推薦システムおよび方法
CN109800412A (zh) 一种中文分词和大数据信息检索方法及装置
CN111611793B (zh) 数据处理方法、装置、设备及存储介质
CN108776705B (zh) 一种文本全文精确查询的方法、装置、设备及可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant