一种用于全媒体科普视窗的分词方法及系统与流程

文档序号:16068474发布日期:2018-11-24 12:54阅读:278来源:国知局

本发明涉及全媒体科普视窗分词领域,特别是涉及一种用于全媒体科普视窗的分词方法及系统。

背景技术

在如今大数据技术和云计算技术流行的当下,从大量的网络数据中,抓取有效的信息,过滤,分类,标签化,聚合成需要的网络资源库,慢慢成为一种互联网时代关键性的技术问题。

人类语言存在规则,人的大脑可以在经过充分的学习之后掌握并运用这样的规则,从而可以在生活中自如地遣词造句与人交流。在与人交流的过程中,使用同一种语言的人可以很轻易地从对方的话语里抓住中心词,并依据一句话的中心意思,对整个句子进行分词,将句子分割成一个又一个的关键词,方便理解其中的意思;人类的语言各有各的规则,例如汉语,汉语这一种语言是非常需要重视语法规则的语言,汉语在使用过程中没有词形变化,所以很难根据字词本身的形态变化来分割词汇寻找中心词,这就给中文在计算机上的发展和应用带来了难题。

汉语的语法规则如何体现?汉语可以用完全相同的几个具有实在意义的单个符号组合在一起表达出不同的意义,句子意义的差异是由单个符号间的结构关系不同造成的,这些不同的结构关系要通过一定的词序,特定的虚词等语法形式体现出来,这些复杂的语法规则,让外族人学习汉语时都感到非常困难,可以想见让计算机处理如此庞杂的语言信息时,会遭遇何等的困难,而又因为其形态上完全没有变化,所以应用于计算机处理信息时会造成极大的负担;由于汉语语言的独特性,机器在处理汉语信息时无法正确地分隔开有效的词汇,从而表达出正确的语句停顿,更无法得知一句话的准确含义。

在构建机器学习方法时,理论上我们力图避免掺杂人类直觉,但实际上,设计者的直觉对构建过程的影响是不可避免的;对于监督方法,学习过程始终不会偏离人工明确给定的正误标准,而无监督方法则没有这种标准可以依赖,显然,无监督方法的构建难度远大于监督方法。理论上,学习的目的是确定数据组织的方式,找到蕴含的特征及模式,监督与否的差别在于是否有人工干预,但是现有的无监督学习方法依然存在的人工参数设置,由于器学习模型中所包含的参数必须人工给定,必然会降低方法的泛化程度,并可能损害处理实际数据时的表现,于是为了能够在处理不同语料时提高表现,需要对人工赋值的那些参数进行调整,因此,由于人为的主观意识参与,会导致分词精度大大降低。



技术实现要素:

本发明的目的是提供一种用于全媒体科普视窗的分词方法及系统,以解决由于人为的主观意识参与,导致分词精度低的问题。

为实现上述目的,本发明提供了如下方案:

一种用于全媒体科普视窗的分词方法,所述分词方法应用于估值-选择-调整esa架构;所述esa架构包括估值模块、选择模块以及调整模块;所述分词方法包括:

获取字符序列;所述字符序列包括多个子序列;相邻的两个子序列为邻接子序列对;

将所述字符序列输入到所述估值模块进行估值,确定良度值;所述良度值包括所述子序列独立的个体良度值、每对邻接子序列之间的间隔良度值以及所述邻接子序列对的组合良度值;

将所述良度值以及所述字符序列输入到所述选择模块进行筛选处理,确定具有最大良度值的分割形式;所述具有最大良度值的分割形式为层次化结构;所述层次化结构用于对所述字符序列进行分词;

根据所述具有最大良度值的分割形式判断是否需要进行迭代处理,得到第一判断结果;

若所述第一判断结果表示为所述具有最大良度值的分割形式需要进行迭代处理,将所述具有最大良度值的分割形式以及所述字符序列输入到所述调整模块进行调整,确定调整后的字符序列,并利用所述调整后的字符序列更新所述估值模块内的统计信息。

可选的,所述将所述字符序列输入到所述估值模块进行估值,确定良度值,具体包括:

根据所述字符序列确定所述字符序列所包含的子序列;

根据所述子序列确定第一类统计信息;所述第一类统计信息包括各个子序列出现的频率以及相同长度子序列的数量;

根据所述第一类统计信息确定第二类统计信息;所述第二类统计信息包括相同长度子序列的平均频率、子序列的sp1熵以及相同长度子序列的sp1平均熵;

根据所述第一类统计信息以及第二类统计信息确定良度值。

