1.词是最小的能够独立活动的有意义的语言成分
- 将词确定下来是自然语言处理的第一步
- 才能像英文一样可以短语划分、概念抽取以及主题分析,以至自然语言理解,最终达到智能计算
- 词是以字为基本单位
- 语义需要词来划分
- 需要分词处理,将句子转化为词
- 这个切词的处理过程,就是中文分词
- 目标:通过计算机自动识别出句子的词,在词间加入边界标记符,分隔出各个词汇
- 影响分词效果的因素:语义,未登录词,分词粒度粗细等
- 方法:(1)规则分词:人工设立词库,按照一定方式匹配切分,实现简单高效,但对新词很难进 行处理;(2)统计分词:应对新词的出现等特殊场景,但太过于依赖语料的质量;(3)混合分词:实际中采用-规则+统计分词
2.规则分词
-
(1)正向最大匹配算法
**实例:**
S1=“计算语言学课程是三个课时” ,设定最大词长MaxLen = 5 ,S2= " "
字典中含有三个词:[计算语言学]、[课程]、[课时]
(1)S2="";S1不为空,从S1左边取出候选子串W=“计算语言学”;
(2)查词表,“计算语言学”在词表中,将W加入到S2中,S2=“计算语言学/ ”, 并将W从S1中去掉,此时S1=“课程是三个课时”;
(3)S1不为空,于是从S1左边取出候选子串W=“课程是三个”;
(4)查词表,W不在词表中,将W最右边一个字去掉,得到W=“课程是三”;
(5)查词表,W不在词表中,将W最右边一个字去掉,得到W=“课程是”;
(6)查词表,W不在词表中,将W最右边一个字去掉,得到W=“课程”
(7)查词表,W在词表中,将W加入到S2中,S2=“计算语言学/ 课程/ ”,并 将W从S1中去掉,此时S1=“是三个课时”;
(8)S1不为空,于是从S1左边取出候选子串W=“是三个课时”;
(9)查词表,W不在词表中,将W最右边一个字去掉,得到W=“是三个课”;
(10)查词表,W不在词表中,将W最右边一个字去掉,得到W=“是三个”;
(11)查词表,W不在词表中,将W最右边一个字去掉,得到W=“是三”
(12)查词表,W不在词表中,将W最右边一个字去掉,得到W=“是”,这时 W是单字,将W加入到S2中,S2=“计算语言学/ 课程/ 是/ ”,并将 W从S1中去掉,此时S1=“三个课时”;
(13)S1不为空,从S1左边取出候选子串W=“三个课时”;
(14)查词表,W不在词表中,将W最右边一个字去掉,得到W=“三个课”;
(15)查词表,W不在词表中,将W最右边一个字去掉,得到W=“三个”;
(16)查词表,W不在词表中,将W最右边一个字去掉,得到W=“三”,这时 W是单字,将W加入到S2中,S2=“计算语言学/ 课程/ 是/ 三/ ”,并 将W从S1中去掉,此时S1=“个课时”;
(17)S1不为空,从S1左边取出候选子串W=“个课时”;
(18)查词表,W不在词表中,将W最右边一个字去掉,得到W=“个课”;
(19)查词表,W不在词表中,将W最右边一个字去掉,得到W=“个”, 这时W是单字,将W加入到S2中,S2=“计算语言学/ 课程/ 是/ 三/ 个/ “,并将W从S1中去掉,此时S1=“课时”;
(20)S1不为空,从S1左边取出候选子串W=“课时”;
(21)查词表,W在词表中,将W加入到S2中,S2=“计算语言学/ 课程/ 是/ 三/ 个/ 课时/ “,并将W从S1中去掉,此时S1=””。
(22)S1为空,输出S2作为分词结果,分词过程结束。