NLP中文分词算法与技术认识探讨01目录什么是中文分词为什么要中文分词中文分词的具体实现总结02040305中文分词的主要问题Part1什么是中文分词概念自然语言处理(NLP,NaturalLanguageProcessing)是用机器处理人类语言(有别于人工语言,如程序设计语言)的理论和技术。自然语言处理是人工智能的一个重要分支。中文信息处理是指自然语言处理的分支,是指用计算机对中文进行处理。和大部分西方语言不同,书面汉语的词语之间没有明显的空格标记,句子是以字串的形式出现。因此对中文进行处理的第一步就是进行自动分词,即将字串转变成词串(计算机在词与词之间加上空格或其他边界标记),这就是中文分词。中文分词是中文自然语言处理的一项基础性工作,也是中文信息处理的一个重要问题。人工智能自然语言处理中文信息处理中文分词图1NLP几个相关概念关系示意图例子•Iamamemberof519labinJiangsuNormalUniversity.•2018年3月13日上午在人民大会堂举行第十三届全国人大一次会议的第四次全体会议。2018/年/3/月/13/日/上午/在/人民大会堂/举行/第十三届/全国人大一次会议/的/第四次全体会议。Part2为什么要中文分词大词是最小的能够独立活动的有意义的语言成分,汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。随着搜索引擎技术的广泛应用,全文检索技术和中文分词技术也逐步受到广泛的研究和应用,多年来,国内外众多学者在这一领域做了大量的研究工作,取得了一定的成果,但从实用化的角度来看,仍不尽如人意,到目前为止,还没有完全成熟实用的中文分词系统面世。小研究意义中文分词是计算机处理汉字的首要也是基础性工作,只有不断提高中文分词算法的效率才能跟上信息爆炸增长的现状,使我国信息技术相关方面在21世纪能够稳步发展。Part3中文分词的主要问题难点二难点三难点一未登录词问题分词规范问题歧义切分问题“词”这个概念一直是汉语语言学界纠缠不清而又挥之不去的问题。“词是什么”(词的抽象定义)及“什么是词”(词的具体界定),这两个基本问题有点飘忽不定,迄今拿不出一个公认的、具有权威性的词表来。主要困难出自两个方面:一方面是单字词与词素之间的划界,另一方面是词与短语(词组)的划界。此外,对于汉语“词”的认识,普通说话人的语感与语言学家的标准也有较大的差异。有关专家的调查表明,在母语为汉语的被试者之间,对汉语文本中出现的词语的认同率只有大约70%,从计算的严格意义上说,自动分词是一个没有明确定义的问题。建立公平公开的自动分词评测标准一直在路上。分词规范问题歧义字段在汉语文本中普遍存在,因此,切分歧义是中文分词研究中一个不可避免的“拦路虎”。(交集型切分歧义)汉字串AJB如果满足AJ、JB同时为词(A、J、B分别为汉字串),则称作交集型切分歧义。此时汉字串J称作交集串。如“结合成”、“大学生”、“师大校园生活”、“部分居民生活水平”等等。(组合型切分歧义)汉字串AB如果满足A、B、AB同时为词,则称作多义组合型切分歧义。“起身”:(a)他站│起│身│来。(b)他明天│起身│去北京。“将来”:(a)她明天│将│来│这里作报告。(b)她│将来│一定能干成大事。歧义切分问题未登录词又称为生词(unknownword),可以有两种解释:一是指已有的词表中没有收录的词;二是指已有的训练语料中未曾出现过的词。在第二种含义下,未登录词又称为集外词(outofvocabulary,OOV),即训练集以外的词。通常情况下将OOV与未登录词看作一回事。对于大规模真实文本来说,未登录词对于分词精度的影响远远超过了歧义切分。未登录词可以粗略划分为如下图所示的几种类型:未登录词问题01020304新出现的普通词汇如博客、超女、恶搞、房奴、给力、奥特等,尤其在网络用语中这种词汇层出不穷。专有名词指人名、地名和组织机构名这三类实体名称,再加上时间和数字表达。专业名词和研究领域名称特定领域的专业名词和新出现的研究领域名称。其他专用名词如新出现的产品名,电影、书籍等文艺作品的名称等。图2未登录词分类情况Part4中文分词的具体实现中文分词的基本原则1.语义上无法由组合成分直接相加而得到的字串应该合并为一个分词单位。例如:不管三七二十一(成语),或多或少(副词片语),十三点(定量结构),六月(定名结构),谈谈(重叠结构,表示尝试),辛辛苦苦(重叠结构,加强程度),进出口(合并结构)2.语类无法由组合成分直接得到的字串应该合并为一个分词单位。(1)字串的语法功能不符合组合规律,如:好吃,好喝,好听,好看等(2)字串的内部结构不符合语法规律,如:游水等中文分词的辅助原则1.有明显分隔符标记的应该切分之。2.附着性语素和前后词合并为一个分词单位。3.使用频率高或共现率高的字串尽量合并为一个分词单位。4.双音节加单音节的偏正式名词尽量合并为一个分词单位。5.双音节结构的偏正式动词应尽量合并为一个分词单位。6.内部结构复杂、合并起来过于冗长的词尽量切分。基于词典的分词法基于统计的分词法基于规则的分词法中文分词方法■基于词典的分词法按照一定策略将待分析的汉字串与一个大机器词典中的词条进行匹配,若在词典中找到该字符串,则匹配成功。▶最大匹配法(MaximumMatching,MM)——有词典切分、机械切分正向最大匹配算法(ForwardMM,FMM)逆向最大匹配算法(BackwardMM,BMM)双向最大匹配算法(Bi-directionalMM)假设句子:,某一词:,m为词典中最长词的字数。FMM算法过程:(1)令令i=0,当前指针pi指向输入字串的初始位置,执行下面的操作:(2)计算当前指针pi到字串末端的字数(即未被切分字串的长度)n,如果n=1,转(4),结束算法。否则,令m=词典中最长单词的字数,如果nm,令令m=n(3)从当前pi起取m个汉字作为词wi,判断:(a)如果wi确实是词典中的词,则在wi后添加一个切分标志,转(c);(b)如果wi不是词典中的词且wi的长度大于1,将wi从右端去掉一个字,转(a)步;否则(wi的长度等于1),则在wi后添加一个切分标志,将wi作为单字词添加到词典中,执行(c)步;(c)根据wi的长度修改指针pi的位置,如果pi指向字串末端,转(4),否则,i=i+1,返回(2);(4)输出切分结果,结束分词程序。例如:现在,我们要对“南京市长江大桥”这个句子进行分词,假设m=5,根据正向最大匹配的原则:①先从句子中拿出前5个字符“南京市长江”,把这5个字符到词典中匹配,发现没有这个词,那就缩短取字个数,取前四个“南京市长”,发现词库有这个词,就把该词切下来;②对剩余三个字“江大桥”再次进行正向最大匹配,会切成“江”、“大桥”;③整个句子切分完成为:南京市长、江、大桥;思考:同样的例子如果采用逆向最大匹配算法呢?90%9%1%句子比例情况一情况二情况三图3几种最大匹配算法在中文分词中的作用占比据SunM.S.和BenjaminK.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正确,只有大概9.0%的句子两种切分方法得到的结果不一样,但其中必有一个是正确的(歧义检测成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分虽重合却是错的,或者正向最大匹配法和逆向最大匹配法切分不同但两个都不对(歧义检测失败)。这正是双向最大匹配法在实用中文信息处理系统中得以广泛使用的原因所在。优点:·程序简单易行,开发周期短;·仅需要很少的语言资源(词表),不需要任何词法、句法、语义资源;缺点:·歧义消解的能力差;·切分正确率不高,一般在95%左右。▶最少分词法(最短路径法)基本思想:设待切分字串S=c1c2…cn,其中ci(i=1,2,…,n)为单个的字,n为串的长度,n=1。建立一个节点数为n+1的切分有向无环图G,各节点编号依次为V0,V1,V2,…,Vn。(3)重复步骤(2),直到没有新路径(词序列)产生。(4)从产生的所有路径中,选择路径最短的(词数最少的)作为最终分词结果。算法过程:(1)相邻节点vk-1,vk之间建立有向边vk-1,vk,边对应的词默认为ck(k=1,2,…,n)(2)如果w=cici+1…cj(0ij=n)是一个词,则节点vi-1,vj之间建立有向边vi-1,vj,边对应的词为w优点:•切分原则符合汉语自身规律;•需要的语言资源(词表)也不多。缺点:•对许多歧义字段难以区分,最短路径有多条时,选择最终的输出结果缺乏应有的标准;•字串长度较大和选取的最短路径数增大时,长度相同的路径数急剧增加,选择最终正确的结果困难越来越越大。■基于统计的分词法随着大规模语料库的建立,统计机器学习方法的研究和发展,基于统计的中文分词方法渐渐成为了主流方法。把每个词看做是由词的最小单位各个字总成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。因此我们就可以利用字与字相邻出现的频率来反应成词的可靠度,统计语料中相邻共现的各个字的组合的频度,当组合频度高于某一个临界值时,我们便可认为此字组可能会构成一个词语。▶N元文法模型(N-gram)模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。那么,对于一个句子T,我们怎么算它出现的概率呢?假设该句子T是由词序列W1,W2,W3,…Wn组成的,那么P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)但是这种方法存在两个致命的缺陷:一个缺陷是参数空间过大,不可能实用化;另外一个缺陷是数据稀疏严重。为了解决这个问题,我们引入了马尔科夫假设:一个词的出现仅仅依赖于它前面出现的有限的一个或者几个词。如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为bigram。即P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)≈P(W1)P(W2|W1)P(W3|W2)…P(Wn|Wn-1)如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为trigram。其他分词方法▶由字构词(基于字标注)的分词方法▶生成式方法与判别式方法的结合▶全切分方法▶串频统计和词形匹配相结合的分词方法▶规则方法与统计方法相结合▶多重扫描法Part5总结分词技术水平自开展中文分词方法研究以来,人们提出的各类方法不下几十种甚至上百种,不同方法的性能各不相同,尤其在不同领域、不同主题和不同类型的汉语文本上,性能表现出明显的差异。总之,随着自然语言处理技术整体水平的提高,尤其近几年来新的机器学习方法和大规模计算技术在汉语分词中的应用,分词系统的性能一直在不断提升。特别是在一些通用的书面文本上,如新闻语料,领域内测试(训练语料和测试语料来自同一个领域)的性能已经达到相当高的水平。但是,跨领域测试的性能仍然很不理想。如何提升汉语自动分词系统的跨领域性能仍然是目前面临的一个难题。另外,随着互联网和移动通信技术的发展,越来越多的非规范文本大量涌现,如微博、博客、手机短信等。研究人员已经关注到这些问题,并开始研究。ATANKHS