以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図1は、本発明に係る文単位検索方法の概要を示す説明図である。図1中の100は、複数の文書データが記憶されている文書集合を表わしており、文書集合100から取得される一の文書101は、一又は複数の文からなる文単位S1 ,…,Si ,Si+1,…で構成されている。文単位S1 ,…,Si ,Si+1,…は、文書101の先頭から順に文脈の流れに沿い、時系列的に変遷する意味合いを有して連なっている。図1中の200は、ユーザAとユーザBとの会話を表わしている。ユーザAとユーザBの会話200は、上から下へ時系列に連なるユーザA及びユーザBからの発話Uj-3,…,Uj の集合である。会話は、発話Uj-3,Uj-2,Uj-1,Uj の順になされている。なお、ユーザAとユーザBとを区別せずに単に連続する発話の集合として捉えてもよい。
本発明に係る文単位検索方法は、文単位又は言葉をユーザが筆記又は発話した時点での各単語への注目度合いを定量的な重み値として表わして各単語に付与し、時系列に連続する文単位又は言葉毎に変遷していく各単語への注目度合いを反映した重み付き単語群を各文単位における文脈上の意味合いを表わす指標として用いることにより、同様の文脈上の意味合いを有する文単位を直接的に検索し、出力することを目的としている。
図1の説明図で示す例での会話200は、ユーザAとユーザBとの間でなされている京都への旅行についての会話である。会話200中の発話Uj-3では「京都」「旅行」が現れ、文脈の流れは「京都の旅行」である。発話Uj-2では、「京都」、「旅行」は現れていないが「“京都への旅行の”時期」についての発話であり、「京都」「旅行」「時期」について注目がされている。Uj-1では「暑い」が現れている。Uj-1では「京都」、「旅行」は現れていないが、「“京都は”暑い」のであり、依然「京都」は文脈上の意味に対して重みを持っている。さらにユーザAとユーザBとの間では、Uj-1の発話の時点では、「旅行」よりも「京都」及び「時期」が注目されており、ユーザAとユーザBとは文脈上の意味合いが変遷していることを共通して認識できるはずである。さらに、発話Uj の中で「有名」「祭」が現れている。このUj の発話の時点だけを考えれば、「京都」「旅行」「時期」「暑い」という単語は現れていない。しかし、少なくともユーザAにとっては、発話Uj は文脈上「夏」の「京都」の「祭」についての意味合いを有している。したがって、発話Uj の時点でも、依然として「京都」は文脈上の意味合いに対して重みを持っている。なお、発話Uj を発したユーザAは少なくとも、祭に相当する単語として「祇園祭」などを想起しているはずである。
これに対し、文書集合100中の文書101には京都の旅行記が記されている。その中の文単位Si は、「7月」の「京都」といえば「祇園祭」という意味合いを有している。即ち、文単位Si は、『「夏」の「7月」の「京都」の「祭」といえば』、「祇園祭」であるという意味合いを有している。つまり、発話Uj と、文単位Si とは、共通して「夏」「京都」「祭」に重みを有しており、文脈上の意味合いが類似している。このように、本発明に係る文単位検索方法では、発話Uj の際にユーザが意識している、先行の発話からの文脈上の意味のまとまりを推定し、類似する文脈上の意味合いを有する文単位Sk を直接的に検索して出力することを目的としている。
本発明に係る文単位検索方法を実施するコンピュータシステムを実現した場合、連続する発話を受け付け、それらの言葉の文脈上の意味と類似する文単位を文書集合から抽出するのみならず、ユーザAとユーザBとの会話中に、コンピュータシステムが発話毎に関連する情報を提示して会話に参入する鼎談が可能になる。また、コンピュータシステムがユーザAとユーザBとの会話を支援することも可能になる。図1の説明図の例で、会話100のユーザAによる発話Uj の次に、コンピュータシステムによって「7月の京都といえば祇園祭です。」等の音声の出力がされた場合は、ユーザAとユーザBとコンピュータシステムとの間での鼎談が実現することになる。また、ユーザAとユーザBとの会話が続かなくなった場合に、コンピュータシステムによって「7月の京都といえば祇園祭」等の情報の提示がされることで、ユーザAとユーザBとの会話への支援も実現する。
そこで、このような文脈上の意味が類似する文単位を文書集合から検索することを実現するために、本発明に係る文単位検索方法をコンピュータ装置に実施させる。この場合、コンピュータ装置には、予め文書集合の文書データを夫々文単位に分別しておく処理、及び分別した文単位に各文単位の文脈上の意味を表わす定量的な情報を記憶させておく処理を含む事前処理が必要になる。さらに、コンピュータ装置が発話を受け付けた場合、その発話の会話の流れ上の意味を表わす定量的な情報を求める処理、及び、発話に対して求めた情報に基づいて意味が類似する文単位を抽出して検索結果として出力する処理を含む検索処理が必要になる。
したがって、以下に説明する実施の形態1乃至3では、本発明に係る文単位検索方法をコンピュータ装置に実施させるために必要なハードウェア構成についてまず説明する。さらにコンピュータ装置による処理を、事前処理と検索処理とを区別して段階的に説明する。具体的には、各実施の形態において、
「1.ハードウェアの構成及びシステムの概要」、
事前処理として
「2.文書データの取得及び自然言語解析」、及び
「3.文書データの文毎の意味のまとまりの定量化」、
次に
「4.検索処理」
の順に説明する。
なお、以下に説明する実施の形態1乃至3では、本発明に係る文単位検索方法を実施する例として、文書データの文書集合を記憶しておくハードウェアと、発話を受け付けるコンピュータ装置と、文書集合が記憶されたハードウェア及び発話を受け付けるコンピュータ装置に接続して検索処理を実行するコンピュータ装置とで構成される検索システムを挙げて説明する。
また、以下に示す例では主に、文書集合が日本語の自然文からなる場合について各処理、具体例を示している。しかしながら、本発明の文単位検索方法は、日本語のみならず、他の言語にも適用することができることは勿論である。この場合、言語解析(形態素解析、統語解析)等の言語毎に特有の文法上の取り扱い等は、その言語毎に最適な方法を用いる。
(実施の形態1)
1.ハードウェアの構成及びシステムの概要
図2は、実施の形態1における文単位検索装置1を用いた検索システムの構成を示すブロック図である。検索システムは、文書データからの検索処理を実行する文単位検索装置1と、自然言語からなる文書データを記憶する文書記憶手段2と、インターネット等のパケット交換網3と、ユーザから入力されるキーワード又は音声等の言葉を受け付ける受付装置4,4,…とで構成される。文単位検索装置1は、PC(Personal Computer)であり、自然言語からなる文書データを記憶する文書記憶手段2と接続される。また、受付装置4,4,…もPCであり、文単位検索装置1は、パケット交換網3を介して受付装置4,4,…と接続され通信が可能である。
実施の形態1の検索システムでは、文単位検索装置1は、検索の対象である文単位を含む文書データを文書記憶手段2に予め記憶しておく。文単位検索装置1は、文書記憶手段2に記憶した文書データを、予め文単位に分別し、後に検索処理が可能なように各文単位に文脈上の意味を表わす定量的な情報を記憶させておく。また、受付装置4,4,…は、受け付けた言葉をコンピュータで処理可能なテキストデータ又は音声データに変換し、パケット交換網3を介して当該データを文単位検索装置1へ送信する。文単位検索装置1が、受信した言葉のデータに基づいて文書記憶手段2に記憶した文書データから一又は複数の文からなる文単位を抽出し、抽出した文単位をパケット交換網3を介して受付装置4,4,…へ出力することで文単位の検索を実現する。
文単位検索装置1は、少なくとも、各種ハードウェアを制御するCPU11と、各種ハードウェア間を接続する内部バス12と、不揮発性のメモリからなる記憶手段13と、揮発性のメモリからなる一時記憶領域14と、パケット交換網3と接続するための通信手段15と、文書記憶手段2と接続するための文書集合接続手段16と、DVD、CD−ROM等の可搬型記録媒体18を用いる補助記憶手段17とを備える。
記憶手段13には、DVD、CD−ROM等の可搬型記録媒体18から取得した、PCが本発明に係る文単位検索装置1として動作するための制御プログラム1Pが記憶されている。CPU11は、制御プログラム1Pを記憶手段13から読み出して実行すると共に、内部バス12を介して各種ハードウェアを制御する。一時記憶領域14は、CPU11の演算処理によって一時的に発生する情報が記憶される。
CPU11は、受付装置4,4,…から送信される言葉のデータを通信手段15を介して受信したことを検知し、受信した言葉のデータに基づいて処理を実行し、検索処理を行う。また、CPU11は、文書集合接続手段16を介して文書記憶手段2で記憶している文書データを取得し、且つ、文書集合接続手段16を介して文書データを文書記憶手段2に記憶させることが可能である。
DVD、CD−ROM等の可搬型記録媒体18から補助記憶手段17を介して取得した、記憶手段13に記憶されている制御プログラム1Pでは更に、記憶手段13で記憶している辞書情報に基づいて文字列で表された文書データを形態素解析及び統語解析等の自然言語解析をCPU11に実行させることができるようにしてある。
受付装置4,4,…は、少なくとも、各種ハードウェアを制御するCPU41と、各種ハードウェア間を接続する内部バス42と、不揮発性メモリからなる記憶手段43と、揮発性メモリからなる一時記憶領域44と、マウス又はキーボード等の操作手段45と、モニタ等の表示手段46と、マイク及びスピーカ等の音声入出力手段47と、パケット交換網3へ接続するための通信手段48とを備える。
記憶手段43には、PCが受付装置4,4,…として動作するための処理プログラム等が記憶されている。CPU41は、処理プログラムを記憶手段43から読み出して実行すると共に、内部バス42を介して各種ハードウェアを制御する。一時記憶領域44は、CPU41の演算処理によって一時的に発生する情報が記憶される。
CPU41は、ユーザからの文字列入力操作を操作手段45を介して検知し、入力された文字列を一時記憶領域44に記憶することができる。CPU41は、ユーザから入力された音声を音声入出力手段47を介して検知し、記憶手段43に記憶された音声認識のためのプログラムを読み出して実行することによって入力された音声をテキストデータに変換することができる。また、CPU41は、ユーザから入力された音声を音声入出力手段47により、コンピュータで処理可能な音声データとして入力することができる。
また、CPU41は、ユーザからの文字列入力操作又は音声入力を検知することで得られたテキスト又は音声の言葉のデータを通信手段48を介して文単位検索装置1へ送信する。
なお、CPU41は、音声データをテキストデータに変換して送信してもよく、その場合は、CPU41は、音声認識によって得られる音声データの特徴、例えば各単語に相当する音素が発声された時の速度、単語に相当する音素の周波数等のデータを共に送信してもよい。また、CPU41は、各単語に相当する音声データ間の時間差についても記憶しておき、以前に受け付けた言葉にその単語が含まれていた時点との時間差も共に文単位検索装置1へ送信してもよい。
2.文書データの取得及び自然言語解析
上述のように構成される検索システムにおいて、文単位検索装置1はまず、事前処理として文書集合を用意して、後に各文書データに含まれる文単位毎の意味のまとまりを表わすことができるようにしておく処理を行なう。「2.文書データの取得及び自然言語解析」では、文単位検索装置1が文書記憶手段2に文書データを記憶しておき、各文書データを言語解析して一又は複数の文からなる文単位に分別し、さらに文単位毎に文法的な特徴を解析し、文書記憶手段2に文単位毎に記憶しておく処理について説明する。なお、実施の形態1では、文単位検索装置1は文単位を一の文とした場合について説明する。
文単位検索装置1のCPU11は、検索の対象である文単位を含む文書データを文書記憶手段2に予め記憶しておく。文単位検索装置1のCPU11は、通信手段15及びパケット交換網3を介して取得可能な文書データをWebクローリングにより取得し、文書集合接続手段16を介して文書記憶手段2に記憶する。文単位検索装置1のCPU11は、取得して文書集合接続手段16を介して文書記憶手段2に記憶してある文書データを文単位に分別し、夫々言語解析(形態素解析及び統語解析)を行い、その結果を文単位毎に対応付けて記憶する処理を行なう。
以下に、文単位検索装置1のCPU11が、文書データを取得し、取得した文書データに対して形態素解析及び統語解析の自然言語解析をして、文単位毎に記憶する処理手順について説明する。図3は、実施の形態1における文単位検索装置1のCPU11が、取得した文書データに対する形態素解析及び統語解析処理の解析結果からタグ付け及び単語抽出を行い記憶する処理手順を示すフローチャートである。図3のフローチャートに示す処理は、文単位毎にその文単位に出現する単語又は先行の文単位から参照する単語を抽出する処理と、各文単位における各単語の特徴を特定して記憶しておく処理に対応する。
CPU11は、Webクローリングを開始すると文書データを取得したか否か判断する(ステップS11)。CPU11が文書データを取得していないと判断した場合は(S11:NO)、CPU11は処理をステップS11へ戻し、文書データを取得するまで待機する。CPU11が文書データを取得したと判断した場合は(S11:YES)、CPU11は、取得した文書データから一文毎の読み出しを試み、読み出しが成功したか否かを判断する(ステップS12)。
CPU11が、読み出し箇所が文書データの終端に至っておらず、文の読み出しが成功したと判断した場合は(S12:YES)、読み出した文の形態素解析及び統語解析を行う(ステップS13)。
CPU11は、形態素解析及び統語解析の結果から、解析した文に出現する単語及び当該文で先行の文から参照する単語を抽出し、リストに記憶する(ステップS14)。更に、CPU11は、後述で説明するように解析結果からタグを生成し(ステップS15)、読み出した文にタグを付加して、文書集合接続手段16を介して文書記憶手段2に記憶させる(ステップS16)。
一方、CPU11が、読み出し箇所が文書データの終端に至っており、文の読み出しが失敗したと判断した場合は(S12:NO)、取得した文書データに対する処理を終了する。
上述の処理を、文書データを取得する都度に行い、タグ付け済みの文書データを文書記憶手段2に記憶しておく。
次に、文単位検索装置1のCPU11による上述の処理の詳細を、具体例を挙げて説明する。
図4は、実施の形態1における文書記憶手段2で記憶される文書データの内容の一例を示す説明図である。文書記憶手段2で記憶される文書データは、文単位検索装置1のCPU11が通信手段15を介して、パケット交換網3に接続され公開されているWebサーバから取得されたHTML(HyperText Markup Language)等のテキストデータをもとに記憶される。図4に示す一例も、インターネットで公開されたWebページ(http://ja.wikipedia.org/wiki/祭より抜粋)より取得することができたHTMLデータの文書である。以下、この文書例を使用して文書の解析及び検索等について説明する。
文単位検索装置1のCPU11は、図3のフローチャートに示したステップS12の文の読み出しの処理において、取得した文書データ中の文字列を「文」の言語単位(文単位)に分別する。分別する方法として例えば、CPU11は、日本語からなる文書データである場合、句点「。」を表す文字列によって、又は、英語からなる文書データである場合はピリオド「.」を表す文字列によって分別してもよい。
次に、図3のフローチャートに示した文単位検索装置1のCPU11によるステップS13の形態素解析及び統語解析の処理の詳細を説明する。
文単位検索装置1のCPU11は、「文」の言語単位に対して辞書情報に基づいた形態素解析を行い、文の最小構成単位である形態素を同定して形態素の構造を解析する。例えば、図4に示した文書データでは、CPU11は、記憶手段13の辞書情報に基づいて、「祭」「神霊」等の名詞、「九州」等の固有名詞、「祀る」等の動詞、「と」「は」等の助詞、「、」「。」等の記号等を示す文字列と照合することで形態素を同定する。形態素解析の手法については今日では種々の手法が提案されており、本発明では当該形態素解析の手法を限定するものではない。
さらに、文単位検索装置1のCPU11は、同定した形態素毎にその品詞情報(名詞、助詞、形容詞、動詞、副詞等)と、日本語文である場合は日本語の文法、英文である場合は英語の文法に基づく品詞間の結束性を統計的に求めた文法情報とに基づいて形態素間の文法的関係を抽出する統語解析を行う。例えば、文法を木構造に当てはめて形態素の品詞情報から木構造に従って形態素間の関係を抽出することができる。解析対象が(形容詞+名詞+助詞+名詞)である場合、まず解析対象が名詞であるか否かを判断する。名詞でないと判断した場合は次に、当該解析対象が(形容詞+名詞)に当てはまるか否かを判断する。したがって、当該解析対象の先頭の形態素が形容詞句であるか否かを判断する。先頭の形態素が形容詞であると判断した場合は、当該形容詞が後続する名詞を修飾する当該解析対象の中で一番大きな修飾語であると判断される。つまり(形容詞+(名詞))という関係が抽出される。
次に、残りの解析対象が(名詞)であるか否かを判断する。複数の形態素からなり、名詞ではないと判断した場合は、当該残りの解析対象が(形容詞+名詞)に当てはまるか否かを判断する。したがって、残りの解析対象の先頭の形態素が形容詞であるか否かを判断する。残りの解析対象の先頭の形態素が形容詞でないと判断した場合は、(形容詞+名詞)の形容詞の部分を(名詞+助詞)に展開し、残りの解析対象が((名詞+助詞)+名詞)に当てはまるか否かを判断する。残りの解析対象が((名詞+助詞)+名詞)に当てはまると判断した場合は、当該解析対象(形容詞+名詞+助詞+名詞)の形態素間の文法的関係は[形容詞+{(名詞+助詞)+名詞}]であると抽出することができる。統語解析の方法についてもこのような方法を基礎とする手法に限らず、形態素解析の手法同様に今日では種々の手法が提案されており本発明では当該統語解析の手法を限定するものではない。
実施の形態1では、一例として形態素解析及び統語解析についてchasen(http://chasen.org)及びCaboCha(工藤 拓、松本 裕治「チャンキングの段階適用による日本語係り受け解析」情報処理学会論文誌Vol.6、No.43、pp.1834−1842(2002)、http://chasen.org/~taku/software/cabocha参照)にて開示された技術に基づいて行う。他にKNP(Kurohashi−Nagao Parser)(黒橋 禎夫、長尾 眞「並列構造の検出に基づく長い日本語文の構造解析」自然言語処理Vol.1、No.1、pp.35−57(1994))で開示されている技術に基づいて解析するのでもよい。
文単位検索装置1のCPU11は、解析した形態素及び形態素間の文法的関係を、XML(eXtensible Markup Language)に基づくタグで表した文書データを生成して文書記憶手段2に記憶させる。本発明が利用する形態素解析及び統語解析の自然言語解析方法(chasen、CaboCha)では入力された文字列を形態素解析し、さらに統語解析して各形態素の品詞情報、形態素の係り先を示す情報等を分別した形態素毎に出力するようにしてある。文単位検索装置1の記憶手段13に記憶されている制御プログラム1Pでは、当該自然言語解析方法を文単位検索装置1のCPU11に実行させることができるように構成されている。
本発明が利用する形態素解析及び統語解析では、例えば、図4に示した「九州地方北部では、秋に行われるものに対して(お)くんちと称する場合もある。」という文の文字列に対しまず文節番号が付される。(0:九州地方北部では、/1:秋に行われるものに対して(お)くんちと称する場合も/2:ある。)さらに各文節で形態素に分別され、形態素毎の品詞情報、形態素の基本形情報、発音情報等が付加される。文節番号0の文節は、(0:九州(名詞+固有名詞+地域+一般、九州、キュウシュウ)/地方(名詞+一般、地方、チホウ)/北部(名詞+一般、北部、ホクブ)/で(助詞+格助詞+一般、で、デ)/は(助詞+係助詞、は、ハ)/、(記号+読点))と形態素の同定及び情報の付加が行われる。「九州」という形態素は名詞であって固有名詞であり、地域を示す名詞でもあり、一般名詞として使用されることもある。また基本形は「九州」であり、「キュウシュウ」と発音することを判別することができる。他の文節も同様である。また、係り受け情報は例えば、(0 2,1 2,2 −1)と文節間の係り受け関係が判別可能なように取得できる。この例では、文節番号0の文節は文節番号2の文節を係り先とし、文節番号1の文節は文節番号2の文節を係り先とすることが判別できる。また、文節番号2の文節は係り先がないことを係り先を−1とすることで判別できる。
図5は、実施の形態1における文単位検索装置1のCPU11が、形態素解析及び統語解析した結果を付与して文書記憶手段2に記憶させる文書データの一例を示す説明図である。図4に示した内容の文書データに対して図3のフローチャートに示した処理手順が実行されたことにより文書記憶手段2に記憶された文書データの例に相当する。
図5に示すように、文単位検索装置1のCPU11により、図4に示した内容の文書の一部が固有名詞、名詞、助詞、動詞等の形態素に分別され、形態素間の文法的関係性はタグの入れ子によって表されている。図5に示す例は、GDA(Global Document Annotation;http://i-content.org/gda参照)で提案されている規則に則ったタグ付け手法に従ったものである。本発明では当該規則に従うことを限定するものではない。また、形態素の情報及び形態素間の係り受けの情報をコンピュータが情報処理によって識別できるようにすることができればXMLのタグ付けによる方法には限らない。
GDAに基づくタグ付けは基本的に<タグ名 属性名=“属性値”>で表される。図5に示される例では、<su>で示されるタグは、文(Sentential unit)を表すタグである。図5に示した例では、「九州地方北部では、秋に行われるものに対して(お)くんちと称する場合もある。」の文は、「九州地方北部では」「、」「秋に行われるものに対して(お)くんちと称する場合も」「ある」「。」の三つの文節と句読点との単位を有していることがタグによって判別できる。<ad>で示されるタグは、終助詞以外の助詞(particle)、副詞(adverb)、連体詞などを示すタグであるが、文節0の「九州地方北部では」も全体で副詞的な役割を果たすことを示すことができる。<n>で示されるタグは、名詞(noun)を示す。<v>で示されるタグは、動詞(verb)を示す。また、図5に示したタグの他に形容詞(adjective)を示す<aj>タグ等がある。
属性名synで表される属性は、当該属性が付与されているタグで挟まれた文節又は語等の言語単位間の係り受け関係を示す。属性値f(forward;前向き)が付与されている文では、当該文を構成する言語単位は一番近い後続の言語単位に係ることを示す。したがって、原則では文節0の「九州地方北部では」は、文節1の「秋に行われるものに対して(お)くんちと称する場合も」へ係り、文節1の「秋に行われるものに対して(お)くんちと称する場合も」は文節2の「ある」に係る。
しかし統語解析により、文節0の「九州地方北部では」は文節2の「ある」に係り、文節1の「秋に行われるものに対して(お)くんちと称する場合も」は文節2の「ある」に係ることが判別できているため、上述原則はあてはまらない。したがって、係り受けの受ける側ではない「句」(phrase)であることを示す“p”を各タグに付加することで、係り受けの関係を示すことができる。例えば、<adp>で示されるタグは、タグ<ad>に、句であることを示す“p”が組み合わさったものである。<adp>タグではさまれた文節は副詞句であって、係り受けの受ける側の文節ではないことを示す。したがって、図5に示した例では、文節1の「秋に行われるものに対して(お)くんちと称する場合も」は、副詞句であって受ける側の文節ではないため、文節0の「九州地方北部では」は、文節1の「秋に行われるものに対して(お)くんちと称する場合も」へ係らずに「ある」に係ることが示される。その他、“p”は「句」であることを明示するために付加される。
また、<n>で示すタグについても、<np>とすることで係り受けの受ける側の語ではないことを示すことができる。「九州地方北部」は、「九州」「地方」「北部」と夫々<n>で挟まれる形態素に分別でき、「九州」は「地方」に、「地方」は「北部」に係るため“p”は不要である。一方、「催事(催し、イベント)、フェスティバルのこと」では、「催事(催し、イベント)」は「フェスティバル」に係らず「の」に係るため、「フェスティバル」を挟むタグを<np>とすることで、係り受けの関係を示すことができる。
なお、「九州」のような場所を表す固有名詞、又は「太郎」のような人の名前を表す固有名詞は、夫々<placename><pername>のタグによって示すことができる。
指示代名詞、ゼロ代名詞等の先行する語又は文から参照する形態素については、照応関係を表す属性を用いて表すことができる。GDAでは、属性名idを用いて指示代名詞、ゼロ代名詞が先行の語又は文の何れの語を示すかをあらわすことができる。例えば、「右側にボタンがあるので、それを押してください。」という文に対して、人間がこれを読む場合は「それ」が「ボタン」を指すことを自然に補完することができる。しかし、コンピュータで処理する場合は、辞書情報との照合によって「それ」が指示代名詞であることを同定することはできるが、何を示しているかを判別することはできない。そこでGDAでは、「それ」が示す「ボタン」にid属性を付加し、さらに、id属性で示された形態素との等価(equal)関係を示す属性名eqにより、「それ」=「ボタン」を示すことができる。具体的には「右側にボタンがあるので、それを押してください。」に対し、「右側に<np id=“Btn”>ボタン</np>があるので、<np eq=“Btn”>それ</np>を押してください。」とすることで(他のタグは省略)、「それ」=「ボタン」の関係を示すことができる。
ゼロ代名詞に対しては、eq属性を付加できる代名詞そのものがない。したがって、「それ」=「ボタン」を動作の対象とする「押し」という動詞に、対象を明示する情報を付加することで、ゼロ代名詞が表す対象を示すことができる。そこで、タグではさんだ形態素の動作の対象(object)を示す属性名objにより、「押し」という動作の対象が「ボタン」であることを示すことができる。具体的には、「右側にボタンがあるので、押してください。」という文に対し、「右側に<np id=“Btn”>ボタン</np>があるので、<v obj=“Btn”>押し</v>てください。」とすることで、省略された対象との関係を明示することができる。
また、参照される語と参照する語とが離れている場合であっても、上述のid属性、eq属性、obj属性によってその照応関係を示すことができる。例えば、「右側に<np id=“Btn”>ボタン</np>があります。」「<np eq=“Btn”>それ</np>には×のマークがついています。」「停止する際に<v obj=“Btn”>押し</v>てください。」とすることによって、第2文の「それ」が「ボタン」を示すこと、及び第3文の「押し」の対象が「ボタン」であることを示すことができる。
また、各形態素を挟む<n><ad><v>等ののタグの属性情報には、形態素(morpheme)解析の結果を示す情報が属性名mphで付加される。属性値は、形態素解析によって取得できた形態素の品詞情報、基本形情報、発音情報等を示す。具体的には、属性名mphに対し、付加情報、品詞情報、活用形情報、基本形情報、及び発音情報を属性値とし、mph=“付加情報;品詞情報;活用形情報;基本形情報;発音情報”と表す。図5に示した例において「九州」は、品詞情報を名詞+固有名詞+地域+一般で分類することができ、基本形は九州であり「キュウシュウ」と発音することが<mph>タグによって明示される。なお、本発明では、形態素解析及び統語解析をchasenで提示される方法に基づいて行っているため、形態素の付加情報としてchasenという識別情報が付加されている。
上述のように、文単位検索装置1のCPU11はWebクローリングによって取得した文書データに対し、形態素解析及び統語解析の結果をGDAの規則に則ってタグ付けし、タグ付けした結果であるXMLデータを文書集合接続手段16を介して文書記憶手段2に記憶させる。文書データをXMLデータで記憶しておくことにより、文単位検索装置1のCPU11は当該文書データのタグを文字列解析によって識別し、タグに付加された属性情報を識別することによって各形態素の情報及び文法的関係を特定することができる。
さらに文単位検索装置1のCPU11は、Webクローリングによって取得した文書データを形態素解析する際に、取得した全文書データに出現する単語を抽出して識別番号を割り振りリストで記憶手段13に記憶する。図6は、実施の形態1における文単位検索装置1のCPU11が取得した全文書データから抽出した単語のリストの例を示す説明図である。図6の説明図に示す例では、31245個の単語がリストとして挙げられている。なお、記憶される単語からは、「こと」、「もの」などのありふれた単語は除かれる。接続詞又は冠詞同様一般的すぎる言葉であり、頻繁に出現するにも拘わらず、その単語自体は意味をなさないために検索処理に負担がかかり、検索対象として不適切であるからである。
3.文書データの文毎の意味のまとまりの定量化
3−1.文毎の意味のまとまりの定義
次に、文単位検索装置1のCPU11は、文書記憶手段2で記憶した文書データ中の一文毎に当該文の意味のまとまりを定量的に表す情報を特定する。文の意味のまとまりを定量的に表す情報とは、ユーザが当該文を使用(発話、筆記、聴取又は読解)するときに、ユーザが注目している単語群と、ユーザが各単語に注目する度合い、即ち顕現性(salience)を定量的に示す値(単語の重み値)とで表す。
各単語の文中での顕現性は、従来の検索サービスによってされてきた出現頻度によって定量化することもできる。しかしながら、出現頻度は文書、又は文書集合全体を母体として求めるものである。したがって、文書毎に各単語の出現頻度を算出することで、文書全体の意味のまとまりを定量的に表すことはできても、文書中での流れに応じて一文毎に動的に変化する文脈を反映した意味のまとまりを表すことはできない。
また、単語の文中での顕現性は、先行する文での当該単語の注目度、現在の文での当該単語の注目度の遷移をその単語の使用のされ方で文法的に区別して表すことができる。つまり、先行する文で主題(主語)であった単語が現在の文でも主題(主語)である場合は、現在の文で当該単語は一番注目されている顕現性の高い単語であるといえる。これに対し先行する文では出現していないが現在の文で主題(主語)である単語は、現在の文で注目されているものの、前述の主題として使用され続ける場合に比べて顕現性は低いといえる。この顕現性の定式化は、中心化理論(Grosz et al., 1995、Nariyama, 2002、Poesio et al., 2004)として研究が続けられている。
中心化理論による定式化では、各単語の顕現性をコンピュータ等で定量的に計算するための特徴量として表わされていない。各単語の遷移の仕方が中心化理論で定義される遷移の仕方の何れに属するか否かが判別できるに過ぎない。そこで本発明では各単語の各文での顕現性を定量的に算出する。
実施の形態1では、単語毎に各文単位での参照確率を算出し、算出した参照確率を各単語の文単位での顕現性を表わす重み値として付与する。
なぜなら、単語が当該文で注目されているほど、継続して後続の文でも出現又は参照される確率が高いことから、後続の文で出現する確率又は後続の文から参照される確率を参照確率とし、当該単語の顕現性と捉えることができるからである。また、単語が後続の文で出現又は参照される参照確率は、定量的に扱うことが困難な単語の意味を特徴とするのではなく、文単位検索装置1による情報処理によって解析可能な、単語が出現するパターン又は参照するパターンを含む特徴パターンを特定し、特定した特徴パターンと同一の特徴パターンで出現又は参照される単語が実際に後続の文で出現又は参照される割合が参照確率として算出される。
以下、単語毎の参照確率を各単語の文単位での重み値とし、夫々の重み値が付与された当該文での単語の集合を重み付き単語群という。各文単位の意味のまとまりは、参照確率という定量的な重み値が付与された重み付き単語群で表わすことができる。
3−2.回帰モデル学習
参照確率の算出は、特定した特徴パターンと同一の特徴パターンが出現した数に対して、同一の特徴パターンのうち当該単語が実際に後続の文で出現又は参照される割合をその参照確率として求める。この際、特定した特徴パターンと同一の特徴パターンが夫々の特徴パターン毎に多量に且つほぼ同数で出現する場合は、統計的に問題なく参照確率を算出することができる。しかし、実際に同一の特徴パターンが出現する数は限られ、信頼に足り得る参照確率を算出するには膨大な文書データが必要となる。したがって、後続の文で出現又は参照されるか否かをその事象の発生の要因である単語の特徴パターンから予測するための回帰式を、特徴パターンと実際に後続の文で出現又は参照されたかの事象とで回帰モデル学習をすることによって求める。
以下、回帰モデル学習のためのサンプルである特徴パターンに対する「3−2−1.特徴パターンの特定」と特徴パターンを用いた「3−2−2.回帰式の学習」とに段階を分けて説明する。
3−2−1.特徴パターンの特定
文書記憶手段2に記憶してある文書データ中の文は<su>で示すタグで挟まれ、当該文で出現する単語、若しくは文の中の指示代名詞又はゼロ代名詞と照応関係にある単語は、タグの属性情報により特定することが可能である。そこで、本発明の文単位検索装置1では、文書記憶手段2で記憶した文書データに対し、特徴パターンを以下のように特定する。
文書データ中の一の文sと、当該文書データ中での一の文に対する先行する文に含まれる単語wの対をサンプル(s,w)とする。当該サンプルに対する特徴パターンf(s,w)は、以下の特徴量によって特定される。文sと、文sより先行する文のうち単語wが、最近に出現又は参照された文sとの距離(文の数)の特徴量(dist)、文sより先行する文で単語wが、最近に出現又は参照された場合、単語wが係っている助詞の特徴量(gram)、及び文sより先行する文で単語wが出現又は参照された数(chain)の特徴量等を例として挙げることができる。なお、特徴量はこれに限らず、単語wが最近のトピックを示す単語であるか否か、又は単語wが一人称であるか否か等でもよい。
文書記憶手段2で記憶した文書データには形態素解析及び統語解析の結果がGDAに則ったタグによって記述されているため、文書データの文字列解析によってタグ<su>で区切られる文の分別及び計数、各文内のタグで示される品詞情報による助詞の特定、指示代名詞又はゼロ代名詞で参照するものも含んだ単語の出現回数の計数が可能である。したがって、文単位検索装置1のCPU11は、GDAに則ったタグ及びその属性値を解析することで各サンプルに対する特徴量dist,gram,chainを特定することができる。
文単位検索装置1のCPU11が、文書記憶手段2で記憶しているタグ付け済みの文書データに対しサンプルを抽出し、抽出したサンプルに対して特徴量を求めて特徴パターンを特定し、抽出したサンプルの特徴パターンから参照確率を算出するため回帰式を回帰分析により推定する処理手順について説明する。図7は、実施の形態1における文単位検索装置1のCPU11が、文書記憶手段2で記憶しているタグ付け済み文書データからサンプルを抽出し、回帰分析を行って参照確率を算出するための回帰式を推定する処理手順を示すフローチャートである。図7のフローチャートに示す処理は、分別した文単位毎に特徴パターンを特定する処理、及び、特徴パターンと、特定された単語が後続の文単位で出現又は参照されたか否かの判定結果とに基づいて参照確率を算出するための回帰学習を実行する処理に対応する。
文単位検索装置1のCPU11は、文書記憶手段2から文書集合接続手段16を介してタグ付け済みの文書データを取得する(ステップS21)。CPU11は、取得した文書データに付加されたタグ<su>を文字列解析によって識別して文に分別する(ステップS22)。次にCPU11は、文を示す<su>内の各タグを文字列解析によって識別し、文に対し当該文で出現する単語又は参照される単語を対応付けてサンプルを抽出する(ステップS23)。抽出したサンプルに対し、タグを文字列解析によって識別してdist,gram,chainからなる特徴パターンを特定する(ステップS24)。
CPU11は、分別した文が取得した文書データの終端であるか否かを判断し(ステップS25)、CPU11が、分別した文が文書データの終端でないと判断した場合は(S25:NO)、CPU11は処理をステップS22に戻し、後続の文について<su>タグを識別することで分別する処理を継続する。分別した文が取得した文書データの終端であるか否かは、例えば現在分別した文を挟む<su></su>の後に、<su>タグが後続するかしないかを判断し、後続しないと判断した場合は終端であると判断することができる。
一方、CPU11が文書データの終端であると判断した場合は(S25:YES)、CPU11は、所定の数のサンプルの抽出が終了したか否かを判断する(ステップS26)。CPU11がサンプルの抽出が終了していないと判断した場合は(S26:NO)、CPU11は、処理をステップS21へ戻し、異なるタグ付け済みの文書データを取得し、サンプルの抽出を継続する。
CPU11がサンプルの抽出が終了したと判断した場合は(S26:YES)、CPU11は、抽出したサンプルに対して回帰分析を行い、各特徴量dist,gram,chainに対する回帰式の回帰係数を推定し(ステップS27)、処理を終了する。
次に、文単位検索装置1のCPU11による上述の処理の詳細を、具体例を挙げて説明する。
図8は、実施の形態1における文書記憶手段2で記憶された文書データ中の文で特定される特徴パターンの例を示す説明図である。図8に示す文si での、当該文si と、先行する文に含まれる単語「太郎君」とのサンプル(si ,太郎君)の特徴パターンf(si ,太郎君)は以下のようにして特定される。現在の文si と、先行する文のうち最近に、単語「太郎君」が出現又は参照された文si-1 との距離の特徴量(dist)は、si の直後に続く文si+1 までの文の数2であるためdist=2である。また、最近「太郎君」が出現又は参照されたsi-1 での単語「太郎君」(彼で参照)が係っている助詞は「は」であるため、gram=ハである。更に、文si より先行の文si-2 ,si-1 で単語「太郎君」が出現又は参照されたためchain=2である。したがって、特徴パターンはf(si ,太郎君)=(dist=2,gram=ハ,chain=2)と特定される。英語の場合、gramは前置詞によって特定される。
上述のように、文書データ中の文からサンプル(s,w)を抽出し、抽出した全サンプルに対して特徴パターンf(s,w)を特定する。
3−2−2.回帰式の学習
次に、図7のフローチャートに示したステップS27の回帰分析について、詳細な処理を説明する。
実施の形態1では、Logistic Regressionモデルに基づいて回帰分析を行う。回帰分析はこれに限らず、kNN(k−Nearest Neighbors)平滑化+Support Vector Regression(SVR)モデルなど、他の回帰分析の手法を使用してもよい。
kNN平滑化+SVRモデルを使用する場合、扱うことのできる特徴パターンの特徴量として、次の8要素を使用して回帰モデルの学習ができる。8要素とは、前述のdist、gram、chainに加えて、以下の5要素を特徴量として扱うことができる。一つは、先行の文単位の内で単語wを参照した場合の名詞の種別(exp,代名詞:1/非代名詞:0)でもよい。また、他の一つは、その単語wが先行の文単位において出現又は参照されている場合に主題であるか否か(last_topic,yes:1/no:0)でもよい。他の一つは単語wが先行の文単位において出現又は参照されている場合に主語であるか否か(last_sbj,yes:1/no:0)でもよい。他の一つは、サンプル(s,w)において、単語wが一人称であるか否か(p1,yes:1/no:0)でもよい。他の一つは、単語wが出現又は参照されている直近の先行の文単位での単語wの品詞情報(pos,名詞:1、動詞:2、等)でもよい。さらに他の一つは、単語wが文書中のタイトル又は見出しで参照されているか否か(in_header、yes:1/no:0)でもよい。さらに、音声データに基づいて回帰分析する場合、8要素の内の1つとして、単語の直近の参照箇所の発話時刻からの秒数(time_dist)、単語の直近の参照箇所を含む文節の1音節あたりの発話速度(の話者平均に対する比)(syllable_speed)、単語の直近の参照箇所を含む文節の,最低発話音高と最高発話音高の周波数比(pitch_fluct)の内のいずれか一又は複数を使用することができる。音声データの特徴量についても回帰分析することにより、後述するように文単位検索装置1のCPU11が言葉のデータとして音声データを受信した場合に、その特徴量から参照確率を算出することができる。
このように、kNN平滑化+SVRモデルを使用する場合、より詳細な特徴量に基づいて参照確率を算出することができ、より緻密な参照確率を算出ことができる。
本実施の形態1では、文si の後続の文si+1 で単語wが実際に出現又は参照されたか否かを被説明変数、サンプル(si ,w)に対して特定された特徴パターンのdist、gram、chainを特徴量とし、全サンプル(s,w)に対して、Logistic Regressionモデルにより回帰分析する。これにより、dist、gram、chainという特徴量が与えられた場合に、si+1 で単語wが出現又は参照される確率Pr(si+1 ,w)を算出するための回帰式を得ることができる。
Logistic Regressionモデルで求められる確率は、一般的に、説明変数(特徴量)x1,x2,…,xnに対して以下の式(1)で求められる。
式(1)のパラメータ(回帰係数)b0 ,b1 ,…,bn は、学習するサンプルから最尤法によって推定する。本発明で算出する文sでの単語wの参照確率の回帰分析とは、被説明変数を、後続の文si+1で出現又は参照されないサンプルは0、出現又は参照されるサンプルは1とし、説明変数を特徴量であるdist,gram,chainとし、抽出したサンプルを学習して、以下の式(2)のパラメータ(回帰係数)b0 ,b1 ,b2 ,b3 を推定することを指す。
抽出したサンプルから学習したパラメータ(回帰係数)は、例えばb0 =−1.425、b1 =−0.564、b2 =11.036、b3 =3.115と推定される(10000サンプルから回帰分析)。この場合、これらのパラメータを当てはめた式(3)が参照確率を求めるための回帰式である。
推定されるパラメータ(回帰係数)b0 ,b1 ,b2 ,b3 の値は、文書記憶手段2で記憶する文書データによって異なる。例えば、文書記憶手段2で記憶する文書データが書き言葉である新聞記事のみからなる場合と話し言葉である発話を文書データに変換したもののみからなる場合とでは、夫々推定されるパラメータは異なる。また、書き言葉として同種の新聞記事のみからなる文書データに対しても、その文書データの量、文書データの文書の内容によって推定されるパラメータの値b0 ,b1 ,b2 ,b3 は異なる。そこで本発明では、話し言葉での回帰分析のために、書き言葉と話し言葉とで区別して文書データを記憶しておき、話し言葉からなる文書データに対しても回帰分析によってパラメータを推定し、参照確率を算出するための回帰式を記憶しておく。なお、受付装置4,4,…で受け付ける言葉が、音声入力された発話ではなく文字入力によって書き言葉からなる文章を入力したものに限定されている場合は、話し言葉と書き言葉とで文書データを区別せずに文書記憶手段2で記憶する構成としてもよい。
以上の回帰分析により、式(3)の回帰式の特徴量dist,gram,chainに対するパラメータが求められる。したがって、文単位検索装置1のCPU11が文単位の各単語の特徴量dist,gram,chainからなる特徴パターンを特定することにより、当該特徴パターンを有する単語の参照確率を算出することができる。
3−3.文単位毎の顕現性の定量化
回帰分析により回帰式が得られたため、文単位検索装置1のCPU11は、文単位毎に抽出された単語毎に特徴量dist,gram,chainを特定することにより、単語毎の参照確率を算出することができる。そこで、文単位検索装置1のCPU11は、文書記憶手段2で記憶しているタグ付け済みの文書データを取得して文毎に分別し、当該文で出現する単語又は参照する単語に対して特徴パターンを特定し参照確率を算出する。これにより、先行する文の文脈上の意味が反映された文毎の意味のまとまりを定量的に表すことができる。
文単位検索装置1のCPU11が回帰分析後に、文書記憶手段2で記憶している文書データの文毎に、単語及び単語毎の参照確率(重み付き単語群)を算出する処理について以下に説明する。
文単位検索装置1のCPU11は、文書記憶手段2で記憶している文書データを取得して、文書データに含まれる文毎にその文と先行の文とにおける各単語の文法的な特徴パターンを特定し、特定した特徴パターンと回帰式とに基づいて文毎に各単語の参照確率を算出して予め記憶する。
文単位検索装置1のCPU11は、各単語と夫々の単語の参照確率との組(重み付き単語群)を各文単位毎に対応付けて記憶しておく。即ちCPU11は、文書集合から取得する全文書の全文について記憶する処理を行なう。一方、CPU11は、後の検索処理において、全文書の全文の内の、受け付けた言葉と文脈上の意味が類似する文を抽出する。したがって、この場合、全文書の全文を一つ一つ読み出して夫々に対応付けられている各文の文脈上の意味を表わす重み付き単語群を読み出すのでは処理の負荷が大きい。
そこで、文単位検索装置1のCPU11は、各文に対して先行の文の文脈上の意味を表わした重み付き単語群を、後の処理で全文書の全文を一つ一つ読み出すことなしに抽出する処理を可能にするために、各文毎に算出した重み付き単語群をデータベース化して索引付けしておく処理を行なう。
図9及び図10は、実施の形態1における文単位検索装置1のCPU11が、文書記憶手段2で記憶しているタグ付け済みの文書データの文毎に単語の参照確率を算出し、記憶する処理手順を示すフローチャートである。図9及び図10のフローチャートに示す処理は、文単位毎に、各単語に対して特定した特徴パターンと、特徴パターンに対応する回帰係数とを使用して参照確率を算出する処理、算出した参照確率を単語との組で予め記憶しておく処理に対応する。
文単位検索装置1のCPU11は、文書記憶手段2から文書集合接続手段16を介してタグ付け済みの文書データを取得する(ステップS301)。CPU11は、取得した文書データに付加されたタグ<su>を文字列解析によって識別して文に分別する(ステップS302)。次にCPU11は、文を示す<su>内の各タグを文字列解析によって識別し、文に対し、当該文で出現する単語又は参照される単語を抽出し(ステップS303)、当該文書データについて参照確率の算出を行う間は、抽出した単語を一時記憶領域14で記憶する(ステップS304)。
CPU11は、一時記憶領域14に記憶した、当該文を含む文書データについての単語に対し、単語に付加されたタグを文字列解析によって識別してdist,gram,chainからなる特徴パターンを特定する(ステップS305)。次にCPU11は、特定した特徴パターンの各特徴量を式(3)に代入し参照確率を算出する(ステップS306)。
CPU11は、文に対する各単語の参照確率を、一時記憶領域14で記憶している全単語に対して算出したか否かを判断する(ステップS307)。CPU11が全単語に対して参照確率を算出していないと判断した場合は(S307:NO)、CPU11は、処理をステップS305に戻し、他の単語についての特徴パターンの特定及び参照確率の算出を継続する。一方、CPU11が全単語に対して参照確率を算出したと判断した場合は(S307:YES)、CPU11は、一時記憶領域14で記憶している単語及び各単語に対して算出した参照確率の組(重み付き単語群)をsalience属性を付加して記憶する(ステップS308)。この際、CPU11は参照確率を所定の値で絞込み、参照確率が所定の値未満である単語については記憶しない。
次に、CPU11は、現在の文に対して付加した単語及び各単語の参照確率の組(重み付き単語群)を後に抽出することができるように、索引付けして重み付き単語群のデータベースに記憶する(ステップS309)。CPU11はデータベースを記憶手段13に記憶してもよいし、文書集合接続手段16を介して文書記憶手段2に記憶してもよい。なお、CPU11は、索引付けの処理の1つとして以下のような処理を実行する。
CPU11は例えば、ステップS308で得られた重み付き単語群の内の、一の単語の参照確率に注目し、一の単語の参照確率が所定値以上であるか否かを判定する。次に、CPU11は重み付き単語群の内の、他の一の単語の参照確率が所定値以上であるか否かを判定する。CPU11は、算出した重み付き単語群を、一の単語の参照確率が所定値以上のグループ、一の単語の参照確率が所定未満のグループのいずれに属するか、さらに一の単語の参照確率が所定値以上のグループに属する場合は、さらに他の単語の参照確率が所定値以上のグループ、他の単語の参照確率が所定値未満のグループのいずれに属するかを判定しておく。CPU11は、このような処理を繰り返して算出した重み付き単語群がいずれのグループに属するかを判定し、属するグループの識別情報に対応付けて記憶しておく。この索引付けの処理は例えば、k-d tree探索アルゴリズムを適用することができる。
CPU11は、ステップS301で取得した文書データ中の全文について各文毎に重み付き単語群を対応付ける処理を終了したか否かを判断する(ステップS310)。CPU11は、文書データ中の全文について各文毎に重み付き単語群を対応付ける処理を終了したか否かを以下のように判断する。例えば、現在の文を挟む<su></su>の後に、<su>タグが後続するか否かを判断し、後続しないと判断した場合は終端であると判断することができる。CPU11がステップS301で取得した文書データ中の全文について各文毎に重み付き単語群を対応付ける処理を終了していないと判断した場合は(S310:NO)、CPU11は、処理をステップS302に戻し、次の文に対して処理を継続する。一方、CPU11がステップS301で取得した文書データ中の全文について各文毎に重み付き単語群を対応付ける処理を終了したと判断した場合は(S310:YES)、CPU11は、文書データで抽出されて一時記憶領域14に記憶していた単語を消去する(ステップS311)。
CPU11は、全文書データについて、単語及び単語の参照確率をsalience属性によって記憶する処理を終了したか否かを判断する(ステップS312)。CPU11が全文書データについて、単語及び単語の参照確率をsalience属性によって記憶する処理を終了していないと判断した場合は(S312:NO)、CPU11は、処理をステップS301へ戻し、別の文書データを取得して処理を継続する。CPU11が全文書データについて、単語及び単語の参照確率をsalience属性によって記憶する処理を終了したと判断した場合は(S312:YES)、CPU11は、単語の参照確率を算出して予め記憶する処理を終了する。
次に、文単位検索装置1のCPU11が図9及び図10のフローチャートに示した処理を図5に示した文書データに対して行った場合について具体的に説明する。
図11は、実施の形態1における文単位検索装置1のCPU11が、文書データに示される文書を文毎に分別した一例を示す説明図である。
文単位検索装置1のCPU11は、ステップS301及びステップS302の処理により、文書記憶手段2で記憶している文書データから、<su>タグを識別して文毎に分別する。図11に示す例では、文はs1 「祭とは、神霊などを祀る儀式。」、s2 「祭礼、祭祀とも呼ばれる。」、s3 「九州地方北部では、秋に行われるものに対して(お)くんちと称する場合もある。」に分別される。文単位検索装置1のCPU11によるステップS303の処理により、文s1 ,s2 ,s3 から抽出される単語は、単語のリストに記憶された単語と一致する「祭」、「神霊」、「儀式」、「祭礼」、「祭祀」、「九州」、「九州地方」、「九州地方北部」、「秋」、「くんち」、「場合」である(図6参照)。
文単位検索装置1のCPU11は、ステップS305の処理により、各単語群の文s3 での顕現性(参照確率)を定量的に求めるために、各単語群の特徴量dist,gram,chainからなる特徴パターンを特定する。例えば、文s3 での「九州」(識別番号:9714)(図6参照)の特徴パターンは以下のように特定される。
図11の説明図に示すように、文s3 での「九州」のdistは、最近出現した文s3 と、後続の文s4 との距離1によりdist=1である。また、文s3 での「九州」のgramは、最近「九州」が出現した文s3 では「九州」が係るのは助詞ではなく「地方」へ係るために名詞接続と特定できgram=名詞接続である。文s3 での「九州」のchainは、s1 からs3 まで「九州」が出現した回数は一回であるのでchain=1である。したがって、特徴パターンf(s3 、九州)=(dist=1,gram=名詞接続,chain=1)と特定される。したがって、文単位検索装置1のCPU11は、図9及び図10のフローチャートのステップS306の処理により、式(3)に特徴量dist,gram,chainの値を代入して参照確率を算出する。
ここで、gramで表される特徴量の代入値は、文書記憶手段2で記憶した文書データからサンプル(s,w)を抽出し、夫々に対して算出した単語wの参照確率をgram毎に平均値を算出し代入値とする。例えば、抽出したサンプル(s,w)のうち、gram=ハを有する単語に対して算出した参照確率の平均値が特徴量gramが「ハ」である場合に代入する値である。実施の形態1では、例として、gram=ハの場合はgram=0.0540、gram=ガの場合はgram=0.0288、gram=ノの場合はgram=0.0198、gram=ヲの場合はgram=0.0179、gram=ニである場合はgram=0.0124、gram=名詞接続である場合は、gram=0.00352が算出される。
なお、単語が、助詞「ハ」に係る場合、助詞「ガ」に係る場合、助詞「ノ」に係る場合、助詞「ヲ」に係る場合での、当該単語が後続の文で出現する参照確率の平均値は、「ハ」(主題)「ガ」(主語)「ノ」「ヲ」(目的語)の順に高く、当該文での中心であるか否かを示す中心化理論で定式化している主題>主語>目的語…の序列とほぼ整合する。
文s3 での「九州」の参照確率(文s4 で「九州」が出現又は参照される確率)は、特定した特徴量に基づいて以下式(4)のように算出される。
式(4)に示したように、文s3 での「九州」の参照確率は0.238と算出される。算出された参照確率は文s3 に対して記憶される。文単位検索装置1のCPU11は、文s3 に対し単語をリストで記憶した識別番号で表し、参照確率を対応付けて記憶する。本発明では、文の単位を区切る<su>タグに対して属性名salienceを定義し、属性値は単語の識別番号及び参照確率の組を羅列したものと定義して以下のように文毎に単語及び該単語の参照確率(重み付き単語群)を記憶する。
<su salience=“単語1 の識別番号:単語1 の参照確率 単語2 の識別番号:単語2 の参照確率 単語3 の識別番号:単語3 の参照確率…”>…</su>
図12は、実施の形態1における文単位検索装置1のCPU11が、参照確率を算出した結果を付与して文書記憶手段2に記憶させる文書データの一例を示す説明図である。文s3 では「九州」(9714)の参照確率(文s3 での重み値。以下同様)が0.238、「九州地方北部」(9716)の参照確率が0.1159、…と記憶され、後続の文s4 では「九州」(9714)の参照確率が0.238、「祭」(22953)の参照確率が0.1836、…と記憶される。文毎に異なる単語及び参照確率の組(重み付き単語群)が記憶され、文毎の意味のまとまりを表す情報として検索に使用することができる。文s3 及び文s4 で、「九州」(9716)は、同値の参照確率が算出されているが、文s5 ,文s6 ,…と続く毎に、九州地方に限らない「祭」についての記述が続く場合は「九州」の参照確率は次第に低下していくと考えられる。
図13は、実施の形態1における文単位検索装置1のCPU11が、文単位毎に算出した重み付き単語群を索引付けして記憶した場合のデータベースの内容例を示す説明図である。なお、図13の内容例は、図12の内容例に示した文s4 に対応付けられる重み付き単語群が、図9及び図10のフローチャートに示したCPU11のステップS309によって索引付けされたデータに相当する。
図13に示すように、CPU11は重み付き単語群を、いずれのグループに属するかを示す情報(k-d tree ノードID)に対応付けて記憶しておく。さらにその際、CPU11は、その重み付き単語群がいずれの文書データの文単位に対応付けられているかを特定できるよう、タグ付け済み文書データのファイル名及び文書データ中の位置(タグ情報)を記憶しておく。これにより、後の処理で受け付けた言葉に対して求めた重み付き単語群と類似する重み付き単語群が対応付けられている文単位を抽出することが容易になる。
図14は、文単位検索装置1のCPU11により文毎に記憶される単語及び該単語に対して算出された参照確率の組が、文が続くにつれてどのように変化するかを示す説明図である。図14では、文s1 、文s2 、文s3 、文s4 と続くにつれて、時系列で文脈が動的に変化することに応じて、夫々の文で顕現性の高い単語が夫々異なることが判る。
4.検索処理
4−1.ユーザから入力された言葉の受け付け
次に、実施の形態1における検索処理について説明する。検索処理は、受付装置4,4,…でユーザから入力されるキーワード又は音声等の言葉を受け付けたことを起点として開始する。
受付装置4のCPU41は、操作手段45を介してユーザが入力する文字列を検知して一時記憶領域44に記憶する処理、又は音声入出力手段47を介してユーザが入力する音声を検知して文字列に変換し一時記憶領域44に記憶する処理が可能である。また、受付装置4のCPU41はユーザが入力する文字列を解析して一文一文に分別する機能を有する。例えば、日本語の場合は句点「。」、英語の場合はピリオド「.」等の所定の文字を識別して分別するのでもよい。また、Enterキーが押下されたことを操作手段45を介して検知する都度、Enterキーが入力されるまでの文字列を一文と分別するのでもよい。ユーザからの音声入力に対しては、例えば、音声認識機能によって音声を文字列に変換し、変換した文字列から文字列解析によって文に分別してもよいし、無音を検出したところで文に分別してもよい。受付装置4のCPU41は、分別した一文一文をテキストデータとして通信手段48を介して文単位検索装置1へ送信する。
4−2.受け付けた言葉に対する意味のまとまりの定量化
次に、文単位検索装置1のCPU11が、受付装置4,4,…で受け付けた言葉を示すテキストデータを受信した場合に、文書記憶手段2で記憶している文書中の文を検索する処理について説明する。受け付けた言葉を示すテキストデータに対しても、意味のまとまりの定量化、即ち当該テキストデータの単語抽出及び単語の参照確率の算出を行う。これにより、ユーザが言葉を入力するときにユーザの潜在的な意識にある先行の言葉からの流れに応じた文脈を反映した意味のまとまりを表わす情報を、後述する検索処理における検索要求として自動的に作成することができる。
文単位検索装置1のCPU11は、ユーザから受け付けた言葉を示すテキストデータをパケット交換網3及び通信手段15を介して受付装置4,4,…から受信した場合、一時記憶領域14に受信した順にテキストデータを記憶すると共に、受信したテキストデータで示される文に対して形態素解析及び統語解析を行う。また、受信したテキストデータで示された文sと、文sより以前に受信したテキストデータで示された文に出現した単語wとの対(s,w)に対し、特徴量dist,gram,chainで表される特徴パターンf(s,w)を特定する。
文単位検索装置1のCPU11は、受信したテキストデータの文sでの単語wの特徴パターンf(s,w)を特定した場合、特定した特徴パターンと先に得られた回帰式とに基づいて参照確率を算出する。文単位検索装置1のCPU11は、各単語について参照確率を算出し、各単語と各単語について算出した参照確率とを用いて、既に文単位に対応付けて記憶してある重み付き単語群、即ち各単語と各単語の参照確率との組と比較する処理をおこなって文単位の検索を行う。
なお、文単位検索装置1のCPU11は、受付装置4,4,…からテキストデータのみならず、ユーザから入力された発話の音声データも受信することが可能である。この場合、音声データをテキストデータと同様に音声データに表わされている単語の文法上の特徴パターンを特定することにより、同様の処理を行なう。また、音声データの場合は音声データで得られる特徴を、その単語の顕現性が高いか否かを判断するための特徴量として扱うことも可能である。例えば、CPU11は、単語が出現又は参照された場合に、先行の言葉で出現又は参照されてからの時間差を一つの特徴量として扱うことができる。またCPU11は、その単語が出現又は参照された直近の先行の言葉中で、その単語が発声されたときの発話速度及び/又は音声の周波数を他の特徴量として扱うことができる。これらは、テキストデータに変換された後では検知することができない、時間情報又は単語にこめられた感情を定量的に表わす情報である。
受付装置4がユーザから入力された言葉を受け付けて文単位検索装置1へ送信し、文単位検索装置1のCPU11が受付装置4から受信したテキストデータに基づいて文書記憶手段2で記憶している文書データから検索を行う処理手順についてフローチャートを用いて説明する。図15、図16、及び図17は、実施の形態1における文単位検索装置1及び受付装置4の検索処理の処理手順を示すフローチャートである。
受付装置4のCPU41は、ユーザによる文字列入力操作を操作手段45を介して検知したか否か、又はユーザによる音声入力を音声入出力手段47を介して検知したか否かを判断する(ステップS401)。CPU41がユーザによる文字列入力操作又は音声入力を検知していないと判断した場合は(S401:NO)、CPU41は、処理をステップS401へ戻し、ユーザによる文字列入力操作又は音声入力を検知するまで待機する。
一方、受付装置4のCPU41がユーザによる文字列入力操作又は音声入力を検知したと判断した場合は(S401:YES)、受付装置4のCPU41は、入力された文字列又は音声入力を変換した文字列から、入力された言葉を一文に分別して一時記憶領域44に記憶し(ステップS402)、ユーザから入力された言葉をパケット交換網3を介して文単位検索装置1へ送信する(ステップS403)。
文単位検索装置1のCPU11は、受付装置4から、ユーザによって入力された言葉を受信し(ステップS404)、CPU11は、受信した言葉を文として一時記憶領域14に受信順にテキストデータで記憶する(ステップS405)。このとき、テキストデータ毎に文識別番号を付加して記憶してもよい。
CPU11は、記憶したテキストデータを形態素解析及び統語解析し(ステップS406)、解析によって抽出された単語を一時記憶領域14に記憶する(ステップS407)。このときCPU11は、リストに記憶してある単語と照合し、リストの識別番号で単語を記憶する。
なお、文単位検索装置1のステップS407における処理により、一時記憶領域14には、一連として入力された言葉(発話)の中で一度は出現又は参照された単語が記憶されることになる。なお、ステップS407における単語の抽出は必ずしも行わなくてもよい。その場合は、リストに記憶してある全単語に対し、後述する特徴パターンの特定の処理を行う。
CPU11は、一時記憶領域14に記憶している単語夫々に対し、過去に受信して記憶してあるテキストデータ及びステップS406の形態素解析及び統語解析の結果に基づいて、特徴パターンを特定する(ステップS408)。CPU11は、特定した特徴パターンの特徴量を、予め話し言葉について回帰分析して求めた参照確率を算出するための回帰式に代入し、単語毎に参照確率を算出する(ステップS409)。CPU11は、一時記憶領域14で記憶している全単語について参照確率を算出したか否かを判断する(ステップS410)。CPU11が記憶している全単語について参照確率を算出していないと判断した場合は(S410:NO)、処理をステップS408へ戻し、別の単語について特徴パターンの特定及び参照確率の算出の処理を行う。
CPU11が記憶している全単語について参照確率を算出したと判断した場合は(S410:YES)、一時記憶領域14に夫々参照確率を算出して記憶している全単語に対し、所定値以上の参照確率が算出された単語に絞り込む(ステップS411)。参照確率が極端に低い単語を除去することにより、後の演算によるCPU11自身への負荷を低減させるためである。CPU11は、受け付けた言葉に対して絞り込まれた単語及び単語の参照確率に基づいて以下のような検索処理を行う。
これまでの処理により、受け付けた言葉に対し、以前に受け付けた言葉から続く流れ上の意味のまとまりを定量的に表わす単語と単語の参照確率の組(重み付き単語群)を検索要求として生成することができた。以下の検索処理(一点鎖線で囲まれたステップS412からステップS416まで)は、受け付けた言葉に対して得られた重み付き単語群と、予め記憶してある文単位の重み付き単語群とを比較し、夫々の重み付き単語群の内の複数の単語の重み値の分布が類似するか否かによって、言葉と文とで意味が類似するか否かを判定し、類似する文を抽出する処理の一例である。
CPU11は、記憶手段13又は文書記憶手段2のデータベースから、各文に対応付けられて記憶されている単語と単語の参照確率との組(以下重み付き単語群という)を読み出す(ステップS412)。
このとき、CPU11は、ある程度類似する重み付き単語群を絞り込んで読み出すことができるように、ステップS411までの処理で得られた受け付けた言葉に対応付けられる重み付き単語群が、データベースに記憶してある重み付き単語群同様にいずれのグループに属するかを判定する。CPU11は、受け付けた言葉に対応付けられた重み付き単語群が属するグループの重み付き単語群をデータベースから読み出す。これにより、全く類似しない重み付き単語群と比較することを回避し、ある程度類似する重み付き単語群を絞り込んで抽出することができる。
次にCPU11は、ステップS412で読み出した重み付き単語群から、受け付けた言葉の重み付き単語群と同一の単語を含む重み付き単語群を抽出する(ステップS413)。CPU11は、抽出した文と同一の単語夫々について、参照確率の差分を算出する(ステップS414)。CPU11は、同一の単語の数の多い順及び同一の単語の参照確率の差分が小さい順に、抽出した重み付き単語群に類似度を付与し(ステップS415)、抽出した重み付き単語群が対応付けられている文を文書集合の文書データから読み出す(ステップS416)。このとき、CPU11は、類似度が所定値以上の重み付き単語群のみに対応する文を読み出してもよい。CPU11は、抽出した文を類似度でソートする(ステップS417)。
上述のステップS412からステップS417までの処理により、受け付けた言葉に対して得られた重み付き単語群の内の複数の単語の重み値の分布と、類似する重み値の分布を有する重み付き単語群が対応付けられた文を抽出することができる。
次にCPU11は、各文を表すテキストデータを検索結果のテキストデータとして受付装置4へ通信手段15を介して送信する(ステップS418)。
受付装置4のCPU41は、検索結果のテキストデータを通信手段48を介して受信し(ステップS419)、受信したテキストデータを表示手段46を介してモニタ等に表示し(ステップS420)、処理を終了する。
受付装置4のCPU41は、ユーザからの言葉の入力を検知する都度、一文に分別したテキストデータ又は音声データを文単位検索装置1へ送信する。文単位検索装置1のCPU11は、受付装置4からテキストデータ又は音声データ、音声データと共に送信される情報を受信する都度、単語及び単語毎の参照確率を算出して、ユーザから受け付けた言葉に対し、先行の言葉からの流れが反映された意味のまとまりを表わす情報、即ち重み付き単語群を検索要求として作成する。文単位検索装置1のCPU11は、受け付けた言葉に対して作成した検索要求(重み付き単語群)に基づいて記憶している文書データから文単位を抽出し、検索結果としてテキストデータを送信する。
実施の形態1における受付装置4のCPU41は、検索結果のテキストデータを受信する都度、モニタ等に表示する。したがって、受付装置4ではユーザから言葉が入力される都度、当該言葉と意味のまとまりが類似するテキストデータが検索結果として表示される。
なお、受付装置4は、必ずしもユーザから言葉が入力される都度毎回テキストデータを送信し、検索結果を受け付けて表示する構成としなくともよい。例えば、所定の期間中に入力された複数の言葉に相当するテキストデータ又は音声データを文単位検索装置1へ送信し、複数の言葉に対応する検索結果を受け付けて表示する構成でもよい。
図15、図16及び図17のフローチャートに示した文単位検索装置1のCPU11による処理の詳細を具体例を挙げて以下に説明する。
図18は、実施の形態1における文単位検索装置1のCPU11が、受付装置4から受信したテキストデータに対して特定した特徴パターンの例を示す説明図である。図18中の文単位Si-2 ,文単位Si-1 ,文単位Si は夫々、受信した各テキストデータで示される文である。
図18中の文単位Si での、当該文単位si 及び先行する文単位に含まれる単語「おくんち」とのサンプル(si ,おくんち)の特徴パターンは以下のようにして特定される。現在の文si 及び先行する文のうち、単語「おくんち」が最近出現又は参照された文si-2 との距離の特徴量(dist)は、dist=3である。また、単語「おくんち」が最近出現又は参照されたsi-2 での「おくんち」が係っている格助詞は「って」であるため、gram=ッテである。更に、文si より先行の文si-2で単語「おくんち」が出現又は参照されたためchain=1である。したがって、特徴パターンはf(si ,おくんち)=(dist=3,gram=ッテ,chain=1)と特定される。英語の場合、gramは前置詞によって特定される。
文単位検索装置1では、話し言葉についても文書記憶手段2で記憶している文書データについて回帰分析を行い、特徴パターンを特定した場合に特徴量を代入することで参照確率を算出することができる回帰式が予め導出されている。したがって、文単位検索装置1のCPU11は、文si の「おくんち」に対して、特定した特徴パターンの特徴量dist,gram,chainに基づいて参照確率を算出することができる。更に、文単位検索装置1のCPU11は、文si について過去に出現又は参照された単語も含めて参照確率を算出し、単語と単語の参照確率とを求める。文単位検索装置1のCPU11は、求めた単語と参照確率とに基づいて、文書記憶手段2で記憶してあるsalience属性を予め記憶してある文単位から同一の単語の参照確率が所定の値以上である文単位を直接的に抽出する。文単位検索装置1のCPU11は、抽出した文を示すテキストデータを通信手段15を介して受付装置4へ送信する。
このような文単位検索装置1のCPU11の処理により、受信したテキストデータが表す言葉の意味のまとまりを当該言葉毎に単語及び単語の参照確率(重み値)で表すことができる。また、予め文書記憶手段2で記憶してある文書データの各文についても、意味のまとまりを表す単語及び単語の参照確率(重み付き単語群)が記憶されるので、ユーザから受け付けた言葉に対し、抽出された単語の参照確率が類似するか否かによって意味のまとまりが類似する文を直接的に検索することができる。
(実施の形態2)
実施の形態2では、事前処理の段階で文書記憶手段2で記憶した文書データの文毎に、抽出した単語と単語毎に算出した参照確率との組(重み付き単語群)を顕現性ベクトルとして扱う。さらに、受け付けた言葉に対して算出する単語と単語毎に算出した参照確率との組(重み付き単語群)も顕現性ベクトルとして扱う。そして検索処理の段階においては、実施の形態1に示したように、受け付けた言葉の重み付き単語群の内の複数の単語の重み値の分布と、予め文毎に対応付けてある重み付き単語群の内の複数の単語の重み値の分布とが類似する条件にあるか否かを、同一の単語が記憶されており、同一の単語の差分が小さいか否かで判断した。これに対し、実施の形態2では、夫々の重み付き単語群を顕現性ベクトルで表わし、類似する条件にあるか否かを顕現性ベクトル間の距離の短さによって判断する。
実施の形態2における、本発明に係る文単位検索装置1を用いた検索システムの「1.ハードウェアの構成及び概要」、及び「2.文書データの取得及び自然言語解析」については、実施の形態1と同様であるため説明を省略する。「3.文書データの文毎の意味のまとまりの定量化」、及び「4.検索処理」について以下に説明するが、実施の形態1と同一の符号を用いて説明する。なお、「3.文書データの文毎の意味のまとまりの定量化」、及び「4.検索処理」についても、実施の形態1と共通する点については詳細な説明を省略する。
3.文書データの文毎の意味のまとまりの定量化
3−1.文毎の意味のまとまりの定義
実施の形態2では、実施の形態1と同様に文毎の意味のまとまりを定量的に表す情報は、ユーザが当該文を使用(発話、筆記、聴取又は読解)するときに、ユーザが注目している単語群と、ユーザが各単語に注目する度合い、即ち顕現性(salience)を定量的に示す値(単語の重み値)とで表す。また、実施の形態1と同様に、顕現性を定量的に示す重み値として後続の文で出現する又は参照される確率を示す参照確率を使用する。
3−2.回帰モデル学習
実施の形態2でも、参照確率については実施の形態1の3−2.回帰モデル学習と同様に、文書記憶手段2で記憶している文書データのサンプルに対する回帰分析によって得られる回帰係数を含む回帰式を用いて算出する。
3−3.文単位毎の顕現性の定量化
実施の形態2でも、文単位検索装置1のCPU11は、回帰分析によって得られた回帰係数を含む回帰式を使用して、抽出された単語毎に特徴量dist,gram,chainを特定することで単語毎の参照確率を算出することができる。ここで、単語毎の参照確率をその単語の重み値として付与した重み付き単語群が得られる。実施の形態2では、文毎の意味のまとまりを表わす重み付き単語群は、単語を夫々一次元とし、単語毎に算出した参照確率を各単語に対応する次元成分の要素として持つ顕現性ベクトルとして扱う。つまり、文書記憶手段2で記憶される文書データ中の文の意味のまとまりは、文書記憶手段2で記憶される文書データから抽出し、図6に示すリストに記憶している31245次元の多次元空間におけるベクトルで表すことができる。
したがって、(あい,あいだ,あいまい,…,Z,Zくん)という単語群からなる31245次元の基底空間に対し、図11に示した文s3 の顕現性ベクトルv(s3 )は、文s3 での9714番目の「九州」次元に対応する要素が参照確率の大きさ(重み値)0.238で表され、また、9716番目の「九州地方北部」次元に対応する要素が参照確率の大きさ0.1159で表されるので、(0,0,…,0.238,0,0.1159,…,0)と31245次元のベクトルで表現して扱うことができる。
なお、実施の形態2において文単位検索装置1のCPU11が参照確率を算出した結果を付与して文書記憶手段2に記憶させる文書データは、実施の形態1の図11の説明図に示した文書データと同様である。即ち、文書記憶手段2に記憶される文書データには、次元の番号及び次元成分の要素である参照確率の値が記憶される。実施の形態2における文単位検索装置1のCPU11が、文書記憶手段2で記憶しているタグ付け済みの文書データの文毎に単語の参照確率を算出し、文毎に対応付けてデータベースに記憶する処理手順は、実施の形態1と同様であるため説明を省く。
4.検索処理
次に、実施の形態2における検索処理について説明する。「4−1.ユーザから入力された言葉の受け付け」については、受付装置4のCPU41が行う処理については実施の形態1と同様である。
4−2.受け付けた言葉に対する意味のまとまりの定量化
文単位検索装置1のCPU11が、受付装置4で受け付けた言葉を示すテキストデータを受信した場合に、文書記憶手段2で記憶している文書中の文を検索する処理について説明する。文単位検索装置1のCPU11は、受け付けた言葉を示すテキストデータに対しても、受け付けた言葉の文脈上の意味のまとまりを単語の多次元空間における方向性を示す顕現性ベクトルで表す。
文単位検索装置1のCPU11は、実施の形態1での処理同様に、受付装置4から受信したテキストデータに対してリストに記憶された31245次元の単語に対する特徴量dist,gram,chainで表される特徴パターンを特定する。なお、過去に一連として受信したテキストデータで出現していない単語については、対応する次元成分の要素を0として特徴パターンの特定を省く。
特徴パターンを表す特徴量dist,gram,chainから、回帰式に基づいて次元成分の要素としての参照確率を夫々算出することができる。したがって、文単位検索装置1のCPU11は、テキストデータを受信する都度、受信したテキストデータで示される言葉のそれまでの文脈上の意味のまとまりを表わす顕現性ベクトルを算出することができる。
文単位検索装置1のCPU11は、受け付けた言葉に対して算出した顕現性ベクトルと、文書記憶手段2で記憶してある、salience属性を予め付加した文の顕現性ベクトルとの距離をベクトル演算によって直接算出し、距離が短い文を抽出する。図6の各単語を1次元とした場合の31245次元の多次元空間の中で意味のまとまりの方向性が類似する文を検索することができる。文単位検索装置1のCPU11は、抽出した文を示すテキストデータを、通信手段15を介して受付装置4へ送信する。ベクトル演算を扱うことが可能なコンピュータを用いる場合は、文毎の意味のまとまりを顕現性ベクトルで表して直接的に演算をすることができる。
文単位検索装置1のCPU11が、受付装置4で検索要求の言葉を示すテキストデータを受信し、受信したテキストデータに基づいて文書記憶手段2で記憶している文書データから顕現性ベクトルを用いて検索を行う処理手順について説明する。図19は、実施の形態2における文単位検索装置1及び受付装置4の検索処理の処理手順を示すフローチャートである。なお、図19のフローチャートに示す処理手順では、実施の形態1における図15、図16及び図17のフローチャートに示した検索処理の処理手順と同一の処理については、各ステップに同一の符号を用いて詳細な説明を省略する。
図19のフローチャートに示す処理手順の内、一点鎖線で囲まれた各ステップS501からステップS506までの処理が、実施の形態1における図15、図16及び図17のフローチャートに示した処理手順と異なる。実施の形態1におけるステップS412からステップS416までの処理の代わりに、実施の形態2における文単位検索装置1のCPU11により実行されるステップS501からステップS506までの処理について、以下に説明する。
文単位検索装置1のCPU11は、一時記憶領域14に夫々参照確率を算出して記憶している全単語に対し、所定値以上の参照確率が算出された単語に絞り込み(ステップS411)、絞り込まれた各単語と、算出された各単語の参照確率とに基づいて受け付けた言葉の顕現性ベクトルを算出する(ステップS501)。
ステップS501までの処理により、受け付けた言葉に対し、以前に受け付けた言葉から続く流れ上の意味のまとまりを定量的に表わす顕現性ベクトルを検索要求として生成することができた。以下の処理は、受け付けた言葉に対して得られた顕現性ベクトルと、予め記憶してある文毎の顕現性ベクトルとを比較し、夫々の顕現性ベクトルが表わす各単語の重み値の分布が類似するか否かを判定する処理の一例である。
CPU11は、データベースに記憶してある重み付き単語群即ち顕現性ベクトルを読み出す(ステップS502)。このとき、ステップS411までの処理で得られた受け付けた言葉に対応付けられる顕現性ベクトルが、データベースに記憶してある顕現性ベクトル同様にいずれのグループに属するかを判定する。CPU11は、受け付けた言葉に対応付けられた顕現性ベクトルが属するグループの顕現性ベクトルをデータベースから読み出す。これにより、各単語の重み値の分布が類似する顕現性ベクトルをある程度絞り込んで抽出することができる。
CPU11は、受け付けた言葉に対応付けた顕現性ベクトルと読み出した顕現性ベクトルとの距離を算出する(ステップS503)。CPU11は、読み出した顕現性ベクトルを、算出した距離が所定値未満である顕現性ベクトルに絞り込み(ステップS504)、絞り込まれた顕現性ベクトルが対応付けられて記憶されている文を読み出す(ステップS505)。CPU11は、読み出した文に算出した距離が短い順に類似度を付与する(ステップS506)。
実施の形態2における文単位検索装置1のCPU11によるステップS501からステップS506までの処理により、受け付けた言葉と文脈上の意味合いが類似する文が抽出される。
その後の抽出された文に対するステップS417以降の処理は実施の形態1と同様である。
なお、上述の処理手順の内の、CPU11が受け付けた言葉に対応付けた顕現性ベクトルと、読み出した顕現性ベクトルとの距離を算出するステップS503の処理は、具体的には以下のように算出する。受け付けた言葉Ui に対応付けた顕現性ベクトルがv(ui )と表わされ、読み出した顕現性ベクトルがv(si )と表わされる場合、CPU11は以下に示す式(5)のように、コサイン距離を算出する。
ただし、式(5)に示したように距離を算出した場合、言葉の顕現性ベクトルv(ui )と、読み出した顕現性ベクトルv(si )とが近いほど、算出したコサイン距離の値は大きくなる。したがって、CPU11はステップS506において、算出したコサイン距離が大きい順に類似度を付与する。
このような文単位検索装置1のCPU11及び受付装置4のCPU41の処理により、受け付けた言葉の意味のまとまりを、当該言葉毎に各単語の参照確率を要素とした顕現性ベクトルで表すことができる。また、予め文書記憶手段2で記憶してある文書データの各文についても、意味のまとまりを表す各単語の参照確率を要素とした顕現性ベクトルが記憶してあるため、単語の多次元空間での方向性を表す顕現性ベクトル間の距離によって、意味のまとまりが類似する文を直接的に検索することができる。
(実施の形態3)
実施の形態1又は2では、事前処理の段階の「3.文書データの文単位毎の意味のまとまりの定量化」を行なう処理の中で、重み付き単語群として当該単語と単語の参照確率との組、又は顕現性ベクトルを文単位毎に対応付けて記憶しておいた。また、その後の「4.検索の処理」でも「4−2.受け付けた言葉に対する意味のまとまりの定量化」の処理の中で、重み付き単語群として単語と単語の参照確率との組、又は顕現性ベクトルを求めて受け付けた言葉に対応付けた。これに対し、実施の形態3では、文単位又は言葉毎に対応付けた重み付き単語群(単語と単語の参照確率との組、又は顕現性ベクトル)に対し、各単語の顕現性を表わす重み値を、単語に関連の深い他の単語からの連想を加味して算出し直す処理を実行する。
具体的に連想とは、文単位毎に対応付けられている重み付き単語群の内のある単語が、その文単位又は先行の文単位に出現していない場合であっても、その単語と関連の深い単語の顕現性が高い場合はその単語もその文単位で注目されているはずであることをいう。したがって、一の単語が注目されている時に同時に注目されやすい単語を関連語とする。そして、各単語の顕現性を表わす重み値に、関連の深い単語の顕現性からの影響を反映させる。
図20は、実施の形態3における本発明の検索方法に関わる、一の単語と関連の深い単語の顕現性の影響の概要を示す説明図である。図20の説明図は、一又は複数のユーザ間の会話の例を表わしている。会話は発話U1 ,U2 ,U3 ,U4 の集合であり、U1 ,U2 ,U3 ,U4 の順になされている。
ここで、発話U1 ,U2 ,U3 ,U4 にはいずれにも「大阪」は出現していない。また、U1 よりも先行の発話で「大阪」が出現しており、発話U1 ,U2 ,U3 ,U4 夫々での「大阪」の顕現性がゼロではなく、ある程度の高さを有していたとしても、その後「大阪」は出現していないので、発話U4 の時点で「大阪」の顕現性を現す参照確率を定量的に算出した場合、その値が低下している可能性がある。
しかしながら、「大阪」という単語がそれまでの文単位又は言葉に出現していない場合であっても、発話U1 、U3 には単語「アメリカ村」及び「ミナミ」が出現している。したがって、「アメリカ村」及び「ミナミ」は、発話U4 の時点で参照確率を夫々算出した場合、その値は高いはずである。「アメリカ村」も「ミナミ」も、「大阪」の代表的な繁華街であるから、発話U4 で「大阪」の単語が出現又は参照していなくとも、「アメリカ」又は「ミナミ」が出現していることによって、関連の深い「大阪」の顕現性は本来、高くなるはずである。したがって、図20の例では、発話U4 における「大阪」の顕現性を現す参照確率は、高い値を有しているはずである。
そこで、実施の形態3では、文単位又は言葉毎に対応付けられる各単語の顕現性を表わす重み値を、関連する単語(関連語)の顕現性を考慮して算出し直す。
参照確率を関連語の顕現性を考慮した重み値に算出し直すためにはまず、文単位検索装置1は、いずれの単語同士の関連が深いのかを表わす情報を先に取得しておく必要がある。そして次に、文単位毎に算出されている各単語の参照確率に、関連の深さを表わす関連度の影響を反映しておく。具体的には、例えば上述の例を用いた場合、「アメリカ村」の「大阪」への関連度を定量的に算出しておく。次に既に算出されている「アメリカ村」の参照確率へ、「大阪」への関連度の効果を反映させて、その文単位での「大阪」の顕現性を表わす重み値として算出し直して記憶しておく。
そこで、実施の形態3ではまず、文単位検索装置1は、各単語の一の単語への関連度が重み値として付与された、一の単語に対する重み付き関連語群を作成する。具体的には、実施の形態1又は2において、「3−3.文単位毎の顕現性の定量化」の処理によって文単位毎に対応付けられて記憶されている重み付き単語群、即ち単語と単語の参照確率との組又は顕現性ベクトルを利用して、文単位検索装置1が各単語の重み付き関連語群を作成する。文単位検索装置1は、文書集合全体から抽出される各単語について、夫々の単語に対する重み付き関連語群を作成し、記憶しておく。
そして次に、文単位検索装置1は、文単位毎に対応付けられて記憶されている重み付き単語群、即ち単語と単語の参照確率との組又は顕現性ベクトルの各単語の参照確率へ、各単語に関連が深い単語の参照確率からの影響を、関連度を利用して反映させ、各単語の重み値を算出し直して記憶する。
さらに、文単位検索装置1は検索処理において、各言葉に対応付けた重み付き単語群、即ち単語と単語の参照確率との組又は顕現性ベクトルについても同様に関連度を利用して各単語の重み値を算出し直す。文単位検索装置1は、受け付けた言葉に対応する単語と各単語に対して算出し直した重み値に基づいて、検索処理を行なう。
以下に、文単位検索装置1のCPU11が、各単語に対する重み付き関連語群の作成する処理について、「3−4.関連語群の作成」の節を追加して説明する。また、作成された関連語群を使用して、「3−3.文単位毎の顕現性の定量化」において算出した参照確率を関連を加味した重み値に算出し直す処理について、「3−5.連想の加味した意味のまとまりの定量化」の節を追加して説明する。「4−2.受け付けた言葉に対する意味のまとまりの定量化」において算出した参照確率を関連を加味した重み値に算出し直して検索を実行する処理について、「4−2’.受け付けた言葉に対する連想を加味した意味のまとまりの定量化」の節を設けて説明する。
なお、実施の形態3における、本発明に係る文単位検索装置1を用いた検索システムの「1.ハードウェアの構成及び概要」、及び「2.文書データの取得及び自然言語解析」については、実施の形態1と同様であるため説明を省略する。「3.文書データの文毎の意味のまとまりの定量化」、及び「4.検索処理」について以下に説明するが、実施の形態1と同一の符号を用いて説明する。なお、「3.文書データの文毎の意味のまとまりの定量化」、及び「4.検索処理」についても、実施の形態1と共通する点については詳細な説明を省略する。
3−4.関連語群の作成
関連語群は、図6で示した説明図で抽出されている全単語について一単語ずつ、文単位検索装置1によって以下の処理が行なわれることにより作成される。
まず、文単位検索装置1は、「3−3.文単位毎の顕現性の定量化」で全ての文単位毎に対応付けられて記憶されている重み付き単語群から、一の単語の参照確率が所定値以上の重み付き単語群を抽出する。これは、上述のように関連語を、一の単語が注目されている時に同時に注目されやすい単語とするからであり、一の単語が注目されていない文単位が除去されるようにするためである。
次に文単位検索装置1は、上述の処理で抽出された、一の単語の参照確率が所定値以上の重み付き単語群を統合する。具体的には、各重み付き単語群の各単語の参照確率に、その重み付き単語群に含まれる一の単語の参照確率による重み付けをして各単語の参照確率を平均化する。一の単語の参照確率による重み付けを行うのは、一の単語の参照確率がより高い重み付き単語群の各単語に対する参照確率を使用するためである。
そして、全単語についての重み付き関連語群を同様に扱うため、重み付き関連語群の各単語の重み値を正規化する。
以下に、本発明に係る文単位検索方法を実施する文単位検索装置1のCPU11が、関連語群を作成する処理について説明する。図21及び図22は、実施の形態3における文単位検索装置1のCPU11が関連語群を作成する処理手順を示すフローチャートである。図21及び図22のフローチャートに示す処理は、一の単語について、その重み値が所定値以上である単語群を抽出する処理、抽出した単語群の各単語の重み値を統合して関連度として各単語に付与した関連単語群を作成する処理、一の単語に対応付けて記憶しておく処理、各単語について各処理を実行する処理に対応する。
文単位検索装置1のCPU11は、記憶手段13に記憶してあるリストから一の単語を選択する(ステップS601)。CPU11は、文書記憶手段2から文書集合接続手段16を介してタグ付け済みの文書データを取得する(ステップS602)。CPU11は、取得した文書データに付加されたタグ<su>を文字列解析によって識別し、文単位を読み出す(ステップS603)。次にCPU11は、<su>内に記憶してあるsalience属性を読み出し(ステップS604)、salience属性に記憶してある単語及び単語の参照確率の組(重み付き単語群)の内、ステップS601で選択した一の単語の参照確率が所定値以上であるか否かを判断する(ステップS605)。
CPU11が参照確率が所定値未満である(選択した一の単語が対応付けられていない)と判断した場合(S605:NO)、CPU11は、処理をステップS603へ戻して、後続の文単位を読み出し(S603)、ステップS604及びステップS605の処理を行なう。
CPU11が参照確率が所定値以上であると判断した場合(S605:YES)、CPU11は、ステップS604でsalience属性で読み出した重み付き単語群を一時記憶領域に記憶する(ステップS606)。
CPU11は、ステップS602で取得した文書データの全文単位についてステップS604からステップS606までの処理を実行したか否かを判断する(ステップS607)。CPU11が全文単位について処理を実行していないと判断した場合(S607:NO)、CPU11は、処理をステップS603へ戻して、後続の文単位を読み出し(S603)、ステップS604からステップS606までの処理を実行する。
CPU11が全文単位について処理を実行したと判断した場合(S607:YES)、CPU11は、全文書データについて、選択した一の単語の参照確率が所定値以上である重み付き単語群を抽出したか否かを判断する(ステップS608)。CPU11が全文書データについて選択した一の単語の参照確率が所定値以上である重み付き単語群を抽出していないと判断した場合(S608:NO)、CPU11は、処理をステップS602へ戻して次の文書データを取得して(S602)ステップS603からステップS607までの処理を実行する。
CPU11が全文書データについて選択した一の単語の参照確率が所定値以上である重み付き単語群を抽出したと判断した場合(S608:YES)、CPU11は、ステップS606の処理によって抽出され、一時記憶領域14に記憶してある重み付き単語群の集合を、夫々での一の単語の参照確率で重み付けした重み値の総和を夫々の単語に対して算出することにより作成する(ステップS609)。
CPU11は、ステップS609において作成した一の単語の参照確率が所定値以上である重み付き単語群の総和、即ち総和された重み付き単語群の各単語の重み値を正規化する(ステップS610)。
CPU11は、ステップS610で正規化された一の単語の参照確率が所定値以上である重み付き単語群を、各重み値を関連度とする関連語群としてステップS601で選択した一の単語に対応付けて記憶手段13に、又は文書集合接続手段16を介して文書記憶手段2に記憶する(ステップS611)。
次に文単位検索装置1のCPU11は、記憶手段13に記憶してあるリストの全単語について関連語群を作成して記憶したか否かを判断する(ステップS612)。CPU11が全単語について関連語群を作成して記憶していないと判断した場合(S612:NO)、CPU11は、処理をステップS601へ戻して次の一の単語を選択し(S601)、選択した単語についてステップS602からステップS611までの処理を実行する。
CPU11が全単語について関連語群を作成して記憶したと判断した場合(S612:YES)、CPU11は処理を終了する。
なお、ステップS605において文単位検索装置1のCPU11は、単純に、参照確率が所定値以上であるか否かを判断するのではなく、以下のような正規化処理を行ってから所定値との比較を行うようにしてもよい。例えば、文単位検索装置1のCPU11は、文単位に対応付けられている各単語の参照確率の二乗の総和が「1」になるように、全参照確率の二乗和の二乗根で各参照確率を除算することによって正規化を行う。
なお、ステップS610における正規化についても、各単語の重み値の二乗の総和が1になるように正規化する。例えば、文単位検索装置1のCPU11は、全重み値の二乗和の二乗根により、各重み値を除算することによって正規化を行う。
次に、実施の形態3における文単位検索装置1のCPU11が、図21及び図22のフローチャートに示した処理を一の単語について行った場合に作成される関連語群の具体例を示す。
図23は、実施の形態3における文単位検索装置1のCPU11によって関連語群が作成される場合の、各処理の過程での重み付き単語群の例を示す説明図である。なお、図23の説明図に示す例は、文単位検索装置1のCPU11によって、一の単語「アメリカ村」の参照確率が所定値(0.2)以上の重み付き単語群が抽出された場合の例である。図23(a)は、図21及び図22のフローチャートに示したステップS605におけるCPU11の処理により抽出されて、一時記憶領域14に記憶されている重み付き単語群GW1 ,GW2 ,GW3 を示している。図23(b)は、同様にステップS607におけるCPU11の処理により、一の単語の参照確率により重み付けされる重み付き単語群GW1 ’,GW2 ’,GW3 ’を示している。図23(c)は、同様にステップS609におけるCPU11の処理により、重み付けされて総和された重み付き単語群GW’’を示している。
図23(a)に示すように、一の単語「アメリカ村」の重み値(参照確率)が所定値0.2以上の重み付き単語群GW1 ,GW2 ,GW3 が抽出されている。
図23(b)に示されている重み付き単語群GW1 ’,GW2 ’,GW3 ’の、各単語の重み値には夫々の重み付き単語群中の一の単語「アメリカ村」の重み値(参照確率)が乗算されている。図23(a)に示された単語群GW1 ,GW2 ,GW3 に対し、図23(b)に示された単語群GW1 ’,GW2 ’,GW3 ’の各単語の重み値は、以下のようにして一の単語「アメリカ村」の重み値(参照確率)が乗算されている。例えば、重み付き単語群GW1 の各単語の重み値は、アメリカ村の重み値(参照確率)が0.6であるため、アメリカ村の参照確率で重み付けされて以下のようになる。
単語群GW1 ’:(秋:0(0.6×0),アメリカ村:0.36(0.6×0.6),・・・,大熊座:0(0.6×0),大阪:0.12(0.6×0.2),大鹿:0(0.6×0),・・・)
つまり、一の単語「アメリカ村」の重み値が高いほど、他の単語の重み値の影響が反映される。
図23(c)に示されている重み付き単語群GW’’の、各単語の重み値は、図23(b)に示したように夫々一の単語「アメリカ村」の重み値(参照確率)で重み付けされた重み値が単語毎に総和されている。図23(c)に示された単語群GW’’の各単語の重み値は、図23(b)に示された単語群GW1 ’,GW2 ’,GW3 ’以下のように総和される。
単語群GW’’:(秋:0.03(=0+0.03+0),アメリカ村:0.49(=0.36+0.09+0.04),…,大熊座:0(=0+0+0),大阪:0.28(=0.12+0.12+0.0.04),大鹿:0(=0+0+0),…)
また、重み付けされて総和されることにより統合された重み付き単語群GW’’の各単語の重み値は、文単位検索装置1のCPU11の処理により正規化される。
正規化の処理についてはその方法は問わないが、例えば、文単位検索装置1のCPU11は、各単語の重み値を二乗し、二乗した値の和の二乗根を算出し、各単語の重み値で割って、重み付き単語群GW’’の各単語の重み値を正規化するようにしてもよい。
また、重み付けされて総和されることにより統合された重み付き単語群GW’’を、各単語を一次元とし、各単語の重み値を各次元方向の要素として多次元ベクトルである関連度ベクトルで表現した場合は、各重み値(要素)を多次元ベクトルのノルムで割ることにより、多次元ベクトルを正規化するようにしてもよい。このとき、ノルムはユークリッドノルムとは限らない。
このように総和して正規化した結果の重み付き単語群が、文単位検索装置1のCPU11により「アメリカ村」の関連語群として作成される。以下に示す例は、単語「アメリカ村」の関連語群の一例である。なお、各単語は、重み値の大きい順に列挙されている。
関連語群(「アメリカ村」)=(アメリカ村:0.647,アメリカ:0.369,大阪:0.258,村:0.159,防犯カメラ:0.139,カメラ:0.139,チェックアウト:0.129,アウト:0.129,中:0.128,女性:0.120,男:0.102,中央:0.098,犯行:0.092,人:0.087,たこ焼き:0.082,心斎橋:0.075,ミナミ:0.074,警察:0.073,時間:0.071,公園:0.065,昭和:0.064,今回:0.063,数:0.061,なんば:0.060,御津:0.060,ランドローバー(登録商標):0.059,ローバー(登録商標):0.059,名前:0.059,プラン:0.057,道頓堀:0.055,立川:0.055,ナンバー:0.054,西鉄:0.053,サツ:0.052,伊那:0.050,オリジナルステッカー:0.049,ステッカー:0.049,イン心斎橋:0.049,御堂筋線:0.049,…)
なお上の例は、文書集合(GDAタグ付き毎日新聞コーパスhttp://www.gsk.or.jp/catalog.html参照)を使用して実際に作成した「アメリカ村」の関連語群である。
上述の「アメリカ村」の関連語群の具体例に示したように、例えば、「アメリカ村」が注目されている場合、「大阪」は他の単語よりも注目される関連語であることを重み値によって定量的に表わすことができる。したがって、この関連語群の各単語の重み値は一の単語への関連度を表わしているということができる。上述の具体例では「アメリカ村」の「大阪」への関連度は、0.258である。
以下、単語wj に対して作成した関連語群の各重み値、即ち単語wj の単語wk への関連度をbj,kと表わす。一の単語wj の関連語群はbwj =(w1 :bj,1、w2 :bj,2、・・・、wn :bj,n)と表わされる。なお、関連語群を関連度ベクトルとして表わす場合、bwj =(bj,1、bj,2、…、bj,n)と表現する。
文単位検索装置1のCPU11は、上述のような処理を、図6の説明図に示した全単語について繰り返し行って各単語の関連単語群を作成し、文書記憶手段2又は文単位検索装置1の記憶手段13に記憶しておく。このように、文書集合に出現する単語全てについて夫々関連度が定量的に算出されて付与された関連語群を作成して記憶しておくことにより、文単位毎の意味のまとまりを表わす重み付き単語群に対し、関連語の関連度による影響を反映させることができる。
3−5.連想を加味した意味のまとまりの定量化
次に、文単位毎に記憶されている重み付き単語群、即ち単語と各単語の参照確率との組又は顕現性ベクトルに、作成された関連語群の各単語の関連度を反映させる。具体的には、文単位検索装置1は、既に算出されて記憶されている各単語の参照確率を読み出し、一の単語の重み値として、各単語の参照確率に各単語から一の単語への関連度を乗算した値を算出し直して記憶する。
図24は、実施の形態3における文単位検索装置1のCPU11が、各文単位に対応付けられて記憶されている重み付き単語群の各単語の重み値を算出し直す処理手順を示すフローチャートである。図24のフローチャートに示す処理は、文単位毎に対応付けられた重み付き単語群の各単語の重み値を、関連度を使用して付与し直す処理に対応する。
文単位検索装置1のCPU11は、文書記憶手段2から文書集合接続手段16を介してタグ付け済みの文書データを取得する(ステップS71)。CPU11は、取得した文書データに付加されたタグ<su>を文字列解析によって識別し、文単位を読み出す(ステップS72)。
次にCPU11は、<su>内に記憶してあるsalience属性を読み出し(ステップS73)、salience属性で対応付けて記憶してある単語及び単語の参照確率の組(重み付き単語群)の、各参照確率を関連語群を使用して連想を加味した重み値に算出し直す(ステップS74)。CPU11は、各単語及び各単語についてステップS74で算出し直した重み値の組である重み付き単語群(顕現性ベクトル)をsalience属性を付加して記憶し直す(ステップS75)。
次にCPU11は、ステップS72で読み出した文単位が文書データの終端であるか否かを判断する(ステップS76)。現在の文が取得した文書データの終端であるか否かは、現在の文を挟む<su></su>の後に、<su>タグが後続するかしないかを判断し、後続しないと判断した場合は終端であると判断することができる。CPU11が文書データの終端でないと判断した場合は(S76:NO)、CPU11は、処理をステップS72に戻し、次の文単位に対して処理を継続する。一方、CPU11が文書データの終端であると判断した場合は(S76:YES)、CPU11は、全文書データについて、重み付き単語群の各単語の重み値を算出し直してsalience属性で対応付けて記憶する処理を終了したか否かを判断する(ステップS77)。
CPU11が全文書データについて、重み付き単語群の各単語の重み値を算出し直してsalience属性によって記憶する処理を終了していないと判断した場合は(S77:NO)、CPU11は、処理をステップS71へ戻し、別の文書データを取得して処理を継続する。CPU11が全文書データについて、重み付き単語群の各単語の重み値を算出し直してsalience属性によって記憶する処理を終了したと判断した場合は(S77:YES)、CPU11は処理を終了する。
なお、文単位検索装置1のCPU11は、ステップS74における各単語の重み値の算出し直しを以下のような処理を行なうことによって実現する。
図25は、実施の形態3における文単位検索装置1のCPU11が、各文単位に対応付けられて記憶されている重み付き単語群の各単語の重み値を算出し直す処理手順の詳細を示すフローチャートである。図25のフローチャートに示す処理は、各単語の関連度を重み付き単語群の重み値に乗算する処理、乗算した重み値に基づいて各単語の重み値を付与し直す処理に対応する。
文単位検索装置1のCPU11は、図24のフローチャートのステップS74で読み出したsalience属性で対応付けて記憶してある重み付き単語群の各単語及び各単語の参照確率を読み出し、一時記憶領域14に記憶しておく(ステップS81)。CPU11は、各単語の内の一の単語を選択し(ステップS82)、選択した一の単語の重み値について以下の処理を行なう。
CPU11は、記憶手段13又は文書記憶手段2に記憶してある各単語の関連度が付与された関連語群を読み出す(ステップS83)。CPU11は、読み出した各単語の関連語群から、各単語から一の単語への関連度を取得する(ステップS84)。CPU11は、取得した各単語から一の単語への関連度を一時記憶領域14に記憶してある各単語の参照確率に夫々乗算し、和を算出する(ステップS85)。
CPU11によりステップS85で算出された和が、一の単語について、関連語による連想が加味されて算出し直された顕現性を表わす重み値である。
CPU11は、ステップS81で一時記憶領域14に記憶してある各単語全てについて、重み値を算出し直したか否かを判断する(ステップS86)。CPU11が各単語全てについて重み値を算出し直していないと判断した場合(S86:NO)、CPU11は、処理をステップS82へ戻して、次の単語についてステップS82からステップS85までの重み値を算出し直す処理を実行する。CPU11が各単語全てについて重み値を算出し直したと判断した場合(S86:YES)、CPU11は、処理を図24のフローチャートのステップS75へ戻す。
なお、図24のフローチャートの内のステップS74及び図25のフローチャートに示した文単位検索装置1のCPU11による重み値を算出し直す処理は、実施の形態1における参照確率を算出して各文単位毎の顕現性を現す重み値として記憶する処理の中で実行してもよい。具体的には、図9のフローチャートに示した処理手順の内のステップS306とステップS307の処理の間にステップS74及び図25のフローチャートに示した処理を実行する構成でもよい。
図24及び図25のフローチャートに示したCPU11の処理手順において、文単位検索装置1のCPU11が、各単語について算出した参照確率を連想を加味した重み値に算出し直す処理について、具体的な例を以下に示す。
例えば、単語「アメリカ村」について作成した関連度群を使用する場合、文単位検索装置1により、ある文単位における「大阪」の顕現性を現す重み値を以下のように算出し直す。なお、「アメリカ村」について作成した関連度群の「大阪」への関連度は「0.3」であるとする。ある文単位に対応付けて記憶されている単語に「アメリカ村」が含まれており、「アメリカ村」の参照確率が0.4であり、「大阪」は含まれていない場合であっても、文単位検索装置1のCPU11は、「アメリカ村」の参照確率0.4に、「アメリカ村」から「大阪」への関連度0.3を乗算して、その文単位における「大阪」の重み値は「0」ではなく「0.12」に算出し直す。
ここで、文脈連想を加味した単語wk の各文si における顕現性を表わす重み値を、salience(wk |pre(si ))と表わす。また、単語wk の各文si における参照確率をPr(wk |pre(si ))とする。この場合、単語wj の単語wk への関連度を反映した場合、salience(wk |pre(si ))=bj,k×Pr(wj |pre(si ))と算出し直される。なお、単語wk への関連度を有する単語wj は他にも存在するので、全単語wj (j=1,…,N)からの関連度の影響をも反映させて、文単位検索装置1は以下に示す式(6)のように各単語の重み値を算出し直す。
したがって、文単位検索装置1のCPU11は、以下に示す式(7)のように文単位Sにおける各単語wk (k=1,…,N)の重み値を算出し直す。
なお、式(7)の最終行の式は、実施の形態2に示したように、重み付き単語群、即ち単語と単語の参照確率との組を顕現性ベクトルv(si )として表現した場合に、salience(wk |pre(si ))をk番目の要素として有する連想を加味した後の顕現性ベクトルV(si )の各単語の重み値の算出の原理を表わす。
この場合、各bw1 ,…,bwN は、全単語w1 ,…,wN に対する関連語群をベクトルによって表現した関連度ベクトルである。
重み付き単語群、即ち単語と単語の参照確率との組を多次元ベクトルv(si )で表現し、関連語群を関連度ベクトルbw1 ,…,bwN で表現した場合、式(7)のように各単語の参照確率を、連想を加味した重み値に算出し直す処理は、以下のように解釈することができる。
salience(wk |pre(si ))をk番目の要素として有する、連想を加味した顕現性ベクトルV(si )は、関連度ベクトルbw1 ,…,bwN を基底とする斜交座標系における顕現性ベクトルv(si )であると解釈することができる。言い換えると、連想を加味した顕現性ベクトルV(si )は、参照確率をそのまま要素とする顕現性ベクトルv(si )を関連語軸方向へ回転させたものであると解釈することができる。
関連度ベクトルbw1 ,…,bwN を基底とする斜交座標系とは、連想を加味した各単語を1次元とした場合に、各基底ベクトル(各単語の次元方向に大きさ1のベクトル)は、夫々直行せず関連度が高い単語同士の基底ベクトル間の角度が小さくなるような座標系である。
bj,kを各要素とする変換行列を参照確率を要素とする顕現性ベクトルに乗算すると、関連する単語の次元方向に回転した顕現性ベクトルV(si )が得られると解釈することができる。
したがって、文毎の意味のまとまりを表わす重み付き単語群を顕現性ベクトルで表現して記憶している場合、文単位検索装置1のCPU11がその顕現性ベクトルを関連度ベクトルによって回転(変換)する処理を行なうことによって、文毎の意味のまとまりを連想が加味された顕現性ベクトルで表わして記憶しておくことができる。
次に、上述のように定量的に関連度を表わした関連度群を使用して、各文単位の意味のまとまりを表わす各単語の重み値を連想を加味して算出し直す処理を実行した結果の具体例を以下に示す。図26は、実施の形態3における文単位検索装置1のCPU11によって算出された各単語の顕現性を表わす重み値の内容例を示す説明図である。図26(a)に示した各文s1 ,s2 に対する各単語の重み値は夫々、関連語群を使用して連想が加味される前の参照確率の値である。一方、図26(b)に示した各文s1 ,s2 に対する各単語の重み値は、関連語群を使用して連想が加味された後の重み値である。
なお、図26に示す具体例は、日本語話し言葉コーパス(http://www.kokken.go.jp/katsudo/kenkyu_jyo/corpus/、CSJ/vol17/D03F0040)より抽出した文単位の例である。
図26の内容例に示すように、図26(b)の文s1 における「大阪」の重み値は、図26(a)の文s1 における「大阪」の参照確率の値0.3338と比較して、0.6229と高くなっている。また、図26(b)の文s2 における「大阪」の重み値は、図26(a)の文s2 における参照確率の値0.3208と比較して、0.6675とさらに高くなっている。
さらに、図26(a)の参照確率の例では、文s2 における「大阪」の重み値は、文s2 に「アメリカ村」が出現しているにも拘わらず、その「大阪」の重み値への影響(励起)が考慮されていないために重み値が低下している。これに対し、図26(b)の連想を加味した後の重み値の例では、文s2 における「大阪」の重み値は、文s2 に「アメリカ村」が出現していることによって、出現していない「大阪」の顕現性を表わす重み値が高くなっている。「アメリカ村」と「大阪」との関連度の影響が反映されているからである。
このように、文単位検索装置1が文単位毎に記憶している重み付き単語群に対し、参照確率という定量的な値を用いて関連度を表わした関連語群を用いて連想を加味することにより、文単位で「アメリカ村」が注目されている場合の「大阪」の顕現性を、文単位又は言葉の書き手又は話し手の背景文脈により近づかせることができる。これにより、「大阪」の単語の顕現性を表わす重み値が低く算出されて、文単位の意味のまとまりが書き手又は話し手の実際の文脈と離れたように定量的に評価されてしまうことを回避することができる。
4.検索処理
次に、実施の形態3における検索処理について説明する。「4−1.ユーザから入力された言葉の受け付け」については、受付装置4のCPU41が行う処理については実施の形態1及び2と同様であるので、詳細な説明を省略する。
4−2’.受け付けた言葉に対する連想を加味した意味のまとまりの定量化
次に、文単位検索装置1のCPU11が、受付装置4,4,…で受け付けた言葉のデータを受信した場合に、文書記憶手段2で記憶している文書中の文を検索する処理について説明する。受け付けた言葉に対しても、意味のまとまりの定量化、即ち当該テキストデータの単語抽出及び単語の参照確率を算出し、さらに関連度を使用して重み値を算出し直す。
実施の形態3では、文単位検索装置1のCPU11は、受け付けた言葉の意味のまとまりを定量的に表わす単語と単語の参照確率との組又は顕現性ベクトル、即ち重み付き単語群に、関連語による連想を加味する。以下に、文単位検索装置1のCPU11が受け付けた言葉に対応付けた重み付き単語群の各単語の重み値を連想を加味して算出し直し、算出し直した重み値に基づいて検索を実行する処理について説明する。
図27は、実施の形態3における文単位検索装置1及び受付装置4の検索処理の処理手順を示すフローチャートである。なお、図27のフローチャートに示す処理手順では、実施の形態1における図15、図16及び図17のフローチャートに示した検索処理の処理手順と同一の処理については各ステップに同一の符号を用いて詳細な説明を省略する。
図27のフローチャートに示す処理手順の内、二点鎖線で囲まれたステップS4001の処理が、実施の形態1における図15、図16及び図17のフローチャートに示した処理手順と異なる。即ち、ステップS411と、ステップS412との間に以下に説明するステップS4001が追加されていることが異なる。
以下に、実施の形態3において受け付けた言葉の意味のまとまりを表わす重み付き単語群を対応付け、予め記憶してある意味のまとまりが類似する文単位を抽出する検索処理について以下に説明する。
CPU11は、一時記憶領域14に夫々参照確率を算出して記憶している全単語に対し、所定値以上の参照確率が算出された単語に絞り込み(ステップS411)、ステップS408において算出した参照確率を、連想を加味した重み値に算出し直す(ステップS4001)。ステップS4001における、CPU11による連想を加味した重み値の算出し直しの処理は、図25のフローチャートに示した処理と同様、単語を1つずつ選択し、選択した一の単語への各単語の関連度と各単語の参照確率とを乗算して算出する。
それまでの処理により、受け付けた言葉に対し、以前に受け付けた言葉から続く流れ上の意味のまとまりを、連想を加味した上で定量的に表わす単語と単語の参照確率の組(重み付き単語群)を検索要求として生成することができた。
CPU11はこの後、ステップS4001で得られた連想が加味された重み付き単語群に対し、各文毎に対応付けて記憶してある、連想が加味された重み付き単語群を読み出して、類似する文を抽出する処理を実行する。連想が加味された重み付き単語群についての以降の処理は実施の形態1と同様であるので詳細な説明を省略する。
これにより、文単位検索装置1は、文書記憶手段2に記憶してある文書データから分別される文と受け付けた言葉とで、関連語を利用して連想を加味した意味のまとまりが類似しているか否かを判断し、類似すると判断された文を直接的に出力することができる。したがって、本発明の文単位検索方法を実施することにより、文脈上の意味のまとまりが類似する文単位を連想を加味して効果的に抽出し、直接的に出力することができる。
なお、文単位検索装置1のCPU11は、受け付けた言葉に対して重み付き単語群を対応付け、文毎に予め記憶してある重み付き単語群と類似しているか否かを判断する場合、図27のフローチャートに示した処理手順のように、重み付き単語群が同一の単語を含んでいるか否かによって判断するとは限らない。さらに同一の単語に付与されている重み値の差分を算出し、算出した差分が小さい程類似すると判断するとは限らない。
次に、文単位検索装置1のCPU11が、受け付けた言葉と意味のまとまりが類似する文単位を抽出する処理を、意味のまとまりを顕現性ベクトル及び関連度ベクトルで表現し、ベクトル間の距離を算出することによって実現する場合について以下に説明する。
図28は、実施の形態3におけるベクトル表現を用いた場合の文単位検索装置1及び受付装置4の検索処理の処理手順を示すフローチャートである。なお、図28のフローチャートに示す処理手順では、実施の形態1における図15、図16及び図17のフローチャート、及び実施の形態2における図19のフローチャートに示した検索処理の処理手順と同一の処理については各ステップに同一の符号を用いて詳細な説明を省略する。
図28のフローチャートに示す処理手順の内、一点鎖線で囲まれた各ステップS501からステップS506までの処理が、実施の形態1における図15、図16及び図17のフローチャートに示した処理手順と異なる。実施の形態1におけるステップS412からステップS416までの処理の代わりに、実施の形態2における文単位検索装置1のCPU11により実行されるステップS501からステップS506までの処理と同様の処理を行なう。図28のフローチャートに示す処理手順の内、二点鎖線で囲まれたステップS5001の処理が、実施の形態2における図19のフローチャートに示した処理手順と異なる。即ち、ステップS501と、ステップS502との間に以下に説明するステップS5001が追加されていることが異なる。
文単位検索装置1のCPU11は、ステップS501で算出した顕現性ベクトルを、関連語による連想を加味した顕現性ベクトルに算出し直す(ステップS5001)。
CPU11はこの後、ステップS5001で得られた連想が加味された重み付き単語群に対し、各文毎に対応付けて記憶してある、連想が加味された顕現性ベクトルを読み出して、類似する文を抽出する処理を実行する。連想が加味された顕現性ベクトルを読み出して類似する文を抽出する処理は実施の形態2と同様であるので詳細な説明を省略する。
なお、CPU11によるステップS5001において、顕現性ベクトルを関連語による連想を加味した顕現性ベクトルに算出し直す処理は、ステップS501で算出した顕現性ベクトルを関連度ベクトル群(行列)で式(7)で示したように変換して(回転させて)算出する。具体的には、参照確率のみを要素とする多次元ベクトルv(si )に対して上述の連想を加味した顕現性ベクトルV(si )を算出する。
なお、上述の図28のフローチャートに示した処理手順の内の、CPU11が受け付けた言葉に対応付けた顕現性ベクトルと、読み出した顕現性ベクトルとの距離を算出するステップS503の処理は、実施の形態3では、具体的には以下のように算出する。受け付けた言葉Ui に対し連想が加味されて算出し直された顕現性ベクトルがV(ui )と表わされ、読み出された、予め連想が加味されてある顕現性ベクトルがV(si )と表わされる場合、CPU11は以下に示す式(8)のように、コサイン距離を算出する。
ただし、式(8)に示したように距離を算出した場合、言葉の顕現性ベクトルV(ui )と、読み出した顕現性ベクトルV(si )とが近いほど、算出したコサイン距離の値は大きくなる。したがって、CPU11はステップS506において、算出したコサイン距離が大きい順に類似度を付与する。
文単位検索装置1のCPU11による上述のような処理により、連想が加味された意味のまとまりを表わす顕現性ベクトル間の距離によって、意味のまとまりが類似する文単位を直接的に検索することができる。ベクトル表現を用いることにより、CPU11は、受け付けた言葉に対応付けられる連想が加味された重み付き単語群と、予め文に対応付けて記憶されている連想が加味された重み付き単語群とを一単語ずつ重み値を比較している処理を行なうことなしに、連想を加味した上で直接的に類似しているか否かを判断を行うことができる。
また、実施の形態3における文単位検索装置1による場合、各文単位及び単語に対応付けられる顕現性ベクトルは、各単語に相当する次元間が直交しない関連度が高い単語の次元方向間の角度が小さくなるような斜交座標系で扱われる。このため、類似するか否かを判断する際にベクトル間の距離を比較した場合に、関連度が高い単語の次元方向に要素を有している場合は類似していると判断されるようになる。
したがって、「大阪」の顕現性が高い文単位sが記憶されている場合、受け付けた言葉において例えば「オランダ村」の顕現性が高いときは、文単位sは受け付けた言葉に類似すると判断されない。しかし、受け付けた言葉において「アメリカ村」の顕現性が高いときは、受け付けた言葉において「大阪」の顕現性が励起されて高くなるので、文単位sはこの受け付けた言葉に類似すると判断される可能性が高くなる。
これにより、受け付けた言葉に対し、連想を加味してより効果的に意味のまとまりが類似する文単位を検索して直接的に出力することができる。
なお、実施の形態1乃至3では、検索結果として受信したテキストデータは、受付装置4が備える表示手段46のモニタ等で表示する構成としたが、受信したテキストデータから音声に変換して、音声入出力手段47のスピーカ等を介して出力する構成でもよい。これにより、ユーザは自分が音声入力した複数の言葉によって、又は他のユーザとの会話を音声入力することで、その会話の文脈と意味のまとまりが類似する文を検索結果として得ることができる。受け付けた言葉が話し言葉からなる場合に、発話では省略されている、ゼロ代名詞で表される単語をも含めた単語の顕現性が類似する文を直接的に検索結果として得ることができる。
また、文単位検索装置1のCPU11は、言葉のテキストデータを受信する都度、当該テキストデータに対して検索された文のうち、一番優先順位の高い文を表すテキストデータのみを受付装置4,4,…に送信する構成としてもよい。これにより、入力される言葉に対する検索結果を会話の第三者の発話として提示し、鼎談を実現することも可能である。
なお、実施の形態1乃至実施の形態3では、文単位検索装置1は文毎に顕現性を示す情報を特定して記憶したが複数の文からなる段落(paragraph)毎にタグ<p></p>で挟み、当該段落に対して特徴パターンを特定して顕現性を示す情報をsalience属性によって記憶させ、段落を検索結果として出力する構成としてもよい。文又は段落に限らず、一定の意味のまとまりを表す単位であれば文節であっても構わない。話し言葉の場合は一文と識別できる文字列が非常に長くなることが考えられる。多数の文節から構成され、文節と文節は「〜も」「〜ので」等の接続助詞で続いているにも拘わらず、文脈が動的に変化していく場合は一文では意味がまとまっていないときがある。したがって、所定の文節の数を超えて構成される文の場合は、文節毎に一文であるとみなして処理を行う構成としてもよい。
また、実施の形態1乃至実施の形態3では、話し言葉からなる文書データを書き言葉からなる文書データと区別して予め記憶しておく構成としたが、受信した言葉に対して各単語の特徴パターンを特定して参照確率を算出する都度、文書記憶手段2で記憶する構成としてもよい。この際、文単位検索装置1のCPU11は、連続して受信した言葉が一連のものであるか否かの判断を当該言葉の送信元である受付装置4を識別する情報と、受付装置4がユーザの検索開始・完了操作を検知したことを示す情報とによってすることもできる。これにより、予め文書記憶手段2で記憶してある文書データのページに該当する単位で言葉を文書記憶手段2に記憶させることができる。
なお、実施の形態1乃至実施の形態3では、文書データの取得とタグ付け、参照確率を求めるための回帰分析、更に言葉を受け付けた際の処理を文単位検索装置1が全て行う構成としたが、文単位検索装置と文書記憶装置とに分ける構成としてもよい。この場合は、文書記憶装置でWebクローリングを行って文書データを取得し、さらに形態素解析及び統語解析によってテキストデータにタグを付加して記憶しておく。また、文書記憶装置で記憶した文書データをもとに参照確率を算出するための式を回帰分析によって求め、求めた式を使用して、記憶した文書データに対して文毎の単語及び単語の参照確率を記憶する処理を予めしておく。文単位検索装置は、言葉を変換したテキストデータを受信した際に特徴パターンを特定し、文書記憶装置から参照確率を算出するための回帰式を取得して参照確率を算出して検索を行う。
また、実施の形態1乃至実施の形態3では、ユーザからの文字列入力又は音声入力等の言葉の入力は、受付装置4によってテキストデータに変換され、文単位検索装置1へ送信される構成とした。これに限らず、文単位検索装置1が、ユーザの文字列入力操作を受け付ける入出力手段、及びユーザの音声入力を受け付ける音声入力手段を備える構成でもよい。図29は、本発明の文単位検索方法を文単位検索装置1で実施する場合の構成を示すブロック図である。この場合、文単位検索装置1は、CPU11、内部バス12、記憶手段13、一時記憶領域14、文書集合接続手段16及び補助記憶手段17の他に、ユーザの操作を受けつけるマウス又はキーボード等の操作手段145、モニタ等の表示手段146及びマイク及びスピーカ等の音声入出力手段147を更に備える。
図29の構成図に示した構成の場合、文単位検索装置1のCPU11は、音声入力手段から入力された音声の特徴を表わす、周波数又は会話速度等を検知し、発話における各単語の特徴パターンを特定することができる。各単語の文法的な特徴パターンは、入力された音声を音声認識によりテキストデータに変換して当該テキストデータに基づいて検索する構成としてもよい。
実施の形態1乃至実施の形態3では、受付装置4,4,…は、受け付けた文字列又は音声の言葉を一定の長さに区切ってデジタルデータに変換して送信するのみの装置として構成した。しかしながら、本発明の文単位検索方法を実施するためには、受付装置4,4,…が記憶手段43に記憶しているプログラムを、受付装置4,4,…が受け付けた言葉を形態素解析及び統語解析、又は音素解析等の自然言語解析を実行することができるように構成してもよい。この場合、受付装置4,4,…のCPU41は、受け付けた言葉における各単語の顕現性を表わす重み値を算出し、算出した重み付き単語群を検索要求として文単位検索装置1へ送信する構成でもよい。