im2016発表資料

im2016発表資料


IM2016発表資料

増井俊之
慶應義塾大学 環境情報学部
よろずユーザインタフェースハード/ソフト開発
ガラケーの予測入力システム開発
iPhoneのフリック入力開発
IoT方面の開発いろいろ
Gyazo, Scrapboxなどのサービスを運用中

自前のIMEしか使ってません
Mac, Android, Emacs, (Windows)

Gyazo

Scrapbox

SoftwareDesignでの連載

増井の入力システムの特徴
シンプルで実用的
特殊キーなどを使わない
幅広い機器で動く
自然言語処理を使わない
曖昧さやら操作ミスを許す
日々ドッグフーディング

Gyaim
= MacのIME
単純な予測変換
すべてRubyで記述 (RubyMotion)
e.g. MacRuby, RubyCocoa
アプリケーションと同じようにビルド
Cocoaの謎APIをRubyから使う
コードも辞書もオープンソース
コードは1000行以下
利用しているIMEのAPIはひとつだけ
InputMethodKit

デモ: Gyaim
画像入力
パスワード入力
クレカ番号とか
接続辞書
「さんびゃくさんじゅうさん」
単語登録

Slime
= AndroidのIME
Javaで記述
コードも辞書もオープンソース
単純な予測変換
T9風入力可能 (子音だけでの入力)
モード切り替えなし

ビデオ: Slime

連文節変換 considered harmful
正確な入力が必要
IoT時代向けでない
必ず訂正が必要
e.g. 「きょうはいしゃにいった」「うさぎをかいたい」「ここではきものをぬいでください」
曖昧入力アルゴリズムを適用しにくい
辞書や文法の管理が大変
大阪弁変換が作れるか?
「行かはる」
様々な機器で共通に利用できない

辞書
GyaimもSlimeも共通
「接続辞書」をWiki上で編集
単語の前と後のカテゴリを指定
品詞の登録はしない
あらゆる言語で利用可能?

変換アルゴリズム
「接続辞書」にもとづいて可能なものを並べる
単純なのでどこでも動く
e.g. Ruby / Java / JS
みつからないときはググる
確定した単語は先頭に持ってくる

Slimeの状態遷移


単語登録
未登録の単語を選択して読みを入力するとその単語が候補に出る
選択して確定すると登録される
쌈장
ᕦ( ͡° ͜ʖ ͡°)ᕤ
入力と検索と登録を融合

教えてください!
SwiftでIMEを作る方法
Windows版を作る方法

おまけ

Powered by Helpfeel