アプリケーション操作のための自然言語インタフェース構築- Google Calendar 操作を例にして 大谷麻璃

1

(指導教員：小林 一郎)

はじめに築し利用している．また，同時に，文の極性，モダリティを判別している．

近年，コンピュータの普及により様々なアプリケーションが日常的に使われ，その機能は複雑多様化している．それらのアプリケーションに対しての操作として，マウスやキーボード，リモコンといった操作デバ
イスが一般的となっているが，より親和性の高い操作の手段として，自然言語を使った操作が考えられる．
自然言語によるアプリケーションとの対話的なインタラクションの実現が可能になればアプリケーションの操作に不慣れな人にとって操作の可能性を広げることやユーザの複雑な操作要求を解釈し，実行することができると考えられる．そこで本研究では，自然言語によって種々のアプリケーションを操作可能にする汎用インタフェースの構築を目指して，操作対象が持つ機能と，操作入力となる自然言語を柔軟に結びつける手法を提案する．そのひとつの例として， Google カレンダーを対象とした自然言語操作インタフェースの構築を行う．

22.3

アプリケーション機能のモデル化

操 作 対 象 と な る ア プ リ ケ ー ション を Google
Calendar[4] とし，Google Calendar の操作に関するユースケースのオントロジーを図 2 に示す．削除や変更では，対象となる予定やカレンダーを特定してから各操作を行う必要がある．

自然言語インタフェース

操作要求として与えられた自然言語文を解釈し，アプリケーションの操作コマンドに操作要求を結びつけるために，本研究では自然言語文の意味格を抽出し，アプリケーションの操作のユースケースに結びつける．
図 2: Google Calendar の操作に関するユースケース

2.1 システム概要
図 1 に自然言語インタフェースの概要を示す．自然言語インタフェースは，自然言語解釈部とアプリケーションの機能モデル（操作のユースケース）及び自然言語の解釈結果を操作のユースケースと結びつけるインターフェースから成る．

また，操作の対象となるカレンダーと予定についてもタイトルなどの要素を属性としてオントロジーを図3 に示す．図 2 に示したユースケースのオントロジーに対応する要素のみに絞り，一部の要素は省略した．
予定は件名と日時が必須の要素であり，日時は開始時間と終了時間の組み合わせとして存在する．日付のみ指定された場合は終日の予定となる．

図 1: 自然言語インタフェースの概要

2.2 自然言語解釈部
自然言語解釈部においては，CaboCha/南瓜 [1] を用いて形態素解析，構文解析を行い，意味の選択制限の下で，意味格の解析を行う．本研究では 21 種類の意味格を採用し，入力文の意味格を判別している．意味格の判別には，NTT 語彙大系 [2] を参考に，動詞に対して対応する格を捉える辞書「意味格抽出辞書」を構

図 3: Google Calendar の操作対象オントロジー
図 2 に示された操作及び図 3 に示された属性と自然言語解釈部で判別された意味格の情報を対応させることで自然言語によるアプリケーションの操作を実現する．

23

2.4

自然言語要求とアプリケーション操作の連結

predicate_core_info value=削除
polarity value=肯定predicate_core value=する
goal value=予定
goal:prop_1 value=買い物
goal:date_2 value=2 月 16 日の

図 1 中の「操作語の特定」は，本稿においては予め決まった類似する意味の動詞を類語辞書としてまとめ，入れる 作成する などは「登録」， 消す 削除する は「削除」というユースケースにそれぞれ結び付くとして設定する．また，「登録」などの操作の際に必要となるパラメータは入力文から抽出した意味格を必要な変換を施して対応付ける．必要な変換には，足りない項目を補うことも含まれており，日付けの年や月の補足なども行う．なお，操作の対象が「予定」または「カレンダー」と明示されていない際は「予定」を対象にすることにしている．自然言語解析を行なった結果が，抽出した意味格がどのようにアプリケーションのユースケースに結びつくかについて，その一部を下の表 1 に示す．

