輸入法原理解密
發布日期:2015-01-11 作者:win10 64位系統下載官網 來源:http://www.meisq.net
輸入法作為每位網蟲上網必用的工具軟件,各大IT公司,無論國際IT巨頭微軟、谷歌,還是國內IT大腕百度、騰訊、搜狐,他們都紛紛推出自家輸入法軟件來搶占這個市場。那么輸入法是怎么實現文字高效輸入?作為我們普通的用戶,我們自己能編寫輸入法么?大家最常用的是拼音輸入法,下面我們就以這種輸入法為例來一探究竟。
文字輸入 認識碼表文件
我們先來了解一下文字輸入過程,比如要在百度搜索中使用搜狗輸入法輸入“電腦”作為關鍵字進行搜索。首先要切換到“搜狗輸入法”,接著在鍵盤上鍵入“diannao”,此時在輸入法狀態欄會出現多個符合“diannao”編碼的漢字或詞組,我們選擇“電腦”后就可以實現字符的輸入了(圖1)。
圖1 選擇符合編碼的字符輸入漢字
可以看到,文字輸入過程主要是輸入編碼,然后根據編碼選擇所需字符的過程。因此Windows系統下漢字輸入法實際就是:將輸入的標準ASCII字符串(英文字符),按照一定的編碼規則轉換為漢字或詞組。在將英文字符轉換成漢字的過程中,碼表文件(字庫)起到了關鍵作用,碼表文件有點類似英漢詞典,將特定組合的英文字符與漢語字詞一一對應起來。比如打開搜狗字庫文件,就可以看到我們上面輸入的“dian’nao”對應的正是漢語“電腦”(圖2)。
圖2 查看輸入法字庫編碼
何以高效 輸入法高效輸入探秘
一款優秀的輸入法必須要讓使用者能夠實現高效輸入,這就要求每款輸入法有自己的特色功能。
全面才會準確
日常使用中我們需要輸入一些生僻字、網絡流行語,如果輸入法的字庫不夠全面的話就無法輸入,F在的輸入法一方面借助本地字庫,另一方面則充分發揮“云字庫”優勢,可以將生僻字、網絡流行語等一網打盡。比如必應輸入法運用微軟亞洲研究院的創新研究成果,優化了核心引擎,加上云端服務器的無限量存儲和計算能力,即使我們輸入類似“weiruankinecttaicoolle”中文拼音與英語相混合的字符串,它也可以智能識別(圖3)。
圖3 必應輸入法強大字庫和識別能力
輸入法“猜你喜歡”
好的詞庫還需要搭配智能的算法,只有依靠智能算法才能將字庫的功能充分發揮出來,F在大多數輸入法能夠自動分析用戶的輸入,選擇和調整接下來文字顯示的優先級,這樣既可以可以大大降低詞語拼錯的可能性,同時方便用戶高效選擇輸入,這種功能的實現是借助輸入法后臺強大的算法實現的。比如搜狗輸入法,在你首次輸入“dnahz”并選擇“電腦愛好者”后,它就會“記憶”下你的選擇,等再次輸入“dnahz”,它就會智能判斷你可能要輸入“電腦愛好者”,于是將這一詞組調整到優先選擇的位置。如果你多次輸入“dnahz”但選擇的是不同的詞組,這時輸入法的算法程序會根據你選擇的頻率(選的最多),將你最有可能想要的結果放在優先的位置(圖4)。
圖4 輸入法智能算法
統計是智能算法的核心
上面的根據詞頻調整,已經具有初步的學習功能了,而優秀的輸入法還可以智能聯想、智能糾錯、智能組句。有時我們會發現,剛剛輸入一兩個字母,輸入法就已經給出我們想要的長長的詞組,非常智能。這些看起來有些神秘,但它們的算法核心其實很簡單,就是統計。
聊天、寫作、打報告,你每天究竟打了多少字,也許你自己并不清楚,但你所用的輸入法卻在默默地記錄著,你每一次的輸入每一次的選擇,都會納入它統計的數據中,正是根據這些數據分析得出你常用的詞語,以及你特殊的喜好和選擇。所以,并非輸入法“聰明”,而是我們自己“出賣”了自己。
文字輸入 認識碼表文件
我們先來了解一下文字輸入過程,比如要在百度搜索中使用搜狗輸入法輸入“電腦”作為關鍵字進行搜索。首先要切換到“搜狗輸入法”,接著在鍵盤上鍵入“diannao”,此時在輸入法狀態欄會出現多個符合“diannao”編碼的漢字或詞組,我們選擇“電腦”后就可以實現字符的輸入了(圖1)。
圖1 選擇符合編碼的字符輸入漢字
可以看到,文字輸入過程主要是輸入編碼,然后根據編碼選擇所需字符的過程。因此Windows系統下漢字輸入法實際就是:將輸入的標準ASCII字符串(英文字符),按照一定的編碼規則轉換為漢字或詞組。在將英文字符轉換成漢字的過程中,碼表文件(字庫)起到了關鍵作用,碼表文件有點類似英漢詞典,將特定組合的英文字符與漢語字詞一一對應起來。比如打開搜狗字庫文件,就可以看到我們上面輸入的“dian’nao”對應的正是漢語“電腦”(圖2)。
圖2 查看輸入法字庫編碼
何以高效 輸入法高效輸入探秘
一款優秀的輸入法必須要讓使用者能夠實現高效輸入,這就要求每款輸入法有自己的特色功能。
全面才會準確
日常使用中我們需要輸入一些生僻字、網絡流行語,如果輸入法的字庫不夠全面的話就無法輸入,F在的輸入法一方面借助本地字庫,另一方面則充分發揮“云字庫”優勢,可以將生僻字、網絡流行語等一網打盡。比如必應輸入法運用微軟亞洲研究院的創新研究成果,優化了核心引擎,加上云端服務器的無限量存儲和計算能力,即使我們輸入類似“weiruankinecttaicoolle”中文拼音與英語相混合的字符串,它也可以智能識別(圖3)。
圖3 必應輸入法強大字庫和識別能力
輸入法“猜你喜歡”
好的詞庫還需要搭配智能的算法,只有依靠智能算法才能將字庫的功能充分發揮出來,F在大多數輸入法能夠自動分析用戶的輸入,選擇和調整接下來文字顯示的優先級,這樣既可以可以大大降低詞語拼錯的可能性,同時方便用戶高效選擇輸入,這種功能的實現是借助輸入法后臺強大的算法實現的。比如搜狗輸入法,在你首次輸入“dnahz”并選擇“電腦愛好者”后,它就會“記憶”下你的選擇,等再次輸入“dnahz”,它就會智能判斷你可能要輸入“電腦愛好者”,于是將這一詞組調整到優先選擇的位置。如果你多次輸入“dnahz”但選擇的是不同的詞組,這時輸入法的算法程序會根據你選擇的頻率(選的最多),將你最有可能想要的結果放在優先的位置(圖4)。
圖4 輸入法智能算法
統計是智能算法的核心
上面的根據詞頻調整,已經具有初步的學習功能了,而優秀的輸入法還可以智能聯想、智能糾錯、智能組句。有時我們會發現,剛剛輸入一兩個字母,輸入法就已經給出我們想要的長長的詞組,非常智能。這些看起來有些神秘,但它們的算法核心其實很簡單,就是統計。
聊天、寫作、打報告,你每天究竟打了多少字,也許你自己并不清楚,但你所用的輸入法卻在默默地記錄著,你每一次的輸入每一次的選擇,都會納入它統計的數據中,正是根據這些數據分析得出你常用的詞語,以及你特殊的喜好和選擇。所以,并非輸入法“聰明”,而是我們自己“出賣”了自己。
下一篇:巧用Excel讓工作井井有條