* 研究内容 [#a905b444] * 理研におけるプロジェクト:研究内容 [#a905b444] **セミオティックベース [#s9c9c6bb] セミオティックベースは、選択体系機能言語学(Systemic Functional Linguistics)に即して設計された言語知識のデータベースです。選択体系機能言語学は、言語を社会的記号の体系として捉えた上でコミュニケーションがいかに成り立っているのかという点に焦点を絞り、ことばが使われている社会や状況(コンテクスト)を詳細に検討し抽象化・体系化することにより、ことばが産出・理解されていく過程を明らかにしようとしている言語理論です。言語学の分野だけでなく、自然言語処理や人工知能といった分野でもシステムの基礎として援用されています(例えば、Winograd 1972)。 セミオティックベースは、以下の8つのコンポーネントから成り立っています。 :コンテクストベース| コンテクストベースは、言語が用いられているコンテクストを記述するための情報が格納されています。コンテクストベースのコンテンツを用いることによって、言語の意味や言い回しに影響が大きいコンテクストの特徴として、(1) 言語を用いて何が行われているのか(活動領域)、(2) 誰が参加しているのか(役割関係)、(3) どのような媒体を用いて言語がやりとりされているのか(伝達様式)に焦点をあてて、コンテクストを特徴づけることができます。これらのパラメータの組み合わせによって、コンテクストのタイプ(状況タイプ)を規定します。 :ステージベース| ステージベースには、特定の状況タイプに典型的な対話の流れ(ジャンル構造)が納められています。 :知識ベース| 知識ベースには、特定の状況タイプにおいて参照される知識も含まれています。 :意味ベース| 意味ベースには、ある状況タイプにおいてやりとりされる言語の意味を記述するための意味的特徴と、その状況タイプにおいて当該の意味を表現するために用いられる語彙文法的な手段に関する制約が納められています。意味ベースのコンテンツは、(1) 命題内容に関わる意味特徴(観念構成的意味)、(2) 発話行為などに関わる意味特徴(対人関係的意味)、(3) 修辞構造などに関わる意味特徴(テクスト形成的意味)に分かれて格納されています。~ &br; #ref(mb_ideational.GIF,center) CENTER:【図1:意味システムネットワークと具現規則の例】~ :語彙文法ベース| 語彙文法ベースには、日本語の文法に則した構文パタンや語句の選択を記述するための語彙文法的特徴とそれを文字列として具現するための表現手段に関する制約が納められています。~ &br; #ref(wb_ideational.GIF,center) CENTER:【図2:語彙文法システムネットワークと具現規則の例】~ :表現ベース| 表現ベースは、現時点では音声には対応しておらず、書かれたテクストを解析することを目的に設計されています。句読法や文字列をどのように画面表示するかをHTMLなどで指定する際に利用することを想定しています。 :汎用辞書| 汎用辞書は、EDR日本語単語辞書、共起辞書、概念辞書をベースに、選択体系機能言語学的な情報として語彙文法特徴、意味特徴などを語彙項目毎に格納したものです。表2に「書く」という見出し語の汎用辞書レコードの例を示します。~ &br; CENTER:【表2:汎用辞書レコードの例】 #ref(gd_kaku.GIF,center) :状況特化辞書| 状況特化辞書は、特定の状況タイプにおいて用いられる語彙項目を格納したものです。汎用辞書とは異なり、状況タイプに関する情報が含まれています。表3に「変える」という見出し語の状況特化辞書レコードの例を示します。~ &br; CENTER:【表3:状況特化辞書】 #ref(ssd_kaeru.GIF,center) :概念辞書| 概念辞書は、特定の状況タイプにおいて用いられる概念を体系化したものです。各概念はスロットを持ち、このスロットによって他の概念と関係づけられています。また、概念は上位概念と下位概念の項目を通じてその状況タイプの中で階層関係を形成し、ドメインオントロジーとして利用することができます。表4に「changing」という見出し概念の概念辞書レコードの例を示します。~ &br; CENTER:【表4:概念辞書】 #ref(cr_changing.GIF,center) &br; 概念は大きくspeech-act, domain-proposition, domain-conceptの3種類あり、クラス概念とインスタンス概念の区別がなされています。 :コーパスベース| コーパスベースには、テクストとともに状況特徴、意味特徴、語彙文法特徴、概念などの情報を注釈として付与して格納されています。なお、上記の知識ベースのコンテンツである状況タイプで参照される知識は、すべて言語で書かれており、このコーパスベースのコンテンツと同じく注釈付きテクストとして格納されています。 **セミオティックベースを使ったテクスト解析と生成 [#vd446241] 上記のコンポーネントに格納された情報を用いて、日本語テクストの解析と生成を行うシステムを開発しました。解析も生成も数種類の方法がありますが、以下では、メインの方法のみを説明します。 ***テクスト解析 [#ob9e9283] セミオティックベースのコンテンツを利用して、コンテクストを加味したテクスト解析アルゴリズムを設計しました。このアルゴリズムは、既存の選択体系機能言語学に依拠していないパーザと電子化辞書を用いて行われる部分(前処理)と、状況解析、表現解析、語彙文法解析、意味解析、概念解析から構成されます。処理の流れと解析処理の結果を図3、表5に示します。 &br; #ref(understanding_process.GIF,center) CENTER:【図3:テクスト理解処理の流れ】~ &br; &br; CENTER:【表5:テクスト理解処理の結果】 #ref(understanding_result.GIF,center) &br; ***テクスト生成 [#pfba9494] セミオティックベースのコンテンツを利用して、コンテクストを加味したテクスト生成アルゴリズムを設計しました。このアルゴリズムは、生成すべき内容(what to say)を決定する処理と内容をどのような言い回しで表現するか(how to say)を決定する処理に大別できます。それぞれの処理の流れを図4、図5に示します。 #ref(generation_process1.GIF,center) CENTER:【図4:プランニングのプロセス】~ &br; &br; #ref(generation_process2.GIF,center) CENTER:【図5:文字列生成のプロセス】~ **プロトタイプシステム [#p948bc4a] セミオティックベースを使った言語の意味解析の有用性を実証するために、以下のような3種類の応用システムを開発しました。 :スマートヘルプシステム|スマートヘルプシステムは、ユーザと対話しながらソフトウェア操作に関するヘルプを提供することを目的としたシステムであり、出力するヘルプの知識源としてソフトウェアに付属するマニュアルテキストを利用します。 スマートヘルプシステムの処理過程の概略を図6に示します。~ #ref(help_structure.gif,center) CENTER:【図6:ヘルプシステムの処理過程】~ &br; ユーザが質問を入力すると、まずセミオティックベースを使った入力テキストの理解処理が行われます。次に、事前に同様にテキスト理解処理を施したマニュアルテキストと、理解結果であるインスタンス構造のマッチングを行い、質問に最も合致したマニュアルテキストを選び出します。その後、選ばれたマニュアルテキストの全体的な修辞構造に基づき、ユーザに出力すべき内容が記述された部分を抽出し(修辞構造プランニング)、最後にユーザの知識レベルに応じた言い換えルールを適用して、マニュアルテキストをユーザに理解しやすい表現に変換した上で出力します。 :言語プログラミングシステム|言語プログラミングシステムは、複雑な操作手順や実行条件を含む要求仕様を表現した自然言語テキスト(日常言語プログラムと呼ぶ)を入力として受け付けて、仕様に従ってソフトウェアの操作を実行するシステムです。表6は、電子メールの整理を行う日常言語プログラムの例です。 CENTER:【表6:日常言語プログラムの例】~ |理研の人から来たメールは「理研」フォルダに入れる。| |理研の人のメールアドレスは、末尾に「.riken.jp」が付く。| |研究室の人からのメールは、「研究室」フォルダに入れて自宅に転送する。| |ただし、伊藤さん、高橋さん、小林さんからのメールでセミオティックベースに関するものは、「SB」という名前のフォルダに入れる。| |この時、添付ファイルがあったらマイドキュメントの「SB」という名前のフォルダに保存する。| |また、添付ファイルが文書ファイルの場合は、それを表示する。| ユーザが入力するこのようなテキストには、ソフトウェア操作に必要な対象や制御条件が必ずしも明確に記述されていないため、言語に関する知識を利用してそれらを明示化する必要があります。入力された日常言語プログラムに対して、まずセミオティックベースを使ってテキスト理解の処理を行い、各文のインスタンス構造とプログラム全体の修辞構造を同定します。次に、それぞれの文をソフトウェア実行に適した形に言い換える正規化の処理を行います。正規化は、日常的な言語表現をソフトウェア的な表現に対応付ける過程と考えることができ、事前に用意された換言規則を適用することにより行われます。 次に、入力テキストの修辞構造を考慮して、正規化の結果得られた文に処理の制御構造を加えて統合したテキスト(実行可能プログラムと呼ぶ)を生成します。生成された実行可能プログラムは、言語で表現された操作や条件、ものをソフトウェア上の対応物に結びつける機能と、条件判断、繰り返しなどの制御構造を表わす表現を解釈してソフトウェア操作の制御を行う機能を利用して、応用ソフトウェアの操作命令に逐次変換、実行されます。 :言語ワードプロセッサ|言語ワードプロセッサは、文書作成に関するさまざまな知識を利用してユーザの文書作成作業を支援するシステムであり、ユーザは作成する文書についての希望や要求を日常的な言葉で与えることによって容易に文書作成を行うことができます。言語ワードプロセッサにおけるユーザと秘書の対話例を表7に示します。 CENTER:【表7:言語ワープロによる文書作成のシナリオ例】~ |ユーザ|暑中見舞いを書きたい。| |秘書|暑中見舞いをどなたに送りますか?| |ユーザ|友人と会社の人です。| |秘書|暑中見舞いの文面を変えますか?| |ユーザ|そうですね。| |秘書|まず友人宛の暑中見舞いを作ります。ワープロを起動します。| 文書作成の作業手順は、他の種類の作業(例えば、メールの整理)の手順と異なるだけでなく、作成する文書の種類や内容によっても変わってきます。作業や作業対象の種類のように言語使用や対話の構造に影響を与える要素を、日常言語コンピューティングでは、コンテクストベース内の状況特徴の組み合わせとして表される状況タイプによって特徴付けます。コンテクストベース内のステージベースには、状況タイプごとにジャンル構造と呼ばれる、その状況における典型的な発話やソフトウェア操作の順序を表した構造が納められています。 ジャンル構造は複数のステージ(場面)から構成され、ステージは複数のムーブ(発話または操作)から構成されます。このような状況に関する知識を利用して、ユーザの入力文から作業の状況タイプ(この例では「暑中見舞いの作成」)を同定し、適当な応答の内容を決定し出力するとともに、実行すべきワープロ操作の内容を決定、実行していきます。