アプリケーション操作の為の自然言語インタフェースの開発
理学専攻情報科学コース

1

大谷 麻璃

はじめに

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

2

自然言語インタフェース

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

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

利用している．

2.2.1

表 1: 語順の変更例
例文
例
1

例
2

2.3

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

意味格の有意性

意味格を用いる利点として，格と述語の関係を取得する為語順の変更に関して寛容である点が挙げられる．
表 1 に「7 月 8 日に 10 時から 13 時までゼミの予定を入れる」という例文 1 の語順を入れ替えた結果である
例 2，3 を示す．例 1 の「10 時から 13 時まで」という部分に関して係り受けが構文解析の段階で発生する
為，例 1 と例 2 のように係り受けの関係が変化しないような語順の入れ替えにおける解析結果は変わらない．
しかし，例 3 のように「10 時から 13 時まで」という係り受けの構造が変化している場合，意味格の付与の仕方が変わってしまう．この結果は構文解析器の性能に依存している．例 3 のような掛かり受けの影響を受けない意味格の付与がなされた場合は係り受けが発生しない範囲で自由に語順の変更が可能である．現状では，意味格ごとの語の係り受けの構造が語順によって変化しないものに対しては語順を入れ替えても解析結果（意味の付与）は変わらないと言える．

例3

図 1: 自然言語インタフェースの概要(指導教員：小林 一郎)

7 月 8 日に 10時から 13 時までゼミの予定を入れる10 時から 13時まで 7 月 8日にゼミの予定を入れる

10 時からゼミの予定を 13 時
まで 7 月 8 日に入れる

意味格解析結果

polarity value=肯定predicate core value=入れる
time date value=7 月 8 日
goal value=予定
goal:prop 1 value=ゼミ
time continue value=13 時
time continue:time 1 value=10 時から
polarity value=肯定predicate value=入れる
predicate core value=入れる
time date value=7 月 8 日
goal value=予定
goal:prop 1 value=ゼミ
time from value=10 時
time continue value=13 時

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

操作対象となるアプリケーションを Google Calendarとし，Google Calendar の操作に関するユースケースのオントロジーを図 2 に示す．削除や変更では，対象となる予定やカレンダーを特定してから各操作を行う必要がある．
また，操作の対象となるカレンダーと予定についてもタイトルなどの要素を属性としてオントロジーを作成した．図 2 に示したユースケースのオントロジーに対応する要素のみに絞り，一部の要素は省略した．予定は件名と日時が必須の要素であり，日時は開始時間と終了時間の組み合わせとして存在する．日付のみ指定された場合は終日の予定となる．
図 2 に示された操作及び操作対象の属性と自然言語解釈部で判別された意味格の情報を対応させることで自然言語によるアプリケーションの操作を実現する．

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

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

図 2: Google Calendar の操作に関するユースケース

2.4

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

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

登録

削除
検索

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 日に歓迎会の予定を入れて」の入力があった場合， 図 3 のように 2010 年 2 月 2 日に歓迎会の予定が入る．
例 2： カレンダーの特定の予定を「削除」する自然言語
要求「2 月 16 日の買い物の予定を削除して」の入力があった場合， 図 4 のように予定が出力され，確認をとったのち，特定した予定が削除される．

3.1

考察

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

図 4: 例 2：予定の削除「削除する」は「削除」が 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 を自然言語で操作し，提案したインタフェースの有効性を検証した．
今後の課題として，Google Calendar だけでなく他のアプリケーションの操作への適用も考えていきたい．

参考文献[1] NTT 語彙大系，岩波書店，1997[2] 基礎日本語文法‐改訂版‐，益岡隆志，田窪行則，くろしお出版，1992