diff --git a/posseg/posseg.go b/posseg/posseg.go index 6a431d6..d7996bd 100644 --- a/posseg/posseg.go +++ b/posseg/posseg.go @@ -128,15 +128,11 @@ func (p *Posseg) cutDAG(sentence string) chan WordTag { go func() { dag := p.DAG(sentence) routes := p.Calc(sentence, dag) - x := 0 var y int runes := []rune(sentence) length := len(runes) buf := make([]rune, 0) - for { - if x >= length { - break - } + for x := 0; x < length; { y = routes[x].Index + 1 l_word := runes[x:y] if y-x == 1 { diff --git a/posseg/viterbi.go b/posseg/viterbi.go index 580df76..1bccf8a 100644 --- a/posseg/viterbi.go +++ b/posseg/viterbi.go @@ -50,10 +50,10 @@ func viterbi(obs []rune) []string { } } //use Go's map to implement Python's Set() - prev_states_expect_next := make(map[string]string) + prev_states_expect_next := make(map[string]int) for _, x := range prev_states { for y, _ := range probTrans[x] { - prev_states_expect_next[y] = y + prev_states_expect_next[y] = 1 } } tmp_obs_states := charStateTab.get(obs[t])