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





mmseg默认词库只能是文件格式...不好维护..要是不个词库放的个数据库里面走好维护兰..

要实现2个目标..:

1.禁用默认词库,仅仅使用自定义词库

2.词库从数据库读取,而不使用默认的文件方式,方便维护..









作者Attilax  艾龙,  EMAIL:[email protected] 

来源: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兰..哈

05-11 18:01