可选的,所述将所述良度值以及所述字符序列输入到所述选择模块进行筛选处理,确定具有最大良度值的分割形式,具体包括:

根据所述良度值,采用最大化策略对所述字符序列进行最优分割,确定具有最大良度值的分割形式。

可选的,所述将所述具有最大良度值的分割形式以及所述字符序列输入到所述调整模块进行调整,确定调整后的字符序列,具体包括:

根据具有最大良度值的分割形式以及所述字符序列,利用统计子串削减法调整所述字符序列,确定调整后的字符序列。

一种用于全媒体科普视窗的分词系统,包括:

字符序列获取模块,用于获取字符序列;所述字符序列包括多个子序列;相邻的两个子序列为邻接子序列对;

估值模块,用于将所述字符序列输入到所述估值模块进行估值,确定良度值;所述良度值包括所述子序列独立的个体良度值、每对邻接子序列之间的间隔良度值以及所述邻接子序列对的组合良度值;

选择模块,用于将所述良度值以及所述字符序列输入到所述选择模块进行筛选处理,确定具有最大良度值的分割形式;所述具有最大良度值的分割形式为层次化结构;所述层次化结构用于对所述字符序列进行分词;

第一判断模块,用于根据所述具有最大良度值的分割形式判断是否需要进行迭代处理,得到第一判断结果;

调整模块,用于若所述第一判断结果表示为所述具有最大良度值的分割形式需要进行迭代处理,将所述具有最大良度值的分割形式以及所述字符序列输入到所述调整模块进行调整,确定调整后的字符序列,并利用所述调整后的字符序列更新所述估值模块内的统计信息。

可选的,所述估值模块具体包括:

子序列确定单元,用于根据所述字符序列确定所述字符序列所包含的子序列;

第一类统计信息确定单元,用于根据所述子序列确定第一类统计信息;所述第一类统计信息包括各个子序列出现的频率以及相同长度子序列的数量;

第二类统计信息确定单元,用于根据所述第一类统计信息确定第二类统计信息;所述第二类统计信息包括相同长度子序列的平均频率、子序列的sp1熵以及相同长度子序列的sp1平均熵;

良度值确定单元,用于根据所述第一类统计信息以及第二类统计信息确定良度值。

可选的,所述选择模块具体包括:

选择单元,用于根据所述良度值,采用最大化策略对所述字符序列进行最优分割,确定具有最大良度值的分割形式。

可选的,所述调整模块具体包括:

调整单元,用于根据具有最大良度值的分割形式以及所述字符序列,利用统计子串削减法调整所述字符序列,确定调整后的字符序列。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种用于全媒体科普视窗的分词方法及系统,具体公开了一种估值-选择-调整(evaluation,selection,adjustment,esa)架构,该esa为无监督分词方法,并不限制于某个特定语言;本发明能够达到以下技术效果:

一、相对于半监督和监督分词方法,本发明提供了一种能够适应更加苛刻条件下的方法,同时要确保该方法能够生成可以被接受的结果。“更加苛刻”指,没有词典、标注语料和语法规则,而“可接受”指,以手工分割结果为验证标准。

二、相对于其他无监督分词方法,本发明探索了完全无监督方法的可行性和潜力,进一步降低了人工干涉强度,提高方法的通用性。

此外,esa架构基于全新的良度算法,避免使用传统学术论文中提到的阈值概念,在整体上采用自我修正的机制,通过迭代提高分割的准确度,换言之,esa整体上是一种迭代算法,从而能够自动完成统计信息更新,进而使得人工干涉程度降低到空前水平,提高了分词精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的esa架构3个过程间的结构关系图;

图2为本发明所提供的分词方法流程图;

图3为本发明所提供的字符序列与其邻接子序列对示意图;

图4为本发明所提供的选择过程中的层次化结构及动态规划示意图;

图5为本发明所提供的调整前频率示意图;

图6为本发明所提供的调整后频率示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种用于全媒体科普视窗的分词方法及系统,能够提高分词精准度。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明所提供的esa架构包含3个主要的过程:估值(evaluation),选择(selection),调整(adjustment),“esa”即为这3个过程英文名的首字母缩写,图1为本发明所提供的esa架构3个过程间的结构关系图。

如图1所示,3个过程的执行顺序形成一个循环,1次迭代处理对应1次循环,esa首次接受输入字符序列(charactersequence)后计算所需的统计数据,这些统计数据和字符序列传至evaluation进行估值,然后经过selection过程筛选后输出对该字符序列的分割结果(segmentationresult),如果进行迭代处理,selection产生的分割结果将直接传递给adjustment过程,adjustment根据这些分割结果对统计数据进行调整,调整后的数据作为下次循环中evaluation所需的先验知识。

