分词据说是nlp的入门级技术,分词分不好后面很多工作都会受到影响。
掌握分词的常见算法,形成自我的认识,最好用串起来的方式。
分词之最大匹配算法
分为前向最大匹配,逆向最大匹配,双向最大匹配。
这算法挺简单的,三者之间的关系也很清晰。主要在于这个maxlength的选取了。
前向最大匹配,一句话,一个词库,一个maxlength,借用一个for循环就能从左往右匹配词语了。
逆向最大匹配是从右往左匹配。
双向最大匹配是正向匹配一遍,逆向再匹配一遍,然后比较这俩的结果:
结果一样,说明没有歧义,直接返回;
结果不一样,返回词数较少的;
结果不一样词数一样,那就返回单字的总数较少的那个。(只需要统计分词结果中单个字的个数,返回较少的那组)
后面补上python代码。