Closed pi314 closed 7 years ago
例如 ㄨㄛˇㄕˋㄈㄢˋㄧˊㄒㄧㄚˋ
會產生 我是犯疑下
而不是 我示範一下
今天想到一個想法,除了用詞頻以外,還可以用「完整度」來決定優先度。 對使用者來說,詞庫裡面有的詞當然是優先補完(不然要詞庫幹嘛),越長的詞當然也越優先補完。 完整度可以用每個詞的長度平方加總獲得。
例如輸入有五個字,可以分成 [1, 1, 1, 1, 1]
,也可以分成 [1, 2, 2]
,如果把每個詞的長度平方加總:
[1, 1, 1, 1, 1] -> 5
[1, 2, 2] -> 9
[1, 3, 1] -> 11
[5] -> 25
句子裡有越長的詞,完整度越高。 如果有兩種組合的完整度相同,再來比較詞頻。
implemented with cbc4c9f
例如
是
的頻率高達 232646,幾乎沒有詞能壓過它。現在已經做了部份的判斷,但在長句搜尋的時候還是會抓到它。