发明内容
为了解决上述技术问题,本申请提供一种新的中文分词***,降低分词工具的使用和调优门槛,便于用户调整分词流程,适应不同应用场景下的分词需求。
第一方面,提供一种中文分词***,包括:
分词算法单元,用于为用户提供至少两种中文分词***所支持的分词算法;
分词模型单元,用于为用户提供至少两种中文分词***所支持的第一分词模型,所述第一分词模型的类型与所述分词算法具有对应关系;
处理单元,用于确定用户从分词算法单元中选择的分词算法和从分词模型单元中选择的第一分词模型的类型是否对应;在对应的情况下,利用用户选择的分词算法,以及用户选择的第一分词模型对中文文本进行分词,得到分词结果;在不对应的情况下,利用用户选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型,对中文文本进行分词,得到分词结果。
结合第一方面,在第一方面第一种可能的实现方式中,该中文分词***还包括:
分词模型构建单元,用于为用户提供中文分词***所支持的至少一种初始分词模型;获取用户上传的第一分词标注语料;以及,利用所述第一分词标注语料训练用户选择的初始分词模型,得到第二分词模型;
所述处理单元还用于确定用户从分词算法单元中选择的分词算法和所述第二分词模型的类型是否对应;在对应的情况下,利用用户从分词算法单元中选择的分词算法以及所述第二分词模型对中文文本进行分词,得到分词结果。
结合第一方面的第一种实现方式,在第一方面第二种可能的实现方式中,所述分词模型构建单元还具体用于将第一分词标注语料按照预设比例划分为训练集和验证集;利用训练集训练所述初始分词模型,得到确定的模型参数;将所述模型参数代入所述初始分词模型,利用验证集计算所述初始分词模型的第一准确率和第一召回率;在所述第一准确率达到预设的准确率阈值,和/或,所述第一召回率达到预设的召回率阈值的情况下,存储第二分词模型,其中,所述第二分词模型为代入所述模型参数后的初始分词模型。
结合第一方面及上述可能的实现方式,在第一方面第三种可能的实现方式中,所述处理单元还具体用于将单句粗切分,生成词图;利用HMM模型中的转移概率矩阵计算所述词图中每一条有向边所对应的权重;利用所述权重计算所述词图中每一条路径的总长度;对于所述词图中的未登录词,利用HMM模型切分得到第一切分结果;以及,根据所述词图中总长度最短的一条路径,以及第一切分结果,确定单句的分词结果。
结合第一方面及上述可能的实现方式,在第一方面第四种可能的实现方式中,所述处理单元还具体用于利用HMM模型生成分词词典;利用所述分词词典,采用正向最大匹配法将单句切分得到第一结果;利用所述分词词典,采用逆向最大匹配法将单句切分得到第二结果;以及,从第一结果和第二结果中确定单句的分词结果。
结合第一方面及上述可能的实现方式,在第一方面第五种可能的实现方式中,该中文分词***还包括:
分词流程保存与评估单元,用于保存分词流程,所述分词流程包括用户从分词算法单元中选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型或第二分词模型;获取第二分词标注语料;根据所述分词流程对所述第二分词标注语料进行分词,计算得到所述分词流程对应的第二准确率和/或第二召回率。
结合第一方面及上述可能的实现方式,在第一方面第六种可能的实现方式中,所述处理单元还用于对分词结果中的每一个词标注词性。
结合第一方面及上述可能的实现方式,在第一方面第七种可能的实现方式中,该中文分词***还包括:
自定义词典单元,用于获取业务词典,所述业务词典包括至少一个用户期望从中文文本中优先切分出的业务词;
所述处理单元还用于利用所述业务词典切分所述中文文本。
第二方面,提供一种中文文本的分词方法,包括以下步骤:
显示至少两种中文分词***所支持的分词算法;
显示至少两种中文分词***所支持的第一分词模型,所述第一分词模型的类型与所述分词算法具有对应关系;
确定用户选择的分词算法和第一分词模型的类型是否对应;
如果对应,则利用用户选择的分词算法,以及用户选择的第一分词模型对中文文本进行分词,得到分词结果;
如果不对应,则利用用户选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型,对中文文本进行分词,得到分词结果。
结合第一方面,在第一方面第一种可能的实现方式中,利用用户选择的分词算法以及类型与所述分词算法具有对应关系的第一分词模型,对中文文本进行分词,得到分词结果的步骤,包括:
将单句粗切分,生成词图;
利用HMM模型中的转移概率矩阵计算所述词图中每一条有向边所对应的权重;
利用所述权重计算所述词图中每一条路径的总长度;
对于所述词图中的未登录词,利用HMM模型切分得到第一切分结果;
根据所述词图中总长度最短的一条路径,以及第一切分结果,确定单句的分词结果;
或,
利用HMM模型生成分词词典;
利用所述分词词典,采用正向最大匹配法将单句切分得到第一结果;
利用所述分词词典,采用逆向最大匹配法将单句切分得到第二结果;
从第一结果和第二结果中确定单句的分词结果。
本申请的中文分词***中包括分词算法单元和分词模型单元,分别提供了至少两种分词算法,以及与分词算法具有对应关系的至少两种第一分词模型,无论用户选择的分词算法与第一分词模型的类型是否对应,***都会根据分词算法来确定一种与之类型对应的第一分词模型。利用这样的中文分词***,即便用户不具有开发写能力、不具有足够的中文分词相关的知识,也可以通过与中文分词***进行简单的几次交互,就完成制定特定的分词流程的工作,包括调整分词算法和调整分词模型等,从而满足不同业务场景中对于中文分词的不同需求。
具体实施方式
下面对本申请的实施例作详细说明。
请参考图1,在本发明的第一个实施例中,提供一种中文分词***,包括:
分词算法单元1,用于为用户提供至少两种中文分词***所支持的分词算法;
分词模型单元2,用于为用户提供至少两种中文分词***所支持的第一分词模型,所述第一分词模型的类型与所述分词算法具有对应关系;
处理单元3,用于确定用户从分词算法单元1中选择的分词算法和从分词模型单元2中选择的第一分词模型的类型是否对应;在对应的情况下,利用用户选择的分词算法,以及用户选择的第一分词模型对中文文本进行分词,得到分词结果;在不对应的情况下,利用用户选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型,对中文文本进行分词,得到分词结果。
其中,分词算法单元1所提供的至少两种中文分词***所支持的分词算法,具体可以采用已知的基于统计的分词算法中的任意两种或多种,例如,最短路径算法、条件随机场(Conditional Random Fields,CRF)新词发现算法、最大切割算法等。
分词模型单元2所提供的至少两种中文分词***所支持的第一分词模型,具体可以采用基于统计的分词方法所常用的分词模型中的任意两种或多种,第一分词模型可以包括多种分词模型类型,例如,隐马尔可夫模型(Hidden Markov Model,HMM模型)、条件随机场模型(CRF模型)等。
第一分词模型的类型与所述分词算法具有预设的对应关系,以上述的分词算法和第一分词模型来举例,其对应关系如表1所示。
表1分词算法与第一分词模型的类型的对应关系示例
|
分词算法 |
第一分词模型类型 |
1 |
最短路径算法 |
HMM模型 |
2 |
最大切割算法 |
HMM模型 |
3 |
CRF新词发现法 |
CRF模型 |
处理单元可以根据表1所示的对应关系,来判断用户选择的分词算法和第一分词模型是否对应。如果对应,则直接采用用户选定的分词算法和第一分词模型来对待处理的中文文本进行分词;如果不对应,则根据用户选定的分词算法,利用对应关系从分词模型单元中查找出与其类型对应的第一分词模型,然后利用选定的分词算法和查找到的第一分词模型来对待处理的中文文本进行分词。
例如,用户在分词算法单元1中选择的分词算法为最短路径算法,在分词模型单元2中选择的第一分词模型是一个HMM模型,与表1的对应关系中最短路径算法所对应的第一分词模型的类型(即HMM模型)相同,就可以确定二者对应。在这种情况下,处理单元3可以利用该分词算法(即最短路径算法)和该第一分词模型(即HMM模型)对中文文本进行分词,得到分词结果。
又例如,用户在分词算法单元1中选择的分词算法为最短路径算法,在分词模型单元2中选择的第一分词模型是一个CRF模型,与表1的对应关系中最短路径算法所对应的第一分词模型的类型(即HMM模型)不同,就可以确定用户从分词算法单元1中选择的分词算法和从分词模型单元2中选择的第一分词模型的类型不对应。在这种情况下,处理单元3可以利用用户从分词算法单元1中选择的分词算法(即最短路径算法),以及类型与所述分词算法具有对应关系的第一分词模型(即HMM模型),对中文文本进行分词。
以下以最短路径算法和HMM模型为例,来具体说明利用分词算法和对应的第一分词模型来进行分词的过程。这里的第一分词模型,既可以是用户自行选择的第一分词模型,也可以是***选择的与分词算法类型对应的第一分词模型。
对于一篇中文文本,可以先利用标点符号,例如句号、逗号等,将该文本划分为单个短句子,在本实施例中将之称为单句;然后针对每个单句分别进行分词。对于一个单句,其利用分词算法和对应的第一分词模型进行分词的步骤可以包括:
S411:将单句粗切分,生成词图;
S412:利用HMM模型中的转移概率矩阵计算所述词图中每一条有向边所对应的权重;
S413:利用所述权重计算所述词图中每一条路径的总长度;
S414:对于所述词图中的未登录词,利用HMM模型切分得到第一切分结果;
S415:根据所述词图中总长度最短的一条路径,以及第一切分结果,确定单句的分词结果。
也就是说,前述的处理单元还具体用于:将单句粗切分,生成词图;利用HMM模型中的转移概率矩阵计算所述词图中每一条有向边所对应的权重;利用所述权重计算所述词图中每一条路径的总长度;对于所述词图中的未登录词,利用HMM模型切分得到第一切分结果;以及,根据所述词图中总长度最短的一条路径,以及第一切分结果,确定分词结果。
上述的粗切分可以包括一元切分、原子切分和二元切分中的任意一种或几种。其中,一元切分是指把单句切分成一个一个单字,即按字切分,不进行组合。原子切分是指把单句切分成所有可能的不可分割的最小语素单位,即切分成多个原子。例如,一个汉字“坐”就可以是一个原子,还例如,一个单词“忐忑”也可以是一个原子。二元切分是指利用二元词典将原子之间所有可能的组合寻找出来。也就是将一个原子及其后的相邻原子组合在一起,访问二元词典确定该词是否被收录在二元词典中,如果收录在二元词典中,则认为这个两个原子可以构成一个有意义的词。例如,在原子切分时,例如,“他在肯尼亚马塞马拉野生动物园”这个单句中“动物园”可能会被切分成两个原子,一个原子为“动物”,其后的相邻原子为“园”。在这种情况下,如果二元词典中收录了“动物园”这个词,则可以将“动物园”也作为一种切分方式。
词图,指的是有向无环图(Directed Acyclic Graph,DAG)。例如,如果一个词A的下一个词可能是B,那么A和B之间具有一条有向边E(A,B)。一个词可能有多个后续,同时也可能有多个前驱,它们构成的图就是词图。在最初对单句进行切分的时候,可以得到一个初始的词图,如果还采用其他的方式对单句进行切分,就将产生的可能的有向边再增加到原本的词图中。在一种实现方法中,前述S411中的粗切分的步骤与生成词图的步骤可以是同步进行的。
例如,对于“他在肯尼亚马塞马拉野生动物园”而言,其词图中包括的部分路径有:
(1)他→在→肯尼亚马塞马拉→野生→动物园;
(2)他→在→肯尼亚马塞马拉→野生→动物→园;
(3)他→在→肯尼亚马塞马拉野→生动→物→园。
在词图中,词与词之间具有有向边,并且每个有向边还具有对应的权重,这个权重用于描述这两个词相邻出现的概率,权重越大,表示两个词相邻出现的概率越小。在本实施例中,这个权重可以利用HMM模型中的转移概率矩阵来计算。利用这个权重就可以计算词图中每一条路径的总长度,从而确定最短的一条路径。
例如前述的例子中,利用词图中每一条有向边的权重求解得到词图中E(他,在)、E(在,肯尼亚马塞马拉)、E(肯尼亚马塞马拉,野生)以及E(野生,动物园)的路径总长度小于其他两条路径的总长度,故而将路径(1)确定为最短路径。
对于所述词图中的未登录词,这些词并未被收录在前述的用于粗切分的词典中,例如上述例子中的“肯尼亚马塞马拉”,则可以利用HMM模型来进行切分。
HMM模型是一种统计分析模型,它用来描述一个含有隐含未知参数的马尔可夫过程。HMM模型具有五元组,包括:状态值集合、观察值集合、转移概率矩阵、发射概率矩阵和初始状态分布。
当将HMM模型应用到中文分词中,状态值集合可以包括(B,M,E,S)4个状态值,每个状态代表的是该字在词语中的位置,其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。
观察值集合可以理解为待分词的句子中每一个字所构成的序列。
初始状态分布也就是句子的第一个字属于{B,E,M,S}这四种状态的概率。
转移概率矩阵是一个4×4的二维矩阵,行和列均为四个状态值(B,M,E,S),其中,每一个数值表示从该列状态转移到该行状态的概率,如表2所示。例如,在表2中,第1行状态B转移到第1列状态B的概率为0;第1行状态B转移到第2列状态M的概率为p1;第1行状态B转移到第3列状态E的概率为p2;第1行状态B转移到第4列状态S的概率为0。这表示一个字是词语中的起始字,他的下一个字是中间字的概率为p1,他的下一个字是结束字的概率为p2,他的下一个字是起始字或单字的概率为0。
表2
发射概率矩阵是一个条件概率,这个概率值表示的是观察值集合中的某一个字为某一个状态值的概率。
对于已经训练好的HMM模型而言,初始状态分布、转移概率矩阵、发射概率矩阵的具体概率值都是已知的,基于已分词完毕的语料进行统计计算,计算出相应的频率和条件概率就可以算出这三个参数。
利用HMM模型作为分词模型,可以将分词的问题理解为一个在已知观察值集合、转移概率矩阵、发射概率矩阵和初始状态分布这四个参数的情况下,求解HMM模型的状态集参数的问题。也就是说,加载好已经训练好的HMM模型,输入待分词的句子(也就是观察值集合),然后用维特比(Viterbi)算法来求解最短路径。在本实施例中,对于未登陆词,利用HMM模型,可以求解出每一个字最可能的状态值,然后根据状态值就可以直接划分该未登录词,得到第一切分结果。例如,前述的“肯尼亚马塞马拉”,利用HMM模型得到对应的状态值集合[BMEBMME],据此切分得到第一切分结果“肯尼亚/马塞马拉”。
最后,根据词图中总长度最短的路径“他→在→肯尼亚马塞马拉→野生→动物园”,以及第一切分结果“肯尼亚/马塞马拉”,确定分词结果为“他/在/肯尼亚/马塞马拉/野生/动物园”。
以下再以最大切割算法和HMM模型为例,来具体说明利用分词算法和对应的第一分词模型来进行分词的过程。
S421:利用HMM模型生成分词词典;
S422:利用所述分词词典,采用正向最大匹配法将单句切分得到第一结果;
S423:利用所述分词词典,采用逆向最大匹配法将单句切分得到第二结果;
S424:从第一结果和第二结果中确定单句的分词结果。
对于已经训练好的HMM模型而言,初始状态分布、转移概率矩阵、发射概率矩阵的具体概率值都是已知的。利用这样的HMM模型,结合最优路径解方法,可以切分语料从而生成分词词典。再利用分词词典,分别采用正向最大匹配和逆向最大匹配的方法来切分。
举例来说,对于“他在野生动物园”这个单句,采用正向最大匹配法来切分的过程如下。
首先,将“他在野生动物园”这整个单句与分词词典匹配,结果无匹配项;
将“他在野生动物”与分词词典匹配,结果无匹配项;
将“他在野生动”与分词词典匹配,结果无匹配项;
……
将“他在”与分词词典匹配,结果无匹配项;
将“他”与分词词典匹配,匹配到“他”。从而将“他”切分出来。
然后,将“在野生动物园”与分词词典匹配,结果无匹配项;
将“在野生动物”与分词词典匹配,结果无匹配项;
……
将“在野”与分词词典匹配,匹配到“在野”。从而将“在野”切分出来。
类似地进行正向匹配,最后得到的第一结果为“他/在野/生动/物/园”。
采用逆向最大匹配法来切分的过程如下。
首先,将“他在野生动物园”这整个单句与分词词典匹配,结果无匹配项;
将“在野生动物园”与分词词典匹配,结果无匹配项;
将“野生动物园”与分词词典匹配,结果无匹配项;
……
将“动物园”与分词词典匹配,匹配到“动物园”。从而将“动物园”切分出来。
然后,将“他在野生”与分词词典匹配,结果无匹配项;
将“在野生”与分词词典匹配,结果无匹配项;
将“野生”与分词词典匹配,匹配到“野生”。从而将“野生”切分出来。
类似地进行逆向匹配,最后得到的第二结果为“他/在/野生/动物园”。
从第一结果和第二结果中确定单句的分词结果,可以根据不同的规则来确定。例如,根据切分出的总词数越少越少的规则,则第一结果切分出的总词数为5个,第二结果切分出的总词数为4个,从而确定第二切分结果作为该单句的分词结果。除了根据切分出的总词数之外,还可以根据切分出的单字词的数量、切分出的非词典词数量等来确定分词结果。
与HMM模型类似地,采用CRF模型以及对应的CRF新词发现算法也可以对文本中的字标注其对应的状态,以对文本或者文本中的未登录词进行分词。HMM模型由于模型本身的输出独立性假设,导致其不能考虑上下文的特征,与之相比,而CRF分词模型不仅考虑了词语出现的频率信息,同时考虑上下文语境,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。
在中文分词***中预存有默认词典,例如现有分词工具中的核心词典、二元词典等,可以用于单句的粗切分、正向匹配或者逆向匹配。此外,可选地,这些过程中还可以利用用户自定义的业务词典。相应地,请参考图2,本实施例中的中文分词***还包括自定义词典单元5,用于获取业务词典;前述的处理单元3还用于利用所述业务词典切分所述中文文本。这里的业务词典包括至少一个用户期望从中文文本中优先切分出的业务词,例如,当中文分词***主要用于银行领域的文本处理时,可以将“过夜存款”、“定期存款”、“打包贷款”等银行的专业术语设置为业务词。可以设置业务词典的优先级高于默认词典。利用业务词典,可以增加一些某些业务场景中所关注的业务词的权重,以便在直接引导分词结果优先偏向于业务词。
本申请的中文分词***中包括分词算法单元1和分词模型单元2,分别提供了至少两种分词算法,以及与分词算法具有对应关系的至少两种第一分词模型,无论用户选择的分词算法与第一分词模型的类型是否对应,***都会根据分词算法来确定一种与之类型对应的第一分词模型。利用这样的中文分词***,即便用户不具有开发写能力、不具有足够的中文分词相关的知识,也可以通过与中文分词***进行简单的几次交互,就完成制定特定的分词流程的工作,包括调整分词算法和调整分词模型等,从而满足不同业务场景中对于中文分词的不同需求。
在本实施例的中文分词***中,第一分词模型是已经被训练好的模型。在一些应用场景中,第一分词模型可能无法满足处理需求。例如,第一分词模型都是采用金融领域的训练语料所训练得到的,而用户现在需要用该中文分词***来处理体育领域的文本,如果还采用第一分词模型来处理,会导致得到的分词结果准确率过低,进而影响后续自然语言处理任务的精度。
因此,可选地,请参考图2,上述中文分词***还包括:分词模型构建单元4,用于为用户提供中文分词***所支持的至少一种初始分词模型;获取用户上传的第一分词标注语料;以及,利用所述第一分词标注语料训练用户选择的初始分词模型,得到第二分词模型。
所述处理单元3还用于确定用户从分词算法单元1中选择的分词算法和所述第二分词模型的类型是否对应;在对应的情况下,利用用户从分词算法单元1中选择的分词算法以及所述第二分词模型对中文文本进行分词,得到分词结果。
在分词模型构建单元4中,初始分词模型可以是基于统计的分词方法所常用的分词模型中的任一种。一般来说,初始分词模型的类型通常是与分词算法单元中所提供的分词算法具有对应关系的类型,这样处理单元3在利用分词算法以及第二分词模型进行分词的时候才不会出现二者不匹配而无法分词的情况。例如,初始分词模型的类型可以是HMM模型、CRF模型等。这些初始分词模型中的参数是尚未确定的,需要通过训练来确定。
可选地,由于不同类型的初始分词模型所需要的用于训练的语料(即分词标注语料)的格式存在区别,故而根据用户选择的初始分词模型的类型来限定分词标注语料的格式,然后获取用户上传的预定格式的第一分词标注语料来训练初始分词模型,训练完成后即得到第二分词模型。
更具体地,在训练初始分词模型的时候,分词模型构建单元4首先将第一分词标注语料按照预设比例划分为训练集和验证集。例如,可以将预设比例设置为训练集:验证集=8:2等。然后利用训练集训练所述初始分词模型,得到确定的模型参数。这里,采用训练集训练所述初始分词模型,实际上就是计算出一个确定的模型参数的过程。例如,对于HMM模型来说,对第一分词标注语料进行统计,计算出相应的频率和条件概率,就可以算出初始状态分布、转移概率矩阵、发射概率矩阵这三个参数的值。再将模型参数代入初始分词模型,利用验证集计算所述初始分词模型的第一准确率和第一召回率。也就是说,将模型参数代入初始分词模型以后,可以得到一个确定的分词模型,此处将其称之为中间模型。然后利用这个中间模型来对验证集中的语料进行分词,将分词结果与分词标注语料中的标注结果进行比对,就可以计算出中间模型的第一准确率和第一召回率,依次来验证中间模型的模型参数是否合适。这里的第一准确率为正确识别的个体总数/识别出的个体总数;第一召回率为正确识别的个体总数/验证集中存在的个体总数。例如,如果中间模型对验证集中的语料进行分词所得到的分词结果中,总共切分出1000个词,其中切分正确的有950个,验证集中标注好的真实的切分结果中共有1020个词,则第一准确率为95%,第一召回率约为93%。当中间模型满足一定的预设条件的时候,就将这个中间模型确定为第二分词模型。比如,如果中间模型的第一准确率达到预设的准确率阈值,和/或,第一召回率达到预设的召回率阈值的情况下,就将这个中间模型存储作为第二分词模型。此外,还可以利用第一召回率和第一准确率计算加权集合平均值(F值),如果F值达到预设阈值,则将这个中间模型存储作为第二分词模型。
所述处理单元3还用于确定用户从分词算法单元1中选择的分词算法和所述第二分词模型的类型是否对应;在对应的情况下,利用用户从分词算法单元1中选择的分词算法以及所述第二分词模型对中文文本进行分词,得到分词结果。例如,用户从分词算法单元1中选择的分词算法为CRF新词发现法,如果在分词模型构建单元4中构建出的第二分词模型为一个CRF模型,那么二者对应;如果第二分词模型为一个HMM模型,那么二者就不对应。在不对应的情况下,处理单元3还可以从分词模型单元2中选取一个与用户选择的分词算法对应的分词模型来进行分词。
通过分词模型构建单元4,使用户能够构建自定义的第二分词模型,然后验证用户在分词模型构建单元中自定义构建的第二分词模型是否与分词算法对应,在对应的情况下利用二者来对中文文本进行分词。从而将分词模型建设、评估以及使用进行一体化设计,便于分词模型的累计和复用,也使得制定出的分词流程更加多元化,进而使用户能够更加灵活地在不同的应用场景中应用不同的分词流程来对文本进行分词,得到令人满意的分词结果。此外还避免用户选定的分词算法与第二分词模型匹配,导致中文分词***出错的情况。
在分词模型构建单元4中,还可以包括为用户提供训练初始分词模型所需要使用的工具包,例如HanLP、CRF++、Bi-LSTM等,以便用户可以根据选择的初始分词模型来确定训练工具。例如,如果初始分词模型是HMM模型,则可以选用HanLP;如果初始分词模型是CRF模型,则可以采用CRF++、Bi-LSTM。
词性标注(Part-of-Speech tagging或POS tagging)是指对于句子中的每个词都指派一个合适的词性,也就是要确定每个词是名词、动词、形容词或其他词性的过程。可选地,在本实施例中的中文分词***中,处理单元3还用于对分词结果中的每一个词标注词性。一般来说,如果在训练分词模型(包括前述的第一分词模型和第二分词模型)时所使用的分词标注语料中标注了词的词性,那么训练得到分词模型在用于对未知文本进行分词的时候同时也可以标注词的词性。而如果分词标注语料中并没有标注词性,那么处理单元3可以利用已知的词性统计词典资源来实现词性标注的功能。更具体地,处理单元3还可以包括词性标注单元,该单元利用词性统计词典资源中的词性状态转移矩阵,来求解分词结果中每一个词所对应的统计概率最高的词性,从而对分词结果中的词进行词性标注。如果词性统计词典资源的词性状态转移矩阵中没有包含分词结果中某一个词,那么可以使用预设的新词词性来标注该词。
可选地,前述的中文分词***还可以包括:分词流程保存与评估单元6,用于保存分词流程,所述分词流程包括用户从分词算法单元中选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型或第二分词模型;获取第二分词标注语料;根据所述分词流程对所述第二分词标注语料进行分词,计算得到所述分词流程对应的第二准确率和/或第二召回率。第二准确率和第二召回率的计算方式可以参考前述第一准确率和第一召回率的计算方式,此处不再赘述。可选地,上述的分词流程中还可以包括用户设定的其他参数,例如预设的准确率阈值、召回率阈值、自定义词典、自定义词典的优先级等。
通过分词流程保存与评估单元6可以将每一个分词流程分别保存起来,并评估该分词流程的分词效果,以便于重复利用以及参数调整。如果第二准确率和/或第二召回率满足预设的条件,则该分词流程可以直接被处理单元3应用,用来对未知的文本进行分词。如果第二准确率和/或第二召回率不满足预设的条件,则可以由用户来调整该分词流程的各个参数的参数值,使其适应应用场景的需求。
与第一个实施例相对应地,本申请的第二个实施例提供一种中文文本的分词方法,请参考图3,包括以下步骤:
S100:显示至少两种中文分词***所支持的分词算法;
S200:显示至少两种中文分词***所支持的第一分词模型,所述第一分词模型的类型与所述分词算法具有对应关系;
S300:确定用户选择的分词算法和第一分词模型的类型是否对应;
如果对应,则执行S400:利用用户选择的分词算法,以及用户选择的第一分词模型对中文文本进行分词,得到分词结果;
如果不对应,则执行S500:利用用户选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型,对中文文本进行分词,得到分词结果。
可选地,上述中文分词方法还包括:
S600:显示中文分词***所支持的至少一种初始分词模型;
S700:获取用户上传的第一分词标注语料;
S800:利用所述第一分词标注语料训练用户选择的初始分词模型,得到第二分词模型;
S900:确定用户从分词算法单元中选择的分词算法和所述第二分词模型的类型是否对应;
如果对应,则执行S1000:利用用户从分词算法单元中选择的分词算法以及所述第二分词模型对中文文本进行分词,得到分词结果。
更具体地,S800的步骤可以包括:
S801:将第一分词标注语料按照预设比例划分为训练集和验证集;
S802:利用训练集训练所述初始分词模型,得到确定的模型参数;
S803:将所述模型参数代入所述初始分词模型,利用验证集计算所述初始分词模型的第一准确率和第一召回率;
S804:如果所述第一准确率达到预设的准确率阈值,和/或,所述第一召回率达到预设的召回率阈值,则存储第二分词模型,其中,所述第二分词模型为代入所述模型参数后的初始分词模型。
可选地,利用用户选择的分词算法以及类型与所述分词算法具有对应关系的第一分词模型/第二分词模型,对中文文本进行分词,得到分词结果的步骤,可以包括前述第一个实施例中的S411至S415的步骤,或者,包括第一个实施例中的S421至S424的步骤,具体可以参考前述的相关描述。利用第一分词模型和利用第二分词模型进行分词的过程类似,此处不再赘述。
可选地,该中文分词方法还可以包括:
保存分词流程,所述分词流程包括用户从分词算法单元中选择的分词算法,以及类型与所述分词算法具有对应关系的第一分词模型或第二分词模型;
获取第二分词标注语料;
根据所述分词流程对所述第二分词标注语料进行分词,计算得到所述分词流程对应的第二准确率和/或第二召回率。
可选地,该中文分词方法还可以包括:
对分词结果中的每一个词标注词性。
可选地,该中文分词方法还可以包括:
获取业务词典,所述业务词典包括至少一个用户期望从中文文本中优先切分出的业务词;
利用所述业务词典切分所述中文文本。
需要说明的是,前述的中文文本可以是纯汉字的文本,也可以包括少量的数字、英文字符等其他字符,本申请对此不做限制。中文分词***在应用时也类似,不仅仅限于用于切分纯汉字的文本,文本中也可以包括少量的数字、英文字符等其他字符。
该中文分词方法具有与前述中文分词***相应的有益效果,此处不再赘述。
本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。