以下、本発明の実施の形態を図面を参照して説明する。本発明を実施するためのコンピュータシステム、すなわち以降に示す操作ボタンによるテキストデータ分析システムのハードウェアは、図1に示すように、中央処理装置10、記憶装置12、表示装置14及び入力装置16から主に構成されている。
操作ボタンによるテキストデータ分析システムのソフトウェアは、図2に示すように、意味認識ルール定義ツール20、意味認識ルール定義ツール20によって設定された意味認識ルールに従ってテキストデータの意味を判断し、ボタン化ソースデータを作成するための意味認識ツール22、意味認識ツール22によって得た認識結果から、意味の分類(カテゴリ)と意味付けに至った要素(キーワード)及びテキストデータを関連付けて、専門知識を必要としない操作ボタン(意味ボタン)を生成するための意味ボタン自動生成ツール24、及び意味ボタン自動生成ツール24によって生成された操作ボタン(意味ボタン)を表示し、表示された操作ボタンをユーザに選択させるだけで、特定の意味を持つテキストデータを検索したり、特定のテキストデータが持つ意味を調べたりすることを可能とするための意味ボタンによる分析ツール26の4つのツールから構成される。
以降、意味認識ルール定義ツール20、意味認識ツール22、意味ボタン自動生成ツール24及び意味ボタンによる分析ツール26の4つの手段から構成された情報処理装置及びプログラムを総称して、「操作ボタンによるテキストデータ分析システム」と呼ぶ。
ここで、意味認識ルール定義ツール20は、ユーザが入力装置16を使い、コンピュータとの対話によって、テキストデータを意味付けするための基準である「意味認識ルール」を登録するための操作環境を提供する。1つの意味認識ルールは、「キーワード定義部」、「カテゴリ定義部」、「適用カテゴリ指定部」及び「ルール名称指定部」の各要素から構成されており、意味認識ルール定義ツール20は、構成要素の定義或いは指定をそれぞれ実行するためのキーワード定義機能20a、カテゴリ定義機能20b、適用カテゴリ指定機能20c及びルール名称指定機能20dを有している。ユーザは、意味認識ルール定義ツール20によって、任意数の「意味認識ルール」を登録し、「意味認識ルールファイル」として記憶装置12に保存して、必要に応じて、更新・参照・再利用できる。
「キーワード定義部」を構成するのは任意数の「キーワード」であり、キーワード定義機能20aは、キーワードを定義するための機能を有している。キーワードは、テキストデータ中の文字列とマッチングさせるための表現要素であり、この例では、特定の文字列である「特定キーワード」と抽象化された文字列を含む「概念キーワード」の2種類に分かれている。
カテゴリ定義機能20bによって、「カテゴリ定義部」を定義する。カテゴリ定義部を構成するのは任意数の「カテゴリ」である。カテゴリ定義機能20bによって、1つのカテゴリに対して、任意数のキーワードを関連付ける。カテゴリに関連付けられたキーワードは、意味認識ツール22によって当該キーワードを含むテキストデータをそのカテゴリに振り分ける際の根拠となる。
適用カテゴリ指定機能20cは、定義済みのカテゴリのうち、どれを意味認識に使用するかをユーザに指定させる機能であり、指定されたカテゴリは、「適用カテゴリ指定部」に保存される。
「ルール名称指定部」は任意の文字列で構成され、ルールを一意に識別するためのものである。ユーザは、ルール名称指定機能20dによって、「ルール名称」を指定する。
意味認識ツール22は、ユーザが入力装置16を使い、コンピュータとの対話により、前記意味認識ルールの内容に従って、テキストデータの形態を解析してキーワードを抽出し、抽出したキーワードを基に当該テキストデータをカテゴリで意味付けし、その結果を基にボタン化ソースデータを作成するための操作環境を提供する。意味認識ツール22は、分析対象テキストデータ指定機能22a、意味認識ルール指定機能22b及びボタン化ソースデータ作成機能22cを有している。
ユーザは、分析対象テキストデータ指定機能22aによって、分析対象としたいテキストデータを指定する。「テキストデータ」とは、「テキスト単位」の集合である。1つのテキスト単位は、文字列から成る本文、及び必要に応じて任意数のその他の属性情報を含む。また、ユーザは、意味認識ルール指定機能22bによって、意味認識ルール定義ツール20で作成済みの意味認識ルールファイルのうちから、分析対象テキストデータに適用したいルールを1つ選択して指定する。
ボタン化ソースデータ作成機能22cは、指定された分析対象テキストデータ及び意味認識ルールを使用して意味認識処理を実行し、ボタン化ソースデータを作成する機能であり、意味認識ルールに定義されているキーワードを分析対象のテキストデータから抽出し、当該キーワードが関連付けられているカテゴリに当該テキスト単位を振り分ける。その結果を基に、「ボタン化ソースデータ」を作成し、「ボタン化ソースデータファイル」として記憶装置12に保存する。ボタン化ソースデータは、図10に示すように、意味認識ルールファイル名52、分析対象テキストデータ保存場所54及び意味認識結果テーブル56から構成される。意味認識結果テーブル56は、カテゴリ58a、キーワード58b及びテキストデータファイル名58cの少なくとも3個のフィールドを持つ結果レコード58の集合によって構成される。
意味ボタン自動生成ツール24は、ボタン化ソースデータを基に、エンドユーザがテキストデータの意味を簡単に分析できるようにするための操作ボタン(意味ボタン)を自動的に生成する機能を提供する。操作ボタンは、キーワード等に対応する個別ボタン、カテゴリ及びテキストデータ等に対応するボタンクラスから構成されるが、その用途から、特に「意味ボタン」と呼ぶ。意味ボタン自動生成ツール24は、ボタンクラス生成機能24aと個別ボタン生成機能24bを有している。
ボタンクラス生成機能24aは、ボタン化ソースデータを走査し、ボタンクラスに成りうる要素を抽出してボタンクラスを生成する。ボタンクラスは、ボタンクラス名称を持ち、当該ボタンクラスと関連付けされた個別ボタンを管理する。ボタン化ソースデータには、2通りのボタンクラスに成りうる要素がある。第1にボタンクラスと成りうるのが、前記意味認識結果テーブルのカテゴリのフィールドに現れるユニークな値、すなわち個別のカテゴリ名称をボタンクラス名称とするものである。第2にボタンクラスと成りうるのが、前記意味認識結果テーブルのうちカテゴリのフィールドとキーワードのフィールドを除いたフィールドであり、これを「参照用フィールド」と呼ぶ。図10に示すように、結果レコード58が、例えばカテゴリ58a、キーワード58b及びテキストデータファイル名58cという3つのフィールドから構成されるならば、テキストデータファイル名58cのフィールドが前記参照用フィールドであって、例えば「対象」という名称のボタンクラスとなる。以降、前者を「分析用ボタンクラス」、後者を「参照用ボタンクラス」と呼ぶ。よって、ボタンクラス数は、分析用ボタンクラス数と参照用ボタンクラス数の合計となる。
個別ボタン生成機能24bは、図10に示す、ボタン化ソースデータ50のキーワード58bのフィールドに現れるユニークな値、すなわち個別のキーワード名称を個別ボタン名称として、対応するボタンクラスに関連付けて個別ボタンを生成するものと、前記参照用フィールドに現れるユニークな値、すなわち個別のデータを個別ボタン名称として、当該参照用ボタンクラスに関連付けて個別ボタンを生成するものとがある。
特許文献1に記載の発明では、複数のフィールドから構成されるレコード形式のデータを基にボタンを生成している。この方法によれば、1件のデータに対して、ボタン化フィールドと対応するボタンクラスに属する個別ボタンは常に生成され、且つ1つのフィールドに対応して生成される個別ボタンは常に1個である。これに対して、この例では、意味認識ルールに定義したキーワードを含むテキスト(文章)形式のデータを基にボタンを生成しており、1件のデータに対して、前記キーワードが出現するか否か、出現した場合の個数は何個か、どのボタンクラスに属する個別ボタンが生成されるか、また生成される場合でも、何個生成されるかは、全く不定である。また、1件のテキストデータに対して、どのボタンクラスに属する個別ボタンも全く生成されない場合もある。このように、この例では、ボタン生成の基になるデータの形式が既存の特許と基本的に異なり、その異なる形式のデータを基に、全く異なる方法でボタンクラス及び個別ボタンを生成している。
意味ボタンによる分析ツール26は、意味ボタン自動生成ツール24によって生成された意味ボタンを表示装置14に表示し、入力装置16を使ってユーザが任意のボタンを選択できるようにする。意味ボタンによる分析ツール26は、意味ボタン並列関連表示機能26aとテキストデータ検索及び内容表示機能26bを有している。
意味認識結果テーブルには、ボタンクラスとそれに属する個別ボタン間の関連や、ボタンクラスを跨る個別ボタン間の関連が保持されている。意味ボタン並列関連表示機能26aは、結果テーブルに含まれる前記の関連をユーザの意味ボタン操作に反映させるための機能で、ある個別ボタンを選択すると、その個別ボタンに関連する他のボタンクラスの個別ボタンを同時に再表示するので、選択した個別ボタンと関連のある情報を瞬時に確認でき、簡単に取り出すことができる。
テキストデータ検索及び内容表示機能26bは、ユーザがボタンを選択するだけで任意のカテゴリのテキストデータを検索したり、当該テキストデータに含まれるキーワードを抽出したりして表示する機能であり、これにより、カテゴリ及びキーワード間の相互関連を把握したりするなど、多様な分析を簡単に行うことが可能となる。また、ボタン選択によって絞り込んだテキストデータの詳細と、その中に含まれている絞り込みの対象となったキーワードを区別して表示することなども簡単に可能となる。
次に、図3乃至図16を参照して、図2に示す操作ボタンによるテキストデータ分析システムを更に詳細に説明する。
この例で使用する分析対象となるテキストデータの形式を、次のように仮定する。テキスト単位は、コンピュータの記憶装置12に保存されている1つのファイルで、このファイルの内容は、単一または複数の文章から構成される日本語とし、テキスト単位を一意に識別するためのキーをファイル名称とする。テキストデータの形式は、前記以外にも、リレーショナルデータベースのテーブルやインターネット上の多様なテキスト資源なども考えられるが、これらも、この例で仮定するテキストデータ形式に対する方法と同様の方法で分析可能である。また、この例では、あるパソコン周辺機器メーカーのユーザサポート窓口で操作ボタンによるテキストデータ分析システムを使用することを想定している。
図3は、分析対象として使用するテキストデータの例を示す。図3中の凡例で示すように、テキスト単位は、ファイル名とテキストデータの内容から構成されている。「テキストA」、「テキストB」などのファイル名を持つこれらのファイル(テキストデータ)が、コンピュータの記憶装置12の「file:/text/user_support/」という場所に保存されているものとする。
図4は、図2に示す意味認識ルール定義ツール20で作成される意味認識ルール30の構造を示す。図4中の「1」は1個、「*」は1個以上、「**」は0個以上それぞれ存在することを示す。1つの意味認識ルール30に対して、1つのルール名称32、1つのキーワード定義部34、1つのカテゴリ定義部36、及び1つの適用カテゴリ指定部38が対応する。なお、以下の例では、ルール名称を「ユーザサポート分析用ルール」と指定したとして説明する。
キーワード定義部34は、1個以上の特定キーワード40と1個以上の概念キーワード42から構成される。特定キーワード40は、1個の特定キーワード名称40a、1個以上の特定個別キーワード40b及び0個以上の特定個別除外キーワード40cから構成される。概念キーワード42は、1個の概念キーワード名称42a、1個以上の概念個別キーワード42b及び0個以上の概念個別除外キーワード42cから構成される。カテゴリ定義部36は、1個以上のカテゴリ44から成る。1個のカテゴリ44には、1個のカテゴリ名称44aと、キーワード定義部で定義済みの1個以上のキーワード(特定キーワードまたは概念キーワード)への参照44bが配置される。適用カテゴリ指定部38は、カテゴリ定義部で定義済みの1個以上のカテゴリへの参照46から構成される。
表1は、意味認識ルール30の定義例である。判りやすくするため、基本的にXML形式で示している。なお、閉じタグについては、煩雑を避けるため省略している部分もある。表1では、まず、ルール名称32を「ユーザサポート分析用ルール」と指定している。次に、キーワード定義部であるが、先頭のキーワードとして、<キーワード k_id=“k-001” type=“概念” name=“〜ない”>が定義されている。k_idとは、個別のキーワードを一意に特定するための識別子で、ここでは「k-001」が指定されている。また、typeとは、キーワードの種類で、ここでは「概念」が指定されていて、このキーワードが概念キーワードであることを表している。更にnameとは、キーワード名称で、ここでは「〜ない」が指定されている。この「〜ない」という概念キーワードには、概念個別キーワードと概念個別除外キーワードの定義が続く。その1番目には、概念個別キーワードを表す、<個別 term=“〜ない”/>が定義されている。termとは、概念個別キーワードの定義内容で、ここでは「〜ない」が指定されている。2番目には、概念個別キーワードを表す、<個別 term=“〜ません”/>が定義されている。3番目には、概念個別除外キーワードを表す、<個別除外 term=“問題ない”/>が定義されている。termとは、概念個別除外キーワードの定義内容で、ここでは「問題ない」が指定されている。このようにして、概念キーワード「〜ない」には、2個の概念個別キーワードと3個の概念個別除外キーワードが定義されている。
同様に、表2に示すように、2番目のキーワードとして、<キーワード k_id=“k-002” type=“概念” name=“〜ず”>から、7番目のキーワードとして、<キーワード
k_id=“k-007” type=“概念” name=“〜か”>が定義されている。
更に、表3に示すように、8番目のキーワードとして、<キーワード k_id=“k-008” type=“特定” name=“問題”>が定義されている。キーワードの種類(type)を「特定」としているが、これはこのキーワードが特定キーワードであることを表している。この「問題」という特定キーワードには、特定個別キーワード1個の定義が続き、特定個別除外キーワードの定義は行われていない。特定個別キーワードは、<個別 term=“問題”/>のように定義されている。termとは、特定個別キーワードの定義内容で、ここでは「問題」が指定されている。更に、9番目のキーワードとして、<キーワード k_id=“k-009” type=“概念” name=“〜?”>から、16番目のキーワードとして、<キーワード
k_id=“k-016” type=“特定” name=“フィルムスキャン”>が定義されている。
更に、表4に示すように、17番目のキーワードとして、<キーワード k_id=“k-017” type=“特定” name=“PRT-100”>から、23番目のキーワードとして、<キーワード
k_id=“k-023” type=“特定” name=“SCN-300”>が定義されている。
更に、表5に示すように、24番目のキーワードとして、<キーワード k_id=“k-024” type=“概念” name=“予期しない〜”>から、25番目のキーワードとして、<キーワード
k_id=“k-025” type=“特定” name=“異常終了”>が定義されている。
このようにして、この例では、キーワード定義部に25個のキーワードが定義されており、このうち、9個が概念キーワードで、16個が特定キーワードである。
次に、カテゴリ定義部であるが、表6に示すように、先頭のカテゴリとして、<カテゴリ c_id=“c-001” name=“苦情”>が定義されている。c_idとは、個別のカテゴリを一意に特定するための識別子で、ここでは「c-001」が指定されている。また、nameとは、カテゴリ名称で、ここでは「苦情」が指定されている。この「苦情」というカテゴリには、前記キーワード定義部で定義したキーワードを参照するための定義が続く。先頭には、<キーワードへの参照 k_id=“k-001”/>が定義されている。ここで、k_idとは、それぞれの定義済みキーワードを一意に参照するための識別子で、「k-001」が指定されている。この「k-001」は、前記キーワード定義部で定義した個々のキーワードの識別子「k-001」と対応する。以下、「苦情」というカテゴリが参照するキーワードのk_idを、「k-001」、「k-002」、「k-003」、「k-005」、「k-008」、「k-024」、「k-025」の7個定義している。これら7個のキーワードは、意味認識ルール「ユーザサポート分析用ルール」では「苦情」を意味するキーワードであると定義されたことになる。つまり、テキストデータを「苦情」に分類させる理由となるのが、これら7個のキーワードである。あるテキストデータに、これら7個のキーワードのいずれかが含まれていたら、そのテキストデータは当該意味認識ルールにより、「苦情」カテゴリに分類される。
同様に、表7に示すように、2番目のカテゴリとして、<カテゴリ c_id=“c-002” name=“質問”>が、3番目のカテゴリとして、<カテゴリ
c_id=“c-003” name=“要望”>が、4番目のカテゴリとして、<カテゴリ c_id=“c-004” name=“プリンタ”>が、5番目のカテゴリとして、<カテゴリ
c_id=“c-005” name=“スキャナ”>が、6番目のカテゴリとして、<カテゴリ c_id=“c-006” name=“新製品”>がそれぞれ定義され、これらのカテゴリには、前記キーワード定義部で定義したキーワードを参照するための定義が続いている。
このようにして、この例では、カテゴリ定義部で、6個のカテゴリを定義しており、それらのカテゴリで参照するキーワードは、それぞれ、7個、2個、2個、8個、6個、2個、の合計27個である。
前記定義例では、キーワード定義部で定義したキーワードが25個であるのに対して、カテゴリ定義部のカテゴリで参照するキーワードは合計27個ある。これは、例えば、「k-020」というキーワードは「プリンタ」と「新製品」という2つのカテゴリで参照が定義されるなど、1つのキーワードが複数のカテゴリから参照されているためである。
次に、適用カテゴリ指定部では、前記カテゴリ定義部で定義したカテゴリを参照するための定義が続く。つまり、表8に示すように、先頭には<カテゴリへの参照 c_id=“c-001”/>が定義されている。ここで、c_idとは、それぞれの定義済みカテゴリを一意に参照するための識別子で、「c-001」が指定されている。この「c-001」は、前記カテゴリ定義部で定義した個別のカテゴリの識別子「c-001」と対応する。以下、適用カテゴリ指定部が参照するカテゴリのc_idとして、「c-002」、「c-003」、「c-004」、「c-006」の合計5個を定義している。これら5個のカテゴリは、意味認識ルール「ユーザサポート分析用ルール」において、意味認識処理に使用するカテゴリとして定義されたこととなる。一方、カテゴリ定義部で定義されているが、適用カテゴリ指定部で参照するための定義がされていないカテゴリ、すなわちc_idが「c-005」の「スキャナ」については、意味認識処理に使用されないこととなる。
この例では示していないが、キーワードやカテゴリを複数の意味認識ルールから参照可能な状態で記憶装置に保存する仕組みとすれば、適用カテゴリ指定機能によって、一度定義したカテゴリを複数の意味認識ルールで自在に構成できるようになるので、ユーザにとって一層便利になる。
次に、意味認識ルールの構造及び定義例で示した概念キーワードと特定キーワードについての詳細について説明する。
キーワードに関して、表記の揺れを含む多様な同義語に対応するための仕組みについて説明する。例えば、一般的に「十分」と「充分」、「作る」と「作成する」、「コンピュータ」と「コンピューター」は、それぞれ同義である。このような例は、普遍的な辞書を用いても対応できる。しかし、例えば、「エラー」、「強制終了」、「フリーズ」、「アベンド」、「アボート」、「中止」及び「中断」という一連のキーワードを同義語として、「異常終了」というキーワード名称で一括して検索できるようにしたいという場合がある。このように、特定の分野や業務で独自に複数のキーワードを同義として扱いたいニーズが存在する。この例では、前記例のように、独自に同義語を指定できるようにするため、個別キーワードという仕組みを意味認識ルールに取り入れている。キーワードが1個以上の個別キーワードを持つことにより、それらの個別キーワードは当該キーワードの下で同義であることを表すようにする。
すなわち、図4で示すように、1個の特定キーワード40は、1個以上の特定個別キーワード40bを持ち、1個の概念キーワード42は、1個以上の概念個別キーワード42bを持つ。具体的には、表2に示す4番目のキーワード「〜て下さい」には、3個の概念個別キーワードが指定されている。同様に、表5に示す25番目のキーワード「異常終了」には、8個の特定個別キーワードが指定されている。ここでは、キーワード「〜て下さい」の同義語として、「〜て下さい」、「〜てくれますか」及び「〜てもらえますか」を定義している。同様にキーワード「異常終了」の同義語として、「異常終了」、「エラー」、「強制終了」、「フリーズ」、「アベンド」、「アボート」、「中止」及び「中断」を定義している。
前述のようなキーワードでテキストデータとのマッチングを行った場合、定義したキーワードとは一致するが、意味が違うので、抽出の対象から除外したいというニーズが考えられる。例えば、ユーザサポート分析のための意味認識ルールにおいて、表1に示す1番目のキーワード「〜ない」には、「問題ない」、「悪くない」及び「間違いない」という3個の個別除外キーワードが指定されている。否定的な表現である「〜ない」は、「苦情」を意味するキーワードとして多くの場合妥当であるが、例外もある。すなわち、前記の「問題ない」、「悪くない」及び「間違いない」といった表現は、「苦情」として意味付けするには不適切である。
この例では、こうした状況に対応できるように、前記のように個別除外キーワードという仕組みを意味認識ルールに取り入れている。テキストデータに含まれる文字列が、あるキーワードの個別キーワードに一致するが、同キーワードの個別除外キーワードにも一致する場合、当該文字列は抽出の対象から外すこととする。
以下に、個別キーワードの実現方法について説明する。概念個別キーワードは、テキストデータに含まれる文字列と抽象的なマッチングを行うために定義される。例えば、表1の1番目のキーワード「〜ない」の場合、抽象的に表現される部分「〜」を含むので、単純に文字列のみを比較することはできない。
このことを踏まえ、この例では、テキストデータを日本語形態素に解析して、「基本名」、「品詞」及び「活用」という3つの属性に分けて、概念個別キーワード及び以降に示す特定個別キーワードを実現している。例えば、「読めない」という表現の形態素を解析すると、表9に示すように、「読め」の部分については、基本名は「読む」、品詞は「動詞」、活用は「未然形」である。また、表10に示すように、「ない」の部分については、基本名は「ない」、品詞は「助動詞」、活用は「基本形」である。これらの形態素属性の内容が全て特定されている形態素を具象形態素と呼ぶ。形態素属性の内容の一部または全部が特定されていない形態素を抽象形態素と呼ぶ。
日本語における連続した複数の形態素の並びがあったとして、この複数の形態素の1つ以上が抽象形態素の場合、この連続した形態素の並びを概念個別キーワードとする。一方、1個以上の連続する形態素が全て具象形態素の場合、この連続する形態素の並びを特定個別キーワードとする。また、概念個別除外キーワードと特定個別除外キーワードについても同様である。
前記の個別キーワード「〜ない」に関して、例えば、「読めない」という表現があった場合、「読め」と「ない」という2つの形態素の並びとなり、表9と表10で示した通りである。これらの形態素の属性を一部抽象化したものを、表11と表12に示す。表11では基本名に対応する属性が、表12では活用に対応する属性が、それぞれ「―」となっており、特定されず抽象化されていることを表している。表11は、表9の「読め」という未然形の動詞である形態素において、基本名の属性を抽象化したものであり、動詞の未然形であれば基本名の内容を問わず、例えば、「
動かず」、「
進まない」なども該当する。よって、表11と表12の形態素を連続させて、基本名が抽象化された形態素を「〜」という特殊文字で表現すれば、「〜ない」という概念個別キーワードが実現できる。
また、表11の形態素属性を全て特定されないようにすれば、表13に示すようになる。表13には、全ての形態素が該当する。例えば、表13と表12の形態素の連続による「〜ない」という概念個別キーワードを設定すれば、前記動詞の「
読めない」以外にも、格助詞の「応答
がない」、形容詞の「
正しくない」、名詞の「
問題なし」なども当該概念個別キーワードに該当する。
このようにして、日本語形態素属性を使って概念個別キーワードを実現することができるが、形態素属性の内容の指定方法については、特別の方法で実現する必要はないため、ここではその説明を省略する。
次に、図2に示す意味認識ルール定義ツール20を使用して、ユーザが実際にどのように意味認識ルールを定義するのかを図5乃至図8を参照して説明する。ユーザが意味認識ルール定義ツール20の使用を操作ボタンによるテキストデータ分析システムに要求すると、該システムは、ルール名称指定機能20dを呼び出して、意味認識ルール名称指定ダイアログを表示装置14に表示する。図5は、その表示例である。ここでは、ユーザは、「ユーザサポート分析用ルール」という意味認識ルール名称を、入力装置16を使用して指定している。そして、「次へ」のボタンを選択すると、指定された前記ルール名称を記憶装置12に保存して、次の処理に進む。この時点で、図4に示す、意味認識ルール30におけるルール名称32が完成する。
次に、テキストデータ分析システムは、キーワード定義機能20aを呼び出して、キーワード定義ダイアログを表示装置14に表示する。図6は、その表示例である。このキーワード定義機能20aでは、ユーザは入力装置16を使用して、特定キーワードまたは概念キーワードを指定して、「追加」のボタンを選択すると、意味認識ルールにそれぞれのキーワードが定義される。ここでは、ユーザは「特定」(●)を選択して、「プリンタ」というキーワードを指定しようとしている。キーワードの同義語、概念個別除外キーワードまたは特定個別除外キーワードを指定するには、「詳細」ボタンを選択する。選択後、キーワード詳細指定ダイアログを表示装置14に表示して指定できるようにするが、特別の方法ではないので、ここではその説明を省略する。そして、「次へ」のボタンを選択すると、キーワード定義機能20aで指定された前記キーワードを記憶装置12に保存して、次の処理に進む。この時点で、図4に示す、意味認識ルール30におけるキーワード定義部34が完成する。
キーワード定義が完了すると、操作ボタンによるテキストデータ分析システムは、カテゴリ定義機能20bを呼び出して、カテゴリ定義ダイアログを表示装置14に表示する。図7は、その表示例である。ここでは、ユーザは「要望」という名称のカテゴリを入力装置16から指定している。また、これまでにキーワード定義機能20aで定義されたキーワードの一覧が「関連付けるキーワードを指定」という見出しを付けて表示される。その一覧から任意のキーワードを1つ以上選択することにより、それらのキーワードを前記指定した名称のカテゴリと関連付ける。この例では、「〜て下さい」と「〜てほしい」というキーワードを「要望」という名称のカテゴリと関連付けるために選択している。「追加」ボタンを選択すると、前記指定した名称のカテゴリと、そのカテゴリと関連付けられたキーワード(図4の意味認識ルールの構造で示した「定義済みキーワードへの参照」)が、意味認識ルールに定義される。「次へ」のボタンを選択すると、前記定義情報を記憶装置12に保存して、次の処理に進む。この時点で、図4に示す、意味認識ルール30におけるカテゴリ定義部36が完成する。
カテゴリ定義が完了すると、記憶装置12中に意味認識ルールが完成する。なお、適用カテゴリ指定機能は、単に定義済みカテゴリへの参照を選択するだけなので、ここではその説明を省略している。操作ボタンによるテキストデータ分析システムは、完成した意味認識ルールを意味認識ルールファイルに保存するため、ファイル保存ダイアログを表示装置14に表示する。図8は、その表示例である。ここでは、ユーザは、「file:/rules/user_support_analysis」というファイルを指定している。そして、「完了」ボタンを選択すると、操作ボタンによるテキストデータ分析システムは、意味認識ルールの各機能で定義した内容を、前記指定した意味認識ルールファイルに保存し、意味認識ルール定義処理を終了する。
ユーザが実際にどのように意味認識ツールを使用するかを以下に説明する。ユーザが、図2に示す意味認識ツール22の使用を操作ボタンによるテキストデータ分析システムに要求すると、該システムは、分析対象テキストデータ指定機能22aと意味認識ルール指定機能22bを呼び出して、意味認識ツールダイアログを表示装置14に表示する。図9は、その表示例である。
ここでは、ユーザは、図3で示した分析対象テキストデータが保存されている場所を「file:/text/user_support/」と指定している。また、図8で示した意味認識ルールファイルを「file:/rules/user_support_analysis」と指定している。以上により、file:/text/user_support/に保存されているテキストデータを、file:/rules/user_support_analysisに保存されている意味認識ルールに従って意味認識処理を行うための指定が完了する。
そして、図9に示す「意味認識開始」ボタンを選択すると、操作ボタンによるテキストデータ分析システムは、ボタン化ソースデータ作成機能22cを呼び出して、意味認識処理を開始する。その結果を基に、図10に示すボタン化ソースデータ50を作成して、記憶装置12に保存する。記憶装置12では、ボタン化ソースデータファイルという内部ファイルに保存する。保存が完了すると、意味認識処理を終了する。
図10で示すように、ボタン化ソースデータ50は、意味認識ルールファイル名52、分析対象テキストデータ保存場所54及び意味認識結果テーブル56から構成される。意味認識結果テーブル56は、カテゴリ58a、キーワード58b及びテキストデータファイル名58cの最低3個のフィールドを持つ結果レコード58の集合によって構成される。尚、カテゴリとキーワードは、それぞれの識別子であるc_id及びk_idで表している。また、テキストデータファイル名58cは、図3の凡例:テキスト単位で示したファイル名のことである。図10中の「1」は1個存在し、「**」は0個以上存在することを示す。
以下は、意味認識ツールにおいて、図9の指定によって、ボタン化ソースデータ50を作成する例を説明する。
表14は、図3に示す分析対象テキストデータの“テキストA”から“テキストM”までの全てのテキストデータの意味を認識して、その結果を基にボタン化ソースデータを作成した例である。
ここでは、“テキストA”に着目して、テキストデータの内容を、表1〜表8で示す意味認識ルールの定義例を使用して分析する例を示す。“テキストA”のテキストデータの内容は、「プリントキング100のプリンタドライバを更新したら、印刷できなくなってしまいました。対処方法を教えて下さい。」である。この中から、前記意味認識ルールの定義例に定義されているキーワードを抽出すると、「〜ない」、「〜てしまう」、「〜て下さい」、「プリンタ」、「印刷」及び「PRT-100」の6個になる。ここで、抽出されるキーワードのうち、「印刷」と「PRT-100」について、“テキストA”の内容に「プリントキング100」という文字列が含まれているが、表3の意味認識ルールの定義例において、キーワード「印刷」の個別除外キーワードである「プリントキング」が定義されていることにより、同キーワードの個別キーワードとして「プリント」が定義されているが、前記文字列は「印刷」として抽出されないこととなる。また、表4の意味認識ルールの定義例において、キーワード「PRT-100」の個別キーワードである「プリントキング100」が定義されていることにより、前記文字列は「PRT-100」として抽出されることとなる。
まず、「〜ない」については、前記定義例のキーワード定義部でk_id=“k-001” type=“概念”と定義されており、カテゴリ定義部でキーワードへの参照がk_id=“k-001”であるカテゴリはc_id=“c-001” カテゴリ名称=“苦情”と定義されている。このことから、「〜ない」を含む“テキストA”は、“苦情”というカテゴリに属し、その識別子は“c-001”、関連するキーワードの識別子は“k-001”ということが分かる。この結果を基に、図10に示すボタン化ソースデータ50の意味認識結果テーブル56の結果レコード58を作成すると、表14の<結果テーブル>の先頭の<結果レコード>に示すように、カテゴリ=“c-001”、キーワード=“k-001”、doc=“テキストA”となる。ここでdocとは、図3の凡例:テキスト単位のファイル名を指す。
次に、「〜てしまう」については、キーワード定義部でk_id=“k-003” type=“概念”と定義されており、カテゴリ定義部でキーワードへの参照がk_id=“k-003”であるカテゴリはc_id=“c-001” カテゴリ名称=“苦情”と定義されている。このことから、「〜てしまう」を含む“テキストA”は、「〜ない」と同様、“苦情”というカテゴリに属し、その識別子は“c-001”、関連するキーワードの識別子は“k-003”ということが分かる。この結果を基に、図10に示すボタン化ソースデータ50の意味認識結果テーブル56の結果レコード58を作成すると、表14の<結果テーブル>の上から6番目の<結果レコード>に示すように、カテゴリ=“c-001”、キーワード=“k-003”、doc=“テキストA”となる。
以下、「〜て下さい」以降のキーワードについても、同様の方法でボタン化ソースデータを作成していく。このようにして“テキストA”だけでなく、“テキストB”以降のテキスト単位についても、同様の方法でテキストデータの意味を認識する。
このように、図9で指定した対象テキストデータと意味認識ルールを使用して、対象テキストデータに含まれる全テキスト単位のテキストデータの内容の意味を認識して、図10に示すボタン化ソースデータ50の構造に従ってボタン化ソースデータファイルという内部ファイルに出力して記憶装置12に保存する。
ボタン化ソースデータがあれば、意味ボタンによる操作環境を作成できるようになる。ユーザが操作ボタンによるテキストデータ分析システムに、図2に示す意味ボタン自動生成ツール24の使用を要求すると、該システムは、意味ボタン自動生成機能を呼び出し、記憶装置12からボタン化ソースデータを読み出して、意味ボタンを自動的に生成して表示装置14に表示する。
つまり、意味ボタン自動生成ツール24のボタンクラス生成機能24aは、ボタン化ソースデータからカテゴリを抽出し、これを基にボタンクラスを生成する。ボタンクラスとは、意味ボタンを構成する要素の1つであって、カテゴリ毎に生成する。同一カテゴリに属する個別ボタンを1つのボタンクラスに集合して表示する。個別ボタンとは、意味ボタンを構成する要素の1つであって、キーワード毎に生成する。カテゴリに対応するボタンクラス毎に集合させて表示する。個別ボタンを選択すると、当該個別ボタンに対応するキーワードを含むテキストデータに含まれる他のキーワードに着目し、該キーワードの属するカテゴリに対応するボタンクラスの個別ボタンを、該キーワードに対応するものに絞って再表示する。
前述の表14に示すボタン化ソースデータを使用した場合には、“c-001”、“c-002”、“c-003”、“c-004”という識別子を持つカテゴリをボタンクラスに対応させ、前記意味認識ルールの定義例のカテゴリ定義によって、それぞれのカテゴリ名称である「苦情」、「質問」、「要望」及び「プリンタ」をボタンクラス名称に対応させてボタンクラスを生成する。また、テキストデータの内容に関係なく、ボタン化ソースデータの結果テーブル(レコード)のdoc(テキスト単位のファイル名)は、常に参照用ボタンクラスの対象になる。意味ボタンにおけるボタンクラスには、分析用と参照用の2種類がある。前者は、重要な意味を持つキーワードに対応する個別ボタンを選択してテキストデータを分析するために使用する。後者は、ユニークなデータ値に対応する個別ボタンを選択して関連するデータを検索するために使用する。
用途によっては、ボタン化ソースデータの結果テーブル(レコード)に「作成者」や「作成日時」など、分析対象テキストデータ以外の参照用フィールドがあれば、それらもカテゴリとして扱い、参照用ボタンクラスとすることができる。
また、前記ボタン化ソースデータに適用した意味認識ルールの定義例では、「新製品」という名称のカテゴリ(c_id=“c-006”)が定義され、かつ適用カテゴリとして指定されているが、意味認識の結果、このカテゴリに該当するテキストデータは存在しなかった。この場合、ボタン化ソースデータの結果テーブルに“c-006”のカテゴリを持つ結果レコードは出力されないので、このカテゴリに対応するボタンクラスも当然生成されない。
意味ボタン自動生成ツール24の個別ボタン生成機能24bは、ボタン化ソースデータからキーワードを抽出し、これを基に個別ボタンを生成する。個別ボタンはボタンクラスに従属するが、分析用ボタンクラスか参照用ボタンクラスのどちらに属するかにより個別ボタンの生成方法が異なる。
分析用ボタンクラスに属する個別ボタンを生成する方法を説明する。表14に示す結果テーブルに存在する1つのカテゴリに着目し、当該カテゴリの識別子と一致する結果レコードのみに絞る。絞られた結果レコードから、ユニークなキーワードの識別子を取り出し、当該カテゴリに対応するボタンクラスに属する個別ボタンを生成する。前述の表14に示すボタン化ソースデータにおいて、カテゴリの識別子“c-001”(カテゴリ名称「苦情」)に着目すると、表15に示す11個の結果レコードに絞ることができる。
これらの結果レコードに存在するユニークなキーワードの識別子は、“k-001”、“k-002”、“k-003”、“k-005”、“k-025”であり、それぞれ「〜ない」、「〜ず」、「〜てしまう」、「〜おかしい」、「異常終了」というキーワードに対応する。これら5個のキーワードを基に、カテゴリの識別子“c-001”に対応する(前記分析用)ボタンクラス「苦情」に属する個別ボタンを生成する。
参照用ボタンクラス及び個別ボタンを生成する方法を以下に示す。この方法は、特許文献1に記載の発明によるものである。本発明による操作ボタンと特許文献1に記載の発明による操作ボタンの生成方法を組み合わせることにより、更に有用な操作ボタンを実現することができる。
表14に示す結果テーブル内に存在する参照用フィールドを基にボタンクラスを生成するために、全ての結果レコードの当該フィールド値を抽出する。そのうちユニークな値を基に、当該フィールドに対応する参照用ボタンクラスに属する個別ボタンを生成する。前述のボタン化ソースデータの作成例において、参照用フィールドのdoc(テキスト単位のファイル名)に着目し、全ての結果レコードから当該フィールドのユニークな値として、“テキストA”、“テキストB”、“テキストC”、“テキストD”、“テキストE”、“テキストF”、“テキストG”、“テキストH”、“テキストI”、“テキストJ”、“テキストK”、“テキストL”及び“テキストM”を抽出し、これらを基に参照用ボタンクラス(「対象」と名付ける)の個別ボタンを生成する。
意味認識結果テーブルにおけるカテゴリのフィールドは、前述したように分析用ボタンクラス生成のために使用されるが、参照用フィールドとして扱うことによって参照用ボタンクラスを生成するために使用することも可能である。この例では、参照用フィールドとして、カテゴリのフィールドに着目し、全ての結果レコードから当該フィールドのユニークな値として、“c-001”、“c-002”、“c-003”、“c-004”を抽出し、前記意味認識ルールの定義例におけるカテゴリ定義部からそれぞれに対応するカテゴリ名称を取り出して、これらを基に参照用ボタンクラス(「主要分類」と名付ける)の個別ボタンを生成する。前記フィールドのユニークな値は、1個以上の意味認識結果レコードと対応するので、当該ボタンクラスに属する個別ボタン名称は、前記カテゴリ名称の後に“グループ”を付加して決定する。以上により、当該ボタンクラスに属する個別ボタンは、“苦情グループ”、“質問グループ”、“要望グループ”、“プリンタグループ”となる。
意味ボタン自動生成ツールによってボタン化ソースデータから意味ボタンが生成されると、操作ボタンによるテキストデータ分析システムは、意味ボタンによる分析ツールダイアログを表示装置14に表示する。図11は、その表示例である。
図2に示すように、意味ボタンによる分析ツール26は、意味ボタン並列関連表示機能26aとテキストデータ検索及び内容表示機能26bから構成される。図11のダイアログは、意味ボタン並列関連表示機能26aによって表示したものである。図11の「主要分類」、「苦情」、「質問」、「要望」、「プリンタ」及び「対象」は、ボタンクラスを並列に表示したものである。これらの内、「苦情」から「プリンタ」までのボタンクラスは、前記結果レコードのカテゴリに対応する分析用ボタンクラスであり、「主要分類」は、カテゴリに対応する参照用ボタンクラスで、「対象」は、doc(テキスト単位のファイル名)に対応する参照用ボタンクラスである。「主要分類」というボタンクラスの下に表示されている、「苦情グループ」、「質問グループ」、「要望グループ」及び「プリンタグループ」は、「主要分類」に属する個別ボタンである。また、同様に「苦情」から「対象」までの各ボタンクラスの下に表示されている個々のボタンは、それぞれのボタンクラスに属する個別ボタンである。各ボタンクラスに属する個別ボタンは、他のボタンクラスに属する個別ボタンと、分析対象テキストデータを通して相互に関連付けられており、前記テキストデータを絞り込むために選択する。
個別ボタンの選択によってボタンクラス「対象」の個別ボタンが1つに絞り込まれた場合、すなわち個別ボタンの選択によってテキスト単位のファイル名が1つに絞り込まれた場合、テキストデータ検索及び内容表示機能26bによって、当該ファイルを読み出してその内容が、図11に示すダイアログの下方に位置する「選択中のテキスト内容」に表示される。図11は、どの個別ボタンも選択されていない状態であり、「対象」の個別ボタンが1つに絞り込まれていないため、テキスト内容は表示されていない。
図11に示す状態で、ボタンクラス「対象」に属する個別ボタン「テキストA」を選択すると、意味ボタン並列関連表示機能26aによって、意味ボタン全体の表示が図12のように更新される(選択した“テキストA”を太枠で示す)。具体的には、“テキストA”に関連する個別ボタン、すなわち、当該テキストに含まれるキーワードに対応するボタンクラスの個別ボタンのみが再表示される。
図12に示すように、“テキストA”は、「苦情」、「要望」及び「プリンタ」の3つのカテゴリに分類されている。カテゴリの「苦情」に属する「〜ない」、「〜てしまう」というキーワードが抽出されて、これらに対応する個別ボタンが表示されている。同様に、カテゴリの「要望」に属する「〜て下さい」というキーワードが抽出されて、これに対応する個別ボタンが表示されている。更に、カテゴリの「プリンタ」に属する「プリンタ」、「印刷」及び「PRT-100」というキーワードが抽出されて、これらに対応する個別ボタンが表示されている。「主要分類」から「質問グループ」という個別ボタンが非表示となり、また同時に、ボタンクラス「質問」に属する個別ボタンが全て非表示となっていることから、“テキストA”には、カテゴリの「質問」に属するキーワードは含まれていないことが分かる。
また、テキスト単位が“テキストA”という1つのファイル名に絞り込まれたので、テキストデータ検索及び内容表示機能26bによって、“テキストA”の内容が表示されている。図12の表示内容のうち、下線太字部分は当該抽出されたキーワードと対応する文字列である。
図11に示す状態で、ボタンクラス「苦情」の個別ボタン「〜ない」を選択すると、意味ボタン並列関連表示機能26aによって、意味ボタン全体の表示が図13のように更新される。具体的には、「〜ない」に関連する個別ボタン、即ち、「〜ない」というキーワードを含む“テキストA”、“テキストJ”に含まれる他のキーワードに対応するボタンクラスの個別ボタンのみが再表示される。
図13でカテゴリの「苦情」に属する「〜ない」というキーワードを含むのは、テキストデータを参照する「対象」では“テキストA”と“テキストJ”であることが分かる。また、これらのテキストには、カテゴリの「要望」に属する「〜て下さい」と、カテゴリの「プリンタ」に属する「プリンタ」、「印刷」、「PRT-100」というキーワードが含まれており、カテゴリの「質問」に属するキーワードは含まれていないことが分かる。
図13に示す状態で、ボタンクラス「苦情」の個別ボタン「異常終了」を選択すると、意味ボタン並列関連表示機能26aによって、意味ボタン全体の表示が図14のように更新される。具体的には、前記「〜ない」または「異常終了」というキーワードを含む“テキストA”、“テキストJ”、“テキストL”及び“テキストM”に含まれる他のキーワードに対応するボタンクラスの個別ボタンのみが再表示される。
図14でカテゴリの「苦情」に属する「〜ない」または「異常終了」というキーワードを含むのは、テキストデータを参照する「対象」では“テキストA”、“テキストJ”、“テキストL”及び“テキストM”であることが分かる。また、これらのテキストには、カテゴリの「要望」に属する「〜て下さい」、「〜てほしい」と、カテゴリの「プリンタ」に属する「プリンタ」、「印刷」及び「PRT-100」というキーワードが含まれており、カテゴリの「質問」に属するキーワードは含まれていないことが分かる。
更に、図11に示す状態で、ボタンクラス「主要分類」の個別ボタン「質問グループ」を選択すると、意味ボタン並列関連表示機能26aによって、意味ボタン全体の表示が図15のように更新される。具体的には、カテゴリの「質問」に属する全てのキーワード、すなわち「〜か」または「〜?」というキーワードを含む“テキストB”、“テキストC”、“テキストG”及び“テキストH”に含まれる他のキーワードに対応するボタンクラスの個別ボタンのみが再表示される。
図15で「質問グループ」に該当するのは(すなわち、キーワード「〜か」と「〜?」のいずれかを含むのは)、テキストデータを参照する「対象」では“テキストB”、“テキストC”、“テキストG”及び“テキストH”であり、これらのテキストには、カテゴリの「プリンタ」に属する「プリンタ」、「インク」及び「PRT-200」というキーワードの内、少なくともそのいずれかが含まれていることが分かる。また、カテゴリの「苦情」及び「要望」に属するキーワードは含まれていないことがわかる。
更に、図15に示す状態で、ボタンクラス「プリンタ」の個別ボタン「インク」を選択すると、意味ボタン並列関連表示機能26aによって、意味ボタン全体の表示が図16のように更新される。具体的には、前記「質問グループ」に該当し、かつ「インク」というキーワードを含む“テキストC”、“テキストH”の個別ボタンのみが再表示される。
図16で前記「質問グループ」に該当し、かつ、カテゴリの「プリンタ」に属する「インク」というキーワードを含むのは、テキストデータを参照する「対象」では“テキストC”と“テキストH”であり、これらのテキストには、カテゴリの「苦情」と「要望」に属するキーワードは含まれていないことが分かる。
尚、以上で述べた意味ボタンによる分析ツールの例では、異なるボタンクラス間で個別ボタンを複数選択すると、選択による絞り込みの条件は論理積(AND)で結合され、同一ボタンクラスの中で個別ボタンを複数選択すると、選択による絞り込みの条件は論理和(OR)で結合されている。
複数の個別ボタン選択時の、絞り込み条件の論理演算は前記以外にも、異なるボタンクラス間で論理和(OR)かつ同一ボタンクラス中で論理積(AND)、両方とも論理積(AND)、両方とも論理和(OR)、という組み合わせも考えられるが、もちろん、これらを全て実現することも可能である。
以上のように、この例によれば、テキストデータの持つ多様な意味に基づいて操作ボタン(意味ボタン)を自動生成し、コンピュータ経験が少なく専門知識を持たないエンドユーザでも、このボタンを選択するだけで、大量のテキストデータを、任意のカテゴリとキーワードに対応する多様な視点から、多次元で動的に階層を絞りながら検索したり、また複数のボタンクラスや個別ボタンを並列に再表示させて他のカテゴリのキーワードとの相互関連を見ながら検索したりすることが簡単にできる。