log
〜位置連携日本語入力システム〜

GeoIME(ジオアイエムイー)って?

GeoIMEは,利用者の位置に応じて,読みに対して提示される変換候補が変化する,"少しだけ気が利く"日本語変換システムを目指しています.例えば,
  • 位置に応じて変換候補が絶妙にソートされている!
    「し」で始まる「渋谷」「新宿」「新橋」などの順序が今いる位置によって変わる

  • 近くの地名がサクッと出る!
    福岡にいると「は」→「博多」,「て」→「天神」.
    難しい地名もOK.「す」→「周船寺」,「と」→「等々力」

  • 同じ場所では同じような単語が出る!
    自身の過去の履歴と,周辺にいる他人の履歴を参照
    いつもの場所では「だ」→「大名」.家では,「だ」→「大好き」
    みんなが集まる場所で「ま」→「マッシュアップキャラバン」
といった利点があります.

DEMO

デモ版ではリアルタイムに辞書を生成していますので,動作が遅いです.辞書生成用のサーバ with MeCabを導入し,かつ,辞書更新を非同期化することで高速化したバージョンも開発済みです(下の方を参照ください).

1.位置を指定(中心のが位置を示す) 2.使用するAPIを選択
Yahoo!日本語形態素解析API
単語分割と読み仮名を付与するために利用します.必須.

Yahoo!かな漢字変換API
携帯に内蔵されているデフォルト辞書の代用として用います.必須.

Yahoo!ローカルサーチAPI
1キロ以内のランドマークを最大50件取得します.読み付与のオーバーヘッドがありますが語彙力豊富です.

マピオン・ローカルサーチAPI
1キロ以内のランドマークを最大50件取得します.読みも同時に取得できますが語彙力不足です.

Foursquare API
周辺のPlaceを最大30件取得します.読み付与のオーバーヘッドがありますが面白い語彙が含まれています.
【注意】指定すると相当遅くなります.

LocoSticker API
位置情報付きコンテンツから辞書を生成します.

3.読み(ローマ字/ひらがな)を入力

・入力後,Enter,を押してください
・空欄,でEnterを押すと出力をリセットできます
・特徴的な例:デフォルト位置で,「て」→「天神」,「だ」→「大名」がでます.

4.変換候補出力 API数に比例し,1秒〜数秒かかります.特に,Foursquare APIを利用する場合は我慢してください.

*複数APIから同一の単語が推薦され場合も,色を変えて重複表示しています.
*高速化版(辞書の非同期生成)では,移動時に自動的に辞書を生成することで,この遅延はなくなります.
 (現在は,デモ版では文字入力後に辞書生成をしています.)

Android版のデモムービー

利用API

GeoIMEを実現するために以下のAPIを利用しています.

概要

GeoIME (Geographical Input Method Editor)は,携帯端末における日本語入力を改善するために,位置に応じて辞書を動的に更新していく次世代のネットワーク連携型日本語入力システムです[1][3]. インターネット上に公開されたさまざまなAPI(詳しくは後述)を組み合わせ,辞書生成を自動化しています.このサイトでは,Webでのデモンストレーションを一部公開していますが,Android上で動作する OpenWnn拡張版やSimejiプラグイン版,またPC上で動作するATOK Direct Plugin版などさまざまなクライアントを実装済みです[3],また,Webデモンストレーションでの動作速度は遅いですが,形態素解析にMeCabを用いたり,辞書生成を非同期化することで, ストレスなく利用できる高速版もすでに開発済み[2]です.詳しくは論文をご覧ください.
  1. [1]荒川豊, 末松慎司, 田頭茂明, 山口雄輔, 田中裕大, 福田晃, “[技術展示]ネットワーク連携コンテキストア ウェア日本語入力支援システムの実装,” 電子情報通信学会技術研究報告, モバイルマルチメディア通信研究 会, Vol.109, No.380, MoMuC2010-58, pp. 31-34, 2010 年 1 月 21 日.
  2. [2]末松慎司, 荒川豊, 田頭茂明, 福田晃, “ネットワーク連携コンテキスアウェア IME の高速化手法,” 電子情報通信学会総合大会, No.B-15-18, 2010 年 3 月 19 日.
  3. [3]荒川豊, 末松慎司, 田頭茂明, 福田晃, “コンテキストアウェア IME システムの提案と実装,” 情報処理学会マルチメディア, 分散, 協調とモバイル (DICOMO2010) シンポジウム, No.4D-1, pp. 914 – 922, 2010 年 7 月 8 日. (優秀プレゼンテーション賞, 優秀論文賞, 論文誌採択)

詳細

GeoIMEのシステムの詳細を説明します.ご興味があれば一読ください.

GeoIMEは,コンテキストアウェアIMEという研究の一部を切り出したモノです.ここで,コンテキストとはユーザの状態のことです.我々は,iPhoneなどに内蔵されているGPSセンサーや加速度センサー,あるいはインターネット上にあるスケジュール などさまざまなものを組み合わせてコンテキストの推定を行い,ユーザの状況に最適な単語を推薦することを最終目標としています.GeoIMEでは,コンテキストの推定をGPSセンサーから得られる位置情報に限定して,位置に依存した単語を推薦しています.一方で,時間に依存する単語を推薦するシステムも構築しています. これは,例えばテレビドラマなどを見ながら,Twitterを使ったりする状況を想定し,テレビ番組表内の単語を時間に連動して推薦しています.また,利用中のアプリケーションと連動し,乗り換え案内アプリの時は駅名ばかりが候補に出るといったことも考えられます.将来的には,これらを複合的に組み合わせていく予定です.

