词语是自然语言处理中重要的知识载体和基本操作单元, 但是中文里词与词之间没有很明显的标记,它们都是连续的字符串,所以文本处理的第一步是怎样进行中文分词。分词是添加合适的显性的词语边界标志使得所形成的词串反映句子的本意的过程。分词主要有基于字符串匹配的方法、基于规则的方法和基于统计的方法,本文主要通过python实现基于字符串匹配的方法也称为机械分词中的两类方法:正向最大匹配算法和逆向最大匹配算法,有实验表明逆向最大匹配算法比正向最大匹配算法更有效。
基于字符串匹配的分词法是一种的机械分词方法,根据分词词典和一个基本的切分规则,最常用的规则为最长匹配原则。最长匹配方法的思想简单:一个正确的分词结果应该由合法的词组成,而这些词是根据所选词典中的词比较分出。按照所扫描方向的不同,分词的匹配方法分为正向匹配和逆向匹配;按照长度不同优先匹配的情况,分为最长匹配和最短匹配;按照是否与词性标注的过程相结合又可分为分词与标注相结合的一体化和单纯的分词方法。
1、正向最大匹配算法
正向最大匹配算法(MM)的思想是假设自动分词中最长词条所含汉字的个数为n, 则截取需要分词文本中当前字符串序列中的前n个字符作为匹配字段,查找分词词典,若词典中有这样一个n字词那么就匹配成功,匹配字段作为一个词被切分出来;若词典中找不到这样的一个n字词那么匹配失败, 匹配字段去掉最后一个汉字, 剩下的字符作为新的匹配字段再进行匹配,如此进行下去,直到匹配成功为止。因为停用词对后续文本处理可能会造成干扰,所以在用正向最大匹配算法分词的过程中直接去除了停用词。具体步骤如下:
S1、导入分词词典words.txt,存储为字典形式dic、导入停用词词典stoplis.txt ,存储