图2为本发明所提供的分词方法流程图,如图2所示,一种用于全媒体科普视窗的分词方法,所述分词方法应用于估值-选择-调整esa架构;所述esa架构包括估值模块,选择模块以及调整模块;所述分词方法包括:

步骤201:获取字符序列;所述字符序列包括多个子序列;相邻的两个子序列为邻接子序列对。

步骤202:将所述字符序列输入到所述估值模块进行估值,确定良度值;所述良度值包括所述子序列独立的个体良度值、每对邻接子序列之间的间隔良度值以及所述邻接子序列对的组合良度值。

根据统计信息,为每个字符序列和每个邻接子字符序列对(adjacentsubsequencepair)提供良度(goodness)值,良度可视为字符序列或子序列在上下文环境中独立存在的可能性,而良度值作为该独立存在的量化分值(score),是esa进行词汇分割的依据;若要澄清估值过程,需要从3个问题着手:

1)将连续的文本信息视为字符序列,而字符序列的任意子序列都可以视为潜在词(word);任意长度为n(由n个字符组成)的字符序列包含(n+1)×n/2个子序列,其中存在(n+1)×n/2-1个真子序列,这些子序列是估值的对象。

如图3所示,字符序列abcd可以分割为不同的邻接子序列,即这些子序列彼此相邻,如果该字符序列仅分割一次,便存在一对彼此相邻的子序列,我们称之为邻接子序列对,而每个子序列可以按这种二分的形式继续分割为邻接子序列对;一个邻接子序列对除了两个相邻子序列外,还包括一个间隔(gap),该间隔表示两个相邻子序列间的潜在边界,而这两个相邻子序列可视为两个潜在词;序列和子序列是一对相对的概念,其中序列是子序列的超序列,当对某个子序列单独讨论时,将子序列直接称为序列,所以在之后的描述中将较为自由地使用这两个概念。

在估值的过程中,每个字符序列都拥有独自的良度值,称之为个体良度值(individualgoodnessvalue,iv);每对邻接子序列间的间隔拥有独自的良度值,称之为间隔良度值(lengthgoodnessvalue,lrv);每个邻接子序列对拥有独自的良度值,称之为组合良度值(combinedgoodnessvalue,cv),由这两个邻接子序列各自的iv和它们之间的间隔的lrv组成。从估值算法的构建原理上看,iv衡量序列出现的确定性,而lrv衡量该序列出现的不确定性。当一个字符序列的iv较大时,说明该字符序列出现的相对频率较高,而某个间隔的lrv较大时,说明包含该间隔的字符序列出现频率相对较低;cv综合考虑上述确定性和不确定性,如果cv值较大时,说明此邻接子序列对出现的相对频率较高;从估值算法的实现角度看,iv是cv的基础量,而lrv用来调节基础量。

事实上,对于esa方法中的子序列可以视为块(chunk)等任意语言单位。块概念最初来自心理学,用来指人类长期记忆的结构,它是人类感知和赋以含义的单位。块可以理解为承载信息的单位,并用于语言习得(languageacquisition)领域的;可以将无监督分割后的结果看作块的序列。因为自动分割的结果并不完全符合分词的黄金标准(goldstandard,即人工标准),但为了与其他分词方法进行比较,仍然将分割结果视为词的序列,其中分割所得的子序列被视为词。

2)esa作为无监督方法,其所需要的统计信息仅来自未标注语料,将这些统计信息分成两类:第一类是直接从语料中统计获得,即不需要计算仅需记录;第二类需要通过对第一类统计信息进行计算后获得。

第一类统计信息可以视为方法所需的基本量,共有2个:

(1)字符序列在语料中出现的频率。例如,设某个输入文本,即输入字符序列为abab,它包含子序列为:a,b,ab,ba,aba,bab,abab。这些字符序列的出现频率为:a,b,ab为2;ba,aba,bab,abab为1。

(2)相同长度字符序列的数量。例如,设输入字符序列为abc,它包含子序列:长度为1的序列,a,b,c;长度为2的序列,ab,bc;长度为3的序列,abc。因此,相同长度字符序列的数量分别为:长度为1的序列数量是3;长度为2的序列数量是2;长度为3的序列数量是1。

上述量中的“频率”,更精确地讲,应该称为相对频率(relativefrequency),因为所处理的语料并不能等同于整个语言,所处理语料与其代表的语言之间是子集和超集的相对关系,所以某字符序列在该语言中出现的数量是“频率”,而该字符序列在其子集语料中出现数量是“相对频率”。然而,为了描述更加简练,我们将继续使用“频率”来替代“相对频率”。