システム構成

GeoIMEの構成を図に示す.左側はクライアントを示しており,携帯端末(Android限定)向けには,Simejiプラグイン版とOpenWnn拡張版があり,PC向けには,このサイトで用いているWebブラウザ版とATOKダイレクトプラグイン版がある.いずれの端末もGPSによる位置取得が可能であることを前提としています. これらの端末から,「緯度」「経度」「読み仮名」がサーバに送信され,サーバ側ではそれらの情報を元に,辞書の素となる単語を各API(Yahoo!ローカルサーチAPI,マピオン・ローカルサーチAPI,Foursquare API)から取得します.その後,それらの中から不要な単語や重複している単語を排除すると共に, Yahoo!日本語形態素解析APIを用いて読み仮名を付与します.そして,クライアントから送られた読み仮名と一致する単語だけを取捨選択して,クライアントにレスポンスします.



現在は,3つのAPIを用いていますが,今後,レストランAPIや最寄り駅API,個人のスケジュールAPIなど,さまざまなAPIをマッシュアップ可能な構成となっています.また,今回のデモ版では,読みの前方一致だけで単語を選択し,かつソーティングは行っていません.しかしながら,ユーザの現在の状況に 最も適した単語を推薦するためには,この部分のアルゴリズムが重要となります.研究では,アルゴリズムの1つとして,Web検索結果のランキングを用いたソーティング手法を提案[3]しています.提案手法では,得られた単語群をすべてWeb検索にかけ,そのヒット数をスコアとしてソートします.これは, 実世界で有効なランドマークは,Webの世界でも多用されているはずという考えに基づいたものです.他にも,距離の近い順や,周辺ユーザとの協調フィルタリングによるソートなど,さまざまなアルゴリズムを検討しています.

高速化手法

このデモは,非常に緩慢な動作になっていますが,その原因にはいくつか考えられます.最大の要因は辞書の素として利用している外部APIの応答速度です.利用するAPI数が増えるとその分,足し算で利いてきます.今回は特にFoursquare APIの遅さが目立ちます.次の要因としては,取得した文字列に読み仮名を付与するための形態素解析に要する時間です. これは候補となる単語数に比例して増大していきます.最後の要因は通信速度ですが,これはあまり問題になっていません.これは各場所で追加される単語はそれほど多くないため,端末側に転送されるデータサイズが小さいためです.そこで,2つの工夫を行った高速バージョンをすでに開発しています[2].下記はそのシステム構成を示した図です.


この図で行っている工夫は,
  • 工夫1:辞書更新の非同期化
    位置情報を定期的にサーバに通知し,サーバ側では,ユーザの入力とは非同期に辞書を生成します.そして,ユーザ端末内の辞書を定期的に更新しておきます.これにより,実際に文字を入力するときは, 端末内の辞書を検索するだけとなり,本システムを用いない場合と同等の速度を実現できます.
  • 工夫2:MeCabの導入
  • サーバのローカルにMeCabを導入することにより,読み仮名を振るために,外部APIを使わなくしています.
という2点です.これにより,理論的には,デフォルトのIMEと同じ速度で動作するようになりますが,定期的な位置通知と辞書更新を行うアプリケーションを端末内に常駐させる必要がでてきます.

有効性の検証

twitter-log 位置に連動して単語を推薦することがどの程度有効かを検証するためには,多数のユーザにさまざまな位置で利用してもらい,その結果をフィードバックしてもらう必要があります.しかしながら,これを大規模に行うことは非常に困難です. そこで,我々は2009年11月からGeoタグを付与できるようになったTwitterにいち早く着目し,Twitterを用いて位置と入力される日本語の関係性を分析しました[4][5].その結果,特定の位置で頻繁に利用される単語はというもの が存在するということがわかり,位置連動型IMEの有効性を間接的に示すことができました.下記は,ほんの一例ですが,「渋谷」という単語を含むツイート(黒い×)と「新宿」という単語を含むツイート(赤い)の地理的分布を示しています.
Tweetの地理分布
この図から,明らかにつぶやきに地理的偏りがあることがわかります!この結果を受け,情報処理学会MBL研究会優秀論文賞,ならびに,山下記念研究賞をいただき,学術的にも高い評価を受けています.現在も,ツイート収集システムは稼働しており,Geoタグを付与したユーザ約3万人のアカウントと100万件以上のツイートを 収集済みです.今後,そのデータの中から,位置依存キーワードを高速に発見するアルゴリズムを考案していく予定です.
  1. [4]荒川豊, 田頭茂明, 福田晃, “Twitter におけるコンテキストと単語の相関関係分析,” 情報処理学会研究報告,SLDM/EMB/MBL/UBI 合同研究発表会「組込み技術とネットワークに関するワークショップ ETNET2010」, Vol.2010-MBL-53 No.50, pp.1–7, 2010 年 3 月 27 日. (情報処理学会 MBL 研究会優秀論文賞,山下記念研究賞)
  2. [5]荒川豊, 田頭茂明, 福田晃, “[奨励講演]Twitter ログ分析におけるコンテキスト依存単語の抽出,” 情報処理学会研究報告, モバイルコンピューティングとユビキタス通信研究会, 2010 年 9 月 2,3 日