以下、図面を参照して、本発明の各実施形態について説明する。
[第1の実施形態]
まず、図1及び図2を参照して、本発明の第1の実施形態について説明する。図1は、本実施形態に係る辞書作成支援装置のハードウェア構成を示すブロック図である。図1に示すように、コンピュータ10は、例えばハードディスクドライブ(HDD:Hard Disk Drive)のような外部記憶装置20と接続されている。この外部記憶装置20は、コンピュータ10によって実行されるプログラム21を格納する。コンピュータ10及び外部記憶装置20は、辞書作成支援装置30を構成する。
図2は、図1に示す辞書作成支援装置30の主として機能構成を示すブロック図である。
図2に示すように、辞書作成支援装置30は、文書入力部31、テンプレート生成部32、テンプレート拡張部33、テンプレート頻度計算部34、重複テンプレートチェック部35及びテンプレート辞書更新部36を含む。本実施形態おいて、これらの各部31乃至36は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、辞書作成支援装置30は、文書データベース(DB)22、要素表現辞書格納部23、テンプレート辞書格納部24及び入力文書格納部25を含む。本実施形態において、文書データベース22、要素表現辞書格納部23、テンプレート辞書格納部24及び入力文書格納部25は、例えば外部記憶装置20に格納される。
文書データベース22には、例えばユーザによって作成された複数の文書が予め格納(蓄積)されている。この複数の文書は、文字列からなる文を含む。
要素表現辞書格納部23には、文字列からなる要素表現及び当該要素表現が属するカテゴリを対応付けて含む要素表現辞書が格納される。要素表現は、例えばユーザが注目する情報が正規表現で記述される。また、カテゴリには、例えば主体、属性及び数値が含まれる。
テンプレート辞書格納部24には、上記した要素表現辞書格納部23に格納されている要素表現辞書に含まれる各要素表現のカテゴリの組み合わせ(テンプレート)を含むテンプレート辞書が格納される。このテンプレートは、カテゴリの組み合わせが正規表現で記述される。
なお、要素表現辞書格納部23に格納される要素表現辞書及びテンプレート辞書格納部24に格納されるテンプレート辞書は、例えば文書中の数値情報データの正当性をチェック(数値不整合チェック)するために用いられる。
文書入力部31は、ユーザによって指定された文書を入力する。この文書は、例えば文字列からなる文を含む。ユーザは、例えば数値不整合チェックをしたい文書を指定する。
文書入力部31によって入力された文書(以下、入力文書と表記)は、例えば入力文書格納部25に一時的に格納(記憶)される。
テンプレート生成部32は、要素表現辞書格納部23に格納されている要素表現辞書に基づいて、入力文書格納部25に格納されている入力文書からテンプレート(第1のテンプレート)を生成する。
テンプレート生成部32は、入力文書に含まれる文毎に、要素表現辞書格納部23に格納されている要素表現辞書に含まれる要素表現を当該文から抽出する。テンプレート生成部32は、抽出された要素表現に対応付けて要素表現辞書に含まれるカテゴリを組み合わせることによってテンプレートを生成する。
テンプレート拡張部33は、テンプレート生成部32によって生成されたテンプレートをもとに、そのバリエーションを生成(つまり、拡張)する。テンプレート拡張部33は、予め定められたルールに基づいてテンプレート生成部32によって生成されたテンプレートを拡張し、当該テンプレートとは異なるテンプレート(第2のテンプレート)を生成する。なお、テンプレートの拡張に用いられるルールの詳細については後述する。
テンプレート頻度計算部34は、テンプレート生成部32によって生成されたテンプレート及びテンプレート拡張部33によって生成されたテンプレート毎に、テンプレート頻度を計算する。テンプレート頻度は、文書データベース22に格納されている文書に含まれる文のうちテンプレートに合致する文の数を示す。つまり、テンプレート頻度は、文書データベース22の中にテンプレートがあてはまる文が何回出現するかを示す。
テンプレート頻度計算部34は、テンプレート毎に計算されたテンプレート頻度に基づいて、複数のテンプレートの中からテンプレート辞書登録候補を選択する。テンプレート頻度計算部34は、テンプレート生成部32によって生成されたテンプレート及びテンプレート拡張部33によって生成されたテンプレートのうち、計算されたテンプレート頻度が例えば予め定められた値(閾値)以上のテンプレート(第3のテンプレート)をテンプレート辞書登録候補として選択する。
重複テンプレートチェック部35は、テンプレート頻度計算部34によってテンプレート辞書登録候補として選択されたテンプレートがテンプレート辞書格納部24に格納されているテンプレート辞書に含まれている(つまり、既に登録されている)か否かを判定(チェック)する。換言すると、重複テンプレートチェック部35は、テンプレート頻度計算部34によってテンプレート辞書登録候補として選択されたテンプレートがテンプレート辞書に未登録であるかを確認する。
重複テンプレートチェック部35は、テンプレート頻度計算部34によってテンプレート辞書登録候補として選択されたテンプレートがテンプレート辞書に既に登録されている場合、当該テンプレートを当該テンプレート辞書登録候補から除外する。
テンプレート辞書更新部36は、テンプレート辞書登録候補をテンプレート辞書格納部24に格納されているテンプレート辞書に追加することによって、当該テンプレート辞書を更新する。この場合、テンプレート辞書更新部36は、重複テンプレートチェック部35によって除外されていないテンプレート、つまり、テンプレート辞書に未登録であるテンプレートをテンプレート辞書に追加する。
図3は、図2に示す要素表現辞書格納部23に格納されている要素表現辞書のデータ構造の一例を示す。
図3に示すように、要素表現辞書には、文字列からなる要素表現及び当該要素表現が属するカテゴリが対応付けて含まれている。換言すれば、要素表現辞書においては、要素表現及びそのカテゴリが関連付けられて管理される。
要素表現は、例えばユーザが注目する情報が正規表現で記述される。カテゴリには、例えば主体、属性及び数値が含まれる。
図3に示す例では、要素表現辞書には、要素表現「CO2排出量」及びカテゴリ「主体」が対応付けて含まれている。
要素表現辞書には、要素表現「カナダ|米国|中国」及びカテゴリ「属性:国」が対応付けて含まれている。この場合、要素表現「カナダ」、「米国」及び「中国」の各々のカテゴリが「属性:国」であることが示されている。
また、要素表現辞書には、要素表現「([0-90-9\.,]+[百千万]*)+トン」及びカテゴリ「数値」が対応付けて含まれている。ここで、正規表現において、「+」は「1回以上の繰り返し」を意味する。また、「*」は、「0回以上の繰り返し」を意味する。
したがって、正規表現で記述された要素表現「([0-90-9\.,]+[百千万]*)+トン」は、半角または全角の「0から9」、「.」または「,」の1回以上の繰り返しと、「百」、「千」または「万」の0回以上の繰り返しの組み合わせが1回以上の繰り返した後に、単位である「トン」があることを意味する。
図4は、図2に示すテンプレート辞書格納部24に格納されているテンプレート辞書のデータ構造の一例を示す。
図4に示すように、テンプレート辞書には、複数のテンプレートが含まれる。このテンプレートは、要素表現辞書格納部23に格納されている要素表現辞書に含まれるカテゴリの組み合わせである。なお、テンプレートは、正規表現で記述される。つまり、テンプレート辞書においては、各要素のカテゴリの組み合わせが正規表現で記述されたテンプレートが管理される。
図4に示す例では、テンプレート辞書には、テンプレート「主体(属性:国 数値)+」が含まれている。このテンプレートは、「主体」の後に「属性:国」及び「数値」の組み合わせが1回以上繰り返すことを意味する。
テンプレート辞書には、テンプレート「属性:国(主体 数値)+」が含まれている。このテンプレートは、「属性:国」の後に「主体」及び「数値」の組み合わせが1回以上繰り返すことを意味する。
また、テンプレート辞書には、テンプレート「主体 数値」が含まれている。このテンプレートは、「主体」及び「数値」の組み合わせを意味する。
このようにテンプレート辞書に含まれるテンプレートにおいては、要素表現辞書に含まれるカテゴリ(ここでは、「主体」、「属性:国」及び「数値」)の組み合わせが正規表現で記述される。
上記したように、図3に示す要素表現辞書及び図4に示すテンプレート辞書は、例えば文書中の数値情報データの正当性のチェック(数値不整合チェック)に用いられる。つまり、要素表現辞書及びテンプレート辞書は、数値情報データの正当性をチェックするために必要な辞書(数値不整合チェック用辞書)である。
なお、この数値不整合チェック処理は、本実施形態に係る辞書作成支援装置30とは異なる当該チェック用の装置(以下、数値不整合チェック装置と表記)において実行される。換言すれば、数値不整合チェック装置(文書処理装置)は、本実施形態に係る辞書作成支援装置30を利用して作成された辞書を用いて数値不整合チェック処理を実行する。
数値不整合チェック処理においては、まず、数値不整合チェックをすべき文書(データ)が数値不整合チェック装置に入力される。この文書は、例えばユーザによって指定される。
数値不整合チェック装置は、入力された文書から例えば複数個所に記述された数値情報(データ)を抽出し、予め用意された同一の対象に関する数値情報を比較することで、その整合性(正当性)をチェックする。
入力された文書から数値情報を抽出するためには、要素表現辞書が用いられる。この場合、要素表現辞書に含まれる要素表現と文書に含まれる文とのマッチングが行われる。次に、要素表現にマッチした文字列にラベルとして当該要素表現のカテゴリ(当該要素表現に対応付けて要素表現辞書に含まれるカテゴリ)が付与され、入力された文書に含まれる各文のカテゴリの並びが抽出される。
続いて、テンプレート辞書を用いた処理が実行される。この場合、上記したように入力された文書に含まれる各文から抽出されたカテゴリの並びとテンプレート辞書に含まれるテンプレートとのマッチングが行われる。次に、テンプレートにマッチしたカテゴリが付与された文字列(数値情報)を抽出する。
数値不整合チェック装置においては、上記したようにして入力された文書から数値情報が抽出され、当該数値情報の整合性がチェックされる。
上記したように、要素表現辞書及びテンプレート辞書は、数値不整合チェック処理に用いられる。
次に、図5のフローチャートを参照して、本実施形態に係る辞書作成支援装置30の処理手順について説明する。
まず、文書入力部31は、ユーザによって指定された文書を入力する(ステップS1)。この文書は、文字列からなる文を含む。文書入力部31は、入力された文書(入力文書)を入力文書格納部25に記憶する。
次に、テンプレート生成部32は、要素表現辞書格納部23に格納されている要素表現辞書を用いて、入力文書格納部25に格納された入力文書に含まれる各文についてテンプレートを生成する(ステップS2)。
テンプレート生成部32は、入力文書に含まれる各文から、要素表現辞書格納部23に格納されている要素表現辞書に含まれる要素表現(文字列)を抽出する。テンプレート生成部32は、抽出された要素表現に対応付けて要素表現辞書に含まれるカテゴリを組み合わせることによって、入力文書に含まれる文毎にテンプレート(第1のテンプレート)を生成する。
テンプレート拡張部33は、予め定められたルールに基づいてテンプレート生成部32によって生成されたテンプレートを拡張し、当該テンプレートのバリエーションを生成する(ステップS3)。つまり、テンプレート拡張部33は、テンプレート生成部32によって生成されたテンプレートとは異なるテンプレート(第2のテンプレート)を、予め定められたルールに基づいて生成する。
ここで、テンプレートの拡張に用いられるルールについて説明する。このテンプレートの拡張に用いられるルールは、例えば第1及び第2のルールを含む。
第1のルールは、テンプレート中のカテゴリの順列組み合わせパターンにより当該カテゴリを展開するというものである。つまり、この第1のルールによれば、テンプレート生成部32によって生成されたテンプレートが「A B C(A、B及びCはカテゴリ)」である場合には、例えば「A C B」または「B A C」のようなテンプレートが生成される。
第2のルールは、数値及び数値の直前のカテゴリはペアで1回以上繰り返すというものである。つまり、この第1のルールによれば、テンプレート生成部32によって生成されたテンプレートが「A B C(Cは数値のカテゴリ)」である場合には、テンプレート拡張部33は、例えば「A (B C)+」のようなテンプレートを生成する。
なお、テンプレートの拡張に用いられるルールは、上記した第1及び第2のルールに限られず、他のルールであっても構わない。
次に、テンプレート頻度計算部34は、文書データベース22に格納されている文書及び要素表現辞書格納部23に格納されている要素表現辞書に基づいて、テンプレート生成部32によって生成されたテンプレート及びテンプレート拡張部33によって生成されたテンプレート毎にテンプレート頻度を計算する(ステップS4)。テンプレート頻度計算部34は、文書データベース22に格納されている文書に含まれる文のうち、テンプレートが合致する文(テンプレートがあてはまる文)の数を示すテンプレート頻度を計算する。
具体的には、まず、文書データベース22に格納されている全文書に対して、上記したテンプレート生成部32と同様に、当該文書に含まれる各文のテンプレートの生成が実行される。その後、生成されたテンプレートと、テンプレート頻度を計算するテンプレート(テンプレート生成部32及びテンプレート拡張部33によって生成されたテンプレート)とのマッチングが行われる。これにより、テンプレート生成部32及びテンプレート拡張部33によって生成された各テンプレートについてマッチした回数が、当該テンプレートのテンプレート頻度となる。
テンプレート頻度計算部34は、テンプレート生成部32及びテンプレート拡張部33によって生成されたテンプレートのうち、計算されたテンプレート頻度が閾値以上であるテンプレートをテンプレート辞書登録候補として選択する(ステップS5)。
ここでは、閾値以上のテンプレートがテンプレート辞書登録候補として選択されるものとして説明したが、テンプレート生成部32及びテンプレート拡張部33によって生成されたテンプレートのうち、計算されたテンプレート頻度が上位(例えば、上位20%)のテンプレートがテンプレート辞書登録候補として選択される構成であっても構わない。
次に、重複テンプレートチェック部35は、テンプレート頻度計算部34によってテンプレート辞書登録候補として選択されたテンプレートが、テンプレート辞書格納部24に格納されているテンプレート辞書に含まれている、つまり、当該テンプレート辞書に既に登録されている(存在する)か否かを確認(判定)する。
重複テンプレートチェック部35は、テンプレート辞書に既に存在するテンプレートをテンプレート辞書登録候補から除外する(ステップS6)。これにより、テンプレート辞書において重複するテンプレートは、当該テンプレート辞書には追加されない。
テンプレート辞書更新部36は、重複テンプレートチェック部35によって除外されていない残りのテンプレート辞書登録候補、つまり、テンプレート辞書に未登録であるテンプレート辞書登録候補を当該テンプレート辞書に追加する(ステップS7)。
このとき、テンプレート辞書登録候補は、要素表現カテゴリ数が降順になるようにテンプレート辞書に追加される。要素表現カテゴリ数とは、1つのテンプレートを構成するカテゴリの数である。具体的には、例えばテンプレート「A B C」の要素表現カテゴリ数は3である。
つまり、テンプレート辞書登録候補は、要素表現カテゴリ数が多い順にテンプレート辞書に追加される。
また、要素表現カテゴリ数が同一である場合には、テンプレート頻度計算部34によって計算されるテンプレート頻度が降順になるように、つまり、テンプレート頻度が多い順に追加される。
なお、上記した図5においては、テンプレート頻度が文書データベース22に格納されている文書に基づいて計算されるものとして説明したが、テンプレート頻度が例えば入力文書格納部25に格納されている文書(つまり、入力文書)のみに基づいて計算される構成であっても構わない。この場合には、入力文書に含まれる各文についてテンプレートが生成され、これらのテンプレートとテンプレート生成部32及びテンプレート拡張部33によって生成されたテンプレートとをマッチングすることによってテンプレート頻度が計算される。
また、文書データベース22に格納されている文書及び入力文書の両方に基づいてテンプレート頻度が計算される構成であってもよい。
次に、図6を参照して、本実施形態に係る辞書作成支援装置30の処理について具体的に説明する。なお、要素表現辞書格納部23に格納される要素表現辞書は、上記した図3に示す要素表現辞書であるものとする。また、テンプレート辞書格納部24に格納されるテンプレート辞書は、上記した図4に示すテンプレート辞書であるものとする。
まず、辞書作成支援装置30に含まれる文書入力部31は、ユーザによって指定された文書を入力する(ステップS11)。ここでは、文書入力部31によって入力された文書(入力文書)は、「人口1人当たりのCO2排出量は、先進国の中では、米国が19.8トンで最も多い。…」であるものとする。以下、便宜的に、「人口1人当たりのCO2排出量は、先進国の中では、米国が19.8トンで最も多い。」の一文(以下、対象文と表記)について主に述べるが、入力文書に含まれる対象文以外の他の文についても以下に説明する処理が実行される。
次に、テンプレート生成部32は、要素表現辞書格納部23に格納されている要素表現辞書を用いて、対象文についてテンプレートを生成する。
テンプレート生成部32は、図3に示す要素表現辞書に基づいて、対象文から要素表現「CO2排出量」、「米国」及び「19.8トン」を抽出する。テンプレート生成部32は、抽出された要素表現「CO2排出量」、「米国」及び「19.8トン」に対応付けて要素表現辞書に含まれているカテゴリ「主体」、「属性:国」及び「数値」を組み合わせることによって、テンプレート「主体 属性:国 数値」を生成する(ステップS12)。
テンプレート拡張部33は、例えば上記した第1及び第2のルールに基づいて、テンプレート生成部32によって生成されたテンプレートを拡張し、当該テンプレートとは異なるテンプレートを生成する。
ここでは、テンプレート拡張部33は、テンプレート生成部32によって生成されたテンプレート「主体 属性:国 数値」を、第1のルールに基づいて例えば「属性:国 主体 数値」に拡張(展開)したものとする。テンプレート拡張部33は、これらのテンプレート「主体 属性:国 数値」及び「属性:国 主体 数値」に第2のルールを適用することにより、例えばテンプレート「主体 (属性:国 数値)+」及び「属性:国 (主体 数値)+」を生成する(ステップS13)。
なお、上記した第1及び第2のルールによれば、テンプレート生成部32によって生成されたテンプレート「主体 属性:国 数値」を拡張することによって、上記したテンプレート「主体 (属性:国 数値)+」及び「属性:国 (主体 数値)+」以外にもテンプレートが生成されるが、以下では、便宜的にテンプレート「主体 (属性:国 数値)+」及び「属性:国 (主体 数値)+」について述べる。
なお、テンプレート「主体 (属性:国 数値)+」は、「主体」の後に「属性:国」及び「数値」の組み合わせが1回以上繰り返すことを意味する。このため、テンプレート「主体 (属性:国 数値)+」には、テンプレート生成部32によって生成されたテンプレート「主体 属性:国 数値」が含まれる。
次に、テンプレート頻度計算部34は、文書データベース22に格納されている文書及び要素表現辞書格納部23に格納されている要素表現辞書に基づいて、テンプレート生成部32及びテンプレート拡張部33によって生成されたテンプレート毎にテンプレート頻度を計算する。
ここで、文書データベース22に格納されている文書に含まれる文のうち、テンプレート「主体 (属性:国 数値)+」が合致する文(テンプレートがあてはまる文)の数が53、テンプレート「属性:国 (主体 数値)+」が合致する文の数が85であるものとする。
この場合、テンプレート頻度計算部34は、テンプレート「主体 (属性:国 数値)+」のテンプレート頻度「53」、テンプレート「属性:国 (主体 数値)+」のテンプレート頻度「85」を計算(取得)する(ステップS14)。
テンプレート頻度計算部34は、計算されたテンプレート頻度が閾値以上である場合には、これらのテンプレートをテンプレート辞書登録候補として選択する。
重複テンプレートチェック部35は、テンプレート「主体 (属性:国 数値)+」及び「属性:国 (主体 数値)+」が図4に示すテンプレート辞書に既に登録されているか否かを判定(確認)する。
図4に示すテンプレート辞書においては、テンプレート「主体 (属性:国 数値)+」及び「属性:国 (主体 数値)+」は既に登録されているため、これらのテンプレートは重複テンプレートチェック部35によりテンプレート辞書登録候補から除外される。したがって、図6に示す例では、テンプレート辞書登録候補は、テンプレート辞書には追加されないことになる。
なお、例えばテンプレート「主体 (属性:国 数値)+」はテンプレート辞書に登録されているが、テンプレート「属性:国 (主体 数値)+」はテンプレート辞書に登録されていないような場合には、当該テンプレート「属性:国 (主体 数値)+」は、テンプレート辞書更新部36によってテンプレート辞書に追加される。
上記したように本実施形態においては、ユーザによって指定された文書に含まれる文から生成されたテンプレート及び当該テンプレートを拡張することによって生成されたテンプレートを、文書中の数値情報の正当性をチェックするために必要なテンプレート辞書に自動的に登録することが可能となる。これにより、テンプレート辞書を人手で作成する場合と比較して、コストを大幅に削減することができる。
また、本実施形態においては、テンプレート頻度及びテンプレート辞書への登録順序を考慮することで、文書中に出現する有効なテンプレートを網羅的にテンプレート辞書に登録し、当該テンプレート辞書を上記した数値不整合チェック装置に適用することで、より精度の高い数値不整合チェック処理を実現することが可能となる。
これにより、本実施形態においては、例えば数値不整合チェック用辞書であるテンプレート辞書についての知識を持たないユーザによる当該テンプレート辞書の作成を支援することができるので、当該知識を持たないユーザであっても容易にテンプレート辞書を作成することが可能となる。
なお、本実施形態は、例えば自然言語処理を活用したシステムで使用される様々な辞書の作成にも適応可能であり、汎用性がある。具体的には、ある製品に対する評価を集めた文書群に対してテキストマイニングを行う際に使用する辞書の作成を支援する場合、例えば評価対象と評価表現を要素表現、評価対象と評価表現の出現パターンをテンプレートとすることで本実施形態を適用することができる。
[第2の実施形態]
次に、図7を参照して、本発明の第2の実施形態について説明する。図7は、本実施形態に係る辞書作成支援装置の主として機能構成を示すブロック図である。なお、前述した図2と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図2と異なる部分について主に述べる。
また、本実施形態に係る辞書作成支援装置のハードウェア構成は、前述した第1の実施形態と同様であるため、適宜、図1を用いて説明する。
図7に示すように、辞書作成支援装置100は、抽出部101、抽出情報出力部102、登録候補取得部103、要素表現拡張部104、要素表現頻度計算部105、重複要素表現チェック部106及び要素表現辞書更新部107を含む。本実施形態において、これらの各部101乃至107は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
なお、図7においては、前述した図2に示す入力文書格納部25については省略されている。
抽出部101は、文書入力部31によって入力された文書(入力文書格納部25に格納された入力文書)に含まれる文のうちユーザによって指定された文(文字列範囲)から、要素表現辞書格納部23に格納されている要素表現辞書に含まれる要素表現を抽出する。
抽出情報出力部102は、抽出部101によって抽出された要素表現を、ユーザに対して出力する。抽出情報出力部102は、抽出部101によって抽出された要素表現を、辞書作成支援装置100に備えられている例えばモニタ(図示せず)に表示する。
登録候補取得部103は、上記したユーザによって指定された文から要素表現辞書登録候補(第1の要素表現辞書登録候補)を取得する。ユーザは、抽出情報出力部102による要素表現の表示画面から要素表現辞書登録候補を指定することができる。つまり、登録候補取得部103は、この表示画面を介してユーザによって指定された文字列(第1の文字列)及び当該文字列が属するカテゴリを含む要素表現辞書登録候補を取得する。
要素表現拡張部104は、登録候補取得部103によって取得された要素表現辞書登録候補を用いて当該要素表現辞書登録候補を拡張し、当該要素表現辞書登録候補とは異なる要素表現辞書登録候補(第2の要素表現辞書登録候補)を、入力文書(に含まれる文)から取得する。要素表現拡張部104は、要素表現として要素表現辞書には登録されていないが要素表現である可能性の高い表現を、入力文書から取得する。このとき、要素表現拡張部104は、予め定められたルールに基づいて、登録候補取得部103によって取得された要素表現辞書登録候補に含まれる文字列に類似する文字列(第2の文字列)を含む要素表現辞書登録候補を取得する。なお、要素表現辞書登録候補の拡張に用いられるルールの詳細については後述する。
要素表現頻度計算部105は、登録候補取得部103によって取得された要素表現辞書登録候補及び要素表現拡張部104によって取得された要素表現辞書登録候補毎に、要素表現頻度を計算する。要素表現頻度は、文書データベース22に格納されている文書において要素表現が何回出現するか、つまり、文書データベース22中における要素表現の出現回数を示す。
要素表現頻度計算部105は、登録候補取得部103及び要素表現拡張部104によって取得された要素表現辞書登録候補の中から、計算された要素表現頻度が閾値(予め定められた値)以上の要素表現辞書登録候補(第3の要素表現辞書登録候補)を選択する。
重複要素表現チェック部106は、要素表現頻度計算部105によって選択された要素表現辞書登録候補が要素表現辞書格納部23に格納されている要素表現辞書に存在するか否かを確認する。重複要素表現チェック部106は、要素表現辞書に存在する要素表現辞書登録候補を除外する。
要素表現辞書更新部107は、重複要素表現チェック部106によって除外されていない要素表現辞書登録候補、つまり、要素表現辞書に存在しない(未登録である)要素表現辞書登録候補を、当該要素表現辞書に追加する。これにより、要素表現辞書更新部107は、要素表現辞書格納部23に格納されている要素表現辞書を更新する。
次に、図8のフローチャートを参照して、本実施形態に係る辞書作成支援装置100の処理手順について説明する。
まず、前述した図5のステップS1の処理に相当するステップS21の処理が実行される。
次に、抽出部101は、ステップS21における入力文書に含まれる文のうちユーザによって指定された文から、要素表現辞書格納部23に格納されている要素表現辞書に含まれる要素表現を抽出する(ステップS22)。
抽出情報出力部102は、抽出部101によって抽出された要素表現を、ユーザに対して表示(出力)する(ステップS23)。抽出情報出力部102は、要素表現を、辞書作成支援装置100に備えられている例えばモニタに表示する。
登録候補取得部103は、上記したユーザによって指定された文から要素表現辞書登録候補(第1の要素表現辞書登録候補)を取得する(ステップS24)。
ユーザは、抽出情報出力部102によって表示された要素表現(抽出部101による抽出結果)を確認することにより、抽出部101による要素表現の抽出が正しくない(抽出漏れがある)と判断した場合には、当該ユーザによって指定された文(抽出すべき文字列範囲)に対して例えばマウス操作を行うことにより、要素表現辞書登録候補となる文字列を指定することができる。登録候補取得部103は、このようにしてユーザによって指定された文字列を含む要素表現辞書登録候補を取得する。このとき、登録候補取得部103によって取得される要素表現辞書登録候補には、ユーザによって指定された文字列とともに、当該ユーザによって指定された当該文字列が属するカテゴリが含まれる。
要素表現拡張部104は、登録候補取得部103によって取得された要素表現辞書登録候補を、予め定められたルールに基づいて拡張し、当該要素表現辞書登録候補とは異なる要素表現辞書登録候補(第2の要素表現辞書登録候補)を取得する(ステップS25)。要素表現拡張部104は、入力文書(に含まれる文)から要素表現辞書登録候補を取得する。
この場合、要素表現拡張部104は、予め定められたルールに基づいて、登録候補取得部103によって取得された要素表現辞書登録候補に含まれる文字列(第1の文字列)に類似する文字列(第2の文字列)を含む要素表現辞書登録候補を取得する。
要素表現拡張部104によって取得された要素表現辞書登録候補は、ユーザに対して提示(表示)される。
ここで、要素表現辞書登録候補の拡張には、例えば登録候補取得部103によって取得された要素表現辞書登録候補と表現を部分一致させることにより、要素表現辞書登録候補と類似度が高い表現を抽出するというルールが適用される。また、部分一致した文字列に、当該部分一致した文字列の直前の文字種(例えば平仮名、カタカタ、漢字)からなる連続文字列(類似文字列)も併せて抽出するというルールが適用される。
具体的には、例えば要素表現辞書登録候補に含まれる文字列が「メタン排出量」である場合であって、「排出量」が部分一致し、当該部分一致した文字列の直前の文字種からなる連続文字列、例えば「XXX排出量」が入力文書に存在する場合には、要素表現拡張部104は、当該「XXX排出量」(を含む要素表現辞書登録候補)を取得する。
なお、登録候補取得部103によって取得された要素表現辞書登録候補に「メタン排出量」の属すカテゴリとしてカテゴリ「主体」が含まれている場合には、要素表現拡張部104によって取得される要素表現辞書登録候補には、当該カテゴリ「主体」が含まれる。
これにより、上記したように登録候補取得部103によって取得された要素表現辞書登録候補(に含まれる文字列)と類似する文字列を含む要素表現辞書登録候補が取得される。
次に、要素表現頻度計算部105は、文書データベース22に格納されている文書に基づいて、登録候補取得部103によって取得された要素表現辞書登録候補及び要素表現拡張部104によって取得された要素表現辞書登録候補毎に要素表現頻度を計算する(ステップS26)。
要素表現頻度計算部105は、登録候補取得部103によって取得された要素表現辞書登録候補及び要素表現拡張部104によって取得された要素表現辞書登録候補が、文書データベース22に格納されている文書において出現する回数を示す要素表現頻度を計算する。
具体的には、文書データベース22に格納されている全文書に対して、登録候補取得部103及び要素表現拡張部104によって取得された全ての要素表現辞書登録候補(に含まれる文字列)についてのマッチングが行われ、各要素表現辞書登録候補がマッチした回数が当該要素表現辞書登録候補の要素表現頻度として計算される。
次に、要素表現頻度計算部105は、登録候補取得部103及び要素表現拡張部104によって取得された要素表現辞書登録候補の中から、計算された要素表現頻度が閾値以上である要素表現辞書登録候補を選択する(ステップS27)。
ここでは、閾値以上の要素表現辞書登録候補が選択されるものとして説明したが、登録候補取得部103及び要素表現拡張部104によって取得された要素表現辞書登録候補のうち、計算された要素表現頻度が上位(例えば、上位20%)の要素表現辞書登録候補が選択される構成であっても構わない。
重複要素表現チェック部106は、要素表現頻度計算部105によって選択された要素表現辞書登録候補が、要素表現辞書格納部23に格納されている要素表現辞書に含まれている、つまり、当該要素表現辞書に既に登録されている(存在する)か否かを確認(判定)する。
重複要素表現チェック部106は、要素表現辞書に既に存在する要素表現辞書登録候補を(当該要素表現辞書登録候補から)除外する(ステップS28)。これにより、要素表現辞書において重複する要素表現辞書登録候補は、当該要素表現辞書には追加されない。
要素表現辞書更新部107は、重複要素表現チェック部106によって除外されていない残りの要素表現辞書登録候補、つまり、要素表現辞書に未登録である要素表現辞書登録候補を要素表現辞書格納部23(に格納されている当該要素表現辞書)に追加する(ステップS29)。これにより、要素表現辞書更新部107は、要素表現辞書格納部23に格納されている要素表現辞書を更新する。
このとき、要素表現辞書登録候補は、当該要素表現辞書登録候補に含まれる文字列の文字数が降順になるように要素表現辞書に追加される。また、要素表現辞書登録候補に含まれる文字数が例えば他の要素表現(文字列)と同一である場合には、上記した要素表現頻度計算部105によって計算された要素表現頻度が降順になるように追加される。
例えば要素表現辞書にカテゴリ「主体」に対応付けて要素表現「CO2排出量」が既に登録されている場合であって新たにカテゴリ「主体」及び要素表現「メタン排出量」の要素表現辞書登録候補を追加する場合を想定する。この場合、要素表現「CO2排出量」及び「メタン排出量」の文字数は同一であるが、「CO2排出量」の要素表現頻度が6、「メタン排出量」の要素表現頻度が3である場合には、この要素表現辞書登録候補が追加された後の要素表現辞書は、「主体=CO2排出量|メタン排出量」のようになる。
以下、前述した図5に示すステップS2〜ステップS7の処理に相当するステップS30〜ステップS35の処理が実行される。
なお、上記した図8においては、要素表現頻度が文書データベース22に格納されている文書に基づいて計算されるものとして説明したが、要素表現頻度が例えば入力文書のみに基づいて計算される構成であっても構わない。この場合には、要素表現辞書登録候補(に含まれる文字列)が入力文書に出現する回数が要素表現頻度として計算される。
また、文書データベース22に格納されている文書及び入力文書の両方に基づいて要素表現頻度が計算される構成であってもよい。
以下、図9〜図14を参照して、本実施形態に係る辞書作成支援装置100における要素表現辞書の更新処理について具体的に説明する。なお、要素表現辞書格納部23に格納されている要素表現辞書は、前述した図3に示すデータ構造であるものとする。
上記したように、抽出部101は、入力文書に含まれる文のうちユーザによって指定された文(以下、指定文と表記)から、要素表現辞書格納部23に格納されている要素表現辞書に含まれる要素表現を抽出する。
ここでは、ユーザによって指定された指定文(文字列範囲)は、「人口1人当たりのメタン排出量は、先進国の中では、米国が19.8トン」であるものとする。
この場合、抽出部101は、要素表現「米国」及び「19.8トン」を指定文から抽出する。
次に、抽出情報出力部102は、抽出部101によって抽出された要素表現「米国」及び「19.8トン」をユーザに対して表示する。
図9は、抽出部101によって抽出された要素表現がユーザに対して表示される場合の表示画面の一例を示す。
図9に示すように、表示画面には、ユーザによって指定された指定文「人口1人当たりのメタン排出量は、先進国の中では、米国が19.8トン」から抽出された要素表現「米国」及び「19.8トン」が表示される。このとき、要素表現「米国」に対応付けて要素表現辞書に含まれるカテゴリ「属性:国」及び要素表現「19.8トン」に対応付けて要素表現辞書に含まれるカテゴリ「数値」も表示画面に表示される。
また、表示画面には、以下に説明する要素表現辞書登録候補を指定するために用いられる「行を追加」等のボタンが表示されている。
なお、図9に示すように、ユーザは、入力文書において例えばマウス操作により、要素表現(数値情報)が正しく抽出されていない文(文字列範囲)を指定し、「抽出を改善」を選択することにより指定文を指定することができる。
次に、ユーザは、上記した表示画面から要素表現辞書登録候補となる文字列を指定することができる。図10は、ユーザが要素表現辞書登録候補となる文字列を指定する際の表示画面の一例を示す。ここでは、指定文に含まれる「メタン排出量」を要素表現辞書登録候補として指定する場合について説明する。
図10に示すように、ユーザが要素表現辞書登録候補となる文字列を指定する際には、ユーザは、表示画面に表示された「行を追加」のボタンを選択し、要素表現辞書登録候補に含まれる文字列「メタン排出量」及び当該「メタン排出量」が属するカテゴリ「主体」を入力(指定)することができる。
なお、表示画面において、例えばユーザが誤って要素表現辞書登録候補等を指定した場合には、例えば「行を削除」を選択することで、当該要素表現辞書登録候補の指定を取り消すことができる。
ユーザが上記したような操作を行うことによって、登録候補取得部103は、当該ユーザによって指定された文字列「メタン排出量」及びカテゴリ「主体」を含む要素表現辞書登録候補を取得する。
なお、本実施形態においては、ユーザによって指定された文字列を含む要素表現辞書登録候補が登録候補取得部103によって取得されるものとして説明したが、登録候補取得部103が、要素表現辞書に含まれる要素表現に基づいて要素表現辞書登録候補となり得る文字列を指定文から抽出して、予め表示する構成であっても構わない。
この場合、上記した要素表現辞書登録候補を拡張するために用いられるルールを適用することで、要素表現辞書に含まれる要素表現(文字列)と類似する文字列が予め抽出される。
図11は、要素表現辞書に含まれる要素表現に基づいて抽出された要素表現辞書登録候補となり得る文字列が表示された表示画面の一例を示す。図11に示すように、要素辞書に含まれる要素表現「CO2排出量」に上記したルールを適用することで、予め「メタン排出量」が抽出され、ユーザに対して表示される。これにより、ユーザは、自ら「メタン排出量」を入力することなく、容易に要素表現辞書登録候補を指定することができる。
その後、図12に示すように、要素表現辞書登録候補が表示された表示画面において、当該表示画面に表示されている「OK」ボタンがユーザによって選択された場合には、ユーザによって指定された要素表現辞書登録候補「メタン排出量」が要素表現辞書に存在するかが確認された後、当該要素表現辞書に存在しない場合には要素表現辞書に追加される。
次に、要素表現拡張部104は、登録候補取得部103によって取得された要素表現辞書登録候補(に含まれる文字列)「メタン排出量」を拡張する処理について説明する。要素表現拡張部104は、要素表現辞書登録候補「メタン排出量」を拡張することによって、当該「メタン排出量」とは異なる要素表現辞書登録候補を入力文書から取得する。
ここでは、上記した要素表現辞書登録候補の拡張に用いられるルールに応じて、「亜酸化窒素排出量」及び「フルオロメタン排出量」が取得されたものとする。この要素表現拡張部104によって取得された要素表現辞書登録候補は、ユーザに対して表示される。
図13及び14は、要素表現拡張部104によって取得された要素表現辞書登録候補が表示された場合の表示画面の一例を示す。
図13に示すように、要素表現拡張部104によって取得された要素表現辞書登録候補「亜酸化窒素排出量」及び「フルオロメタン排出量」がユーザに対して表示される。このとき、カテゴリとして「主体」も表示される。
また、図13に示すように、表示画面には、「今後、これらの表現も抽出しますか?」に対する応答として、「はい」、「はい(一部修正)」及び「いいえ」ボタンが表示される。
ここで、図14に示すように、ユーザによって「はい」ボタンが選択されると、要素表現拡張部104によって取得された要素表現辞書登録候補「亜酸化窒素排出量」及び「フルオロメタン排出量」が要素表現辞書に追加される。この場合、要素表現辞書登録候補「亜酸化窒素排出量」及び「フルオロメタン排出量」は、文字数が降順になるように要素表現辞書に追加される。図14に示す例では、「フルオロメタン排出量」及び「亜酸化窒素排出量」の順に追加される。
なお、これらの「亜酸化窒素排出量」及び「フルオロメタン排出量」が要素表現辞書に既に登録されている場合には、要素表現辞書に追加されない。
また、ユーザによって「はい(一部修正)」ボタンが選択されると、上記したように「行の追加」または「行の削除」ボタン等を選択できるようになり、要素表現辞書登録候補「亜酸化窒素排出量」及び「フルオロメタン排出量」の一部について修正が行われた後、要素表現辞書に追加される。
一方、ユーザによって「いいえ」ボタンが選択されると、要素表現辞書登録候補「亜酸化窒素排出量」及び「フルオロメタン排出量」は、要素表現辞書には追加されない。
上記したように本実施形態においては、ユーザによって指定された文において当該ユーザによって指定された文字列を要素表現登録候補として取得し、当該要素表現登録候補を要素表現辞書に自動的に登録することができる。
また、本実施形態においては、ユーザによって指定された要素表現登録候補を拡張し、当該ユーザによって指定された当該要素表現登録候補(に含まれる文字列)とは異なる文字列を含む要素表現辞書登録候補を取得し、当該取得された要素表現辞書登録候補についても要素表現辞書に自動的に登録することができる。
これにより、本実施形態においては、余分な要素表現の登録を防ぎ、かつ、要素表現辞書の品質を保ちながら、当該要素表現辞書を全て人手で作成する場合と比較して、コストを大幅に削減することが可能となる。
更に、本実施形態においては、要素表現頻度及び要素表現辞書への登録順序を考慮することで、文書中に出現する有効な要素表現を網羅的に要素表現辞書に登録し、当該要素表現辞書を前述した数値不整合チェック装置に適用することで、より精度の高い数値不整合チェック処理を実現することができる。これは、テンプレートの登録順序を考慮することで数値不整合チェック処理の精度が高くなる理由は、チェックの際に、辞書に登録されているテンプレートを上から順に参照し、文中の要素表現の並びと適合するテンプレートが見つかった時点で参照をストップする、という処理を行うためである。従って、有効なテンプレートが辞書の最初の方にくるようにテンプレートを登録することが望ましい。
これにより、本実施形態においては、例えば数値不整合チェック用辞書である要素表現辞書についての知識を持たないユーザによる当該要素表現辞書の作成を支援することができるので、当該知識を持たないユーザであっても容易に要素表現辞書を作成することが可能となる。
なお、本実施形態においては、要素表現辞書の更新処理が実行された後に、前述した第1の実施形態で説明したテンプレート辞書の更新処理が実行されるものとして説明したが、本実施形態において説明した要素表現辞書の更新処理のみが実行される構成であっても構わない。この場合であっても、上記したように要素表現辞書に自動的に要素表現を追加することができるため、数値不整合チェック処理に必要な要素表現辞書についての知識を持たないユーザによる要素表現辞書の作成を支援することができるという効果を得ることができる。
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
10…コンピュータ、20…外部記憶装置、22…文書データベース(文書格納手段)、23…要素表現辞書格納部、24…テンプレート辞書格納部、25…入力文書格納部、30,100…辞書作成支援装置、31…文書入力部(入力手段)、32…テンプレート生成部、33…テンプレート拡張部、34…テンプレート頻度計算部、35…重複テンプレートチェック部、36…テンプレート辞書更新部、101…抽出部、102…抽出情報出力部、103…登録候補取得部、104…要素表現拡張部、105…要素表現頻度計算部、106…重複要素表現チェック部、107…要素表現辞書更新部。