第二类统计信息可以根据第一类统计信息计算获得,共有3个:

(1)相同长度字符序列的平均频率。例如,设有且仅有2个长度为1的字符序列:a和b。其中,a的出现频率为2,即出现了2次,b的出现频率为8,即出现了8次。因此,a和b的出现频率的算术均值为5,即(2+8)/2。于是,我们获得长度为1的字符序列的平均频率为5。

(2)字符序列sp1熵。sp1(sequenceplusone),即某字符序列附加1个字符形成新的字符序列集合,其中新字符序列和原字符序列必须都是输入字符序列的子序列。例如,设字符序列x,x的sp1为1个集合,该集合中每一个成员都是x附加1个字符的字符序列,即该集合每个成员都包含子序列x,每个成员都是x的超序列(supersequence)。字符序列x的sp1由sp1(x)表示,字符序列x的sp1熵由h(sp1(x))表示。sp1可以分成两个子集,由sp1l(sp1left)和sp1r(sp1right)表示,sp1l的成员为某字符序列左侧附加1个字符形成的字符序列,sp1r的成员为该字符序列右侧附加1个字符形成的字符序列。于是,h(sp1(x))分成两部分,即h(sp1l(x))和h(sp1r(x))。例如,设字符序列:bc,abc,bbc,bcb,bcd。其中,abc和bbc是sp1l(bc)的成员,而bcb和bcd是sp1r(bc)的成员,于是,h(sp1l(x))根据abc、bbc和其它sp1l(bc)成员的频率进行计算获得,而h(sp1r(x))根据bcb、bcd和其它sp1r(bc)成员的频率进行计算获得。对sp1l和sp1r的形式化描述分别为:

sp1l(x)={s|s=c·x,s∈s,x∈s,c∈∑}

sp1r(x)={s|s=c·x,s∈s,x∈s,c∈∑}

其中,·表示附着操作符;s表示输入字符序列集合;x表示原字符序列;s表示新字符序列;σ表示字符表;c表示1个字符。因此,x是s的最大真子序列。

(3)相同长度字符序列sp1平均熵。实际上,这个量分成两部分,即相同长度字符序列sp1l平均熵和sp1r平均熵。例如,设有且仅有3个长度为2的字符序列:ab,bc,cd。h(sp1l(ab)),h(sp1l(bc)),h(sp1l(cd))三者的和作为分子,而分母为长度为2的字符序列数量,即3;商为ab,bc和cd的sp1l熵的算术均值,该均值即为长度为2的字符序列sp1l平均熵。

以上描述中的“熵”,即信息熵。在获取上述信息的算法中,我们直接使用前缀树(prefixtree),即trie,该数据结构用来记录上述信息,另外存在很多其它数据结构可以完成此任务。

3)在获得所需的统计信息后,估值过程将负责计算字符序列的个体良度值(iv)、间隔良度值(lrv)、以及临界序列对的组合良度值(cv)。

字符序列的iv由以下公式计算得出:

公式中,x表示欲被估值的字符序列;l表示x的长度;f表示字符序列出现频,因此fx表示x的出现频率;fm表示等长字符序列出现的平均频率,而fml,表示长度为l的字符序列出现的平均频率;等式右上角l表示指数。f可以视作局部变量,而fm给公式带来了全局效果。通过等式右侧的除法操作,不同长度的字符序列间变得具有可比性。该除法操作基于一种模式,该模式我们称为平衡(balancing),其含义为保持局部效果与全局效果之间的平衡。iv公式中的fm有以下公式得出:

公式中,n表示长度为l的字符序列的数量,即有n个长度为l的字符序列,共可以提供n个fl。

字符序列sp1熵,即sp1l熵和sp1r熵分别由以下两个公式得出:

公式中,x表示原字符序列;lxi表示sp1l(x)中的第i个成员,rxi表示sp1r(x)中的第i个成员;flx表示sp1l(x)中某成员的频率,frx表示sp1r(x)中某成员的频率;n表示sp1l(x)或sp1r(x)的基数(cardinality),即集合成员的个数。

相同长度字符序列的sp1平均熵,即sp1l平均熵和sp1r平均熵分别由以下两个公式得出:

公式中,l表示字符序列长度;hlm和hrm分别表示具有相同长度字符序列的sp1l平均熵和sp1r平均熵,而hlml和hrml分别表示长度为l的字符序列的sp1l平均熵和sp1r平均熵;hl和hr分别表示特定长度字符序列的sp1l熵和sp1r熵,而hll和hrl分别表示长度为l的字符序列的sp1l熵和sp1r熵;n表示具有特定长度字符序列的个数,即长度为l的字符序列数量。

