1.1 中文分词的概念
中文分词指的是将已有的汉字序列划分为单个的汉语词汇,这些词汇连续在一起还能成为原来的句子。英语语言中的词汇是不需要划分的,由于英语语言的特点,英文语句已经通过空格划分好了各个单词。例如英文:We are the students of Nanjing University of Science and Technology.中文:我们是南京理工大学的学生。英文的分词是直接明白的。但是中文的就要人工切分成:我们/是/南京理工大学/的/学生。中文词汇没有自然形成的分隔符,处理起来就麻烦的多。
中文的词和短语的界定比较不容易识别,中文中的词大部分是两个字或者多个字的,导致分词更加的困难。例如“我们要批评不讲卫生者”,我们很难去界定“不讲卫生者”是一个词还是一个短语。中文分词的方法也有助于英文文本的处理,手写输入的时候可以帮助判别单词的边界。中文分词需要以文本挖掘为基础,对于输入的中文段落,通过计算机识别各个词汇的含义来达到人工智能的效果。中文的处理上还要考虑到一些歧义的问题,例如“信息产业和服务业”、“中国每年从日本进口的和服”。虽然这两句话都有“和”和“服”这两个字,但是显然第一句中的“和”和“服”是分开的,而第二句中的“和”和“服”应该是组成的一个名词“和服”。这种歧义是机器难以识别的,所以中文分词的难度还是很大的。中文分词是自然语言处理里面一个重要的方向。中文分词主要依靠智能计算技术,涉及到的学科有物理学、数学、计算机科学、电子机械、通信、生理学、生物信息学和心理学等等。主要就是要计算机可以对于接受到的中文做到理解和识别,达到人工智能的效果。
1.2 中文分词的应用
1.3 中文分词的研究现状
1.4 本文的主要工作
本文主要是使用当前最有效的自然语言处理的技术,机器学习的方法来进行中文分词。目前许多的分词算法都是基于规则的算法,分词的模型比较固定,效果不是很好,笔者设计合适的人工智能算法对于目前的分词效果进行进一步提高。使用机器学习的算法可以大幅提高准确度,同样是分词的效率可以提升到很高的水平,主要是:
(一)建立语言模型[2],语言模型的训练需要得到合适的训练集,进行有效的训练,使用合适的词图,采用快速的存储结构直接存储到内存中存储,建立合适的数据结构,使用比较快速的Map数据结构。由于笔者的个人电脑运算能力有限,只能使用二元词图实现语言模型的建模。二元词图的建立提升了分词的准确性。
(二)使用维特比算法找到最优的分词序列,维特比算法在根据语言模型的得到的二元词图通过动态规划的方法,得到概率乘积的最大序列,也就是最后得到分词的最佳序列,使用维特比解码是提高了分词的效率。源:自/751-·论,文'网·www.751com.cn/
在二者结合的情况下,使得分词系统既兼顾了效率,又兼顾了准确性。
2 中文分词的基本算法和语言模型
2.1 基于字符串匹配的分词算法
基于字符串匹配的分的算法又被称作机械分词算法[3],这是一种按照特定的策略对于已有的中文信息串与一个“足够大的”机器词典的词条做匹配,如果在词典中能够检索到某个中文串,则可以说匹配是成功的(识别到了某个词)。按照匹配的方向的差异,字符串匹配分词算法可以分为正向匹配算法和逆向匹配算法;按照不同的字符串长度设置优先级进行匹配的方法,可以分为最大匹配和最小匹配,也可以成为最长匹配和最短匹配;根据与词性标注的过程结合和不与词性标注的过程结合,又能将算法分为单纯分词算法和分词与标注相结合的一体化算法。常见的几种机械分词算法有:(1)正向最大匹配算法(从字符串的第一个字符到最后一个字符的方向);(2)逆向最大匹配算法(从字符串的最后一个字符到第一个字符的方向)(3)最少切分(使每个中文信息串中切出的词的数量是最少的)。