func TestLatticeBuild03(t *testing.T) { const udicPath = "../../_sample/userdic.txt" udic, e := dic.NewUserDic(udicPath) if e != nil { t.Fatalf("unexpected error: cannot load user dic, %v", e) } la := New(dic.SysDic(), udic) if la == nil { t.Fatal("cannot new a lattice") } defer la.Free() inp := "朝青龍" la.Build(inp) if la.Input != inp { t.Errorf("got %v, expected %v", la.Input, inp) } if la.list[3][0].Class != USER { t.Errorf("%+v", la) } if len(la.Output) != 0 { t.Errorf("lattice initialize error: got %v, expected empty", la.Output) } if la.dic == nil { t.Errorf("lattice initialize error: dic is nil") } if la.udic == nil { t.Errorf("lattice initialize error: got %v, expected not empty", la.udic) } }
func TestFeatures04(t *testing.T) { tok := Token{ ID: 0, Class: DUMMY, Start: 0, End: 1, Surface: "", } tok.dic = dic.SysDic() if udic, e := dic.NewUserDic("../_sample/userdic.txt"); e != nil { t.Fatalf("build user dic error: %v", e) } else { tok.udic = udic } f := tok.Features() if len(f) != 0 { t.Errorf("got %v, expected empty", f) } }
func TestFeatures03(t *testing.T) { tok := Token{ ID: 0, Class: TokenClass(lattice.USER), Start: 0, End: 1, Surface: "", } tok.dic = dic.SysDic() if udic, e := dic.NewUserDic("../_sample/userdic.txt"); e != nil { t.Fatalf("build user dic error: %v", e) } else { tok.udic = udic } f := tok.Features() expected := []string{"カスタム名詞", "日本/経済/新聞", "ニホン/ケイザイ/シンブン"} if !reflect.DeepEqual(f, expected) { t.Errorf("got %v, expected %v", f, expected) } }
// NewUserDic build a user dictionary from a file. func NewUserDic(path string) (UserDic, error) { d, err := dic.NewUserDic(path) return UserDic{d}, err }