发明内容
本发明实施例提出一种火星文识别方法和系统,能够将网络原始文本中的火星文识别出来。
本发明的技术方案是这样实现的:
一种火星文识别方法,包括:
采用火星文文本在原始语料中进行搜索,得到火星文训练文本集合;
采用所述火星文训练文本集合建立火星文语言模型,所述火星文语言模型的内容如下:
Pmars(Wi|Wi-n+1...Wi-1)等于词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数与词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数的商;其中,n为预先设定的整数,Pmars(Wi|Wi-n+1...Wi-1)表示在词语序列Wi-n+1...Wi-1出现的条件下出现词语Wi的条件概率;
利用所述火星文语言模型计算语句S是火星文的概率,当所述概率大于预先设定的阈值时,识别出该语句S是火星文。
一种火星文识别系统,包括:训练文本集合搜索装置、火星文语言建模装置和火星文识别器;其中,
所述训练文本集合搜索装置,用于采用火星文文本在原始语料中进行搜索,得到火星文训练文本集合;
所述火星文语言建模装置,用于采用所述火星文训练文本集合建立火星文语言模型,所述火星文语言模型的内容如下:
Pmars(Wi|Wi-n+1...Wi-1)等于词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数与词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数的商;其中,n为预先设定的整数,Pmars(Wi|Wi-n+1...Wi-1)表示在词语序列Wi-n+1...Wi-1出现的条件下出现词语Wi的条件概率;
所述火星文识别器,用于利用所述火星文语言模型计算语句S是火星文的概率,当所述概率大于预先设定的阈值时,识别出该语句S是火星文。
可见,本发明提出的火星文识别方法和系统,能够自动将网络原始文本中的火星文识别出来。
具体实施方式
本发明提出一种火星文识别方法,用于识别并过滤网络文本中的火星文,提高训练预料的质量,从而提高语言模型的质量,并最终提高输入法软件的智能性。
如图2为本发明提出的火星文识别方法流程图,包括:
步骤201:采用已知的火星文文本在原始语料中进行搜索,得到火星文训练文本集合;
步骤202:采用所述火星文训练文本集合建立火星文语言模型,所述火星文语言模型的内容如下:
Pmars(Wi|Wi-n+1...Wi-1)等于词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数与词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数的商;
即:
其中,n为预先设定的整数,Pmars(Wi|Wi-n+1...Wi-1)表示在词语序列Wi-n+1...Wi-1出现的条件下出现词语Wi的条件概率;Cmars(Wi-n+1...Wi-1Wi)表示词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数,Cmars(Wi-n+1...Wi-1)表示词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数;
步骤203:利用所述火星文语言模型计算语句S是火星文的概率,当所述概率大于预先设定的阈值时,识别出该语句S是火星文。
以下举具体的实施例详细介绍:
本实施例基于统计原理,对火星文的识别包括火星文识别器的训练过程和应用过程。如图3为本发明实施例的整体流程图,如图3所示,首先,我们有一些已经看到的火星文的文本样例,将这些火星文文本放到原始语料中进行搜索,返回更多的火星文文本,这些火星文文本组成了供火星文识别器使用的火星文训练文本集合;接下来,火星文训练文本集合经过分词处理、语言建模等过程,建立火星文语言模型。火星文语言模型刻画了火星文文本的概率特征。它被进一步融合到火星文识别器中;最后,利用火星文识别器,对原始语料进行过滤,将原始语料分解为训练语料和火星文语料。其中,训练语料被用来训练输入法的核心引擎;火星文语料与之前搜集的火星文训练文本集合合并,组成新的火星文训练文本集合,重新对火星文语言模型进行训练,并进一步构造更加准确的火星文识别器。
以下对本实施例分阶段进行详细介绍。
第一阶段,搜索火星文语料:
首先,必须有大规模的网络文本,并在这些文本中发现一些火星文文本,如:“言兑言舌”等。将这些火星文作为关键字,对原始语料进行检索,会返回一些包含这些火星文文本的火星文语句,如:“言兑言舌走召弓虽”。在这些语句中,包含了除关键词以外的其它火星文文本,如“走召弓虽”等等。原始语料一般保存在LINUX环境下;在LINUX环境下,可以采用grep命令进行检索,即:在grep命令中包含关键字,则系统会返回包含该关键字的火星文语句。用这些新的火星文作为关键字,继续在原始语料中检索,这样,就可以逐渐积累起来一些火星文的集合,将这些检索到的火星文存放到一个文本中,构成火星文训练文本集合。这些集合经过分词处理后,可以用来进行火星文语言建模。
第二阶段,火星文语言建模
火星文语言建模是指采用火星文训练文本集合训练得到火星文语言模型,火星文语言模型是对火星文文本的概率描述。火星文语言建模可以采用Ngram模型技术,对条件概率的估值方法采用最大似然估计,公式如下:
其中,n为预先设定的整数,Pmars(Wi|Wi-n+1...Wi-1)表示在词语序列Wi-n+1...Wi-1出现的条件下出现词语Wi的条件概率;Cmars(Wi-n+1...Wi-1Wi)表示词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数,Cmars(Wi-n+1...Wi-1)表示词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数。
第三阶段,采用火星文识别器识别火星文:
火星文识别器是利用火星文语言模型对网络文本中的火星文进行识别、过滤的一种装置,其基本原理是:对一句网络文本,用火星文语言模型计算该文本是火星文的概率,当概率大于预先设定的阈值时,认为该文本是火星文,否则认为其不是火星文。
按照一般的理解,语句的火星文概率计算公式如下:
其中,Pmars(S)为句子S是火星文的概率,句子S的具体内容是W1W2...Wm,W1至Wm分别是句子S中的第1至第m个词语。
但是,在实际使用过程中,如果直接采用上述计算公式会存在问题:语句的火星文概率与句子的长度m相关,长度越长,相乘的条件概率Pmars(Wi|Wi-n+1...Wi-1)的个数就越多,而Pmars(Wi|Wi-n+1...Wi-1)的值通常小于1.0,这样计算出来的Pmars(S)的值就越小。如果一句火星文的长度比较长,它计算出来的火星文概率就会比较小,很有可能会因小于预先设定的阈值,而没有被识别出来。为了解决上述问题,本实施例采用Pmars(S)的几何平均值对火星文概率进行修正,公式如下:
其中,Fmars(S)为经修正后的句子S是火星文的概率,句子S的具体内容是W1W2...Wm,W1至Wm分别是句子S中的第1至第m个词语。
上述式子将候选语句的火星文概率对其句长m做概率的几何平均,消除了m对整体概率乘积的影响。当Fmars(S)的值大于预先设定的阈值时,则认为S语句是火星文。
上述方法是比较精确的方法,在实际使用过程中得到的识别准确率也是比较高的。然而,这种方法的算法复杂性比较高:在对于某个候选语句S进行计算时,需要计算每两个词语之间的bigram概率乘积。通常,我们面临的网络文本数量非常巨大,通常是T级别的(1T=1000G),程序的处理速度非常重要。为提高火星文识别器的识别速度,本实施例进一步提出了一种简化的方法,即不去计算整个语句是火星文的概率,而是在候选句子S中随机的选取K个短语(K<m,m表示句长),分别计算这K个短语是火星文短语的概率,并据此判断句子S是否是火星文,公式如下:
为进一步提高效率,在上述公式中,可以将每个短语定义为ngram短语
其中,
至
分别是短语S′
k中的第1至第h个词语,k=1、2...或K,这样可以直接从火星文语言模型中查找得到S′
k的概率P
mars(S′
k)。
当F′mars(S)的值大于预先设定的阈值时,则认为S语句是火星文;否则,认为其为正常汉语文本。
当识别出句子S是火星文后,可以将其过滤。识别出来的火星文文本还可以补充到最初的火星文训练文本集合中,来提高火星文识别器的识别精度。
本发明还提出一种火星文识别系统,如图4为本发明提出的火星文识别系统结构示意图,该系统包括:训练文本集合搜索装置401、火星文语言建模装置402和火星文识别器403;其中,
所述训练文本集合搜索装置401,用于采用已知的火星文文本在原始语料中进行搜索,得到火星文训练文本集合;
所述火星文语言建模装置402,用于采用所述火星文训练文本集合建立火星文语言模型,所述火星文语言模型的内容如下:
其中,n为预先设定的整数,Pmars(Wi|Wi-n+1...Wi-1)表示在词语序列Wi-n+1...Wi-1出现的条件下出现词语Wi的条件概率;Cmars(Wi-n+1...Wi-1Wi)表示词语序列Wi-n+1...Wi-1Wi在火星文训练文本集合中出现的次数,Cmars(Wi-n+1...Wi-1)表示词语序列Wi-n+1...Wi-1在火星文训练文本集合中出现的次数;
所述火星文识别器403,用于利用所述火星文语言模型计算语句S是火星文的概率,当所述概率大于预先设定的阈值时,识别出该语句S是火星文。
火星文识别器403计算句子S是火星文的概率的方式可以为:
采用如下式子以及所述火星文语言模型内容中的式子进行计算:
其中,Fmars(S)为句子S是火星文的概率,句子S的具体内容是W1W2...Wm,W1至Wm分别是句子S中的第1至第m个词语。
或者,火星文识别器403计算句子S是火星文的概率的方式还可以为:
采用如下式子以及所述火星文语言模型内容中的式子进行计算:
其中,F′
mars(S)为句子S是火星文的概率,S′
1至S′
K分别为从句子S中选取的第1至第K个短语,每个短语包括h个词语,其中,
S′
k的具体内容是
至
分别是短语S′
k中的第1至第h个词语,k=1、2...或K;
n为预先设定的整数。
火星文识别器403还可以用于,当识别出语句S是火星文时,过滤所述语句S,并将语句S加入所述火星文训练文本集合中。
可见,本发明提出的火星文识别方法和系统,能够提高输入法引擎所需的训练语料的质量,进而提高输入法引擎的准确率,提高输入法软件的质量。本发明还可以应用到语音识别、手写体识别、光学字符识别等相关领域。在本发明的基础上可以建立基于语言模型的信息检索系统,提高信息检索系统的性能(准确率、召回率)等。
综上所述,以上仅为对本发明精神的展示,而非用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。