以下、図面を参照して、各実施形態について説明する。
(第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、類似度算出部、クラスタ生成部35、特徴度算出部36、類義語集合抽出部37および出力処理部38を含む。本実施形態において、これらの各部31〜38は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、文書処理装置30は、文書データベース(DB)22、解析結果格納部23、用語集計結果格納部24、類似度算出結果格納部25、特徴度算出結果格納部26および類義語集合格納部27を含む。本実施形態において、文書データベース(DB)22、解析結果格納部23、用語集計結果格納部24、類似度算出結果格納部25、特徴度算出結果格納部26および類義語集合格納部27は、例えば外部記憶装置20に格納される。
文書データベース22には、文書処理装置30の処理の対象となる複数の文書が予め格納されている。文書データベース22に格納されている文書には、1つまたは複数の単語からなる用語が含まれる。
入力処理部31は、ユーザの指示入力または外部からのデータ入力等を処理する。入力処理部31は、例えばユーザの操作に応じて文書処理装置30の処理の実行の指示を受け付ける。
解析部32は、文書データベース22に格納されている複数の文書を解析(例えば、形態素解析および構文解析)する。これにより、解析部32は、複数の文書の解析結果を取得する。複数の文書の解析結果には、当該複数の文書に含まれる用語および当該用語間の係り受け関係が含まれる。なお、解析部32によって取得された解析結果は、解析結果格納部23に格納される。
用語集計部33は、解析結果格納部23に格納された解析結果に基づいて、当該解析結果に含まれる用語毎に出現頻度(文書データベース22に格納されている複数の文書における出現頻度)を集計する。これにより、用語集計部33は、用語毎の出現頻度を含む用語集計結果を取得する。用語集計部33によって取得された用語集計結果は、用語集計結果24に格納される。
類似度算出部34は、解析結果格納部23に格納された解析結果に基づいて、当該解析結果に含まれる用語(つまり、文書データベース22に格納されている複数の文書に含まれる用語)の中から2つの用語(第1および第2の用語)を抽出する。この場合、類似度算出部34は、例えば同一の用語(品詞が動詞である用語)と同一の係り受け関係にある2つの用語(品詞が名詞である用語)を抽出する。類似度算出部34は、抽出された2つの用語の類似度を算出する。
類似度算出部34は、文脈類似度算出部341および文字列類似度算出部342を含む。
文脈類似度算出部341は、解析結果格納部23に格納された解析結果および用語集計結果格納部24に格納された用語集計結果に基づいて、類似度算出部34によって抽出された2つの用語の類似度として文脈類似度を算出する。なお、文脈類似度は、「意味的に似た語は似た文脈で出現する」との分布仮説に基づいて算出される類似度である。
文字列類似度算出部342は、類似度算出部34によって抽出された2つの用語の類似度として文字列類似度を算出する。なお、文字列類似度は、用語を構成する文字列自体の類似度である。
類似度算出部34によって算出された類似度(文脈類似度算出部341によって算出された文脈類似度および文字列類似度算出部342によって算出された文字列類似度)は、類似度算出結果格納部25に格納される。
クラスタ生成部35は、文書データベース22に格納されている複数の文書が属するクラスタを生成する。
特徴度算出部36は、用語集計結果格納部24に格納された用語集計結果に基づいて、当該用語集計結果に含まれる各用語の特徴度を算出する。このとき、特徴度算出部36は、クラスタ生成部35によって生成されたクラスタ毎に特徴度を算出する。特徴度算出部36によって算出された特徴度は、特徴度算出結果格納部26に格納される。
類義語集合抽出部37は、類似度算出結果格納部25に格納された類似度および特徴度算出結果格納部26に格納された特徴度に基づいて、類似度算出部34によって抽出された2つの用語を類義語として抽出する。類義語集合抽出部37による処理結果は、類義語集合格納部27に格納される。
出力処理部38は、ユーザへの表示出力または外部へのデータ出力等を処理する。出力処理部38は、例えば類義語集合抽出部37によって抽出された類義語集合を出力する。
図3は、図2に示す文書データベース22のデータ構造の一例を示す。図3に示す文書データベース22には、文書221を含む複数の文書が格納されている。
文書データベース22に格納されている各文書には、文書ID、テキスト、日付、作成者IDおよび分類コードが対応づけて含まれる。
文書IDは、文書を識別するための識別子である。テキストは、対応づけられている文書IDによって識別される文書の内容を示し、例えば1つまたは複数の単語からなる用語を含む。なお、複数の単語からなる用語には、例えば複合語等が含まれる。
日付は、対応づけられている文書IDによって識別される文書が作成された日付または更新された日付を示す。作成者IDは、対応づけられている文書IDによって識別される文書を作成した作成者を識別するための識別子である。
分類コードは、対応づけられている文書IDによって識別される文書が分類された場合に当該文書が属する分類を示す。この分類コードは、例えば対応づけられている文書IDによって識別される文書の作成者(つまり、対応づけられている作成者IDによって識別される作成者)が当該文書を文書データベース22に登録する際に予め設定される。なお、分類コードは、例えば文書データベース22に格納されている複数の文書に対して自動クラスタリング等を実行することにより機械的に決定されても構わない。
図3に示す例では、文書221には、文書ID「1」、テキスト「鉛筆と消しゴムと時計を持参して下さい。」、日付「2010−1−1」、作成者ID「1」および分類コード「A」が含まれている。これによれば、文書221は、文書ID「1」によって識別される文書であり、当該文書221の内容が「鉛筆と消しゴムと時計を持参して下さい。」であることが示されている。また、文書221は、作成者ID「1」によって日付「2010−1−1」に作成され、分類コード「A」に属することが示されている。
ここでは、文書データベース22に格納されている複数の文書のうちの文書221について説明したが、他の文書についても同様であるため、その詳しい説明を省略する。
なお、図3に示す例では、各文書に含まれるテキストは便宜的に1つの文のみから構成されているが、当該テキストは複数の文(2文以上)から構成されていても構わない。
次に、図4のフローチャートを参照して、本実施形態に係る文書処理装置30の処理手順について説明する。以下の説明においては、文書データベース22には、図3に示す複数の文書が格納されているものとする。
まず、入力処理部31は、ユーザの操作に応じて、当該ユーザからの文書処理装置30の処理を実行する旨の指示(以下、実行指示と表記)を入力する(ステップS1)。
入力処理部31によって実行指示が入力されると、解析部32は、文書データベース22に格納されている複数の文書を取得する。解析部32は、取得された複数の文書を解析する(ステップS2)。このとき、解析部32は、例えば形態素解析処理および構文解析処理を実行する。これにより、解析部32は、例えば構文解析結果を示す依存木構造のうち、名詞と動詞との係り受け関係を示す情報(以下、係り受け関係情報と表記)を取得する。
なお、解析部32によって抽出された係り受け関係情報は、解析結果として解析結果格納部23に格納される。
ここで、図5および図6は、解析結果格納部23のデータ構造の一例を示す。図5および図6に示す解析結果格納部23には、係り受け関係情報231〜233を含む複数の係り受け関係情報が格納されている。なお、係り受け関係情報は、上記したように名詞と動詞との係り受け関係を示す情報である。
解析結果格納部23に格納されている係り受け関係情報には、当該係り受け関係情報を識別するための係り受け関係情報ID、用語1、用語2、関係および文書IDが対応づけて含まれる。なお、係り受け関係情報IDは、解析部23によって取得された係り受け関係情報毎に付与される。
用語1は、対応づけられている係り受け関係情報IDによって識別される係り受け関係情報によって示される名詞と動詞との係り受け関係のうちの係り元の用語(つまり、名詞)を示す。用語2は、対応づけられている係り受け関係情報IDによって識別される係り受け関係情報によって示される名詞と動詞との係り受け関係のうちの係り先の用語(つまり、動詞)を示す。関係は、対応づけられている係り受け関係情報IDによって識別される係り受け関係情報によって示される名詞と動詞との係り受け関係(つまり、用語1と用語2との係り受け関係)を示す。文書IDは、対応づけられている係り受け関係情報IDによって識別される係り受け関係情報が取得された文書(つまり、当該係り受け関係情報によって示される名詞と動詞との係り受け関係が出現する文書)を識別するための識別子である。
図5に示す例えば係り受け関係情報231には、係り受け関係情報ID「1」、用語1「鉛筆」、用語2「持参」、関係「を」および文書ID「1」が含まれる。この係り受け関係情報ID「1」によって示される係り受け関係情報231によれば、用語1「鉛筆(名詞)」と用語2「持参(動詞)」との係り受け関係が「を」であることが示されている。また、係り受け関係情報ID「1」によって示される係り受け関係情報231によれば、当該係り受け関係情報231が文書データベース22に格納されている複数の文書のうちの文書ID「1」によって識別される文書から取得されたことが示されている。
また、図5に示す例えば係り受け関係情報232には、係り受け関係情報ID「6」、用語1「質問」、用語2「ある」、関係「が」および文書ID「3」が含まれる。この係り受け関係情報ID「6」によって示される係り受け関係情報232によれば、用語1「質問(名詞)」と用語2「ある(動詞)」との係り受け関係が「が」であることが示されている。また、係り受け関係情報ID「6」によって示される係り受け関係情報232によれば、当該係り受け関係情報232が文書データベース22に格納されている複数の文書のうちの文書ID「6」によって識別される文書から取得されたことが示されている。
また、図6に示す例えば係り受け関係情報233には、係り受け関係情報ID「21」、用語1「字消し」、用語2「消す」、関係「で」および文書ID「8」が含まれる。この係り受け関係情報ID「21」によって示される係り受け関係情報233によれば、用語1「字消し(名詞)」と用語2「消す(動詞)」との係り受け関係が「で」であることが示されている。また、係り受け関係情報ID「21」によって示される係り受け関係情報233によれば、当該係り受け関係情報233が文書データベース22に格納されている複数の文書のうちの文書ID「21」によって識別される文書から取得されたことが示されている。
ここでは、解析結果格納部23に格納されている複数の係り受け関係情報のうちの係り受け関係情報231〜233について説明したが、他の係り受け関係情報についても同様であるため、その詳しい説明を省略する。
再び図4に戻ると、用語集計部33は、解析結果格納部23に格納されている係り受け関係情報に基づいて用語の出現頻度を集計する(ステップS3)。具体的には、用語集計部33は、解析結果格納部23に格納されている係り受け関係情報に含まれる用語1毎に、解析結果格納部23に格納されている全ての係り受け関係情報において当該用語1が出現する頻度(出現頻度)を示す出現頻度情報を取得する。
なお、用語集計部33によって取得された出現頻度情報は、用語集計結果として用語集計結果格納部24に格納される。
ここで、図7は、用語集計結果格納部24のデータ構造の一例を示す。なお、図7に示す用語集計結果格納部24には、出現頻度情報241および242を含む複数の出現頻度情報が格納されている。出現頻度情報は、解析結果格納部23に格納されている係り受け関係情報に含まれる用語1の当該解析結果格納部23に格納されている全ての係り受け関係情報(つまり、文書データベース22に格納されている複数の文書)における出現頻度を示す。
用語集計結果格納部24に格納されている出現頻度情報には、当該出現頻度情報を識別するための出現頻度情報ID、用語および出現頻度が対応づけて含まれる。なお、出現頻度情報IDは、用語集計部33によって取得された出現頻度情報毎に付与される。
用語は、対応づけられている出現頻度情報IDによって識別される出現頻度情報によって出現頻度が示される用語を示し、解析結果格納部23に格納されている係り受け関係情報に含まれる用語1(名詞)である。出現頻度は、対応づけられている用語の解析結果格納部23に格納されている全ての係り受け関係情報における出現頻度である。
図7に示す例えば出現頻度情報241には、出現頻度情報ID「1」、用語「鉛筆」および頻度「1」が含まれる。この出現頻度情報ID「1」によって示される出現頻度情報241によれば、用語「鉛筆」の出現頻度が1であることが示されている。
また、図7に示す例えば出現頻度情報242には、出現頻度情報ID「2」、用語「消しゴム」および頻度「4」が含まれる。この出現頻度情報ID「2」によって示される出現頻度情報242によれば、用語「消しゴム」の出現頻度が4であることが示されている。
ここでは、用語集計結果格納部24に格納されている複数の出現頻度情報のうちの出現頻度情報241および242について説明したが、他の出現頻度情報についても同様であるため、その詳しい説明を省略する。
再び図4に戻ると、類似度算出部34は、解析結果格納部23および用語集計結果格納部24を参照して類似度算出処理を実行する(ステップS4)。この類似度算出処理によれば、解析結果格納部23に格納された係り受け関係情報に含まれる用語1の中から2つの用語1が抽出され、当該2つの用語1の類似度が算出される。なお、類似度算出処理の詳細については後述する。
類似度算出処理が実行されると、類似度算出部34によって算出された類似度は、類似度算出結果格納部25に格納される。
次に、クラスタ生成部35は、文書データベース22に格納されている複数の文書が属するクラスタを生成する(ステップS5)。上記したように文書データベース22に格納されている文書に分類コードが含まれている場合には、クラスタ生成部35は、当該分類コードに基づいてクラスタを生成する。ここでは、図8に示すように、文書データベース22に格納されている複数の文書のうち、例えば分類コード「A」が含まれている文書が属するクラスタとしてクラスタ1、分類コード「B」が含まれている文書が属するクラスタとしてクラスタ2、分類コード「C」が含まれている文書が属するクラスタとしてクラスタ3がクラスタ生成部35によって生成されたものとする。
なお、本実施形態においては文書データベース22に格納されている複数の文書に含まれる各分類コードに対して1対1で対応するクラスタを生成するが、例えば当該分類コードが複数桁であるような場合には、その上位N桁に対して1対1で対応するクラスタを生成しても構わない。つまり、複数の分類コードに対して1つのクラスタが生成されるような構成であっても構わない。
また、本実施形態においては文書データベース22に格納されている文書の各々に分類コードが含まれているものとして説明したが、当該文書の各々に分類コードが含まれていない場合には、当該文書データベース22に格納されている複数の文書に対して例えば自動クラスタリング処理を実行し、当該処理結果に基づいてクラスタが生成されても構わない。
次に、特徴度算出部36は、用語集計結果格納部24に格納されている出現頻度情報に含まれる用語毎に、クラスタ生成部35によって生成された各クラスタに対する特徴度を算出する処理(以下、特徴度算出処理と表記)を実行する(ステップS6)。この特徴度算出処理においては、用語集計結果格納部24に格納されている出現頻度情報に含まれる用語の出現頻度(つまり、当該出現頻度情報において当該用語に対応づけられている出現頻度)およびクラスタ生成部35によって生成されたクラスタに属する文書における当該用語の出現頻度に基づいて、当該用語の当該クラスタに対する特徴度が算出される。なお、特徴度算出処理の詳細については後述する。
特徴度算出処理が実行されると、特徴度算出部36によって算出された特徴度は、特徴度算出結果格納部26に格納される。
次に、類義語集合抽出部37は、類似度算出結果格納部25に格納された類似度および特徴度算出結果格納部26に格納された特徴度に基づいて、類義語(の集合)を抽出する処理(以下、類義語集合抽出処理と表記)を実行する(ステップS7)。この類義語集合抽出処理においては、上記した類似度算出処理において抽出された2つの用語が類義語として抽出される。なお、類義語集合抽出処理の詳細については後述する。
類義語集合抽出処理が実行されると、類義語集合抽出部37による処理結果(当該類義語集合抽出部37によって類義語として抽出された2つの用語)は、類義語集合格納部27に格納されるとともに、出力処理部38を介して出力される(ステップS8)。
類義語集合格納部27に格納された2つの用語は、類義語として例えば文書検索または文書分類等の処理に利用することができる。また、類義語集合抽出部37によって抽出された2つの用語が出力されることにより、ユーザは、当該2つの用語が類義語として適切であるかを確認して、例えば当該2つの用語を類義語として登録すべきか否かを指示することができる。
次に、図9のフローチャートを参照して、前述した類似度算出処理(上記した図4に示すステップS4の処理)の処理手順について説明する。
まず、類似度算出部34は、解析結果格納部23に格納されている全ての係り受け関係情報を読み込む(ステップS11)。
次に、類似度算出部34は、解析結果格納部23から読み込まれた係り受け関係情報に含まれる用語2(係り先の用語)および関係(係り受け関係)を1つの組として、当該読み込まれた全ての係り受け関係情報において当該用語2および関係の組に対応づけられている用語1(係り元の用語)の異なり数をカウントする(ステップS12)。換言すれば、類似度算出部34は、解析結果格納部23から読み込まれた係り受け関係情報の各々に含まれる用語1のうち、同一の用語2と同一の係り受け関係にある用語1の異なり数をカウントする。なお、ステップS12の処理は、解析結果格納部23から読み込まれた係り受け関係情報の各々に含まれる用語2および関係の全ての組について実行される。
次に、類似度算出部34は、解析結果格納部23を参照して、ステップS12の処理においてカウントされた異なり数が2以上である場合における用語2および関係の組に対応づけられている各用語1の出現頻度をカウントする(ステップS13)。具体的には、上記したように係り受け関係情報に含まれる用語2と関係との組に対応づけられている用語1の異なり数が2以上である場合、類似度算出部34は、当該用語1毎に、当該用語1、当該用語2および当該関係を含む係り受け関係情報の出現頻度(数)をカウントする。
類似度算出部34は、ステップS12およびS13の処理結果をもとに、類似度算出処理における中間処理結果を示す中間処理結果情報を生成する(ステップS14)。中間処理結果情報は、ステップS13において出現頻度がカウントされた用語1(、用語2および関係の組)毎に生成される。類似度算出部34によって生成された中間処理結果情報には、当該中間処理結果情報を識別するための中間処理結果ID、ステップS13において出現頻度がカウントされた係り受け関係情報に含まれる用語1、用語2および関係の組、および当該カウントされた出現頻度(以下、係り受け関係出現頻度と表記)が含まれる。
類似度算出部34は、生成された中間処理結果情報に基づいて2つの用語1からなる全ての組み合わせを抽出する(ステップS15)。具体的には、類似度算出部34は、生成された中間処理結果情報に基づいて、同一の用語2と同一の係り受け関係にある用語1の中の2つの用語1からなる全ての組み合わせ(ここでは、順列)を抽出する。
以下、ステップS14において抽出された2つの用語1の組み合わせにおいて、前方の用語1を用語A、後方の用語1を用語Bとする。また、この用語Aおよび用語Bからなる組み合わせを単に用語Aおよび用語Bの組と称する。
ステップS14が実行されると、類似度算出部34は、抽出された用語Aおよび用語Bの組の各々を類似度算出結果格納部25に格納する。このとき、類似度算出結果格納部25には、用語Aおよび用語Bに加えて、当該用語Aに対応づけて中間処理結果情報に含まれる係り受け関係出現頻度等が格納される。
次に、ステップS16およびS17の処理において、類似度算出結果格納部25に格納された用語Aおよび用語Bの文脈類似度が算出される。
類似度算出部34に含まれる文脈類似度算出部341は、用語集計結果格納部24に格納されている出現頻度情報に基づいて用語Aの出現頻度を取得する(ステップS16)。この場合、文脈類似度算出部341は、用語集計結果格納部24に格納されている出現頻度情報において用語Aに対応づけられている出現頻度を取得する。文脈類似度算出部341によって取得された用語Aの出現頻度は、当該用語Aに対応づけて類似度算出結果格納部25に格納される。
なお、ステップS16の処理は、類似度算出結果格納部25に格納された用語A毎に実行される。これにより、ステップS16の処理が実行された場合には、用語A毎の出現頻度が当該用語Aに対応づけて類似度算出結果格納部25に格納される。
次に、文脈類似度算出部341は、類似度算出結果格納部25を参照して、当該類似度算出結果格納部25に格納された用語Aおよび用語Bの文脈類似度を算出する(ステップS17)。用語Aおよび用語Bの文脈類似度は、当該用語Aおよび用語Bに対応づけて類似度算出結果格納部25に格納された係り受け関係出現頻度および用語Aの出現頻度を用いて、「係り受け関係出現頻度/用語Aの出現頻度」によって算出される。なお、文脈類似度算出部341によって算出された文脈類似度が閾値(例えば、0.25)以下である場合には、当該文脈類似度は0であるものとする。
文脈類似度算出部341によって算出された用語Aおよび用語Bの文脈類似度は、当該用語Aおよび用語Bに対応づけて類似度算出結果格納部25に格納される。
なお、ステップS17の処理は、類似度算出結果格納部25に格納された用語Aおよび用語Bの組毎に実行される。これにより、ステップS17の処理が実行された場合には、用語Aおよび用語Bの組毎の文脈類似度が類似度算出結果格納部25に格納される。
次に、ステップS18およびS19の処理において、類似度算出結果格納部25に格納された用語Aおよび用語Bの文字列類似度が算出される。
類似度算出部34に含まれる文字列類似度算出部342は、類似度算出結果格納部25に格納された用語Aおよび用語Bにおいて共通する文字数(以下、用語Aおよび用語Bの共通文字数と表記)をカウントする(ステップS18)。
次に、文字列類似度算出部342は、カウントされた用語Aおよび用語Bの共通文字数に基づいて当該用語Aおよび用語Bの文字列類似度を算出する(ステップS19)。用語Aおよび用語Bの文字列類似度は、「用語Aおよび用語Bの共通文字数/用語Aの文字数」によって算出される。なお、文字列類似度算出部342によって算出された文字列類似度は、当該用語Aおよび用語Bに対応づけて類似度算出結果格納部25に格納される。
なお、上記したステップS18およびS19の処理は、類似度算出結果格納部25に格納された用語Aおよび用語Bの組毎に実行される。これにより、ステップS18およびS19の処理が実行された場合には、用語Aおよび用語Bの組毎の文字列類似度が類似度算出結果格納部25に格納される。
以下、図10〜14を参照して、上記した類似度算出処理について具体的に説明する。ここでは、解析結果格納部23には、上記した図5および図6に示す複数の係り受け関係情報が格納されているものとする。また、用語集計結果格納部24には、上記した図7に示す複数の出現頻度情報が格納されているものとする。
まず、類似度算出部34は、解析結果格納部23から全ての係り受け関係情報を読み込む。次に、類似度算出部34は、読み込まれた係り受け関係情報の各々に含まれる用語2および関係の組毎に、当該組に対応づけられている用語1の異なり数をカウントする。つまり、類似度算出部34は、読み込まれた係り受け関係情報に基づいて、同一の用語2と同一の係り受け関係にある用語1の異なり数をカウントする。
ここで、上述した図5および図6を用いて具体的に説明すると、例えば用語2「持参」および関係「を」の組に対応づけられている用語1は、「鉛筆」、「消しゴム」および「時計」である。このため、図5および図6に示す係り受け関係情報において用語2「持参」および関係「を」の組に対応づけられている用語1(つまり、用語2「持参」と「を」の係り受け関係にある用語1)の異なり数は3となる。ここでは、用語2「持参」および関係「を」の組に対応づけられている用語1の異なり数ついて具体的に説明したが、他の用語2および関係の組に対応づけられている用語1の異なり数についても同様にカウントされる。
次に、類似度算出部34は、カウントされた異なり数が2以上である場合における用語2および関係の組に対応づけられている各用語1の出現頻度をカウントする。例えば上記した用語2「持参」および関係「を」の組に対応づけられている用語1の異なり数は2以上であるため、類似度算出部34は、用語2「持参」および関係「を」の組に対応づけられている用語1「鉛筆」、「消しゴム」および「時計」の各々の出現頻度をカウントする。
ここで、上記したように用語2「持参」および関係「を」の組に対応づけられている用語1「鉛筆」の出現頻度について、図5および図6を用いて具体的に説明する。この場合、用語1「鉛筆」、用語2「持参」および関係「を」の組を含む係り受け関係情報の出現頻度(数)が解析結果格納部23内でカウントされる。図5および図6によれば、用語2「持参」および関係「を」の組に対応づけられている用語1「鉛筆」の出現頻度は1となる。
なお、詳しい説明は省略するが、図5および図6に示す係り受け関係情報によれば、用語2「持参」および関係「を」の組に対応づけられている用語1「消しゴム」および「時計」の出現頻度についても同様に1となる。
ここでは、用語2「持参」および関係「を」の組に対応づけられている用語1「鉛筆」、「消しゴム」および「時計」の各々の出現頻度について主に説明したが、異なり数が2以上である場合における用語2および関係の組に対応づけられている用語1の全てについて出現頻度がカウントされる。
次に、類似度算出部34は、中間処理結果情報を生成する。この場合、類似度算出部34は、図10に示す中間処理結果情報101〜110を生成する。
図10に示すように、中間処理結果情報101〜110には、中間処理結果ID、上記したように出現頻度がカウントされた係り受け関係情報に含まれる用語1、用語2および関係の組、および当該カウントされた出現頻度(係り受け関係出現頻度)が含まれる。
なお、中間処理結果情報101〜110に含まれる中間処理結果IDは、中間処理結果情報を識別するための識別子であり、対応づけられている用語2および関係の組に対して付与された数値(識別子)と、対応づけられている用語1に対して付与された数値(識別子)とから構成される。
図10に示す例えば中間処理結果情報101には、中間処理結果ID「1−1」、用語1「鉛筆」、用語2「消しゴム」、関係「を」および出現頻度「1」が含まれている。この中間処理結果ID「1−1」によって識別される中間処理結果情報101によれば、用語1「鉛筆」、用語2「持参」、関係「を」(の組)を含む係り受け関係情報の出現頻度(係り受け関係出現頻度)が1であることが示されている。なお、中間処理結果ID「1−1」のうち、左側の「1」は、用語2「持参」および関係「を」の組に対して付与された数値であり、右側の「1」は、用語1「鉛筆」に対して付与された数値である。
同様に、中間処理結果102には、中間処理結果ID「1−2」、用語1「消しゴム」、用語2「持参」、関係「を」および出現頻度「1」が含まれている。この中間処理結果ID「1−2」によって識別される中間処理結果情報102によれば、用語1「消しゴム」、用語2「持参」および関係「を」(の組)を含む係り受け関係情報の出現頻度が1であることが示されている。なお、中間処理結果ID「1−2」のうち、左側の「1」は、上記した中間処理結果情報101と同様に用語2「持参」および関係「を」の組に対して付与された数値であり、右側の「2」は、用語1「消しゴム」に対して付与された数値である。
更に、中間処理結果103には、中間処理結果ID「1−3」、用語1「時計」、用語2「持参」、関係「を」および出現頻度「1」が含まれている。この中間処理結果ID「1−3」によって識別される中間処理結果情報103によれば、用語1「時計」、用語2「持参」および関係「を」(の組)を含む係り受け関係情報の出現頻度が1であることが示されている。なお、中間処理結果ID「1−3」のうち、左側の「1」は、上記した中間処理結果情報101および102と同様に用語2「持参」および関係「を」の組に対して付与された数値であり、右側の「3」は、用語1「時計」に対して付与された数値である。
なお、中間処理結果情報104〜110については詳しい説明は省略するが、例えば中間処理結果情報104および105では、用語2「記入」および関係「を」の組が共通しているため、当該中間処理結果情報104および105を識別するための中間処理結果IDにおける左側の数値は共通している。同様に、中間処理結果情報106〜108では、用語2「押す」および関係「を」の組が共通しているため、当該中間処理結果情報106〜108を識別するための中間処理結果IDにおける左側の数値は共通している。また、中間処理結果情報109および110についても、用語2「消す」および関係「で」の組が共通しているため、当該中間処理結果情報109および110を識別するための中間処理結果IDにおける左側の数値は共通している。
次に、類似度算出部34は、中間処理結果情報101〜110において左側の数値が同じである中間処理結果IDに対応づけられている用語1の中の2つの用語1からなる全ての組み合わせ(順列)を抽出する。
中間処理結果情報101〜110において例えば左側の数値が「1」である中間処理結果ID(ここでは、中間処理結果ID「1−1」、「1−2」および「1−3」)に対応づけられている用語1は、「鉛筆」、「消しゴム」および「時計」である。この場合、類似度算出部34は、「鉛筆」および「消しゴム」、「鉛筆」および「時計」、「消しゴム」および「鉛筆」、「消しゴム」および「時計」、「時計」および「鉛筆」、「時計」および「消しゴム」の6つの組み合わせ(順列)を抽出する。なお、中間処理結果情報101〜110において例えば左側の数値が「2」である中間処理結果IDおよび左側の数値が「3」である中間処理結果IDに対応づけられている用語1についても同様である。
このように類似度算出部34によって抽出された用語1の各組み合わせは、用語Aおよび用語Bとして類似度算出結果格納部25に格納される。
ここで、図11は、用語Aおよび用語Bの組が格納された後の類似度算出結果格納部25のデータ構造の一例を示す。
図11に示すように、類似度算出結果格納部25には、組ID、元ID、元ID出現頻度、用語Aおよび用語Bが対応づけて格納されている。
組IDは、用語Aおよび用語Bの組を識別するための識別子である。元IDは、用語Aに対応づけて図10に示す中間処理結果情報に含まれる中間処理結果IDである。元ID出現頻度は、用語Aに対応づけて図10に示す中間処理結果情報に含まれる出現頻度(係り受け関係出現頻度)である。
図11に示す例では、類似度算出結果格納部25には、例えば組ID「1」、元ID「1−1」、元ID出現頻度「1」、用語A「鉛筆」および用語B「消しゴム」が対応づけて格納されている。
ここでは、用語A「鉛筆」および用語B「消しゴム」の組について説明したが、図11に示すように他の用語Aおよび用語Bの組についても同様である。
次に、類似度算出部34に含まれる文脈類似度算出部341は、図11に示す類似度算出結果格納部25に格納された用語Aおよび用語Bの文脈類似度を算出する。
この場合、文脈類似度算出部341は、図7に示す用語集計結果格納部24に格納されている出現頻度情報において各用語Aに対応づけられている出現頻度(当該用語Aの出現頻度)を取得する。文脈類似度算出部341によって取得された各用語Aの出現頻度は、図12に示すように、当該用語A(および用語B)に対応づけて類似度算出結果格納部25に格納される。
次に、文脈類似度算出部341は、類似度算出結果格納部25において用語Aおよび用語Bに対応づけられている元ID出現頻度(係り受け関係出現頻度)および用語Aの出現頻度を用いて、当該用語Aおよび用語Bの文脈類似度を算出する。
図12に示す類似度算出結果格納部25において、例えば用語A「鉛筆」および用語B「消しゴム」に対応づけられている元ID出現頻度は1であり、用語A「鉛筆」の出現頻度は1である。このため、用語A「鉛筆」および用語B「消しゴム」の文脈類似度は、1/1=1と算出される。
また、図12に示す類似度算出結果格納部25において、例えば用語A「消しゴム」および用語B「鉛筆」に対応づけられている元ID出現頻度は1であり、用語A「消しゴム」の出現頻度は4である。このため、用語A「消しゴム」および用語B「鉛筆」の文脈類似度は、1/4=0.25と算出される。ここで、上記した閾値が0.25であるものとすると、用語A「消しゴム」および用語B「鉛筆」の文脈類似度は当該閾値以下であるため0となる。
なお、図12に示す類似度算出結果格納部25に格納されている他の用語Aおよび用語Bについても同様に文脈類似度が算出される。
上記したように文脈類似度算出部341によって算出された用語Aおよび用語Bの文脈類似度は、当該用語Aおよび用語Bに対応づけて類似度算出結果格納部25に格納される。なお、図13は、用語Aおよび用語Bの文脈類似度が格納された後の類似度算出結果格納部25のデータ構造の一例を示す。
次に、類似度算出部34に含まれる文字列類似度算出部342は、類似度算出結果格納部25に格納された用語Aおよび用語Bの文字列類似度を算出する。
この場合、文字列類似度算出部342は、類似度算出結果格納部25に格納された用語Aおよび用語Bの組毎に、当該用語Aおよび用語Bの共通文字数をカウントする。図13を用いて具体的に説明すると、類似度算出結果格納部25に格納された例えば用語A「鉛筆」および用語B「消しゴム」の場合、当該用語A「鉛筆」および用語B「消しゴム」の共通文字数は0である。また、類似度算出結果格納部25に格納された例えば用語A「字消し」および用語B「消しゴム」の場合、当該用語A「字消し」および用語B「消しゴム」の共通文字数は2である。
文字列類似度算出部342は、カウントされた用語Aおよび用語Bの共通文字数および当該用語Aの文字数に基づいて、当該用語Aおよび用語Bの文字列類似度を算出する。例えば用語A「鉛筆」および用語B「消しゴム」の場合、上記したように用語A「鉛筆」および用語B「消しゴム」の共通文字数は0であり、用語Aの文字数は2である。このため、用語A「鉛筆」および用語B「消しゴム」の文字列類似度は、0/2=0と算出される。また、例えば用語A「字消し」および用語B「消しゴム」の場合、上記したように用語A「字消し」および用語B「消しゴム」の共通文字数は2であり、用語Aの文字数は3である。このため、用語A「字消し」および用語B「消しゴム」の文字列類似度は、2/3≒0.67と算出される。
なお、図13に示す類似度算出結果格納部25に格納されている他の用語Aおよび用語Bについても同様に文字列類似度が算出される。
上記したように文脈類似度算出部341によって算出された用語Aおよび用語Bの文脈類似度は、当該用語Aおよび用語Bに対応づけて類似度算出結果格納部25に格納される。なお、図14は、用語Aおよび用語Bの文字列類似度が格納された後の類似度算出結果格納部25のデータ構造の一例である。
次に、図15のフローチャートを参照して、前述した特徴度算出処理(上記した図4に示すステップS6の処理)の処理手順について説明する。
まず、特徴度算出部36は、用語集計結果格納部24に格納されている全ての出現頻度情報を読み込む(ステップS21)。用語集計結果格納部24から読み込まれた出現頻度情報は、特徴度算出結果格納部26に格納される。これにより、用語集計結果格納部24には、出現頻度情報ID、用語および当該用語の出現頻度が対応づけて格納される。
次に、特徴度算出部36は、上述した図4に示すステップS5においてクラスタ生成部35によって生成されたクラスタ毎に、当該クラスタに属する文書(の集合)を文書データベース22から取得する。
特徴度算出部36は、特徴度算出結果格納部26に格納された用語の各クラスタにおける出現頻度をカウントする(ステップS22)。具体的には、特徴度算出部36は、取得された各クラスタに属する文書における用語の出現頻度をカウントする。なお、ステップS22の処理は、特徴度算出結果格納部26に格納された全ての用語について実行される。
ステップS22の処理が実行されると、特徴度算出部36によってカウントされた特徴度算出結果格納部26に格納された用語の各クラスタにおける出現頻度は、当該用語に対応づけて特徴度算出結果格納部26に格納される。
次に、特徴度算出部36は、特徴度算出結果格納部26に格納された用語の出現頻度および当該用語の各クラスタにおける出現頻度に基づいて、当該用語の各クラスタに対する特徴度を算出する(ステップS23)。なお、用語の各クラスタに対する特徴度は、値が大きいほど当該用語が当該クラスタにおいて特徴的な用語であることを表す。
用語のクラスタに対する特徴度は、「(当該用語のクラスタにおける出現頻度−1)/当該用語の出現頻度」によって算出される。なお、ステップS23の処理は、特徴度算出結果格納部26に格納された全ての用語について実行される。
上記したステップS23の処理が実行されると、特徴度算出部36によって算出された用語の各クラスタに対する特徴度は、当該用語に対応づけて特徴度算出結果格納部26に格納される(ステップS24)。ステップS24の処理が実行されると、特徴度算出処理は終了される。
以下、図16〜図18を参照して、上記した特徴度算出処理について具体的に説明する。ここでは、用語集計結果格納部24には、上記した図7に示す複数の出現頻度情報が格納されているものとする。また、上述した図8において説明したようにクラスタ1〜3がクラスタ生成部35によって生成されたものとする。
まず、特徴度算出部36は、用語集計結果格納部24から全ての出現頻度情報を読み込む。用語集計結果格納部24から読み込まれた出現頻度情報は、特徴度算出結果格納部26に格納される。これにより、特徴度算出結果格納部26は、例えば図7と同様の情報が格納される。
次に、特徴度算出部36は、クラスタ生成部35によって生成されたクラスタ1〜3の各々に属する文書を文書データベース22から取得する。ここでは、上記したようにクラスタ1には分類コード「A」を含む文書が属し、クラスタ2には分類コード「B」を含む文書が属し、クラスタ3には分類コード「C」を含む文書が属するものとする。このため、クラスタ1に属する文書として分類コード「A」を含む文書が文書データベース22から取得される。また、クラスタ2に属する文書として分類コード「B」を含む文書が文書データベース22から取得される。また、クラスタ3に属する文書として分類コード「C」を含む文書が文書データベース22から取得される。
特徴度算出部36は、特徴度算出結果格納部26に格納された用語毎に、当該用語のクラスタ「1」〜「3」の各々における出現頻度(以下、クラスタ出現頻度と表記)をカウントする。この場合、特徴度算出部36は、文書データベース22から取得されたクラスタ1に属する文書における各用語の出現頻度、クラスタ2に属する文書における各用語の出現頻度およびクラスタ3に属する文書における各用語の出現頻度をカウントする。
特徴度算出部36によってカウントされたクラスタ1〜3の各々におけるクラスタ出現頻度は、用語毎に特徴度算出結果格納部26に格納される。なお、図16は、用語毎に各クラスタ1〜3におけるクラスタ出現頻度が格納された後の特徴度算出結果格納部26のデータ構造の一例を示す。図16においては、便宜的に、クラスタ1におけるクラスタ出現頻度をクラスタ出現頻度1、クラスタ2におけるクラスタ出現頻度をクラスタ出現頻度2、クラスタ3におけるクラスタ出現頻度をクラスタ出現頻度3として示す。図16に示す例では、特徴度算出結果格納部26には、例えば用語「消しゴム」のクラスタ1におけるクラスタ出現頻度として1、クラスタ2におけるクラスタ出現頻度として3、クラスタ3におけるクラスタ出現頻度として0が格納されている。ここでは詳しい説明を省略するが、特徴度算出結果格納部26には、図16に示すように他の用語についても同様にクラスタ1〜3の各々におけるクラスタ出現頻度が格納されている。
次に、特徴度算出部36は、特徴度算出結果格納部26に格納された用語毎に、当該用語の出現頻度および当該用語のクラスタ1〜3の各々におけるクラスタ出現頻度に基づいて、当該用語のクラスタ1〜3の各々に対する特徴度を算出する。なお、用語のクラスタN(ここでは、N=1,2,3)に対する特徴度は、「(当該用語のクラスタNにおけるクラスタ出現頻度−1)/当該用語の出現頻度」によって算出される。
ここで、図16を参照して、特徴度算出結果格納部26に格納されている例えば用語「消しゴム」のクラスタ1〜3の各々に対する特徴度について具体的に説明する。図16に示すように、特徴度算出結果格納部26に格納されている用語「消しゴム」の出現頻度は4である。また、特徴度算出結果格納部26格納されている用語「消しゴム」のクラスタ1におけるクラスタ出現頻度は1である。この場合、用語「消しゴム」のクラスタ1に対する特徴度は、(1−1)/4=0と算出される。また、図16に示すように、特徴度算出結果格納部26に格納されている用語「消しゴム」のクラスタ2におけるクラスタ出現頻度は3である。この場合、用語「消しゴム」のクラスタ2に対する特徴度は、(3−1)/4=0.5と算出される。なお、図16に示すように、特徴度算出結果格納部26に格納されている用語「消しゴム」のクラスタ3におけるクラスタ出現頻度3は0である。この場合、用語「消しゴム」のクラスタ1に対する特徴度は、0と算出される。
なお、図16に示す特徴度算出結果格納部25に格納されている他の用語についても同様に特徴度が算出される。
上記したように特徴度算出部36によって算出された用語のクラスタ1〜3の各々に対する特徴度は、当該用語に対応づけて特徴度算出結果格納部26に格納される。図17は、各用語のクラスタ1〜3の各々に対する特徴度が格納された後の特徴度算出結果格納部26のデータ構造の一例を示す。図17においては、便宜的に、クラスタ1に対する特徴度を特徴度1、クラスタ2に対する特徴度を特徴度2、クラスタ3に対する特徴度を特徴度3として示す。なお、図17に示す特徴度算出結果格納部26に格納された各用語のクラスタ1〜3の各々に対する特徴度によれば、図18に示すように、用語「消しゴム」、「専用インク」、「文字」および「字消し」はクラスタ「2」に対して特徴的な用語であり、用語「取り消し」、「入力」および「取りやめ」はクラスタ「3」に対して特徴的な用語である。
次に、図19のフローチャートを参照して、前述した類義語集合抽出処理(上記した図4に示すステップS7の処理)の処理手順について説明する。
まず、類義語集合抽出部37は、類似度算出結果格納部25から類似度算出結果を読み込む(ステップS31)。この場合、類義語集合抽出部37は、類似度算出結果として、類似度算出結果格納部25に格納されている用語Aおよび用語Bの組、当該用語Aおよび用語Bの組に対応づけられている文脈類似度(用語Aおよび用語Bの文脈類似度)および文字列類似度(用語Aおよび用語Bの文字列類似度)を読み込む。類似度算出結果格納部25から読み込まれた類似度算出結果(用語Aおよび用語Bの組、文脈類似度および文字列類似度)は、類義語集合格納部27に格納される。
次に、類義語集合抽出部37は、クラスタ生成部35によって生成されたクラスタの各々について以下のステップS32およびS33を実行する。この処理の対象となるクラスタを対象クラスタと称する。
類義語集合抽出部37は、特徴度算出結果格納部26から特徴度算出結果を読み込む(ステップS32)。この場合、類義語集合抽出部37は、特徴度算出結果として、類義語集合格納部27に格納された用語Aの対象クラスタに対する特徴度および用語Bの対象クラスタに対する特徴度を読み込む。特徴度算出結果格納部26から読み込まれた特徴度算出結果(用語Aの対象クラスタに対する特徴度および用語Bの対象クラスタに対する特徴度)は、類義語集合格納部27に格納される。
類義語集合抽出部37は、類義語集合格納部27に格納された用語Aおよび用語Bの組毎に、当該類義語集合格納部27に格納された当該用語Aおよび用語Bの文脈類似度、当該用語Aおよび用語Bの文字列類似度、当該用語Aの対象クラスタに対する特徴度および用語Bの対象クラスタに対する特徴度に基づいて当該用語Aおよび用語Bが類義語(の集合)であるか否かを判定する。この場合、例えば用語Aおよび用語Bの文脈類似度、用語Aおよび用語Bの文字列類似度、用語Aの対象クラスタに対する特徴度、および用語Bの対象クラスタに対する特徴度の4つの値の積が0より大きい場合、当該用語Aおよび用語Bは類義語であると判定される。換言すれば、用語Aおよび用語Bの文脈類似度、用語Aおよび用語Bの文字列類似度、用語Aの対象クラスタに対する特徴度、および用語Bの対象クラスタに対する特徴度の4つの値の全てが0でなければ、当該用語Aおよび用語Bは類義語であると判定される。
このような判定処理が類義語集合格納部27に格納された用語Aおよび用語Bの全ての組に対して実行されることによって、類義語集合抽出部37は、用語Aおよび用語Bを類義語として抽出する(ステップS33)。
次に、類義語集合抽出部37は、クラスタ生成部35によって生成された全てのクラスタについてステップS32およびS33の処理が実行されたか否かを判定する(ステップS34)。
全てのクラスタについて処理が実行されていないと判定された場合(ステップS34のNO)、上記したステップS32に戻って処理が繰り返される。この場合、ステップS32およびS33の処理が実行されていないクラスタを対象クラスタとして処理が実行される。
一方、全てのクラスタについて処理が実行されたと判定された場合(ステップS34のYES)、類義語集合抽出処理は終了される。
以下、図20〜図24を参照して、上記した類義語集合抽出処理について具体的に説明する。ここでは、類似度算出結果格納部25には、上記した図14に示す各種情報が格納されているものとする。また、特徴度算出結果格納部26には、上記した図17に示す各種情報が格納されているものとする。また、上述した図8において説明したようにクラスタ1〜3がクラスタ生成部35によって生成されたものとする。
まず、類義語集合抽出部37は、類似度算出結果として、類似度算出結果格納部25に対応づけて格納されている組ID、用語Aおよび用語Bの組、文脈類似度および文字列類似度の全てを当該類似度算出結果格納部25から読み込む。類似度算出結果格納部25から読み込まれた類似度算出結果(組ID、用語Aおよび用語Bの組、文脈類似度および文字列類似度)は、類義語集合格納部27に格納される。図20は、類似度算出結果が格納された後の類義語集合格納部27のデータ構造の一例を示す。
以下、クラスタ生成部35によって生成されたクラスタ1〜3の各々について処理が実行されるが、ここではクラスタ2について具体的に説明する。
この場合、類義語集合抽出部37は、特徴度算出結果として、類義語集合格納部27に格納された用語Aのクラスタ2に対する特徴度および用語Bのクラスタ2に対する特徴度を特徴度算出結果格納部26から読み込む。
特徴度算出結果格納部26から読み込まれた特徴度算出結果(用語Aのクラスタ2に対する特徴度および用語Bのクラスタ2に対する特徴度)は、類義語集合格納部27に格納される。なお、ここで類義語集合格納部27に格納された用語Aのクラスタ2に対する特徴度および用語Bのクラスタ2に対する特徴度は、単に用語Aの特徴度および用語Bの特徴度とする。図21は、特徴度算出結果が格納された後の類義語集合格納部27のデータ構造の一例を示す。
次に、類義語集合抽出部37は、類義語集合格納部27に格納された用語Aおよび用語Bの組毎に、当該類義語集合格納部27に格納された当該用語Aおよび用語Bの文脈類似度、当該用語Aおよび用語Bの文字列類似度、当該用語Aの特徴度および用語Bの特徴度に基づいて当該用語Aおよび用語Bが類義語(の集合)であるか否かを判定する。上記したように用語Aおよび用語Bの文脈類似度、当該用語Aおよび用語Bの文字列類似度、当該用語Aの特徴度および用語Bの特徴度の4つの値の積が0より大きい場合、当該用語Aおよび用語Bは類義語であると判定される。
ここで、図21に示す類義語集合格納部27に格納された例えば用語A「鉛筆」および用語B「消しゴム」の場合、用語A「鉛筆」および用語B「消しゴム」の文脈類似度は1であり、用語A「鉛筆」および用語B「消しゴム」の文字列類似度は0であり、用語A「鉛筆」の特徴度は0であり、用語B「消しゴム」の特徴度は0.5である。この場合、用語A「鉛筆」および用語B「消しゴム」の文脈類似度、当該用語A「鉛筆」および用語B「消しゴム」の文字列類似度、当該用語A「鉛筆」の特徴度、および当該用語Bの特徴度の4つの値の積は0であるため、用語A「鉛筆」および用語B「消しゴム」は類義語でないと判定される。
一方、図21に示す類義語集合格納部27に格納された例えば用語A「字消し」および用語B「消しゴム」の場合、用語A「字消し」および用語B「消しゴム」の文脈類似度は0.75であり、用語A「字消し」および用語B「消しゴム」の文字列類似度は0.67であり、用語A「字消し」の特徴度は0.75であり、用語B「消しゴム」の特徴度は0.5である。この場合、用語A「字消し」および用語B「消しゴム」の文脈類似度、用語A「字消し」および用語B「消しゴム」の文字列類似度、用語A「字消し」の特徴度、および用語B「消しゴム」の特徴度の4つの値の積は0でないため、用語A「字消し」および用語B「消しゴム」は類義語であると判定される。
このように、類義語集合抽出部37は、図21に示す類義語集合格納部27に格納された用語Aおよび用語Bの組の全てについて判定処理を実行する。
ここで、図22は、上記した類義語集合抽出部37による判定結果を示す。図22に示す例では、類義語集合格納部27に格納された用語Aおよび用語Bの組のうち、用語A「字消し」および用語B「消しゴム」のみが類義語であると判定されている。この場合、類義語集合抽出部37は、用語A「字消し」および用語B「消しゴム」を類義語として抽出する。
ここではクラスタ2について説明したが、クラスタ1およびクラスタ3についても同様の処理が実行される。例えばクラスタ1の場合、図23に示すように用語Aおよび用語Bの特徴度が全て0であるため、類義語は抽出されない。一方、クラスタ3の場合には、図24に示すように用語A「取り消し」および用語B「取りやめ」と、用語A「取りやめ」および用語B「取り消し」とが類義語であると判定されるため、用語A「取り消し」および用語B「取りやめ」(および、用語A「取りやめ」および用語B「取り消し」)が類義語として抽出される。
上記したように類義語集合抽出部37によって類義語として抽出された2つの用語(用語Aおよび用語B)は、出力処理部38によって出力(表示)される。ここで、図25は、類義語集合抽出部37によって類義語として抽出された2つの用語が表示された場合における表示画面の一例を示す。図25に示す例では、上記したようにクラスタ2の場合(つまり、クラスタ2に対して処理が実行された場合)に類義語として抽出された用語「字消し」および用語「消しゴム」とクラスタ3の場合(つまり、クラスタ3に対して処理が実行された場合)に類義語として抽出された用語「取り消し」および用語「取りやめ」とが表示されている。ユーザは、図25に示すような表示画面を参照して、当該表示画面に表示された2つの用語を類義語として登録するか否かを指示することができる。
上記したように本実施形態においては、文書データベース22に格納されている複数の文書に含まれる用語の中から2つの用語(第1および第2の用語)を抽出し、当該抽出された2つの用語の類似度を算出し、文書データベース22に格納されている複数の文書が属するクラスタを生成し、当該生成されたクラスタに対する当該2つの用語の各々の特徴度を算出し、当該2つの用語の類似度および当該クラスタに対する2つの用語の各々の特徴度に基づいて当該2つの用語を類義語として抽出する構成により、誤った用語を類義語として抽出することなく、適切な用語のみを類義語として文書から抽出することが可能となる。
具体的には、上述した図14に示す例えば文脈類似度および文字列類似度のみに基づいて類義語が抽出される場合、当該文脈類似度および文字列類似度の2つの値の積が0でない2つの用語(ここでは、用語「取り消し」および用語「消しゴム」、用語「取り消し」および用語「取りやめ」、用語「字消し」および用語「消しゴム」)がそれぞれ類義語として抽出される。しかしながら、この場合には適切でない用語「取り消し」および用語「消しゴム」についても類義語として抽出される。これに対して本実施形態においては、文脈類似度および文字列類似度に加えて用語が抽出された文書が属するクラスタ(に対する特徴度)についても考慮することによって、適切でない用語「取り消し」および用語「消しゴム」を排除して、上述したように用語「取り消し」および用語「取りやめ」、用語「字消し」および用語「消しゴム」のみを類義語として抽出することができる。
つまり、本実施形態によれば、文脈類似度または文字列類似度という局所的な類似性とクラスタに対する特徴度という大局的な類似性に基づいて類義語が抽出されるため、誤った類義語(ノイズ用語)が文書内の局所的な類似性により抽出されることを抑制することができる。
また、本実施形態において抽出された類義語は、例えば類義語辞書等に登録しておき、文書検索または文書分類等において利用することができる。
なお、本実施形態においては、2つの用語の類似度として文脈類似度および文字列類似度が算出されるものとして説明したが、文脈類似度および文字列類似度の一方のみが算出される構成であってもよい。文脈類似度のみが算出される場合には、例えば図9に示すステップS11〜S17の処理が実行されればよい。一方、文字列類似度のみが算出される場合には、例えば用語集計結果格納部24に格納された複数の用語のうちの2つの用語の組み合わせの各々について図9に示すステップS18およびS19の処理が実行されればよい。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。なお、本実施形態に係る文書処理装置の機能構成は、前述した第1の実施形態と同様であるため、適宜、図2を用いて説明する。
本実施形態においては、特徴度算出部36による特徴度算出処理が実行された後に類似度算出部34による類似度算出処理が実行される点が、前述した第1の実施形態とは異なる。つまり、本実施形態における類似度算出処理においては、用語集計結果格納部24に格納されている出現頻度情報(用語集計結果)ではなく、特徴度算出結果格納部26に格納されている特徴度算出結果が用いられる。
ここで、図26のフローチャートを参照して、本実施形態に係る文書処理装置30の処理手順について説明する。
まず、前述した図4に示すステップS1〜S3、S5およびS6の処理に相当するステップS41〜S45の処理が実行される。
なお、ステップS42の処理が実行されると、前述した図5および図6に示すように係り受け関係情報(解析結果)が解析結果格納部23に格納される。また、ステップS43の処理が実行されると、前述した図7に示すように出現頻度情報(用語集計結果)が用語集計結果格納部24に格納される。また、ステップS45の処理が実行されると、前述した図17に示すような特徴度算出結果が特徴度算出結果格納部26に格納される。
次に、類似度算出部34は、解析結果格納部23および特徴度算出結果格納部25を参照して類似度算出処理を実行する(ステップS46)。この類似度算出処理によれば、特徴度算出結果格納部26に格納されたクラスタ生成部35によって生成された各クラスタに対する特徴度が後述する予め定められた条件を満たす用語の中から2つの用語(第1および第2の用語)が抽出され、当該2つの用語の類似度が算出される。つまり、類似度算出処理においては、特徴度算出結果格納部26に格納された全ての用語ではなく、予め定められた条件を満たす用語のみを対象として処理が実行される。なお、類似度算出処理の詳細については後述する。
類似度算出処理が実行されると、類似度算出部34によって算出された類似度は、類似度算出結果格納部25に格納される。
次に、類義語集合抽出部37は、類似度算出結果格納部25に格納された類似度に基づいて、上記した類似度算出処理において抽出された2つの用語を類義語(の集合)として抽出する処理(類義語集合抽出処理)を実行する(ステップS47)。なお、類義語集合抽出処理の詳細については後述する。
類義語集合抽出処理が実行されると、前述した図4に示すステップS8の処理に相当するステップS48の処理が実行される。
次に、図27のフローチャートを参照して、上述した類似度算出処理(上記した図26に示すステップS46の処理)の処理手順について説明する。
類似度算出処理においては、クラスタ生成部35によって生成されたクラスタの各々について以下のステップS51〜S61の処理を実行する。この処理の対象となるクラスタを対象クラスタと称する。
まず、類似度算出部34は、特徴度算出結果格納部26から特徴度算出結果を読み込む(ステップS51)。この場合、類似度算出部34は、特徴度算出結果として、特徴度算出結果格納部26に格納されている用語および当該用語の対象クラスタに対する特徴度を読み込む。
次に、類似度算出部34は、特徴度算出結果格納部26から読み込まれた用語のうち予め定められた条件を満たす用語を抽出する(ステップS52)。ここで、予め定められた条件は、例えば対象クラスタに対する特徴度が0でないことを含む。この場合、類似度算出部34は、特徴度算出結果格納部26から読み込まれた用語および当該用語の対象クラスタに対する特徴度に基づいて、当該対象クラスタに対する特徴度が0でない用語を抽出する。
類似度算出部34は、前述した図9に示すステップS11と同様に、解析結果格納部23に格納されている全ての係り受け関係情報を読み込む(ステップS53)。
次に、類似度算出部34は、解析結果格納部23から読み込まれた係り受け関係情報の各々に含まれる用語2および関係を1つの組として、当該読み込まれた係り受け関係情報において当該用語2および関係の組に対応づけられている用語1(つまり、同一の用語2と同一の係り受け関係にある用語1)の異なり数をカウントする(ステップS54)。なお、このステップS54においては、上記したステップS52において抽出された用語(つまり、対象クラスタに対する特徴度が0でない用語)のみが対象とされる。
以下、前述した図9に示すステップS13〜S19の処理に相当するステップS55〜S61の処理が実行される。なお、ステップS59において算出された文脈類似度およびステップS61において算出された文字列類似度は、前述した第1の実施形態と同様に類似度算出結果格納部25に格納される。
ステップS61の処理が実行されると、クラスタ生成部35によって生成された全てのクラスタについて上記したステップS51〜S61の処理が実行されたか否かを判定する(ステップS62)。
全てのクラスタについて処理が実行されていないと判定された場合(ステップS62のNO)、上記したステップS51に戻って処理が繰り返される。この場合、ステップS51〜S61の処理が実行されていないクラスタを対象クラスタとして処理が実行される。
一方、全てのクラスタについて処理が実行されたと判定された場合(ステップS62のNO)、類似度算出処理は終了される。
上記したように類似度算出処理が実行されると、類似度算出結果格納部25には、クラスタ生成部35によって生成されたクラスタ毎の類似度算出結果(文脈類似度および文字列類似度)が格納される。
以下、図28および図29を参照して、上記した類似度算出処理について具体的に説明する。ここでは、解析結果格納部23には、前述した図5および図6に示す複数の係り受け関係情報が格納されているものとする。また、前述した図8において説明したようにクラスタ1〜3がクラスタ生成部35によって生成されたものとする。また、特徴度算出結果格納部26には、前述した図17に示す各種情報が格納されているものとする。
なお、上記したように類似度算出処理においては、クラスタ生成部35によって生成されたクラスタ1〜3の各々について処理が実行される。ここでは、クラスタ2について具体的に説明する。
まず、類似度算出部34は、特徴度算出結果格納部26に格納されている用語毎に、当該用語および当該用語のクラスタ2に対する特徴度を、当該特徴度算出結果格納部26から読み出す。図17に示す例では、類似度算出部34は、用語「鉛筆」および当該用語「鉛筆」のクラスタ2に対する特徴度「0」を読み出す。なお、他の用語についても同様である。
次に、類似度算出部34は、特徴度算出結果格納部26から読み込まれた用語のうち例えばクラスタ2に対する特徴度が0でない用語を抽出する。図17を用いて具体的に説明すると、図17に示す特徴度算出結果格納部26に格納されている用語(つまり、読み込まれた用語)のうち、用語「消しゴム」、「専用インク」、「文字」および「字消し」以外の用語のクラスタ2に対する特徴度は0である。したがって、類似度算出部34は、クラスタ2に対する特徴度が0でない用語として用語「消しゴム」、「専用インク」、「文字」および「字消し」を抽出する。
類似度算出部34は、解析結果格納部23に格納されている全ての係り受け関係情報を読み込む。
類似度算出部34は、読み込まれた係り受け関係情報の各々に含まれる用語2および関係の組毎に、当該組に対応づけられている用語の異なり数をカウントする。つまり、類似度算出部34は、読み込まれた係り受け関係情報に基づいて、同一の用語2と同一の係り受け関係にある用語1の異なり数をカウントする。
このとき、類似度算出部34は、上記したように抽出された用語「消しゴム」、「専用インク」、「文字」および「字消し」のみを対象(つまり、用語1)として、同一の用語2と同一の係り受け関係にある用語1の異なり数をカウントする。
ここで、図5および図6を用いて具体的に説明すると、例えば用語2「消す」および関係「で」の組に対応づけられている用語1は、「字消し」および「消しゴム」である。このため、解析結果格納部23に格納されている係り受け関係情報において用語2「消す」および関係「で」の組に対応づけられている用語1(つまり、用語2「消す」と「で」の係り受け関係にある用語1)の異なり数は2となる。
なお、図5および図6に示す例では用語2「持参」および関係「を」の組に対応づけられている用語1は「鉛筆」、「消しゴム」および「時計」であるが、上記したように用語「消しゴム」、「専用インク」、「文字」および「字消し」のみが対象とされるため、当該用語2「持参」および関係「を」の組に対応づけられている用語1の異なり数は1となる。
次に、類似度算出部34は、カウントされた異なり数が2以上である場合における用語2および関係の組に対応づけられている各用語1の出現頻度をカウントする。
例えば上記した用語2「消す」および関係「で」の組に対応づけられている用語1の異なり数は2以上であるため、類似度算出部34は、用語2「消す」および関係「で」の組に対応づけられている用語1「字消し」および「消しゴム」の各々の出現頻度をカウントする。図5および図6に示す例によれば、用語2「消す」および関係「で」の組に対応づけられている用語1「字消し」の出現頻度は2であり、用語1「消しゴム」の出現頻度は1である。なお、図5および図6に示す例では、用語2「消す」および関係「で」の組に対応づけられている用語1以外に異なり数が2以上である用語1は存在しない。
次に、類似度算出部34は、中間処理結果情報を生成する。この場合、類似度算出部34は、図28に示す中間処理結果情報を生成する。中間処理結果情報の生成処理については、前述した第1の実施形態において説明した通りであるため、その詳しい説明を省略する。
次に、類似度算出部34は、図28に示す中間処理結果情報に基づいて、2つの用語1からなる全ての組み合わせ(順列)を抽出する。この場合、類似度算出部34は、「字消し」および「消しゴム」、「消しゴム」および「字消し」の2つの組み合わせを抽出する。
このように類似度算出部34によって抽出された用語1の各組み合わせは、用語Aおよび用語B(の組)として類似度算出結果格納部25に格納される。
以下、詳しい説明は省略するが、前述した第1の実施形態と同様に、類似度算出結果格納部25に格納された用語Aおよび用語Bの各組について、文脈類似度および文字列類似度が算出される。このように算出された文脈類似度および文字列類似度は、類似度算出結果格納部25に格納される。
なお、ここではクラスタ2について処理が実行された場合について説明したが、クラスタ1および3についても同様であるため、その詳しい説明を省略する。
なお、図29は、クラスタ1〜3の各々について処理が実行された後の類似度算出結果格納部25のデータ構造の一例を示す。
例えば図29に示す組ID「1」および「2」(に関する情報)は、上記したようにクラスタ2について処理が実行された場合に類似度算出結果格納部25に格納される情報(クラスタ2の類似度算出結果)であり、組ID「3」および「4」(に関する情報)は、詳しい説明は省略するが、クラスタ3について処理が実行された場合に類似度算出結果格納部25に格納される情報(クラスタ3の類似度算出結果)である。
次に、図30のフローチャートを参照して、上述した類義語集合抽出処理(上記した図26に示すステップS47の処理)の処理手順について説明する。
まず、類義語集合抽出部37は、類似度算出結果格納部25から類似度算出結果を読み込む(ステップS71)。この場合、類義語集合抽出部37は、類似度算出結果として、類似度算出結果格納部25に格納されている用語Aおよび用語Bの組、当該用語Aおよび用語Bの組に対応づけられている文脈類似度(用語Aおよび用語Bの文脈類似度)および文字列類似度(用語Aおよび用語Bの文字列類似度)を読み込む。なお、類似度算出結果格納部25から読み込まれた類似度算出結果は、類義語集合格納部27に格納される。
次に、類義語集合抽出部37は、類義語集合格納部27に格納された用語Aおよび用語Bの組毎に、当該類義語集合格納部27に格納された用語Aおよび用語Bの文脈類似度、および用語Aおよび用語Bの文字列類似度に基づいて、当該用語Aおよび用語Bが類義語(の集合)であるか否かを判定する。この場合、例えば用語Aおよび用語Bの文脈類似度、および用語Aおよび用語Bの文字列類似度の2つの値の積が0より大きい場合(つまり、当該文脈類似度および文字列類似度の両方が0でない場合)、当該用語Aおよび用語Bは類義語であると判定される。
このような判定処理が類義語集合格納部27に格納された用語Aおよび用語Bの全ての組に対して実行されることによって、類義語集合抽出部37は、用語Aおよび用語Bを類義語として抽出する(ステップS72)。
例えば類似度算出結果格納部25に前述した図29に示す各種情報が格納されているものとすると、上記した類義語集合抽出処理によれば、用語A「字消し」および用語B「消しゴム」が類義語として抽出される。また、用語A「取り消し」および用語B「取りやめ」(および、用語A「取りやめ」および用語B「取り消し」)が類義語として抽出される。
したがって、本実施形態においても、前述した第1の実施形態と同様の類義語が抽出される。
上記したように本実施形態においては、文書データベース22に格納されている複数の文書が属するクラスタを生成し、文書データベースに格納されている複数の文書に含まれる用語毎に当該クラスタに対する特徴度を算出し、当該特徴度が予め定められた条件を満たす用語の中から2つの用語(第1および第2の用語)を抽出し、当該抽出された2つの用語の類似度を算出し、当該算出された類似度に基づいて当該2つの用語を類義語として抽出する構成により、前述した第1の実施形態と同様に誤った用語を類義語として抽出することなく、適切な用語のみを類義語として文書から抽出することができ、更に、類似度算出処理の対象となる用語を絞り込むことが可能になるため、当該類似度算出処理における処理量(計算量)を軽減することが可能となる。
以上説明した少なくとも1つの実施形態によれば、類義語として適切な用語を文書から抽出することが可能な文書処理装置およびプログラムを提供することができる。
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。