(57)【特許請求の範囲】
【請求項１】
非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成する非構造化データ処理プラットフォームを備えた非構造化データ処理システムであり、
前記非構造化データ処理プラットフォームは、前記複数のコンポーネントの入出力を定義するメタデータを持ち、
前記複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、前記複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成するワークフロー生成部と、
前記ワークフロー生成部が生成したワークフローによる非構造化データの処理結果の評価を行う評価部と、
前記ワークフロー生成部が生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行うワークフロー実行部と、
前記ワークフロー生成部が生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する表示部と、を備えた
非構造化データ処理システム。
【請求項２】
前記非構造化データは、自然言語のデータである
請求項１に記載の非構造化データ処理システム。
【請求項３】
前記メタデータを多次元のデータ型に拡張し、前記複数のコンポーネントの入出力を多面的な入出力表現で行うようにした
請求項１又は２に記載の非構造化データ処理システム。
【請求項４】
前記複数のコンポーネントの内で候補となるコンポーネントを表示し、その表示したコンポーネントについてユーザにより選択があるとき、その選択されたコンポーネントを接続するラインを表示することで、前記ワークフロー生成部が生成するワークフローの候補を表示するようにした
請求項１〜３のいずれか１項に記載の非構造化データ処理システム。
【請求項５】
前記非構造化データの処理を行う複数のコンポーネントの内の少なくとも１つのコンポーネントは、機械学習を行うことで生成されたコンポーネントであり、
前記ワークフロー生成部が生成するワークフローは、機械学習を行うことで生成されたコンポーネントを含む
請求項１〜４のいずれか１項に記載の非構造化データ処理システム。
【請求項６】
非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成して、その生成されたワークフローを実行する装置の非構造化データ処理方法において、
前記複数のコンポーネントの入出力を定義するメタデータを持ち、
前記複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、前記複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成するワークフロー生成処理ステップと、
前記ワークフロー生成処理で生成したワークフローによる非構造化データの処理結果の評価を行う評価処理ステップと、
前記ワークフロー生成処理で生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行うワークフロー実行処理ステップと、
前記ワークフロー生成処理で生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する表示ステップと、を含む
非構造化データ処理方法。
【請求項７】
非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成して、その生成されたワークフローによる手順をコンピュータに実行させるためのプログラムにおいて、
前記複数のコンポーネントの入出力を定義するメタデータを保持する手順と、
前記複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、前記複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成するワークフロー生成手順と、
前記ワークフロー生成手順で生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行うワークフロー実行手順と、
前記ワークフロー生成手順で生成したワークフローによる非構造化データの処理結果の評価を行う評価処理手順と、
前記ワークフロー生成手順で生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する表示手順を、
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語文などの非構造化データを処理する非構造化データ処理システム、非構造化データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、例えば問題文に対する回答文を作成する処理や、入力文を他の言語の文章に変換する処理などの各種言語処理を行うシステムは、構築に非常に手間と時間がかかるという問題があった。具体的には、自然言語処理を行うための処理ツールとして、音声認識ツール、言語モデルを生成するツール、構文解析を行うツール、単語アライメントを行うツール、自動翻訳を行うツールなどの様々なツールがある。また、同じような処理を行うツールであっても、使用目的や処理精度が異なる様々なツールが存在する。
【０００３】
特許文献１には、ＵＩＭＡ（Unstructured Information Management Architecture）のアーキテクチャを利用した自動テキスト分析システムの例についての記載がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３６２５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これらの様々なツールを組み合わせることで、目的とする自然言語文処理が行えるシステムを組むことは可能である。しかしながら、実際には自然言語文を処理する既存のツールは、そのツールを作成した際の要求に合わせて専用に設計されたものがほとんどである。したがって、何らかの目的をもって複数の言語処理ツールを組み合わせる場合、それぞれのツールの間でのデータの入出力などが適正に行えるようなチューニング作業が必要であり、自然言語文の入力から結果の出力までのシステムを完成させるためには、専門的な知識を持った者が時間をかけて作業を行う必要があった。従来、自然言語文を処理するワークフローを自動構築するようなシステムは存在しなかった。
【０００６】
上述したように、様々な処理モジュールで共通となるアーキテクチャとして、ＵＩＭＡと称されるものが既に開発されている（特許文献１参照）。このＵＩＭＡを適用することで、複数の言語処理ツールが共通のプラットフォームで実行できるようになる。
しかしながら、ＵＩＭＡは、データ構造や処理を行う階層構造などを規定するだけであるため、専門家でないユーザが使いこなすためには敷居が高いという問題があった。また、ＵＩＭＡは共通のプラットフォームを提供するだけであるため、システムの拡張や、言語処理ツールそれぞれのカスタマイズなどは、システムの設計者に任されており、ＵＩＭＡの適用だけで、上述したような自然言語文を処理するワークフローが自動構築できるものではない。
【０００７】
なお、ここまでは、自然言語文を処理するワークフローを構築する場合の問題について説明したが、その他の非構造化データを処理するワークフローを構築する場合にも同様の問題がある。自然言語文以外の非構造化データには、例えば画像データ、動画データ、音声データなどがある。
【０００８】
本発明はこれらの点に鑑みてなされたものであり、自然言語文などの非構造化データを処理するワークフローが自動構築できる非構造化データ処理システム、非構造化データ処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の非構造化データ処理システムは、非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成する非構造化データ処理プラットフォームを備え、複数のコンポーネントの入出力を定義するメタデータを持つ。
また、本発明の非構造化データ処理システムは、ワークフロー生成部と、評価部と、ワークフロー実行部と、表示部とを備える。
評価部は、ワークフロー生成部が生成したワークフローによる非構造化データの処理結果の評価を行う。
ワークフロー生成部は、複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成する。
ワークフロー実行部は、ワークフロー生成部が生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行う。
表示部は、ワークフロー生成部が生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する。
【００１０】
本発明の非構造化データ処理方法は、非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成して、その生成されたワークフローを実行する非構造化データ処理方法であり、複数のコンポーネントの入出力を定義するメタデータを持つ。
そして、複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成するワークフロー生成処理を行う。
また、ワークフロー生成処理で生成したワークフローによる非構造化データの処理結果の評価を行う評価処理を行う。
さらに、ワークフロー生成部が生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行うことで、ワークフロー実行処理を行う。
さらにまた、ワークフロー生成処理で生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する表示処理を行う。
【００１１】
本発明のプログラムは、非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成して、その生成されたワークフローによる手順をコンピュータに実行させるためのプログラムであり、以下の手順をコンピュータに実行させるためのプログラムである。
（ａ）複数のコンポーネントの入出力を定義するメタデータを保持する手順
（ｂ）複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成するワークフロー生成手順
（ｃ）ワークフロー生成手順で生成したワークフローによる非構造化データの処理結果の評価を行う評価手順
（ｄ）ワークフロー生成手順で生成したワークフローから適切なワークフローを選択して、その選択されたワークフローを適用して、非構造化データの処理を行うことで、ワークフロー実行処理を行うワークフロー実行手順
（ｅ）ワークフロー生成手順で生成したワークフローを、少なくともそれぞれのコンポーネントを示す図形を接続した形式で表示する表示手順
【発明の効果】
【００１２】
本発明によると、適切なコンポーネントが選ばれて、非構造化データの入力から処理結果を得るまでのワークフローが自動的に生成されるため、情報処理に関する知識がないユーザであっても、必要な処理を行うシステムを自動的に得ることができるようになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態によるシステム例を示す構成図である。
【図２】本発明の一実施の形態による処理をクライアント端末が行う場合の構成例を示すブロック図である。
【図３】本発明の一実施の形態による処理の流れの例を示すフローチャートである。
【図４】本発明の一実施の形態によるコンポーネント読み込み時の表示例を示す図である。
【図５】本発明の一実施の形態によるコンポーネント追加時の表示例を示す図である。
【図６】本発明の一実施の形態によるコンポーネントの接続状態の例を示す図である。
【図７】本発明の一実施の形態によるワークフローの表示例（例１）を示す図である。
【図８】本発明の一実施の形態によるワークフローの表示例（例２）を示す図である。
【図９】本発明の一実施の形態によるワークフローの一覧の表示例を示す図である。
【図１０】本発明の一実施の形態によるワークフロー実行モードの選択画面の表示例を示す図である。
【図１１】本発明の一実施の形態による比較グループの作成例（例１）を示す図である。
【図１２】本発明の一実施の形態による比較グループの作成例（例２）を示す図である。
【図１３】本発明の一実施の形態による学習素性による処理の流れの例を示すフローチャートである。
【図１４】本発明の一実施の形態によるコンポーネントの組み合わせの例を示す図である。
【図１５】本発明の一実施の形態による比較結果の表示例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施の形態の例（以下「本例」と称する。）を、添付図面を参照して説明する。本例のシステムは、非構造化データの一例として、自然言語文のデータを扱うものとした。この自然言語文のデータを扱うのは１つの例であり、画像データ（動画データ、静止画像データ）や音声データなどのその他の非構造化データを扱うシステムに本発明を適用してもよい。
【００１５】
［１．システム全体の構成例］
図１は、本例の自然言語処理システム全体の例を示す。
本例の自然言語処理システムは、それぞれがネットワークを介してデータ転送可能に接続される、クライアント端末１０とサーバ２０によって構築される。また、本例の自然言語処理システムは、言語処理を行うコンポーネント（ツール）が用意された外部のサーバ３０〜７０ともネットワークを介してデータ転送を行うことができる。言語処理を行うコンポーネントとしては、例えば音声認識用のコンポーネント、言語モデルを生成するコンポーネント、構文解析を行うコンポーネント、単語アライメントを行うコンポーネント、自動翻訳を行うコンポーネントなど様々なものがある。これらのコンポーネントは、非構造化データを扱うＵＩＭＡのアーキテクチャにより、共通のプラットフォーム上でデータ交換を行うことが可能なものである。共通のプラットフォーム上でデータ交換を可能とするために、それぞれのコンポーネントは、データフォーマットとデータ構造とデータ表現を統一すると共に、階層構造を明確化する。
【００１６】
ここで、コンポーネントの例について示すと、例えば文境界検出器として作動するコンポーネントと、単語境界検出器として作動するコンポーネントとがある。
文境界検出器は、付加情報なしのテキストを受け取り、そのテキストに文境界を付加して出力する。文境界検出器の入力と出力の定義例を示すと、例えば入力は[Text, N/A]、出力は[Text、Sentence]となる。
単語境界検出器は、文境界の付加されたテキストを受け取り、そのテキストに単語境界を付加して出力する。単語境界検出器の入力と出力の定義例を示すと、入力は[Text, Sentence]、出力は[Text、Token]となる。
【００１７】
上述した入力や出力を定義する［Text］,［Sentence］,［Token］等は、生情報や付加情報の種類を表すデータ型である。データ型は階層的に定義され、親子関係が利用できるようになっている。例えば、単語境界に品詞を付与したものは、［POSToken］という［Token］の子データ型として定義される。
既存ツールをコンポーネント化するにあたっては、必要に応じて実装の修正を行い、入出力による完全な記述が行えるようにする。既存ツールのコンポーネント化に際しては、なるべく細かく分割することで、再利用性（組み合わせ数の増加）の向上を図る。ただし、あくまで入出力による完全な記述が行える範囲にとどめる。たとえば一般的なプログラミングの関数も入出力の定義がなされているが、［Integer］や［String］と書いてあるだけで暗黙の条件が存在することが多く、そのままではコンポーネント化することはできない。
【００１８】
このようにコンポーネント化をしていくと、コンポーネントごとに必要なデータ型があり、それらを合わせてデータ型階層を構築する。データ型は際限なく深い階層を作れてしまうが、完全な入出力記述を行うのに必要なデータ型のみにとどめることで、不要なデータ型を定義する必要がなくなる。一方、完全な入出力記述を行うのに必要なデータ型に加え、比較評価の対象となりうるデータ型については、これを定義することが必要となる。なお、サーバ２０は、言語処理を行うコンポーネントの一部又は全てを備えていてもよい。
【００１９】
クライアント端末１０は、ユーザが操作するキーボードなどの入力部や、処理結果などを表示する表示部を備えた情報処理端末である。ユーザが初めてシステムを使う際は、サーバ２０からこのクライアント端末１０にクライアントプログラムが自動的にダウンロードされ自動的にインストールされる。このクライアント端末１０は、ネットワークを介してサーバ２０にアクセスして、ワークフローの作成指示を行う。
サーバ２０は、自然言語処理プラットフォームを備える。このサーバ２０に用意された自然言語処理プラットフォームは、メタデータ記憶部２１とリソース部２２とを有する。
【００２０】
メタデータ記憶部２１は、自然言語処理プラットフォームで使用することが可能な言語処理コンポーネントについての情報（メタデータ）を記憶する。リソース部２２は、クライアント端末１０から指示された要求に基づいて、メタデータ記憶部２１に記憶されたメタデータを使って、適切な言語処理についての実行可能なワークフロープログラムを生成する。
【００２１】
メタデータ記憶部２１が記憶するメタデータには、このシステムが使用可能なそれぞれのコンポーネントについて、入出力を定義したデータを持つ。すなわち、上述したように、コンポーネントごとの入力及び出力の定義と、データ型階層の定義が、メタデータで示される。
メタデータ記憶部２１は、リソース部２２で定義されたコンポーネントを実行するプログラムを記憶する。コンポーネントを実行するプログラムは複数に分割することができる。コンポーネントを実行するプログラムは複数のコンポーネントで共有することもできる。
クライアントプログラムがワークフローを生成する際には、クライアント端末１０から指示された、入力となる自然言語文の形式と、最終的に出力したいデータ形式とをクライアントプログラムが判断して、その入力から出力が得られるまでに必要なコンポーネントを探し出す処理を行う。クライアントプログラムによる具体的なワークフロー生成処理の例は後述する。
【００２２】
サーバ４０，５０，６０，７０は、実行可能なワークフロープログラムを実行する計算資源である。クライアント端末１０内のクライアントプログラムの指示により、リソース部２２から転送された言語処理を行うコンポーネントプログラムを備える。そして、サーバ２０が生成したワークフローで指定されたコンポーネントを備えたサーバ（サーバ４０〜７０のいずれか、または複数）内のコンポーネント実行部が、言語処理を実行する。
複数のサーバ４０〜７０が分散してコンポーネントを持つシステムとするのは、あくまでも１つの例であり、例えば１つのサーバ４０に全てのコンポーネントを持たせて、サーバ４０がコンポーネント実行部（ワークフロー実行部）を持つようにしてもよい。あるいは、自然言語処理プラットフォームを持つサーバ２０が、言語処理を行うコンポーネントを持つようにしてもよい。さらに、本例の自然言語処理プラットフォームで作成されたワークフローで指定されたコンポーネントのデータを、各サーバ４０〜７０からクライアント端末１０に転送して、クライアント端末１０がワークフローを実行するワークフロー実行部を備えるようにしてもよい。
【００２３】
［２．クライアント端末がワークフローの生成処理を実行する場合の構成例］
図２は、クライアント端末１０が、サーバ２０から必要な情報を取得して、ワークフローの生成処理を行う場合の機能ブロック図である。図２では、クライアント端末１０が、メタデータ記憶部１７を備え、メタデータを蓄積する例を示しているが、クライアント端末１０がサーバ２０などとデータ転送を行って、随時サーバからメタデータを読み出すようにしてもよい。
【００２４】
図２に示すように、クライアント端末１０は、ユーザが操作するキーボードやマウスなどからなる入力部１１を備える。入力部１１にユーザ操作指令が入力されると、その指令が条件判定部１２に供給される。条件判定部１２は、ユーザが入力した条件を判定し、判定した条件をワークフロー生成部１３に伝える。例えば、ユーザは、入力部１１を使ってワークフローの最初のコンポーネントと最後のコンポーネントとを指定する。このとき、条件判定部１２が、その指定されたコンポーネントを判定する。あるいは、ユーザが直接コンポーネントを指定する代わりに、コンポーネントの種類，機能などの条件の詳細を指定してもよい。これらの処理を条件判定部１２が行う際には、メタデータ記憶部１７が記憶したメタデータを参照する。クライアント端末１０のメタデータ記憶部１７が記憶したデータは、サーバ２０のメタデータ記憶部２１から読み出したデータである。
【００２５】
ワークフロー生成部１３は、条件判定部１２からワークフローの条件が伝えられると、ワークフローを作成する。このとき、ワークフロー生成部１３は、メタデータ記憶部１７に記憶されたメタデータを参照して、条件に合致するコンポーネントを探し出す。
すなわち、ワークフロー生成部１３がメタデータ記憶部１７に記憶されたメタデータを参照することで、ワークフロー生成部１３は、任意のコンポーネントのペアが接続可能かどうかを自動的に判定することができる。つまり、一方のコンポーネントのデータ出力形式と、他方のコンポーネントのデータ入力形式とが同じ階層で一致する場合に、この２つのコンポーネントは接続可能と判断することができる。
【００２６】
このように入出力の定義と階層構造のデータとを使って、ワークフロー生成部１３が、接続可能なコンポーネントを接続して行くことにより、実行可能なワークフローが生成される。
ワークフロー生成部１３がワークフローを生成する際の制約条件がない場合には、作成可能なワークフローの数が多くなりすぎるので、ユーザは、ワークフローの最初のコンポーネント（入力の指定）と、最後のコンポーネント（目的の指定）を、表示部１６での表示を見ながら指定するのが好ましい。
【００２７】
例えば、最初の状態では、表示部１６は使用可能なコンポーネントの一覧を表示し、ユーザはＧＵＩ操作などでその一覧中から最初のコンポーネントと最後のコンポーネントを指定することができる。あるいは、最初のコンポーネントと最後のコンポーネントの途中にあるコンポーネントを指定してもよい。
このようにユーザがコンポーネントを指定することにより、生成するワークフロー数を削減した上で、目的に合致した適切なワークフローを生成することができる。
【００２８】
なお、ワークフロー生成部１３がワークフローを生成する際に、オプションとして、必ず特定のコンポーネントを用いるように指定するようにしてもよい。
また、ワークフロー生成部１３が作成したワークフローの数が多い場合には、予め決められた所定の優先順序に従って、候補のワークフローを表示してもよい。例えば、候補のワークフローが複数あるとき、単純な構造のワークフローから複雑な構造のワークフローまで、順次表示するようにしてもよい。
【００２９】
ワークフロー生成部１３が作成したワークフローは、表示部１６に表示される。なお、入力部１１を使ってユーザが入力した条件についても、表示部１６に表示される。
そして、ワークフロー生成部１３が作成したワークフローは、評価部１４によって評価される。このとき、評価部１４は、例えば「人間がつけた正解」を、ワークフローによる処理が、何パーセント自動的に復元できたかで評価を行う。但し、数値の算出方法はデータや目的によってさまざまである。
予め評価を行うコンポーネントを用意して、評価部１４がそのコンポーネントを実行することにより評価を行うようにしてもよい。また、評価部１４は、複数種類の異なる評価を同時に実行して、多面的に評価を行うようにしてもよい。
評価部１４が評価した結果は、表示部１６に表示される。例えば、表示部１６には、何パーセント自動的に復元できたかの数値が表示される。
【００３０】
また、クライアント端末１０は、ユーザ選択部１５を備える。ユーザ選択部１５は、入力部１１からの指示により、作成したワークフローのいずれかを選択して、自然言語文のデータを処理するワークフローを確定する。確定したワークフローは、表示部１６に表示される。
その後、クライアント端末１０がワークフローを実行する際には、そのワークフローを構成するそれぞれのコンポーネントを持つサーバ（例えばサーバ４０〜７０のいずれか）に対して、指定した自然言語文の処理を指示する。そして、サーバからの処理結果をクライアント端末１０が受け取り、この受け取った処理結果を必要に応じて、クライアント端末１０から別のコンポーネントを持つサーバに送ることにより、クライアント端末１０からの指示でワークフロー全体の処理を実行することができる。
【００３１】
なお、既に説明したように、この図２のクライアント端末１０の構成は、ワークフローの作成処理に必要なデータやプログラムをクライアント端末１０が取得して、クライアント端末１０がワークフローの作成処理を実行する場合の例である。これに対して、サーバ側が一部又は全ての構成要素を備えて、クライアント端末１０はユーザからの操作入力と表示だけを行うようにしてもよい。また、クライアント端末１０が、それぞれのコンポーネントの処理を実行する能力がある場合には、それぞれのコンポーネントのデータをクライアント端末１０が取得して、クライアント端末１０がワークフローで示された各コンポーネントの処理を行うようにしてもよい。
【００３２】
［３．ワークフロー生成時の処理例］
図３は、クライアント端末１０が、サーバ２０から必要なデータを取得して、ワークフローを生成する際の処理例を示すフローチャートである。
まず、クライアント端末１０のクライアントプログラムは、計算資源の用意と指定を行う（ステップＳ１１）。
そして、クライアント端末１０の条件判定部１２及びワークフロー生成部１３は、サーバ２０のメタデータ記憶部２１から、必要なメタデータを取得する（ステップＳ１２）。
【００３３】
次に、クライアント端末１０は、ユーザ操作で入力された自然言語処理を実行するために必要なコンポーネントの検索を行う（ステップＳ１３）。このとき、ユーザは、最初と最後のコンポーネントを指定するなどの、条件を指定する操作を行うことができる。またユーザは、最初と最後の処理の種類などの、その他の検索条件を指定してもよい。
【００３４】
クライアント端末１０のワークフロー生成部１３が検索したコンポーネントは、クライアント端末１０が備える表示部に表示される。このとき、ユーザは、表示されたコンポーネントの中から、いずれかのコンポーネントを指定することができる。また、複数のコンポーネントを選択して、その選択したコンポーネントを接続するような操作を、クライアント端末１０の画面上で行うこともできる。
【００３５】
クライアント端末１０のワークフロー生成部１３は、ステップＳ１３で検出されたコンポーネントやユーザにより指定されたコンポーネントを使用して、ワークフローを生成する（ステップＳ１４）。このとき、ワークフロー生成部１３では、ユーザによるコンポーネントの指定がない場合には、自動的にワークフローを生成する処理が行われる。また、最初と最後などの一部のコンポーネントが指定されたとき、ワークフロー生成部１３では、それらのコンポーネントを使って、半自動でワークフローが生成される。
【００３６】
そして、クライアント端末１０のユーザ選択部１５は、作成されたワークフローの候補が複数あるか否かを判断する（ステップＳ１５）。このステップＳ１５の判断で複数の候補がある場合、ユーザ選択部１５は、ワークフローの選択画面を表示部１６に表示する（ステップＳ１６）。
そして、ユーザ選択部１５は、ユーザ操作により作成されたワークフローの候補から、いずれかのワークフローを選択して確定する処理が行われたか否かを判断する（ステップＳ１７）。ワークフロー生成部１３が作成した候補が、ワークフローに確定しない場合には、ステップＳ１３の処理に戻る。
【００３７】
そして、ステップＳ１７でいずれかの候補のワークフローが、自然言語文を処理するワークフローとして確定したとき、クライアント端末１０は、そのワークフローを構成する各コンポーネントを保持したサーバに対して、実行モードを指定する（ステップＳ１８）。そして、クライアント端末１０はリソース部２２から必要なコンポーネント実行プログラムをサーバ４０〜７０に転送し、ＵＩＭＡのアーキテクチャを利用して、ワークフローを作成するのに必要なサービスを展開する（ステップＳ２１）。そして、クライアント端末１０から実行モードが指定されたサーバは、指定された自然言語文の処理を指示する（ステップＳ２２）。
【００３８】
その後、評価部１４は、サーバでのコンポーネントの実行結果を評価する（ステップＳ１９）。評価部もコンポーネントの一種なので、サーバ４０〜７０、あるいはクライアント端末で実行してもよい。評価部１４は、コンポーネントを実行したサーバから、処理結果のデータを取得して、評価処理を行う。例えば「人間がつけた正解」を、ワークフローによる処理が、何パーセント自動的に復元できたかで評価を行い、そのパーセントの数値を表示部１６に表示する。
表示部１６に表示された評価結果を見たユーザは、そのワークフローで良いか否かを判断し（ステップＳ２０）、該当するワークフローで良いと判断したときには、ワークフローの作成処理を終了する。また、ユーザが、該当するワークフローの評価結果などからそのワークフローが良くないと判断したときには、ステップＳ１３のコンポーネントの検索に戻って、再度、別の条件でワークフローの作成処理を実行する。
【００３９】
［４．操作画面の例］
次に、図４以降の図を参照して、ワークフローを作成する際の、表示部１６での表示画面の例について説明する。
図４は、クライアント端末１０が、サーバ２０からコンポーネントについてのメタデータを転送中の表示画面の例である。
この図４に示すように、本例のシステムが使用可能なコンポーネントを持ったサーバからクライアント端末１０にコンポーネントに関するデータを受信する際には、ローディング中の表示が行われる。
【００４０】
図５は、新たにコンポーネントを追加する場合の、表示部１６での表示画面の例である。
図５の左側には、既に実装されているコンポーネント配布サイトのアドレスのリストが表示されている。また、図５の右側には、左側のリストから選んだサイトについての説明が記載されている。
そして、新たに追加したいコンポーネントがある場合には、画面上側の「ＵＲＬ」と記載された欄に、そのコンポーネントが得られるサーバのアドレスを入力した後、その欄の右横の「Ａｄｄ」と表示されたボタンをユーザが押すことで、追加処理が行われる。サーバ３０はそのような追加サーバの例である。
さらに、「Ｒｅｍｏｖｅ」と表示されたボタンをユーザが押すことで、画面上で現在選択されているアドレスのサイトが削除されると共に、そのサイトが提供するコンポーネントが、コンポーネントリストから削除される。
この図５に示す画面での操作により、クライアント端末１０がワークフローを作成する際に、使用可能なコンポーネントを自由に追加または削除することができる。
【００４１】
図６は、各コンポーネントについてのメタデータを使用して、コンポーネントを画面上に表示させた例を示す。図６の例では、２つのコンポーネントを接続した例を示す。
この例では、それぞれのコンポーネントを四角形の箱で示し、それぞれのコンポーネントは、複数の出力形態を持っていることがメタデータで示され、画面上では、それぞれの出力形態ごとに、個別の出力部が示される。そして、２つのコンポーネントの間を接続した線で示される出力部と入力部が、出力及び入力に使用されることが示される。このコンポーネントの出力部と入力部との線での接続は、ユーザが表示部１６の画面上で操作を行って、接続することを指示するようにしてもよい。但し、出力部と入力部のデータ形式が一致しない場合には、画面上で線による接続ができないように制限される。
【００４２】
図７は、ワークフローを作成した際の表示例を示す。
図７の例では、３つのコンポーネントを直列に接続した、比較的簡単なワークフローの例を示す。この例でも、それぞれのコンポーネントを四角形の箱で示し、それぞれのコンポーネントの出力部と入力部との適切な箇所が線で接続されている。また、図７の左側のリストは、用意されたコンポーネントの一覧を示すものである。図７に示すように、コンポーネントの一覧の中で、現在選択中のコンポーネントが目立つように、表示色の反転表示などを行うことが望ましい。
【００４３】
図８は、ワークフローを作成した際の別の表示例を示す。
図８の例では、５つのコンポーネントを接続した、比較的複雑なワークフローの例を示す。この例でも、それぞれのコンポーネントを四角形の箱で示し、それぞれのコンポーネントの出力部と入力部との適切な箇所が線で接続されている。左端のコンポーネントからは、別々の四つのコンポーネントへと接続されている。そのうち一番上で接続されたコンポーネントの出力部は、左端のコンポーネントの出力部と同時に右端のコンポーネントに接続している。
【００４４】
図９は、最初のコンポーネントと最後のコンポーネントとの間に、複数の異なるコンポーネントによるワークフローが作成可能である場合に、それぞれのワークフローを構成するコンポーネントを、それぞれのコンポーネントの名称で簡単に示した例である。
図９の例では、最初のコンポーネントと最後のコンポーネントとの間に、２つのコンポーネントがある状態を示し、それぞれ異なるコンポーネントの組み合わせによる５種類のワークフローを示している。
この図９に示すような表示は、コンポーネント間の接続を行う場合に、複数のワークフローがあるときにその選択肢を示す表示形式である。ユーザはこの中から希望のワークフローを選択する。
【００４５】
図１０は、ワークフローが作成された状態で、実行モードを指定するときの例を示す図である。
この図１０の例では、「Ｒｕｎ  Ｌｏｃａｌｌｙ」と記載された欄をユーザが選択することで、図示されたワークフローの各コンポーネントのデータが、サーバからクライアント端末１０に転送されて、クライアント端末１０で実行される。このときには、結果出力先のディレクトリが生成される。
また、「Ｒｕｎ  ｏｎ  Ｓｅｒｖｅｒｓ」と記載された欄をユーザが選択すると、図示されたワークフローの各コンポーネントが、それぞれのコンポーネントを保持したサーバ側で実行される。
さらに、ワークフローの一部または全部を、待ち受け遠隔サービスとして展開することもできる。待ち受け遠隔サービスは、ＵＩＭＡのアーキテクチャを利用して指定したサーバに展開され、コンポーネントの一つとして利用できる。
【００４６】
図１１は、比較グループを作成する場合の表示例を示す。
図１１に示すように、画面上に表示されたコンポーネントの内で、現在表示中のグループに属すコンポーネントを示す箱と、そのコンポーネントを接続する線だけを強調表示する。そして、現在表示中のグループに属さないコンポーネントについては、灰色で薄く表示する。
例えば、図１１の例では、３つのグループ（Ｇｒｏｕｐ１，Ｇｒｏｕｐ２，Ｇｒｏｕｐ３）を示し、その３つのグループの内の選択中のグループを示す箱や線が、強調表示されている。
【００４７】
この図１１の比較グループの作成は、例えばワークフローが表示された画面から、１つのコンポーネントを選択して、そのコンポーネントについて、比較グループを作成する処理を選ぶことで、実行される。このときには、選択されたコンポーネントについての出力タイプが列挙され、出力タイプの選択ができる。また、そのグループに含めるコンポーネントの選択をすることも可能である。
【００４８】
図１２は、３つの比較グループが作成された場合の表示例を示す。
画面上の３つの比較グループは、それぞれ「Ｇｒｏｕｐ１」，「Ｇｒｏｕｐ２」，「Ｇｒｏｕｐ３」と記載されたラベルで表現されている。それぞれの比較グループは、同じ出力タイプをもつコンポーネントの集合を保持する。ユーザは、それぞれの比較グループに、ひとつまたは複数の評価コンポーネントを指定できる。
コンポーネント間の接続は、評価を行う前に実行されるワークフローを示している。この接続の通りワークフローを実行したのちに、それぞれのグループについて評価が行われる。
【００４９】
［５．学習素性による評価処理の例］
図１３のフローチャートは、学習素性による評価処理を行う場合の例である。
先に説明した評価部１４では、あらかじめ実行可能なコンポーネントを用意して、その評価を行うようにしたが、システムが機械学習を行うことで、より精度の高いコンポーネントを作成することができる。
図１３は、機械学習によりコンポーネントの作成を行った場合の例を示す。まず、入力部１１には、教師つき機械学習のための学習データが供給される（ステップＳ４１）。学習データとしては、例えば人間が作成した正解による文境界データなどがある。学習素性生成コンポーネントは、この学習データから学習素性を生成し（ステップＳ４２）、学習素性抽出コンポーネントはユーザの指示に基づいてその学習素性を抽出する（ステップＳ４３）。そして、学習器コンポーネントは、学習器として機能する処理部の訓練を行い（ステップＳ４４）、評価部１４はその訓練結果を評価する（ステップＳ４４）。訓練された処理部は、新しく作成されたコンポーネントとして、ほかのワークフロー内で利用可能になる。
学習器としては、サポートベクトルマシン、条件付き確率場、最大エントロピーモデル、隠れマルコフモデルなどいくつかの異なる学習手法が利用可能である。学習結果の解析を助けるために、どの学習素性が出力結果に影響を与えたかを解析する機能を提供する。
このようにして、ユーザは、機械学習により新しいコンポーネントを作成し、その評価を行うことができる。
【００５０】
［６．コンポーネントの組み合わせの例］
本例のシステムでは、自然言語文の処理を行うコンポーネントを使用して、ワークフローを作成する場合について説明した。ここで、自然言語文の処理を行うコンポーネントの具体的な例としては、例えば図１４に示すものがある。この図１４の例は、自然言語文である質問文がシステムに入力して与えられたときに、その質問文に対する回答文を作成する場合である。
【００５１】
すなわち、質問文に対する回答文作成するワークフローは、自然言語文の質問解析コンポーネントと、自然言語文からクエリを生成するクエリ生成コンポーネントと、文章の単語の意味を検索する検索エンジンのコンポーネントと、検索結果などの情報を抽出する情報抽出コンポーネントと、質問と検索された情報などとの適合度を計算する適合度計算コンポーネントと、解答文を生成する解答文生成コンポーネントとを有する。それぞれの種類のコンポーネントは、２〜５種類程度の複数種類のものが用意され、クライアント端末１０などがワークフローを作成する際には、それぞれのコンポーネントの組み合わせがあり得る。
【００５２】
［７．結果の表示例］
図１５は、ワークフローを作成した結果の表示例を示す。
この図１５に示した表は、各行が異なるワークフローのペアを比較評価した結果である。例えば１行目は、ワークフローＡ（左側の３つのコンポーネント）とワークフローＢ（右側の３つのコンポーネント）の結果を比較したものである。それぞれの行で、「Ｔｏｔａｌ」と記載された欄が、評価の統計結果である。統計結果としては、「Ｇ」がワークフローＡの比較対象データ数を示し、「Ｔ」がワークフローＢの比較対象データ数を示し、「Ｍ」が「Ｇ」と「Ｔ」のうち一致したとみなされた数、それらをもとにした統計値Ｆ１-score(Ｆ値)を示す。Ｆ値は、Ｐ（Precision：精度）とＲ（Recall：再現率）の相加平均である。Ｆ，Ｐ，Ｒは、自然言語処理において最もよく使われる評価尺度である。
【００５３】
この結果表示は、比較するワークフローのいずれかが、人間の作った正解データを読み込むワークフローであった場合は、いわゆる性能評価になる。また、比較するワークフローがいずれも作成したワークフローである場合には、ワークフロー同士の類似度を計算していることになる。
【００５４】
［８．変形例］
なお、ここまで説明した実施の形態の例では、自然言語処理を行うシステムに適用した例とした。この自然言語文のデータを扱うのは１つの例であり、本発明は、画像データ（動画データ、静止画像データ）や音声データなどのその他の非構造化データを扱うシステムに適用してもよい。
【符号の説明】
【００５５】
１０…クライアント端末、１１…入力部、１２…条件判定部、１３…ワークフロー生成部、１４…評価部、１５…ユーザ選択部、１６…表示部、１７…メタデータ記憶部、２０，３０，４０，５０，６０，７０…サーバ、２１…メタデータ記憶部、２２…リソース部
【要約】
【課題】自然言語文などの非構造化データを処理するワークフローが、適切に自動構築かつ自動実行できるようにする。
【解決手段】非構造化データの処理を行う複数のコンポーネントを接続することで、非構造化データ処理についてのワークフローを生成する非構造化データ処理プラットフォームを備える。複数のコンポーネントの入出力を定義するメタデータを持つ。ワークフローを生成する際には、複数のコンポーネントの内で、ユーザにより指定されたコンポーネント、又はユーザが指定した出力を生成できるコンポーネントを、複数のコンポーネントから選択して、その選択したコンポーネントを接続したワークフローを生成する。ワークフローは一つまたは複数からなる任意のサーバで自動的に実行する。
【選択図】図３【図２】
0005600826.tif 000002
【図３】
0005600826.tif 000003
【図１３】
0005600826.tif 000004
【図１４】
0005600826.tif 000005
【図１】
0005600826.tif 000006
【図４】
0005600826.tif 000007
【図５】
0005600826.tif 000008
【図６】
0005600826.tif 000009
【図７】
0005600826.tif 000010
【図８】
0005600826.tif 000011
【図９】
0005600826.tif 000012
【図１０】
0005600826.tif 000013
【図１１】
0005600826.tif 000014
【図１２】
0005600826.tif 000015
【図１５】
0005600826.tif 000016