邻接子序列对的cv由以下公式计算得出:

cv(sleft·sright)=iv(sleft)×iv(sright)×lrv(sleft·sright)

公式中,sleft和sright为两个邻接字符序列,前者在左侧,后者在右侧;·表示连接操作符,也可以视为间隔位置;其中的lrv由以下公式计算得出:

公式中,l1和l2分别表示sp1l(sright)和sp1r(sleft)中成员字符序列的长度,即分别等于sright和sleft的长度加1;等式右侧的上角标x表示指数,是一个变量,是esa方法中唯一的一个待定参数,该参数与语料规模具有强相关性。等式右侧的底数可以视为两个商的乘积,这两个商实际上与iv公式中的除法具有相同的模式,即代表了平衡(balancing)处理。

上述良度计算公式体现了本发明的设计思想,iv和lrv分别代表了两个相邻字符序列共现的确定性和不确定性,cv将这两者结合起来,而lrv公式右侧的指数可以视为lrv在cv中的权重。

步骤203:将所述良度值以及所述字符序列输入到所述选择模块进行筛选处理,确定具有最大良度值的分割形式;所述具有最大良度值的分割形式为层次化结构;所述层次化结构用于对所述字符序列进行分词。

采用最大化策略(maximizationstrategy),以确定针对某个字符序列的最佳分割,即选择出具有最大良度值的分割形式;例如,设字符序列为abc,它包含6个子序列:a、b、c、ab、bc和abc;如果对abc进行分割,abc可以被分为多种不同的邻接子序列对,而每个子序列可以继续分割为更加细粒度的邻接子序列对,于是形成层次化结构,如图4所示。

选择过程可是视为多组字符序列和邻接子序列对间的比较过程,每组比较过程由某字符序列自身以及其所有的邻接子序列对之间的比较组成,如图4所示,字符序列abc与其邻接子序列对a·bc和ab·c进行比较为一组比较过程,字符序列bc与其邻接子序列对b·c进行比较为另一组比较过程,字符序列ab与其邻接子序列对a·b进行比较形成最后一组比较过程;比较的实质是,字符序列的iv与其邻接子序列对的cv进行比较,最大良度值所代表的分割形式是最佳分割结果;例如,字符序列bc仅能分割为1对邻接子序列,即b·c,所以只需要1次比较,bc的iv如果大于b·c的cv,对字符序列bc的分割结果将是bc,即不分割,如果bc的iv小于b·c的cv,分割结果将是b_c,其中_代表分割符,如空格;对于较长的字符序列abc,因为其含有2个邻接子序列对a·bc和ab·c,所以需要比较2次。

如果对上述比较过程进行考察,可以发现该过程存在明显的低效率问题:对于某些字符序列,可能存在冗余的比较和计算;该问题在处理实际语料时很容易出现,于是采用动态规划(dynamicprogramming)去除冗余比较和计算,降低算法复杂度;如图4所示,我们在对字符序列abc的处理过程中,将所有涉及到的字符序列的估值及比较的结果进行记录,之后若再次出现对这些字符序列的处理时,仅需从记录中查询取得,而不要再次估值或比较;因此,算法的时间复杂度与字符序列长度成多项式级关系。

步骤204:根据所述具有最大良度值的分割形式判断是否需要进行迭代处理,若是,执行步骤205,若否,返回步骤201。

步骤205:若所述第一判断结果表示为所述具有最大良度值的分割形式需要进行迭代处理,将所述具有最大良度值的分割形式以及所述字符序列输入到所述调整模块进行调整,确定调整后的字符序列并利用所述调整后的字符序列更新所述估值模块内的统计信息。

调整过程是更新原有统计数据的过程,即根据前一个选择过程生成的最终结果,对下一个估值过程所需的统计数据进行更新。该过程的目的是将前次处理的后验结论转化为后续处理的先验知识。若阐明估值过程,需要从2个问题着手:

1)调整数据——调整过程基于这样的想法:前次估值和选择过程存在对某些字符序列出现频率的高估(overestimate)。设有字符序列x,x以及其所有真子序列在前次处理之前都被视为潜在的词,或者说都视为候选词,因此x的出现导致其真子序列的出现也都被记录,然而,当x在前次处理的结果中被视为真词(trueword),即在前次选择过程中x被视为词而未被分割,那么x的所有真子序列此时便不应该再视为潜在词被记录,即下次处理x时,这些真子序列不应该被当作词考虑。在上述情况中,x的真子序列在x中出现的次数也被记录,从而导致它们出现的频率增加,这种增加被我们称为高估。

