package org.ansj.demo;
import org.ansj.library.AmbiguityLibrary;
import org.nlpcn.commons.lang.tire.domain.Forest;
import org.nlpcn.commons.lang.tire.domain.Value;
import org.nlpcn.commons.lang.tire.library.Library;
/**
* 重新加载用户自定义辞典的两种方式
*
* @author ansj
*
*/
public class ReloadAmbiguityLibrary {
public static void main(String[] args) throws Exception {
// 从文件中reload
loadFormFile();
// 通过内存中reload
loadFormStr();
// 歧义辞典增加新词
Value value = new Value("三个和尚", "三个", "m", "和尚", "n");
Library.insertWord(AmbiguityLibrary.get(), value);
// 歧义辞典删除词
Library.removeWord(AmbiguityLibrary.get(), "三个和尚");
}
private static void loadFormStr() {
Forest forest = AmbiguityLibrary.get();
//方法1
Value value = new Value("三个和尚", "三个", "m", "和尚", "n");
Library.insertWord(forest, value);
//方法2
AmbiguityLibrary.insert(AmbiguityLibrary.DEFAULT, "三个", "m", "和尚", "n");
// 将新构建的辞典树替换掉旧的。
AmbiguityLibrary.put(AmbiguityLibrary.DEFAULT, AmbiguityLibrary.DEFAULT, forest);
}
private static void loadFormFile() throws Exception {
// make new forest
Forest forest = Library.makeForest("new_Library_Path");
// 将新构建的辞典树替换掉舊的。
AmbiguityLibrary.put(AmbiguityLibrary.DEFAULT, AmbiguityLibrary.DEFAULT, forest);
}
}