fix(term): 清理百度百科摘要的截断结尾
百度百科 BaikeLemmaCardApi 摘要以 ... 硬截断,出现半截话。 新增 trimTruncatedTail:去掉结尾省略号后,若末句不完整则 回退到最后一个完整句标点(。!?),避免「唐宋时期,冬至...」 这类戛然而止的结尾。仅依赖百度百科,不引入维基,线上可用。
This commit is contained in:
@@ -128,3 +128,24 @@ func TestTermSort(t *testing.T) {
|
||||
t.Errorf("termSort(不存在) = %d, want 0", termSort("不存在"))
|
||||
}
|
||||
}
|
||||
|
||||
func TestTrimTruncatedTail(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
in string
|
||||
want string
|
||||
}{
|
||||
{"完整句号结尾不动", "夏至后人们普遍食用清补凉汤来避暑。", "夏至后人们普遍食用清补凉汤来避暑。"},
|
||||
{"英文省略号回退", "表达感谢的心情。唐宋时期,冬至...", "表达感谢的心情。"},
|
||||
{"中文省略号回退", "表达感谢的心情。唐宋时期,冬至…", "表达感谢的心情。"},
|
||||
{"无句号半截话保留", "可明显感觉到早春的气...", "可明显感觉到早春的气"},
|
||||
{"多点省略号", "农事谚语....", "农事谚语"},
|
||||
{"结尾空白加省略号", "冬至大如年。 ...", "冬至大如年。"},
|
||||
{"空字符串", "", ""},
|
||||
}
|
||||
for _, c := range cases {
|
||||
if got := trimTruncatedTail(c.in); got != c.want {
|
||||
t.Errorf("%s: trimTruncatedTail(%q) = %q, want %q", c.name, c.in, got, c.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user