例如,设字符序列abc在输入的语料中出现2次,作为对照,另有字符序列bbc出现1次,而在选择处理前,它们的出现频率记录如图5所示,其中f右侧为频率值。

经过选择过程后,abc在2次出现中,有1次被视为真词未被分割,而另1次没有被视为真词,而是被分割为a_b_c,作为对照的bbc始终被分割为b_b_c,因此它们的出现频率记录被调整,如图6所示。

上述调整过程基于的思想可以用统计子串削减(statisticalsubstringreduction,ssr)实现,然而,ssr的思想与调整过程的思想差异很大,ssr暗示一个字符序列的出现对其所有真子字符序列的独立存在具有负面影响,如果子序列的频率接近于它的超序列,那么这个子序列独立存在的可能性为零。基于削减的子序列频率(frequencyofsubstringwithreduction,fsr)源自于ssr,我们可以看到fsr并非迭代方法,所以它与调整过程的思想的实质差别在于:fsr基于人工的先验知识,即ssr的暗示;而调整过程将前次分割结果视为先验知识。

2)使用调整数据——调整过程对字符序列的频率进行改变,而根据估值算法,我们可以看到所有估值需要的统计量都建立于字符序列频率,牵一发动全身。但是我们从实践的角度出发,仅就iv中的f做出调整,而iv中的fm和lrv都不改变,即仍然使用首次分割时的统计量,在实践中,这样做一方面能够取得较好分割准确率,另一方面可以降低复杂度;调整过程变得相当简单和直接,例如,设仅存在2个字符序列abc和bbc,各出现1次,因此,初始记录为:a(1),b(3),c(2),ab(1),bb(1),bc(2),abc(1),bbc(1);括号中的数字为出现频率,该量即iv中的f;经过选择过程后,abc和bbc分别被分割为ab_c和bb_c,于是,ab的子序列a和b,以及bb的子序列所含的2个b,出现频率都被视为在初始记录中被高估,因此,调整过程对初始记录进行调整:a(1-1=0),b(3-1-2=0),c(2),ab(1),bb(1),bc(1),abc(1),bbc(1)。括号中的运算表示调整操作,运算结果为调整后该字符序列的出现频率。调整后的频率作为后续处理中估值过程的计算依据,用以计算字符序列的个体良度值,即iv,同时由于cv中包含了iv,而cv中的lrv不变,所以cv也将部分重新计算。

通过实验来评估esa的效果

对esa进行充分的实验,以评估esa的分词能力;实验主要采用的语料为sighanbakeoff-2数据集,之所以采用该数据集,存在三方面的考虑:

(1)该数据集为计算语言协会(acl)官方分词评估语料,语料的质量和规模适于我们对分词能力的测试。该数据集包括北京大学(pku)、微软亚洲研究院(msr)、香港城市大学(cityu)、台湾地区科学院(as)共4个不同组织所提供的训练及测试语料,包含繁体和简体的语料各2组,词汇的人工分割标准各有不同,内容取材各不相同,使用该数据集进行全面测试有助于认识esa分词的实际效果及效率。

(2)acl已将该数据集公开,任何个人或组织都可以直接从网络上下载使用,但只能用于研究而非商业用途。因为该数据集易于获取,所以使用该数据集有助于分词领域研究者之间进行交流,使不同的分词方法间易于相互比较。

(3)该数据集提供了进行测试分词方法的所有材料,包括4组训练及测试语料,即8个标注语料和4个未标注语料,并且包含评估使用的脚本文件。采用该数据集进行测试非常方便,它既有标准语料,又有标准评估脚本。

采用4种不同设置对esa进行测试:

(1)不利用标点和其它编码信息,最大输入字符序列长度限定为30。在该设置下,esa不区分不同类型的字符,即不区分标点、数字、非中文字符和中文字符,采用相同的算法一并处理,预处理过程仅负责输入序列的分割,以保证每次处理的序列长度不超过30个字符。该设置下的实验结果可以看作基线(baseline)结果。

(2)不利用标点和其它编码信息,最大输入字符序列长度限定改为10。与基线设置相比,唯一不同是每次处理的序列的最大长度缩小到10个字符,通过这一设置下的实验结果,可以表明限定输入序列长度对esa的分词效果有负面影响。

