檢詞算法,"> 檢詞算法。">

最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

輸入法開發(fā)——實戰(zhàn)<二>檢詞算法

2023-08-06 17:49 作者:ProsperousFall  | 我要投稿

輸入法出詞的算法看似復(fù)雜,微軟選擇的算法是相對低開銷且高效的一種。

通過行為分析,步驟大致分為三步:

一、完全匹配

二、詞頻建議

三、補全出詞

前兩步是必須有的,第三個只有五筆有。

通過一個小工具 WubiLex 可以導(dǎo)出五筆的 Lex 詞庫文件(目前的windows無法直接查看該文件)

一個詞的組成有四個部分:編碼、詞、權(quán)重、順序

一個詞可能的多個編碼,但權(quán)重不變

一個權(quán)重只能有一個

一個順序只能有一個

如:

a????????????工?19829????1

aaa????????工?19829????3

aaaa? ????工?19829????12

多個碼可以很好的解決簡碼檢索的問題,根據(jù)編碼匹配程度給出結(jié)果。拼音的算法也是相似的。不同的只有句拼,這個需要一定的機(jī)器學(xué)習(xí)能力。

權(quán)重用來表示詞頻,順序作為算法的提示、補充。

主體上的算法是:1、匹配用戶詞庫;2、匹配主詞庫(使用鏈表的話無需太在意順序,但小心重復(fù))

匹配用戶詞庫是非常簡單的,就是完全匹配。智能學(xué)習(xí)就是在這個詞庫中添加詞條。

匹配主詞庫就有點難度了:

1、完全匹配

這一步是相對簡單的,編碼相同就可以。然后根據(jù)權(quán)重排序。

2、詞頻建議

這一步是難點

先取碼,從編碼的第一條開始遍歷

例:碼:a


從 a--- 第一個開始,到 azzz(安全最大) 或 ayyy(五筆實際)?最后一個結(jié)束

在?a--- 編碼中找到權(quán)重最小的作為第一個,記權(quán)重作 c(提前備表)

然后在下一編碼中


取出順序最小的,如果其權(quán)重小于 c?跳轉(zhuǎn)至下一編碼,

否則,輸出 其中權(quán)重大于 c 的權(quán)重最小的一個詞,將新的權(quán)重寫入?c 進(jìn)入下一編碼 重復(fù)此步


步驟大致如此(未去除重復(fù))一個詞是不能在候選中出現(xiàn)再次的,需要剔除重復(fù)的候選。


碼:ab

在?ab-- 編碼中找到權(quán)重最小的

從?ab--?第一個開始,到?abzz(安全最大)?或 abyy(五筆實際)?最后一個結(jié)束


其它步驟是相同的, 但是開銷是相對小很多的。


完成了以上步驟,還有補全一步,這一步是可選的

如果,編碼中字母相同,將其補為4個相同字母組成的編碼

a -> aaaa, b -> bbbb


最后,要按 匹配 > 權(quán)重 的方法排序候選

再插入用戶詞匯,如果它們存在。


五筆中 z 鍵作用不盡相同,各各實現(xiàn)均有所差異。但是注意,z 是第一個字母時,盡量不要提供有候選參與的功能。


實際的輸入法不能每次都從文件中讀取詞庫,當(dāng)然不是不行,而是開銷過大。

詞庫應(yīng)當(dāng)由維護(hù)輸入法的進(jìn)程建立通道供輸入法動態(tài)獲取。



輸入法開發(fā)——實戰(zhàn)<二>檢詞算法的評論 (共 條)

分享到微博請遵守國家法律
曲阳县| 都安| 额尔古纳市| 三亚市| 阜南县| 广昌县| 安远县| 明水县| 股票| 武定县| 德阳市| 洛宁县| 蚌埠市| 乐亭县| 保山市| 济宁市| 连云港市| 泊头市| 习水县| 汉寿县| 徐汇区| 富蕴县| 十堰市| 凉城县| 玉溪市| 宜川县| 蚌埠市| 汝州市| 贵德县| 庆安县| 金门县| 日喀则市| 宁城县| 新田县| 新乐市| 南昌县| 麻江县| 密云县| 峡江县| 花垣县| 元谋县|