paip..禁用mmseg 的默认词库. . 仅仅使用自定义词库from数据库.

来源:互联网 发布:算命网站源码免费下载 编辑:程序博客网 时间:2024/04/29 06:31
paip..禁用mmseg 的默认词库. . 仅仅使用自定义词库from数据库.


mmseg默认词库只能是文件格式...不好维护..要是不个词库放的个数据库里面走好维护兰..
要实现2个目标..:
1.禁用默认词库,仅仅使用自定义词库
2.词库从数据库读取,而不使用默认的文件方式,方便维护..




作者Attilax  艾龙,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.csdn.net/attilax




Dictionary.getInstance("")来的禁用默认词库,无效果...
查看Dictionary.loadDic 源码...看来无法通过dic = Dictionary.getInstance("");的方式来禁用它的默认词库...




只好扩展Dictionary了..new 了一个class,继承了Dictionary,重写loadDic方法...change 孪一瓦方法的..visiablity...这个方法虽然能行,要overwrite一瓦方法了.麻烦.半路儿上放弃...






换个丝路,不个哪加载的词库在给他卸除孪走ok兰吗.haha...
dic = Dictionary.getInstance();

 
//delete default words
Map<Character, CharNode> dict=dic.getDict();
Set set=dict.keySet();
Iterator<Character> it = set.iterator();  
while (it.hasNext()) {  
Character key = it.next();  
//  String val=String.valueOf( dict.get(key));
 CharNode cn=dict.get(key);
 cn.ktWordTails=new   KeyTree(); 
}  


这样,走 禁用孪默认词库兰...完成孪1半儿兰..




词库从数据库读取到list,如何不个这个List动态加载到mmseg呢??


List<String> li=new ArrayList<String>();
li.add("上学好");
li.add("卖衣裳");

for(String word:li)
{
if(word.trim().length()==0 || word.length()<2)
continue;
String line=word;

CharNode cn = dict.get(line.charAt(0));
if(cn == null) {
cn = new CharNode();
dict.put(line.charAt(0), cn);
}else
cn.addWordTail(dic.tail(line));

}


扎实ok兰..哈




0 0
原创粉丝点击