基于词典的正向最大匹配算法,算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典。
算法流程图如下:
Java实现代码如下:
/** * 基于词典的正向最大匹配算法 * @author 杨尚川 */public class WordSeg {private static final List DIC = new ArrayList<>();private static final int MAX_LENGTH;static{try {System.out.println("开始初始化词典");int max=1;int count=0;List lines = Files.readAllLines(Paths.get("D:/dic.txt"), Charset.forName("utf-8"));for(String line : lines){DIC.add(line);count++;if(line.length()>max){max=line.length();}}MAX_LENGTH = max;System.out.println("完成初始化词典,词数目:"+count);System.out.println("最大分词长度:"+MAX_LENGTH);} catch (IOException ex) {System.err.println("词典装载失败:"+ex.getMessage());}}public