開發輸入法有哪些難點?

看問題

搜狗輸入法為什麼做得比其他的輸入法好?

鼠鬚管(鼠須管)輸入法好在哪裡?

有感.


劉未鵬有一篇講開發英庫輸入法歷程心得的博文,雖然主要是講C++的,但很值得一看。

C++11(及現代C++風格)和快速迭代式開發


稍微引申一下樓主的問題,引申為:開發一款多數人使用的輸入法有哪些難點

1. 兼容性。這一點幾乎可以斷了任何個人開發者的念想,各種遊戲,各種上個世紀的專業領域軟體,有很多還是應用程序本身就有bug,不能指望應用程序更新那麼只能靠輸入法來順著它的bug對它做兼容了,這種噁心的事情說多了都是淚啊;

2. 時效性。就是詞庫,考驗數據「抓取--過濾--提煉」能力,而且必須輔以大量的人工check,長尾的東西想純靠機器就是no zuo no die;

3. 運行效率。數據結構,演算法,軟體架構。詞庫怎麼組織才能高效查詢和寫入(學詞需要對用戶詞庫數據資源進行寫操作),多進程之間如何高效復用輸入法數據(Windows輸入法機制是動態鏈接庫載入到應用程序),如何高效實現組詞造句功能等等;

4. 雲端擴展。雲輸入是每個現代輸入法必備的功能了,那麼又涉及到高並發的服務程序搭建,網路負載均衡等等,同時雲端的演算法肯定要比客戶端的高級才能應對更加長尾和刁鑽的輸入請求。


首先,我不是技術,就按著產品角度來解答一下這個問題

1、團隊配置

人是做一切事情的基礎,而輸入法更是集合了搜索,人工智慧,語義識別等一系列技術的集大成。搜狗創建的初期基本人員都是清華畢業的。

2、詞庫

專業的詞庫維護團隊,輸入法為什麼一定是搜索引擎公司才能做好?因為輸入法就是詞庫,而搜索引擎就是通過輸入一個一個辭彙來進行檢索,那麼搜索引擎就成為了詞庫辭彙最好的來源。

PS:當初馬占凱找過百度說做輸入法的事兒,百度沒鳥他。之後帶著自己厚厚的計劃書找搜狗,搜狗很認真的對待這件事,最後做成了。


功能實現上問題應該都不是很大,甚至有不少開源的輸入法可以借鑒。輸入法真正的核心在於可用性和易用性方面,而提高這兩個方面的指標,唯一的方法(至少目前我發現的有效方法只有這一種)就是大量的數據訓練。


對於非技術來說,更多的是用戶體驗,所有的功能基於用戶的使用感受,而這樣的調研對於中國網名這一龐大的基數來說,是非常困難的。其次就是詞庫,是否符合當地人的習慣以及容量


推薦閱讀:

Linux 下,有哪些漢字輸入方案比 ibus-pinyin 好、接近 Windows 下的谷歌拼音或搜狗拼音?
訊飛輸入法靠什麼賺錢?我今天無意中發現訊飛居然是上市公司。
有沒有比搜狗輸入法更好用的輸入法?
你覺得搜狗這家公司怎麼樣,未來的潛力如何?
如何優雅的使用滑動輸入法?

TAG:輸入法 | 搜狗輸入法 | 鼠鬚管輸入法 |