(3)标点被用来分割输入字符序列,但不使用其它编码信息,最大输入字符序列长度限定为30。与基线设置相比,该设置唯一不同在于使用了标点信息,我们可以看到当使用标点信息后,esa的分词效果有明显提高,从侧面表明了分词方法利用标点信息来提高分词效果的可能性。

(4)标点被用来分割输入字符序列,同时利用编码信息区别处理非中文字符,最大输入字符序列长度限定为30。我们的处理策略非常简单,将非中文字符抽取出来,不进行分割,最后插入到分割后的文本中。与仅用标点的设置相比,我们考虑了更多的编码信息,esa的分词效果进一步提高,从侧面表明了分词方法区别处理不同类型字符可以提高效果的可能性。

表1为本发明所提供的语料规模表,如表1所示,bakeoff-2数据集中的语料共有4组,来自不同的组织,每一组都由训练语料和测试语料组成,其中训练语料规模较大,并且已经标注,而测试语料规模较小,并且存在标注和无标注2个版本;在对esa的测试中使用所有4组语料进行测试,因为对于esa这样的无监督分词方法,并不需要训练集,而是直接对未分割的文本进行分割,所以原本用来训练分词模型用的训练语料也被我们视为测试语料使用。在测试中,esa忽略语料中的词间分隔符,即空格,将空格之外的字符视为连续的字符序列。

表1

对于基于机器学习的分词方法,语料的规模与学习的效果呈正相关,所以不论是否为监督方法,语料规模对方法的表现都很重要。对于语料规模,往往以字符量进行衡量,然而基于esa方法特点给出对语料规模的测量;如表1所示,n1表示所有被统计的字符序列出现次数的总和,n2表示所有被统计的字符序列的数量,我们用下列公式说明n1和n2的关系:

上述公式中,f表示某个字符序列的出现频率,n2实际也是esa生成的trie结构中的节点数。值得注意的是,在不同的设置下,n1和n2会发生变化;

实验过程为:

(1)使用esa原型程序对目标语料进行分割,分割过程中,忽略语料中的空格,最后生成分割后的文本文件,词间由空格分隔。

(2)运行bakeoff-2附带的评估脚本,对自动分割结果的文本进行评估,评估过程中,脚本将原带有空格的语料视为正确结果,据此判断esa分割结果的正确性。

用上述脚本进行评估后,将会生成承载评估结论的文本文件,该文件的尾部是评估的综合性结论,该结论由9项组成:

(1)总插入错误(totalinsertions)。该项表示插入多余分隔符的数量,可以理解为把真词错误地分割开。例如,设ab为真词,与之对应的正确分割为ab,而a_b中的b被视为1次插入错误。

(2)总删除错误(totaldeletions)。该项表示缺少分隔符的数量,可以理解为没有把真词从字符序列中分割出来。例如,设a和b都是真词,与之对应的正确分割为a_b,而ab中对应b的位置没有字符,被视为1次删除错误。

(3)总替换错误(totalsubstitutions)。例如,设ab为真词,与之对应的正确分割为ab,而a_b相当于把ab的位置替换为a,被视为1次替换错误;设a和b都是真词,与之对应的正确分割为a_b,而错分为ab后,ab对应真词a的位置,所以被视为1次替换错误。

总错误(totalnchange)。该项是前3项的和。

总真词数(totaltruewordcount)。该项是人工结果中词的数量。

总测试词数(totaltestwordcount)。该项是测试结果中词的数量。

总真词召回率(totaltruewordsrecall)。该项为:

总测试词准确率(totaltestwordsprecision)。该项为:

(9)f值(fmeasure)。该项为:

实验结果

表2为本发明所提供的表1中设置1的结果表,如表2所示,不考虑标点和其它编码信息,字符序列最大长度30。

表2

表3为本发明所提供的表1中设置2的结果表,如表3所示,不考虑标点和其它编码信息,字符序列最大长度10。

表3

表4为本发明所提供的表1中设置3的结果表,如表4所示,仅考虑标点,字符序列最大长度30。

表4

表5为本发明所提供的表1中设置4的结果表,如表5所示,考虑标点及其它编码信息,字符序列最大长度30。

在上面列出的结果中,几乎所有的f值都能在少量迭代后迅速收敛,而例外发生在lrv指数取值极大偏离最佳取值时。这说明如果能够赋予lrv指数最佳值,可以使分割结果迅速收敛,并且能够收敛于最佳f值。

从以下2方面对实验结果进行分析:

1.迭代次数与lrv指数取值对分割结果的影响

2.不同语料和不同设置对分割结果的影响

迭代次数与lrv指数差异:迭代次数增加使分割力度减弱,即更保守;lrv指数增加使分割力度加强,即更激进。

