开始啦,我的第一篇关于他妈的学习的日志,现在的研究方向是自然语言处理,说到自然语言处理,对于中文首当其冲的就是分词。
和西方语言不同,中文句子中不像英语,每个单词间有空格隔开,而是全部连在一起,词间没有明显的界限。这就为我们的翻译、检索等等更高级的信息处理带来了不小的麻烦,怎样将一句话中的关键词提取出来,便成为了中文信息处理首先要解决的问题,这就是我们所谓的分词。
现有的分词算法小脑袋百度360搜狗竞价软件小编认为可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
我们就先说说基于字符串匹配的分词方法(也成为机械分词,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功)吧,目前机械分词有这样几种方法:
1)正向最大匹配法(由左到右的方向)
2)逆向最大匹配法(由右到左的方向)
3)最少切分(使每一句中切出的词数最小)
4)还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合
起来构成双向匹配法。
下面就是小脑袋百度360搜狗竞价软件小编要说的第一种机械分词的方法:正向最大匹配。
那么我们先来看个例子:
“我现在非常开心”
对于这句话,正向最大匹配的原则是什么呢?“正向”就指我们从左至右搜索,“最大”就是我们每次都取最大词长进行匹配(由于中文有单字成词的特点)。
首先,假如词典中的最长词长度为4,我们从第一个字开始向右取4个字:“我现在非”,然后去与词典中的词一一进行匹配,显然词典中没有这么个词,我们就将 最后一个字去掉变成:“我现在”,然后再到词典中进行匹配。一直到“我”匹配成功,我们就将我与整个句子切分开来:“我/现在非”;
然后呢?“我”已经作为一个词切分出来了,我们便从下一个字继续取4个字(“现在非常”)作
为一个词去匹配,继而切出“现在/非常”。之后依次类推。。。。
最后就切成了:我/现在/非常/开心
简单吧?这样大家也容易明白逆向最大匹配了吧?我们从句尾也就是由右至左进行搜索。步骤和上述的正向最大匹配是一样的,只是我们从右边往左去取词:(假如我们依旧选择4为最大词长)
第一次选择的就是“非常开心”,词典中没有这个词,便删去第一个字变为:“常开心”,直到分成:“非常/开心”。
然后呢?继续向左取:“现在非常”。。。 之后的与上述一样,最终便分为:我/现在/非常/开心
然后呢?两种方法一样啊?分出来的结果也一样啊?其实不然,机械分词法德局限也就在此,而这个问题也是基于词典方法的分词最难攻克的难题:歧义和未登录词。
来自小脑袋百度360搜狗竞价软件试用站: www.yijianjingjia.com转载请保留