http://play.golang.org/p/H5E0ExL85d
我已经用 Go 实现了一些 Peter Norvig 的拼写检查算法。
奇怪的是,前三个调用正确地给了我所需的输出。
但是从第二个开始,它说“过程花费了太长时间”。
有人可以看看我的代码并告诉我出了什么问题吗?
这是可能出错的片段。
使用相同的英文代码,一切都完美无缺。
UNICODE 格式和边界已根据语言而改变,因为在这种情况下,英语每个字母包含 1 个字节,而亚洲语言每个字符包含 3 个字节。
这是试图运行与运行完美的英语算法相同的算法。但这不起作用。
total_set := []string{}
for _, elem := range splits {
if len(elem.str2) > 3 {
//deletion
total_set = append(total_set, elem.str1+elem.str2[3:])
//replace
for i:=0; i<len(koreanletter)/3; i++ {
total_set = append(total_set, elem.str1+string(koreanletter[3*i:3*(i+1)])+elem.str2[3:])
}
//transpose
if len(elem.str2) > 9 {
total_set = append(total_set, elem.str1+string(elem.str2[3:6])+string(elem.str2[:3])+elem.str2[9:])
}
} else {
//deletion
total_set = append(total_set, elem.str1)
}
//insertion
for _, c := range koreanletter {
total_set = append(total_set, elem.str1+string(c)+elem.str2)
}
return RemoveDuplicateStringArrayForKorean(total_set)
}
缥缈止盈
相关分类