对esa分割成绩产生影响的语料差异体现在3方面:

(1)语料规模。即语料的尺寸,一般以含字符数量进行衡量。通常情况下,无论对于监督学习还是无监督学习,语料的规模与模型参数估计的准确性成正相关,因为语料规模较大时可以更加准确的体现语言特征的概率分布,可以缓解稀疏(sparseness)问题。

(2)字符成分。即不同类型字符的含量,字符类型指标点、数字、字母或汉字等。在不考虑利用编码信息时,区分不同类别的字符是非常困难的,但如果不区别处理不同类型字符,分割效果会受到负面影响,因为不同类型的字符服从不同的概率分布,符合某一类型字符概率分布特点的模型及相应参数,并不一定适用于其它类型字符。

(3)黄金标准。即手工分割标准。对自动分割结果进行评估,需要手工分割结果作为对照,不同的手工分割标准必然导致评估结论的差异。

对esa分割成绩产生影响的设置差异体现在2方面:

(1)最大输入字符序列长度。

a)从原理上看,预处理过程中限定切分输入字符序列的算法为lrv,而esa的主切分算法为cv,单独使用lrv算法进行切分的效果不及使用iv和lrv的联合算法cv,所以,提高最大输入字符序列长度,即将字符序列的切分更大程度的交予cv算法。更重要的是,esa在限定长度的字符序列内采用全局最大化测量,即限定长度阻碍了全局最大化。

b)从实验来看,对相同语料采用不同的输入字符长度限定时,分割效果具有明显差异,该限定实际上对分割成绩产生负面影响,这与限定词长不同,同时esa并不利用限定最大词长度提高分割成绩。

(2)编码信息的使用。设置在编码信息的使用上分为3档:a)不使用;b)仅使用标点;c)使用标点及其它编码信息。

在对语料差异的分析中,我们提到字符成分对分割成绩的影响,对编码信息的利用实际上便是一种对不同字符成分的处理策略,所以强化使用编码信息实际上确实提高分割成绩。但是我们仍然认为,在研究完全无监督分词方法的过程中应该尽量避免使用编码信息。

显然,提高最大输入字符序列长度不可能无限提高分割成绩,当进一步提高最大输入字符序列长度,分割成绩逐渐停止提高。另外,最大输入字符序列长度与计算复杂度成正相关,无限制提高会降低esa方法的实用性。

与现有技术相比,本发明具有以下显著优点和有益效果:

1.无监督方法通常依靠最大化策略,或设定阈值,或两者皆有。依赖于最大化策略的方法易于适应不同的上下文环境,因为不需要太多的手工调整;相对最大化策略,依赖阈值的方法在一些特定的情况下可以获得更高的准确率。

2.esa整体上采用自我修正的机制,通过迭代提高分割的准确度,换言之,esa整体上是一种迭代算法,我们已经通过证明在理论上说明了该算法的收敛性,并且通过试验表明该算法的收敛速度快。通过对实验数据的分析,我们找到了估计esa算法模型中唯一参数的便捷方法,该方法可以由程序自动完成,使中文文本无监督分词的人工干涉程度降低到空前水平。

3.无监督分词方法的最大优势在于我们不需要人工分割的语料作为训练集,当然更不需要人工编纂的词典。监督方法一般需要规模远大于测试集的训练集对学习模型进行训练,同时测试集和训练集被假定遵照同一分割标准进行分割,如果训练集较小,或者训练集与测试集分属不同领域及分割标准,监督方法的表现将不会理想。相比之下,对于无监督分词方法,特别是对于我们所提出的方法,并不存在训练集和测试集的区别,或者说训练集和测试集可以看做一体,因此当给定一个没有经人工分割的语料时,该类方法给人的感觉是对未标注语料直接进行分割,不需要特别训练,而无监督方法实质上将无标注语料视为训练集进行学习,之后又将该语料视为测试集进行分割。

4.当面对较为陌生的语言时,我们缺乏足够的特定于这些语言的语言学知识,我们很难创建完善的词典,或提供足量的标注语料,监督方法很难应对,而无监督方法能够适应这种情况。

5.我们在试验中,采用了计算语言协会(acl)的sighanbakeoff分词评测语料,对esa进行了全面的评估,测试结果表明了:esa在中文语料上,可以取得比其他无监督分词方法更高的准确率;esa可以经5次左右迭代后收敛;在全局最优的情况下,实际的计算时间复杂度为o(n2),n为最大输入字符序列长度,在局部最优的情况下,实际的计算时间复杂度为o(n),以字符计,n为语料长度

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1