輸入法作為每位網蟲上網必用的工具軟件,各大IT公司,無論國際IT巨頭微軟、谷歌,還是國內IT大腕百度、騰訊、搜狐,他們都紛紛推出自家輸入法軟件來搶占這個市場。那麼輸入法是怎麼實現文字高效輸入?作為我們普通的用戶,我們自己能編寫輸入法麼?大家最常用的是拼音輸入法,下面我們就以這種輸入法為例來一探究竟。
文字輸入 認識碼表文件
我們先來了解一下文字輸入過程,比如要在百度搜索中使用搜狗輸入法輸入“電腦”作為關鍵字進行搜索。首先要切換到“搜狗輸入法”,接著在鍵盤上鍵入“diannao”,此時在輸入法狀態欄會出現多個符合“diannao”編碼的漢字或詞組,我們選擇“電腦”後就可以實現字符的輸入了(圖1)。
圖1 選擇符合編碼的字符輸入漢字
可以看到,文字輸入過程主要是輸入編碼,然後根據編碼選擇所需字符的過程。因此Windows系統下漢字輸入法實際就是:將輸入的標准ASCII字符串(英文字符),按照一定的編碼規則轉換為漢字或詞組。在將英文字符轉換成漢字的過程中,碼表文件(字庫)起到了關鍵作用,碼表文件有點類似英漢詞典,將特定組合的英文字符與漢語字詞一一對應起來。比如打開搜狗字庫文件,就可以看到我們上面輸入的“dian’nao”對應的正是漢語“電腦”(圖2)。
圖2 查看輸入法字庫編碼
何以高效 輸入法高效輸入探秘
一款優秀的輸入法必須要讓使用者能夠實現高效輸入,這就要求每款輸入法有自己的特色功能。
全面才會准確
日常使用中我們需要輸入一些生僻字、網絡流行語,如果輸入法的字庫不夠全面的話就無法輸入。現在的輸入法一方面借助本地字庫,另一方面則充分發揮“雲字庫”優勢,可以將生僻字、網絡流行語等一網打盡。比如必應輸入法運用微軟亞洲研究院的創新研究成果,優化了核心引擎,加上雲端服務器的無限量存儲和計算能力,即使我們輸入類似“weiruankinecttaicoolle”中文拼音與英語相混合的字符串,它也可以智能識別(圖3)。
圖3 必應輸入法強大字庫和識別能力
輸入法“猜你喜歡”
好的詞庫還需要搭配智能的算法,只有依靠智能算法才能將字庫的功能充分發揮出來。現在大多數輸入法能夠自動分析用戶的輸入,選擇和調整接下來文字顯示的優先級,這樣既可以可以大大降低詞語拼錯的可能性,同時方便用戶高效選擇輸入,這種功能的實現是借助輸入法後台強大的算法實現的。比如搜狗輸入法,在你首次輸入“dnahz”並選擇“電腦愛好者”後,它就會“記憶”下你的選擇,等再次輸入“dnahz”,它就會智能判斷你可能要輸入“電腦愛好者”,於是將這一詞組調整到優先選擇的位置。如果你多次輸入“dnahz”但選擇的是不同的詞組,這時輸入法的算法程序會根據你選擇的頻率(選的最多),將你最有可能想要的結果放在優先的位置(圖4)。
圖4 輸入法智能算法
統計是智能算法的核心
上面的根據詞頻調整,已經具有初步的學習功能了,而優秀的輸入法還可以智能聯想、智能糾錯、智能組句。有時我們會發現,剛剛輸入一兩個字母,輸入法就已經給出我們想要的長長的詞組,非常智能。這些看起來有些神秘,但它們的算法核心其實很簡單,就是統計。
聊天、寫作、打報告,你每天究竟打了多少字,也許你自己並不清楚,但你所用的輸入法卻在默默地記錄著,你每一次的輸入每一次的選擇,都會納入它統計的數據中,正是根據這些數據分析得出你常用的詞語,以及你特殊的喜好和選擇。所以,並非輸入法“聰明”,而是我們自己“出賣”了自己。
圖5谷歌拼音輸入法提供的智能組句功能,可以很聰明地理解你的意圖,即使輸入的不是常見內容的長句,它也可以智能地進行組句供你選擇
輸入法搞“兼職”
除了識別編碼的輸入,現在輸入法的擴展功能也越來越多。一方面是擴展字符的輸入方式,比如為了方便用戶輸入不會讀音但會寫的漢字,搜狗輸入法提供了手寫組件,啟動該組件後只要使用鼠標將字寫出來,我們就可以在識別框進行選擇輸入(圖6)。
圖6 搜狗拼音的手寫輸入
另一方面則將輸入法和其他相關的功能關聯起來,比如谷歌輸入法就整合其強大的搜索功能,在輸入需要搜索的關鍵字後,只要點擊狀態欄的谷歌圖標,這樣即可自動打開谷歌的搜索頁面進行搜索(圖7)。
圖7 整合搜索功能的谷歌輸入法
你也可以自己打造輸入法
從上面介紹我們知道,輸入法的核心實際上就是碼表文件,因此只要我們自己制作好碼表文件,然後利用一些輸入法生成器即可生成自己的輸入法。如果覺得自己制作麻煩,還可以直接提取當前輸入法的字庫,比如搜狗輸入法,打開設置屬性窗口後切換到“詞庫”,然後在“詞庫選擇”下拉列表選擇“導出文本詞庫”,這樣即可獲得碼表源文件(圖8)。
圖8 提取當前輸入法詞庫
獲取碼表源文件後,我們既可以利用微軟免費提供的“輸入法生成器”,也可以使用第三方的“多多輸入法生成器”來生成自己的輸入法!
本文來自於【系統之家】 www.xp85.com