美文网首页
转载一个简单的分词器实现

转载一个简单的分词器实现

作者: 江江的大猪 | 来源:发表于2017-11-17 15:54 被阅读21次

    作者:jijs
    链接:http://www.jianshu.com/p/62f4a5596278
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    public class TokenizerDemo {
    
        private static Map<String, String> map = new HashMap<String, String>();
    
        //词典中最长词的长度,map中的key的最长长度
        private static final int maxSize = 3;
        static{
            //可以从数据库中加载或词表中加载
            map.put("中国", "");
            map.put("北京", "");
            map.put("中关村", "");
            map.put("海淀", "");
        }
    
        public static void main(String[] args) {
            String text = "中国人民共和国首都是北京,中关村在海淀区。";
            int length = text.length();
            for(int i=0; i<length; i++){
                int endIdx = i+maxSize;
                if(endIdx>length){
                    endIdx = length;
                }
                //最大逆序匹配
                for(int j=0; j<maxSize; j++){
                    String s = text.substring(i, endIdx);
                    if(map.get(s)!=null){
                        i=endIdx-1;
                        System.out.println(s);
                        break;
                    }else{
                        endIdx-=1;
                        if(endIdx==i){
                            break;
                        }
                    }
                }
    
            }
        }
    }
    

    之前在群里看到作者发出来了这个文章,发现有点小问题,没有跳过匹配的词,联系了作者已经改了过来。

    相关文章

      网友评论

          本文标题:转载一个简单的分词器实现

          本文链接:https://www.haomeiwen.com/subject/ilujvxtx.html