*****カレンダー取得結果*****
イベント数： 1------------------------------------イベント（0)タイトル: 買い物
開始時間: 2010-02-16 17:00終了時間: 2010-02-16 18:00
場 所 : 池袋説 明 : 2 月 16 日に 17 時から池袋で買い物の予定を入れる------------------------------------このイベントを削除します (y/n)>ydelete success!

図 5: 例 2：予定の削除

表 1: 自然言語・アプリケーション間インタフェース
操作
ユースケース

登録

削除
検索

3

パラメータ
対象
件名
日付
開始時間
終了時間
場所
対象
件名
日付
対象
件名

意味格
goal
goal：prop 1
time continue：time 1
time continue：time 1
time continue
place
goal
goal：prop 1
time continue：time 1
goal
goal：prop 1

自然言語例

1 月 22 日の13 時から 16時まで研究室で歓迎会の予定を入れる
12 月 23 日の中間発表会の予定を消す
誕生日の予定を探すシミュレーション例

以下に Google Calendar の自然言語による操作例を示す．
例 1： カレンダーに新しい予定を「登録」する自然言語
要求「2 月 2 日に歓迎会の予定を入れて」の入力があった場合， 図 4 のように 2010 年 2 月 2 日に歓迎会の予定が入る．
例 2： カレンダーの特定の予定を「削除」する自然言語
要求「2 月 16 日の買い物の予定を削除して」の入力があった場合， 図 5 のように予定が出力され，確認をとったのち，特定した予定が削除される．

「削除する」は「削除」が predicate core info として，「する」が predicate core として判別される．この場合，predicate core info の情報を優先して操作語としている．また，同様な表現をユースケースに結びつけるた
め，各操作の類語辞書を参照し操作を特定している．
例 1 は「登録」，例 2 は「削除」の操作，また，どちらの例も目的語の主辞に相当する goal からその対象を「予定」と判断している．例 1 では，time date（日付に関する情報）のみが取得できたので「終日」の予定とし，開始時間と終了時間には日付のみが入れられている．現在は，「X 日」という日にちまであれば，近未来の予定の作成を前提として年と月を補っている．しかし，このように具体的な日付が明記されているものしか解釈することができない．また，例 2 では，goal:date 2から「日付」と goal:prop 1 から「件名」を取得したのでこれらを手掛かりにその値を取得し，予定の特定を行っている．

4

おわりに

本研究では，意味各解析を行い操作要求となる自然言語文をアプリケーション操作のユースケースへ結びつける自然言語インタフェースの提案を行った．アプリケーションとして Google Calendar を自然言語で操作し，提案したインタフェースの有効性を検証した．現在，システムが解釈可能な文は単文のみで複文や埋め込み文には対応していない．操作対象の必須のパラメー
タが具体的に含まれている文に対応は限られている．
今後の課題として，扱える自然言語表現を増やす．
また，より柔軟に自然言語文をアプリケーションの操作コマンドに結び付けられるように自然言語−アプリケーション間の連携を充実させることが挙げられる．

predicate_core value=入れる
goal value=予定
goal:prop_1 value=歓迎会
time_date value=2 月 2 日

参考文献[1] CaboCha/南瓜，
http://chasen.org/ taku/software/cabocha/[2] NTT 語彙大系，岩波書店，1997[3] 基礎日本語文法‐改訂版‐，益岡隆志，田窪行則，くろしお出版，1992[4] Google Calendar，http://www.google.com/calendar/[5] オントロジー構築入門，溝口理一郎，オーム社，2006[6] 大西可奈子，渡邉裕子，和泉憲明，小林一郎，橋田浩一：
日常的制約に基づいたマルチメディアコンテンツの管理と自然言語による操作，日本知能情報ファジィ学会誌，vol.20，No.5，pp.720-731，2008

図 4: 例 1：新しい予定を登録

3.1

考察

入力文の動詞に相当する情報である predicate coreに加え，predicate core info が存在するときはそちらを優先して操作語としている．例 2 の場合，複合動詞

24