Re: [心得] iOS8 中文輸入法真的很聰明

看板iOS作者 (高級外勞)時間11年前 (2014/09/29 07:08), 11年前編輯推噓5(502)
留言7則, 6人參與, 最新討論串3/3 (看更多)
: 推 ishuen: 但是apple說輸入法沒用到網路 這些資料都在手機裡嗎? 09/29 01:00 : → KANO1931: 需要龐大資源的部分是在計算階段 應用的部分是結果 不一 09/29 01:05 : → KANO1931: 定佔很大空間 但如果要動態更新常用詞就需要了 09/29 01:09 : 推 pm2001: 沒用到網路我覺得不可能 這資料量非常大 09/29 01:18 小弟非專業發言,大家看看就好 個人覺得像這種切進時事的聯想字,應該都是需要網路的 如同KANO大所說,需要大量運算資源的是計算階段,實作階段所需資源並不大 我舉一個我最近為蝦米鍵盤實作簡易聯想詞的方法為例 蝦米鍵盤的聯想詞功能目前實作流程如下 1. 下載Google ngrams dataset簡中版本(因為沒有繁中...) 上文所述需要大量運算資源的就是這部份,如何產生ngrams 而google已經幫我們作好了(佛心 Google ngrams dataset資料格式看起來像這樣 <中文詞> <某西元年> <該西元年中發現此詞彙數量> <該西元年中在多少著作中發現該詞> 我下載下來的dataset總共大小約1.3gb(只取2 gram) 2. 使用程式語言parse下載下來的dataset,輸出成frequency list, 格式如下 <中文詞> <總發生數量> 存成純文字檔,目前我跑出來的這個檔大小為500kb左右,40000左右中文詞 像這第二步,需要讀入1.3gb的原始資料,在手機上會耗時良久 但讀入500kb的資料,目前蝦米鍵盤的速度還算可以(iPhone 5) 3. 在鍵盤初始化時parse第二步產生的frequency list存進記憶體。 這部份的資料結構可採用簡單的hash map或是高級一點(比較難實作)的trie 不過如果詞的長度不是很長,例如我的第二步出來的檔,裡面最長的詞只有4字 那使用hash map應該整體來說效能會好一點,當然這是個人感覺 基本上有了這個backend data structure,再寫一個function,輸入為字串, 然後到這個data structure中查詢,輸出為一個字串陣列,然後就可以輸出到 鍵盤畫面上給使用者選擇。 由上可知,如果想要動態產生聯想詞例如結合時事,或是使用最近的報章blog文章 當作ngrams的corpus,那麼網路是必須的。 不專業分享,請勿筆戰~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.5.179.190 ※ 文章網址: http://www.ptt.cc/bbs/iPhone/M.1411945732.A.D3D.htmllinpien:轉錄至看板 Liu 09/29 07:44

09/29 08:27, , 1F
這不是專業那什麼才叫專業
09/29 08:27, 1F

09/29 08:29, , 2F
蝦米鍵盤通過審核了嗎?
09/29 08:29, 2F
還沒啊...十天了Q_Q 已寄信給app review team問到底是怎樣審到天荒地老

09/29 08:38, , 3F
專業推
09/29 08:38, 3F

09/29 08:55, , 4F
看不懂 但感覺你說的很專業
09/29 08:55, 4F

09/29 10:45, , 5F
推同樣NLP人~~
09/29 10:45, 5F
※ 編輯: IMPOSSIBLEr (24.5.179.190), 09/29/2014 11:40:58

09/29 12:07, , 6F
一樣阿 你還是需要網路去更新資料
09/29 12:07, 6F

09/29 12:29, , 7F
好想贏韓國都一年半前的事了 什麼實事...
09/29 12:29, 7F
請問您上次更新Apple內建鍵盤是何時? 如果鍵盤沒有使用網路存取,這種對照表就只有在更新軟體時有辦法更新 所以我猜是apple有偷偷定時下載對照表XDDD ※ 編輯: IMPOSSIBLEr (24.5.179.190), 09/29/2014 12:51:21
文章代碼(AID): #1KA9K4qz (iOS)
文章代碼(AID): #1KA9K4qz (iOS)