一、中文分词原理的解说
1、基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
2、基于字符串匹配的分词方法
基于字符串匹配分词是与词库进行对比按照不同的扫描方式进行分词,扫描方式分为四种:
1)正向最大匹配法(由左到右的方向)
正向最大匹配算法:从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。但这里有一个问题:要做到最大匹配,并不是第一次匹配到就可以切分的。我们来举个例子:
待分词文本: content[]={"中","华","民","族","从","此","站","起","来","了","。"}
词表: dict[]={"中华", "中华民族" , "从此","站起来"}
(1) 从content[1]开始,当扫描到content[2]的时候,发现"中华"已经在词表dict[]中了。但还不能切分出来,因为我们不知道后面的词语能不能组成更长的词(最大匹配)。
(2) 继续扫描content[3],发现"中华民"并不是dict[]中的词。但是我们还不能确定是否前面找到的"中华"已经是最大的词了。因为"中华民"是dict[2]的前缀。
(3) 扫描content[4],发现"中华民族"是dict[]中的词。继续扫描下去:
(4) 当扫描content[5]的时候,发现"中华民族从"并不是词表中的词,也不是词的前缀。因此可以切分出前面最大的词——"中华民族"。
由此可见,最大匹配出的词必须保证下一个扫描不是词表中的词或词的前缀才可以结束。
2)逆向最大匹配法(由右到左的方向)
逆向最大匹配法原理和正向一样,只不过是从右到左
3)最少切分(使每一句中切出的词数最小)
4)双向最大匹配法(进行由左到右、由右到左两次扫描)
正向最大匹配法和逆向最大匹配法,都有其局限性,我举得例子是正向最大匹配法局限性的例子,逆向也同样存在(如:长春药店,逆向切分为“长/春药店”),因此有人又提出了双向最大匹配法,双向最大匹配法。即,两种算法都切一遍,然后根据大颗粒度词越多越好,非词典词、单字词和总词数越少越好的原则,选取其中一种分词结果输出。
非字典词:正向(1)>逆向(0)(越少越好)
单字字典词:正向(2)=逆向(2)(越少越好)
总词数:正向(6)>逆向(4)(越少越好)
因此最终输出为逆向结果。
5)为了提高分词精确度,又出现了标志和特征扫描。标志分词以标志作为为断点,可将原字符串分为较小的串再来进机械分词;特征分词将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
3、基于统计的分词方法
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
机械学习统计分词:在有大量已经分词的文本前提下,利用统计机器学习模型学习词语切分的规律,实现对未知文本的切分,也可以成为训练统计分词。
二、百度分词的难点:
1、歧义词语的识别
歧义是指同样的一句话,可能有两种或者更多的切分方法。主要的歧义有两种:交集型歧义和组合型歧义,例如:表面的,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面的”和“表面的”。这种称为交集型歧义(交叉歧义)。像这种交集型歧义十分常见,前面举的“和服”的例子,其实就是因为交集型歧义引起的错误。“化妆和服装”可以分成“化妆和服装”或者“化妆和服装”。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。
2、新词识别
命名实体(人名、地名)、新词,专业术语称为未登录词。也就是那些在分词词典中没有收录,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解。句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把“王军虎”做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项既不划算又巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能不能算词?
三、针对百度搜索引擎分词的注意事项。
1、在title标签中要注意下划线的使用。虽然在搜索词的匹配程度上要远远大于谷歌,但是由于百度分词是基于词典匹配和统计匹配的综合使用,不用分隔词,这样会造成很杂乱的分词。标题分隔符详见:http://blog.sina.com.cn/s/blog_c206a2c30101dm9t.html
3、百度搜索引擎在分词时也存在一个正向匹配和逆向匹配原则。比如单机游戏下载基地。百度进行分词时会形成单机,单机游戏,单机下载,游戏下载,下载基地等选择合适的关键词从做到右依次排列,重点做前面几个词。
4、 尽量去掉一些停止词,比如“的”,“啊”之类的,对内容没有任何影响,但出现频率很高,减少计算量。
5、 通过一些方式消除一些对页面主题没有什么贡献的内容,比如广告,固定目标的导航条,版权声明文字等。
6、考虑到用户体验和搜索引擎的搜索习惯,要进行一些去重处理,不要让同一篇文章链接到同一网站的不同界面或者链接到其他网站界面。
四、查看百度分词特征基本分为两种方法:
第一种方法:利用百度快照。
现在在百度里面搜索“大学生活动策划书”,然后多选择几个页面,不要直接点进去,而是点击相应的“百度快照”。里面会有不同颜色为底色标的关键词。这些就是百度正对该页面的一个分词情况。多看几个页面,把所有这些关键词都整理出来。
像“大学生活动策划书”大体可以分为:大学生、大学生活动、活动策划书、大学生活动策划书等。
第二种方法:利用百度搜索结果
用百度搜索某个关键词或者关键句子的时候,会列出很多待选结果出来。同时在这些结果列表中会以红色字体显示用户搜索词中出现的文字。
把这些红色字体的词语总结起来。最好能看前十页的搜索结果列表。然后再归纳一些这些词语。就不难看出百度是怎么对你搜索的词或句是怎么分词的了。
五、利用百度分词设置标题
1.关键词不是文章的标题,学会利用百度分词1.多渠道寻找关键词,对比找出质量高的关键词
2.学会熟练的使用工具,可以让你事半功倍 。
3.关键词分级优化,长短合理搭配。关键词的长短不同,难易程度不同,这就需要我们分级优化,核心词给予高权重,长尾词在网页中出现,具体的关键词分级优化,大家可以参考我的另一篇关于如何对关键词分级优化的博文,在这里就不细说了。
4.关键词不是文章的标题,学会利用百度分词。很多编辑写文章的时候,喜欢把关键词直接拿来当标题,一方面省心,另一方面觉得是绝对匹配,会有很好的排名。其实这是不正确的,确实完全匹配关键词的标题会给排名带来一定的好处,但是百度不可能让你完全一样的标题文章排名都在首页,这就需要我们合理的利用分词技术以及同义词重复,使标题不但完全匹配关键词,更能吸引用户点击。毕竟,如果只有排名而没有用户点击的话,也是没有用处的。
5.最好数据统计,善于分析数据 。