以下に図面を参照して、本発明にかかる評価プログラム、評価方法および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる評価方法の一実施例を示す説明図である。図1において、情報処理装置101は、第1の形態素列及び第2の形態素列の類似度に関する評価を行うコンピュータである。情報処理装置101は、例えば、サーバであってもよく、また、PC(Personal Computer)であってもよい。
形態素列は、一連の形態素である。形態素は、意味をもつ表現要素の最小単位である。第1の形態素列は、例えば、第1の文書を形態素解析することにより得られる。第2の形態素列は、例えば、第2の文書を形態素解析することにより得られる。文書は、1以上の文を含む。すなわち、第1の形態素列及び第2の形態素列の類似度は、第1の文書と第2の文書との類似度合いを示す。
ここで、コンピュータで機械的に類似する文書をまとめる際に、出現する単語は同じだが、語順が異なる違う意味の文書を類似していると判定してしまうことがある。例えば、TF-IDFを用いて文書をベクトル化して文書同士の類似度を算出する場合、単語の出現回数しかベクトルに反映されないため、語順を考慮することができず、類似度の評価精度が低下することがある。
また、N-gramを用いたBLEUによる類似度算出手法では、文書中に形容詞や副詞などの単語が挿入されると、文書同士を適切に比較することができず、類似度の評価精度が低下することがある。また、編集距離を用いた類似度算出手法では、語順を考慮することができるが、DPマッチング(動的計画法)などで編集距離を求めることとなり、計算量が増大するという問題がある。
そこで、本実施の形態では、形態素列同士、すなわち、文書同士の類似度に関する評価を行うにあたり、計算量を抑えつつ、類似度に関する評価精度を向上させる評価方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、第1の形態素列と第2の形態素列とを受け付ける。ここで、第1の形態素列及び第2の形態素列は、比較対象となる形態素列であり、類似度に関する評価を行う2つの形態素列である。類似度は、第1の形態素列と第2の形態素列との類似度合いを示す指標値である。
図1の例では、第1の形態素列110と第2の形態素列120とを受け付けた場合を想定する。第1の形態素列110は、文書「パソコンが上手く起動しない」を形態素解析して得られる形態素111~116を含む。第2の形態素列120は、文書「パソコンが起動しない」を形態素解析して得られる形態素121~125を含む。
(2)情報処理装置101は、受け付けた第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列を特定する。例えば、第1の形態素列110内の各形態素111~116に振られた番号(0,1,2,3,4,5)は、第1の形態素列110内で各形態素111~116が出現する出現位置を示す。すなわち、第1の形態素列110内でいずれかの形態素が出現する出現位置は、出現位置0~5である。
図1の例では、第1の形態素列110内の出現位置0~5のうち、出現位置0,1,2に着目するとする。この場合、情報処理装置101は、第1の形態素列110内の出現位置0,1,2にそれぞれ出現する形態素111,112,113を先頭とする形態素列130,140,150を特定する。
(3)情報処理装置101は、特定した複数の形態素列に含まれる各形態素列と、受け付けた第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定する。ここで、形態素が一致するとは、形態素同士で文字または文字列が完全一致することである。
図1の例では、情報処理装置101は、形態素列130と第2の形態素列120とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定する。また、情報処理装置101は、形態素列140と第2の形態素列120とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定する。また、情報処理装置101は、形態素列150と第2の形態素列120とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定する。
ここで、形態素列130と第2の形態素列120とを比較する場合を例に挙げると、情報処理装置101は、出現位置0について、形態素列130内の形態素111と、第2の形態素列120内の形態素121とを比較する。ここでは、形態素111と形態素121とが一致する。
また、情報処理装置101は、出現位置1について、形態素列130内の形態素112と、第2の形態素列120内の形態素122とを比較する。ここでは、形態素112と形態素122とが一致する。また、情報処理装置101は、出現位置2について、形態素列130内の形態素113と、第2の形態素列120内の形態素123とを比較する。ここでは、形態素113と形態素123とが一致しない。
また、情報処理装置101は、出現位置3について、形態素列130内の形態素114と、第2の形態素列120内の形態素124とを比較する。ここでは、形態素114と形態素124とが一致しない。また、情報処理装置101は、出現位置4について、形態素列130内の形態素115と、第2の形態素列120内の形態素125とを比較する。ここでは、形態素115と形態素125とが一致しない。
なお、第2の形態素列120には、形態素列130内の形態素116と出現位置が同じ形態素が存在しない。このため、情報処理装置101は、形態素列130内の出現位置5の形態素116についての比較は行わない。
この結果、情報処理装置101は、形態素列130と第2の形態素列120とで、形態素が一致する出現位置の数「2(出現位置0,1)」を特定する。同様に、情報処理装置101は、形態素列140と第2の形態素列120とで、形態素が一致する出現位置の数「3(出現位置2,3,4)」を特定する。また、情報処理装置101は、形態素列150と第2の形態素列120とで、形態素が一致する出現位置の数「0」を特定する。
(4)情報処理装置101は、特定した形態素が一致する出現位置の数に基づき、第1の形態素列及び第2の形態素列の類似度に関する評価を行う。ここで、第1の形態素列及び第2の形態素列の類似度に関する評価とは、第1の形態素列及び第2の形態素列の類似度を算出することであってもよく、また、算出した類似度そのものを評価することであってもよい。
具体的には、例えば、情報処理装置101は、各形態素列について特定した形態素が一致する出現位置の数を積算することにより、第1の形態素列及び第2の形態素列の類似度を算出することにしてもよい。そして、情報処理装置101は、算出した類似度が、予め決められた閾値以上であれば、第1の形態素列と第2の形態素列とが類似していると判定することにしてもよい。
図1の例では、情報処理装置101は、例えば、各形態素列130,140,150について特定した形態素が一致する出現位置の数(2,3,0)を積算することにより、第1の形態素列110及び第2の形態素列120の類似度「5」を算出する。そして、情報処理装置101は、算出した類似度「5」が閾値以上であれば、第1の形態素列110と第2の形態素列120とが類似していると判定する。
このように、情報処理装置101によれば、第1の形態素列において先頭となる形態素をずらしながら、第2の形態素列と出現位置ごとに比較して、第1の形態素列及び第2の形態素列の類似度に関する評価を行うことができる。これにより、文書の語順を考慮して、文書の類似度に関する評価精度を向上させることができる。
具体的には、文書の類似判定を行うにあたり、1単語ずつずらしながら、一方の文書の一部が他方の文書にあるかを判断することができ、語順(単語の出現位置)を考慮した文書の類似判定を行うことができる。このため、語順が異なる違う意味の文書を類似していると判定してしまうのを防ぐことができる。また、文書中に形容詞などの単語が挿入されていても、文書間で一致する部分を見つけ出すことが可能となる。
図1の例では、文書「パソコンが上手く起動しない」と文書「パソコンが起動しない」との類似度を、語順を考慮して判定することができる。この際、一方の文書「パソコンが上手く起動しない」に「上手く」という単語が挿入されていても、文書間で一致する部分を見つけ出して類似度を適切に評価することができる。
(情報処理装置101のハードウェア構成例)
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。図2において、情報処理装置101は、CPU(Central Processing Unit)201と、メモリ202と、ディスクドライブ203と、ディスク204と、I/F(Interface)205と、ディスプレイ206と、入力装置207と、を有する。また、各構成部はバス200によってそれぞれ接続される。
ここで、CPU201は、情報処理装置101の全体の制御を司る。CPU201は、複数のコアを有していてもよい。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する記憶部である。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
ディスクドライブ203は、CPU201の制御に従ってディスク204に対するデータのリード/ライトを制御する。ディスク204は、ディスクドライブ203の制御で書き込まれたデータを記憶する。ディスク204としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
I/F205は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部装置に接続される。そして、I/F205は、ネットワーク210と自装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
ディスプレイ206は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイ206としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置207は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置207は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
なお、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ203、ディスク204、ディスプレイ206、入力装置207などを有さないことにしてもよい。また、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、スキャナ、プリンタなどを有することにしてもよい。
(情報処理装置101の機能的構成例)
図3は、情報処理装置101の機能的構成例を示すブロック図である。図3において、情報処理装置101は、受付部301と、第1の特定部302と、第2の特定部303と、評価部304と、出力部305と、を含む。受付部301~出力部305は制御部となる機能であり、具体的には、例えば、図2に示したメモリ202、ディスク204などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F205により、その機能を実現する。各機能部の処理結果は、例えば、メモリ202、ディスク204などの記憶装置に記憶される。
受付部301は、第1の形態素列と第2の形態素列とを受け付ける。具体的には、例えば、受付部301は、図2に示した入力装置207を用いたユーザの操作入力により、第1の形態素列と第2の形態素列とを受け付けることにしてもよい。また、受付部301は、他のコンピュータから、第1の形態素列と第2の形態素列とを受け付けることにしてもよい。
また、受付部301は、文書群D1~Dn(nは、2以上の自然数)から比較対象となる文書Dk(k=1,2,…,n),Dl(l=1,2,…,n、l≠k)を選択することにより、選択した文書Dk,Dlそれぞれの形態素列を、第1の形態素列および第2の形態素列として受け付けることにしてもよい。
ここで、文書群D1~Dnは、類似判定を行う文書Dを含む。文書群D1~Dnは、情報処理装置101に記憶されていてもよく、情報処理装置101がアクセス可能な他のコンピュータに記憶されていてもよい。また、文書群D1~Dnに含まれる各文書Dの形態素列は、情報処理装置101に記憶されていてもよく、情報処理装置101がアクセス可能な他のコンピュータに記憶されていてもよい。また、文書Dの形態素列は、情報処理装置101において文書Dを形態素解析することにより取得されることにしてもよい。
文書群D1~Dnのうちのどの文書Dの組み合わせを比較対象の文書Dk,Dlとするかは、任意に指定可能である。例えば、入力装置207を用いたユーザの操作入力により、文書Dk,Dlを指定してもよい。また、文書群D1~Dnに含まれる2つの文書Dの組み合わせの全てを、比較対象の文書Dk,Dlとしてもよい。
第1の特定部302は、受け付けた第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列αを特定する。また、第1の特定部302は、受け付けた第2の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列βを特定する。
具体的には、例えば、第1の特定部302は、第1の形態素列に対して第2の形態素列をずらす範囲Rを決定する。ここで、ずらす範囲Rは、ずらす数iの範囲であり、形態素の数によって指定される。そして、第1の特定部302は、決定したずらす範囲R内において、第1の形態素列に対して第2の形態素列を形態素単位でずらすことにより、複数の形態素列α及び/又は複数の形態素列βを特定する。
例えば、ずらす数iが「i=1」の場合、第1の形態素列に対して第2の形態素列を右方向に形態素1つ分ずらすことを示す。また、ずらす数iが「i=-1」の場合、第1の形態素列に対して第2の形態素列を左方向に形態素1つ分ずらすことを示す。なお、形態素列α、βの特定例については、図4を用いて後述する。
ずらす範囲Rは、任意に設定可能である。例えば、第1の形態素列に対して第2の形態素列を右方向にずらす範囲Rとして、第1の形態素列の末尾の形態素と、第2の形態素列の先頭の形態素とを比較するまでの範囲を設定してもよい。また、第1の形態素列に対して第2の形態素列を左方向にずらす範囲Rとして、第1の形態素列の先頭の形態素と、第2の形態素列の末尾の形態素とを比較するまでの範囲を設定してもよい。
これにより、第1の形態素列と第2の形態素列との間で形態素を網羅的に比較可能な範囲を設定することができる。ただし、ずらす範囲Rが広くなるにつれて、計算量が増加する。このため、計算量を抑制すべく、ずらす範囲Rを制限することにしてもよい。なお、ずらす範囲Rの決定例については後述する。
第2の特定部303は、特定された複数の形態素列αに含まれる各形態素列αと、受け付けた第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数xを特定する。また、第2の特定部303は、特定された複数の形態素列βに含まれる各形態素列βと、第1の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の第2の数x’を特定する。
具体的には、例えば、第2の特定部303は、文書群D1~Dnに対する単語の転置インデックスに基づいて、一致数xiを算出する。ここで、一致数xiは、ずらす数iのときに、第1の特定部302によって特定された数xまたは第2の数x’を示す。
また、単語の転置インデックスとは、文書群D1~Dnに含まれる各単語(すなわち、各形態素)が、文書群D1~Dnのうちのいずれの文書Dのいずれの位置にあるかを特定する情報である。文書群D1~Dnに対する単語の転置インデックスは、情報処理装置101において作成してもよく、また、他のコンピュータから取得することにしてもよい。
ここでは、文書D#の$番目に位置する単語wの転置インデックスを(#,$)と表す。#は、1~nのいずれかの整数である。$は、0以上のいずれかの整数である。例えば、単語wの転置インデックス(1,0)は、文書D1の0番目、すなわち、先頭に単語wが位置することを示す。
一例として、文書群D1~Dnを「文書群D1,D2」とする(n=2)。文書D1を「パソコンが起動しない」とする。文書D1の形態素列は、「パソコン/が/起動/し/ない」となる。「/」で区切られた形態素が単語に相当する。また、文書D2を「パソコンが上手く起動しない」とする。文書D2の形態素列は、「パソコン/が/上手く/起動/し/ない」となる。
この場合、文書群D1,D2に対する単語の転置インデックスは、例えば、以下のようになる。
w0=“パソコン”:{(1,0),(2,0)}
w1=“が”:{(1,1),(2,1)}
w2=“起動”:{(1,2),(2,3)}
w3=“し”:{(1,3),(2,4)}
w4=“ない”:{(1,4),(2,5)}
w5=“上手く”:{(2,2)}
より詳細に説明すると、例えば、第2の特定部303は、下記式(1)を用いて、文書群D1~Dnに対する単語の転置インデックスを参照して、一致数xiを算出する。ただし、比較対象の2つの文書を「文書Dk,Dl」とする。count(i,j)は、単語wjの(k,a)と(l,b-i)の「a」と「b-i」とが、一致する場合に「1」となり、不一致の場合に「0」となる。
xi=Σjcount(i,j) ・・・(1)
これにより、形態素列αと第2の形態素列とを比較した場合に形態素が一致する出現位置の数xと、形態素列βと第1の形態素列とを比較した場合に形態素が一致する出現位置の第2の数x’とを特定することができる。また、単語の転置インデックスを利用することで、数x、第2の数x’の特定にかかる処理量を抑えることができる。なお、ずらす数iが「i≧0」の場合の「一致数xi」が「数x」に相当し、ずらす数iが「i<0」の場合の「一致数xi」が「第2の数x’」に相当する。一致数xi(数x、第2の数x’)の算出例については、図4を用いて後述する。
評価部304は、特定された数xに基づき、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行う。また、評価部304は、特定された数x及び第2の数x’に基づき、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことにしてもよい。
具体的には、例えば、評価部304は、各形態素列αについて特定された数xと、各形態素列βについて特定された第2の数x’とを積算することにより、第1の形態素列及び第2の形態素列の類似度Sを算出する。そして、評価部304は、算出した類似度Sが、閾値Sth以上であれば、第1の形態素列と第2の形態素列とが類似していると判定することにしてもよい。閾値Sthは、任意に設定可能である。
より詳細に説明すると、例えば、評価部304は、下記式(2)を用いて、第1の形態素列及び第2の形態素列の類似度Sを算出することにしてもよい。
S=Σixi ・・・(2)
これにより、各形態素列αについて特定された数xと各形態素列βについて特定された第2の数x’とを積算した値が大きくなるほど類似度合いが高くなるように、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことができる。
また、評価部304は、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、ペナルティ値Pを設定することにしてもよい。ここで、ペナルティ値Pは、第1の形態素列及び第2の形態素列それぞれに含まれる形態素の数の多さに対するペナルティを示す。すなわち、第1の形態素列や第2の形態素列が長くなるほど、類似度Sが大きくなる傾向があるため、第1の形態素列や第2の形態素列の長さに対してペナルティを課して類似度Sの値を下げることで、類似度Sを適正な値に調整する。
具体的には、例えば、評価部304は、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との平均値の逆数を、ペナルティ値Pとして設定してもよい。また、評価部304は、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数とのうちの最大値(あるいは、最小値)の逆数を、ペナルティ値Pとして設定してもよい。また、評価部304は、各パラメータ(平均値、最大値、最小値)のべき乗やパラメータ同士の乗算値を、ペナルティ値Pとして設定してもよい。
この場合、評価部304は、さらに、設定したペナルティ値Pに基づいて、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことにしてもよい。具体的には、例えば、評価部304は、各形態素列αについて特定された数xと各形態素列βについて特定された第2の数x’とを積算した値にペナルティ値Pを乗算することにより、第1の形態素列及び第2の形態素列の類似度Sを算出することにしてもよい。
より詳細に説明すると、例えば、評価部304は、下記式(3)を用いて、第1の形態素列及び第2の形態素列の類似度Sを算出することにしてもよい。
S=P×Σixi ・・・(3)
これにより、第1の形態素列及び第2の形態素列それぞれに含まれる形態素の数が多い、すなわち、比較対象となる文書Dk,Dlが長い(単語数が多い)ほど、類似度Sが高くなるのを防ぐことができる。
また、評価部304は、特定された数xのうち所定数γよりも大きい数に基づき、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことにしてもよい。また、評価部304は、特定された数xと第2の数x’とのうち所定数γよりも大きい数に基づき、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことにしてもよい。ここで、所定数γは、任意に設定可能であり、例えば、1~3程度の値に設定される。
具体的には、例えば、評価部304は、各形態素列αについて特定された数xと、各形態素列βについて特定された第2の数x’とのうち、所定数γよりも大きい数を積算することにより、第1の形態素列及び第2の形態素列の類似度Sを算出することにしてもよい。
より詳細に説明すると、例えば、評価部304は、下記式(4)を用いて、第1の形態素列及び第2の形態素列の類似度Sを算出することにしてもよい。ただし、f(xi,i)は、ずらす数iにおいて、一度に一致する形態素の数が多いほうが、少ないときよりも類似度合いが高くなるようにするための重み関数である。f(xi,i)は、例えば、下記式(5)によって表すことができる。
S=P×Σif(xi,i) ・・・(4)
f(xi,i)=0 (xi≦γ)
f(xi,i)=xi (xi>γ) ・・・(5)
これにより、形態素列同士を比較したときに、一度に一致する形態素の数が多いほど類似度合いが高くなるように、第1の形態素列及び第2の形態素列の類似度Sを求めることができる。例えば、ずらす度に1形態素ずつ一致しているよりも、一度に10個の形態素が一致しているほうが、類似度Sが高くなるように重み付けすることができる。
また、f(xi,i)は、例えば、下記式(6)によって表すことにしてもよい。
xi
p×|i|-q (p>1,q>0) ・・・(6)
これにより、ずらす数iにおいて、一致数xiが大きいほど類似度合いが高くなるようにしつつ、ずらす数iが大きいほど類似度合いが低くなるように、第1の形態素列及び第2の形態素列の類似度Sを求めることができる。ただし、qは「q=0」としてもよい。すなわち、上記式(6)において、ずらす数iの大きさは考慮しないことにしてもよい。
また、f(xi,i)は、例えば、下記式(7)によって表すことにしてもよい。ただし、f(0,i)=0とする。
exp(δxi-ε|i|) (δ>0,ε>0) ・・・(7)
これにより、ずらす数iにおいて、一致数xiが大きいほど類似度合いが高くなるようにしつつ、ずらす数iが大きいほど類似度合いが低くなるように、第1の形態素列及び第2の形態素列の類似度Sを求めることができる。
また、f(xi,i)は、例えば、上記式(5)~(7)の組み合わせによって表すことにしてもよい。
出力部305は、評価部304による評価の結果を出力する。ここで、評価の結果は、例えば、第1の形態素列及び第2の形態素列の類似度Sであってもよい。また、評価の結果は、例えば、第1の形態素列と第2の形態素列とが類似しているか否かの類似判定の結果であってもよい。
評価の結果によれば、例えば、文書Dkと文書Dlとの類似度合いや、文書Dkと文書Dlとが類似しているか否かを判断することができる。出力部305の出力形式としては、例えば、メモリ202、ディスク204などの記憶装置への記憶、I/F205による他のコンピュータへの送信、ディスプレイ206への表示、不図示のプリンタへの印刷出力などがある。
(一致数xiの算出例)
つぎに、図4を用いて、一致数xiの算出例について説明する。ここでは、比較対象となる文書Dkを「パソコンが上手く起動しない」とし、比較対象となる文書Dlを「パソコンが起動しない」とする。また、ずらす範囲Rを「-2≦i≦2」とする。
図4は、一致数xiの算出例を示す説明図である。図4において、形態素列410は、文書Dkの形態素列であり、第1の形態素列に相当する。形態素列420は、文書Dlの形態素列であり、第2の形態素列に相当する。
ここで、ずらす数iが「i=0」の場合、第1の形態素列内の形態素「パソコン」を先頭とする形態素列410が形態素列αとして特定される。この場合、第2の特定部303は、形態素列αとして特定された形態素列410と、第2の形態素列である形態素列420とを、出現位置ごとに比較して、一致数x0を算出する。
具体的には、例えば、第2の特定部303は、上記式(1)を用いて、単語の転置インデックスを参照して、一致数x0を算出する。例えば、単語w0を「パソコン」とすると、転置インデックスは、{(k,0),(l,0)}となる。この場合、count(0,0)は、単語w0「パソコン」の転置インデックスから、(k,0)と(l,0-i)の「0」と「0-i」とが、「0」で一致するため、「1」となる。
ここでは、形態素列410と形態素列420とで、1,2番目の形態素が一致する。このため、一致数x0は「x0=2」となる。
また、ずらす数iが「i=1」の場合、第1の形態素列内の形態素「が」を先頭とする形態素列411が形態素列αとして特定される。この場合、第2の特定部303は、形態素列αとして特定された形態素列411と、第2の形態素列である形態素列420とを、出現位置ごとに比較して、一致数x1を算出する。
具体的には、例えば、第2の特定部303は、上記式(1)を用いて、単語の転置インデックスを参照して、一致数x1を算出する。例えば、単語w1を「が」とすると、転置インデックスは、{(k,1),(l,1)}となる。この場合、count(1,1)は、単語w1「が」の転置インデックスから、(k,1)と(l,1-i)の「1」と「1-i」とが、一致しないため、「0」となる。
ここでは、形態素列411と形態素列420とで、3,4,5番目の形態素が一致する。このため、一致数x1は「x1=3」となる。
また、ずらす数iが「i=2」の場合、第1の形態素列内の形態素「上手く」を先頭とする形態素列412が形態素列αとして特定される。この場合、第2の特定部303は、形態素列αとして特定された形態素列412と、第2の形態素列である形態素列420とを、出現位置ごとに比較して、一致数x2を算出する。
具体的には、例えば、第2の特定部303は、上記式(1)を用いて、単語の転置インデックスを参照して、一致数x2を算出する。ここでは、形態素列412と形態素列420とで、形態素が一致する出現位置は存在しない。このため、一致数x2は「x2=0」となる。一致数x0,x1,x2は、上述した「形態素が一致する出現位置の数x」に相当する。
また、ずらす数iが「i=-1」の場合、第2の形態素列内の形態素「が」を先頭とする形態素列421が形態素列βとして特定される。この場合、第2の特定部303は、形態素列βとして特定された形態素列421と、第1の形態素列である形態素列410とを、出現位置ごとに比較して、一致数x-1を算出する。
具体的には、例えば、第2の特定部303は、上記式(1)を用いて、単語の転置インデックスを参照して、一致数x-1を算出する。ここでは、形態素列421と形態素列410とで、形態素が一致する出現位置は存在しない。このため、一致数x-1は「x-1=0」となる。
また、ずらす数iが「i=-2」の場合、第2の形態素列内の形態素「起動」を先頭とする形態素列422が形態素列βとして特定される。この場合、第2の特定部303は、形態素列βとして特定された形態素列422と、第1の形態素列である形態素列410とを、出現位置ごとに比較して、一致数x-2を算出する。
具体的には、例えば、第2の特定部303は、上記式(1)を用いて、単語の転置インデックスを参照して、一致数x-2を算出する。ここでは、形態素列422と形態素列410とで、形態素が一致する出現位置は存在しない。このため、一致数x-2は「x-2=0」となる。一致数x-1,x-2は、上述した「形態素が一致する出現位置の第2の数x’」に相当する。
なお、ずらす数iが「i=0」の場合に、形態素列αに代えて、第2の形態素列内の形態素「パソコン」を先頭とする形態素列420を形態素列βとして特定することにしてもよい。この場合、第2の特定部303は、形態素列βとして特定された形態素列420と、第1の形態素列である形態素列410とを、出現位置ごとに比較して、一致数x0を算出する。
ここで、上記式(2)を用いて類似度Sを算出する場合を例に挙げると、図4の例では、第1の形態素列(形態素列410)及び第2の形態素列(形態素列420)の類似度Sは、「S=5」となる。
また、重み関数f(xi,i)を用いて、ずらす数iにおける一致数xiに重み付けしてもよい。一例として、重み関数f(xi,i)を、上記式(6)及び(7)を組み合わせた「f(xi,i)=xi
1.1×exp(-0.1|i|)」とする。ただし、パラメータpを「p=1.1」とし、パラメータqを「q=0」とし、パラメータδを「δ=0」とし、パラメータεを「ε=0.1」とする。
この場合、上記式(4)から、類似度Sは「5.2(=f(2,0)+f(3,1))」となる。ただし、ペナルティ値Pを「P=1」とする。なお、この類似度Sは、例えば、文書Dl同士の類似度を同じように算出した際の結果「5.9」に比べて低いものとなっており、妥当な値といえる。
(ずらす範囲Rの決定例)
つぎに、第1の形態素列に対して第2の形態素列をずらす範囲Rの決定例について説明する。ここでは、ずらす範囲Rの決定例として、第1、第2、第3、第4及び第5の決定例について説明する。
・第1の決定例
第1の特定部302は、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することにしてもよい。具体的には、例えば、第1の特定部302は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、ずらす範囲Rを決定することにしてもよい。
すなわち、計算量を抑制すべく、ずらす範囲Rを制限する。より詳細に説明すると、例えば、第1の特定部302は、下記式(8)を用いて、ずらす範囲Rを決定する。ただし、ずらす範囲Rを「-r≦i≦r」とする。Nは、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との平均値である。floor()は、小数点以下を切り捨てる関数である。
r=r(N)=floor(N/2) ・・・(8)
一例として、第1の形態素列内の形態素の数(すなわち、文書Dkの単語数)を「5」とする。また、第2の形態素列内の形態素の数(すなわち、文書Dlの単語数)を「6」とする。この場合、Nは「N=5.5」となり、rは「r=floor(5/2)=2」となる。このため、ずらす範囲Rは、「-2≦i≦2」となる。
これにより、第1の形態素列(文書Dk)に対して第2の形態素列(文書Dl)を、各文書Dk,Dlの半分程度まで左右にずらして比較することが可能となり、計算量を抑えつつ、類似度Sの算出精度を確保することができる。
・第2の決定例
第1の特定部302は、第1の形態素列と第2の形態素列とで、重複する形態素の数及び重複しない形態素の数に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することにしてもよい。具体的には、例えば、第1の特定部302は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1の形態素列と第2の形態素列とで、重複する形態素の数及び重複しない形態素の数に基づいて、ずらす範囲Rを決定することにしてもよい。
すなわち、計算量を抑制すべく、ずらす範囲Rを制限する。より詳細に説明すると、例えば、第1の特定部302は、下記式(9)または(10)を用いて、ずらす範囲Rを決定する。ただし、ずらす範囲Rを「-r≦i≦r」とする。Nは、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との平均値である。Ntは、第1の形態素列と第2の形態素列とで重複する形態素の数である。Nfは、第1の形態素列と第2の形態素列とで重複しない形態素の数である。
r=r(N,Nt,Nf)=floor(N×Nf/Nt+1)…(9)
r=r(N,Nt,Nf)=floor(N×Nf/(Nt+Nf)+1)…(10)
一例として、文書Dkを「パソコンが起動しない」とする。文書Dkの形態素列は、「パソコン/が/起動/し/ない」となる。また、文書Dlを「パソコンが上手く起動しない」とする。文書Dlの形態素列は、「パソコン/が/上手く/起動/し/ない」となる。この場合、Nは「N=5.5」となり、Ntは「Nt=5」となり、Nfは「Nf=1」となる。そして、上記式(9)を用いた場合、rは「r=2」となる。一方、上記式(10)を用いた場合、rは「r=1」となる。ここで、rを「r=2」とすると、ずらす範囲Rは、「-2≦i≦2」となる。
これにより、第1の形態素列(文書Dk)と第2の形態素列(文書Dl)とで重複する形態素(単語)が多いほど、ずらす範囲Rを制限して計算量を抑えることができる。文書Dk,Dl間で重複する単語が多いほど、文書Dの類似判定が容易なため、ずらす範囲Rを広げる必要性は低く、ずらす範囲Rの制限による精度の低下の影響が少ないといえる。一方で、文書Dk,Dl間で重複する単語が少ないときは、ずらす範囲Rを広げることで、一見すると類似しているのかが分かり難いような文書Dの類似性を判定することが可能となる。
・第3の決定例
第1の特定部302は、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との差に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することにしてもよい。具体的には、例えば、第1の特定部302は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との差に基づいて、ずらす範囲Rを決定することにしてもよい。
すなわち、計算量を抑制すべく、ずらす範囲Rを制限する。より詳細に説明すると、例えば、第1の特定部302は、下記式(11)または(12)を用いて、ずらす範囲Rを決定する。ただし、ずらす範囲Rを「-r≦i≦r」とする。Nは、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との平均値である。Ndは、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との差である。
r=r(Nd)=Nd ・・・(11)
r=r(N,Nd)=floor(N/2+Nd) ・・・(12)
一例として、第1の形態素列内の形態素の数(すなわち、文書Dkの単語数)を「5」とする。また、第2の形態素列内の形態素の数(すなわち、文書Dlの単語数)を「6」とする。この場合、Ndは「Nd=1」となり、Nは「N=5.5」となる。そして、上記式(11)を用いた場合、rは「r=1」となる。一方、上記式(12)を用いた場合、rは「r=3」となる。ここで、rを「r=1」とすると、ずらす範囲Rは、「-1≦i≦1」となる。
これにより、第1の形態素列(文書Dk)と第2の形態素列(文書Dl)とで形態素数(単語数)の差が少ないほど、ずらす範囲Rを制限して計算量を抑えることができる。一方、第1の形態素列(文書Dk)と第2の形態素列(文書Dl)とで形態素数(単語数)の差が多いときは、ずらす範囲Rを広げることで、短い文書Dを長い文書Dの各部分と比較可能にして、類似度Sの算出精度を確保することができる。
・第4の決定例
第1の特定部302は、第1の形態素列と第2の形態素列とを含む形態素列群の各形態素列内の形態素の数のばらつきを表す値に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することにしてもよい。ここで、形態素列群の各形態素列は、例えば、文書群D1~Dnの各文書Dの形態素列である。
また、各形態素列内の形態素の数のばらつきを表す値は、例えば、各形態素列内の形態素の数の標準偏差や分散である。具体的には、例えば、第1の特定部302は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、形態素列群の各形態素列内の形態素の数のばらつきを表す値に基づいて、ずらす範囲Rを決定することにしてもよい。
すなわち、計算量を抑制すべく、ずらす範囲Rを制限する。より詳細に説明すると、例えば、第1の特定部302は、下記式(13)を用いて、ずらす範囲Rを決定する。ただし、ずらす範囲Rを「-r≦i≦r」とする。Nsは、第1の形態素列と第2の形態素列とを含む形態素列群の各形態素列内の形態素の数の標準偏差である。
r=r(Ns)=2Ns ・・・(13)
ここで、図5を用いて、第1の形態素列と第2の形態素列とを含む形態素列群の各形態素列内の形態素の数の標準偏差に基づく、ずらす範囲Rの決定例について説明する。
図5は、文書群D1~Dnの具体例を示す説明図(その1)である。図5において、文書群D1~Dnの具体例として、文書D1~D3が示されている。図5中、各文書D1~D3は、形態素(単語)ごとに区切られている。
ここで、文書D1の形態素列510内の形態素(単語)の数は、「5」である。文書D2の形態素列520内の形態素(単語)の数は、「6」である。文書D3の形態素列530内の形態素(単語)の数は、「10」である。このため、各形態素列510,520,530内の形態素の数の平均値Nは「N=7」であり、標準偏差Nsは「Ns=2」となる。この場合、rは、上記式(13)から「r=4」となる。このため、ずらす範囲Rは、「-4≦i≦4」となる。
これにより、文書群D1~Dnの各文書Dの単語数のばらつきが小さいほど、ずらす範囲Rを制限して計算量を抑えることができる。一方、文書群D1~Dnの各文書Dの単語数のばらつきが大きいときは、ずらす範囲Rを広げることで、文書D間の長さの差を考慮して文書D同士を適切に比較可能にし、類似度Sの算出精度を確保することができる。
・第5の決定例
第1の特定部302は、第1の形態素列内の形態素の重要度合いを表す指標値と、第2の形態素列内の形態素の重要度合いを表す指標値とを取得することにしてもよい。そして、第1の特定部302は、取得した指標値に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することにしてもよい。
形態素(単語)の重要度合いを表す指標値としては、例えば、TF値、IDF値、TF-IDF値などが挙げられる。ある形態素(対象単語)のTF値は、例えば、下記式(14)を用いて表すことができる。また、IDF値は、例えば、下記式(15)を用いて表すことができる。また、TF-IDF値は、例えば、下記式(16)を用いて表すことができる。
TF値=(文書Dにおける全ての単語の出現回数)/(文書Dにおける対象単語の出現回数) ・・・(14)
IDF値=log(全文書数/対象単語を含む文書数) ・・・(15)
TF-IDF値=TF値×IDF値 ・・・(16)
なお、各形態素(単語)の重要度合いを表す指標値は、情報処理装置101において算出されてもよく、また、他のコンピュータから取得されることにしてもよい。
具体的には、例えば、第1の特定部302は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1及び第2の形態素列内の形態素の重要度合いを表す指標値に基づいて、ずらす範囲Rを決定することにしてもよい。すなわち、計算量を抑制すべく、ずらす範囲Rを制限する。
より詳細に説明すると、例えば、第1の特定部302は、下記式(17)を用いて、ずらす範囲Rを決定する。ただし、ずらす範囲Rを「-r≦i≦r」とする。ID1は、文書Dk(第1の形態素列)のTF-IDF値が最大となる単語(形態素)の位置を示す。ID2は、文書Dl(第2の形態素列)のTF-IDF値が最大となる単語(形態素)の位置を示す。
r=r(ID1,ID2)=|ID1-ID2|×2 ・・・(17)
ここで、図6を用いて、第1及び第2の形態素列内の各形態素(単語)のTF-IDF値に基づく、ずらす範囲Rの決定例について説明する。
図6は、文書群D1~Dnの具体例を示す説明図(その2)である。図6において、文書群D1~Dnの具体例として、文書D1~D5が示されている。図6中、各文書D1~D5は、形態素(単語)ごとに区切られている。ここでは、比較対象となる文書Dkを「文書D1(第1の形態素列)」とし、比較対象となる文書Dlを「文書D2(第2の形態素列)」とする。形態素列610,620,630,640,650は、文書D1~D5それぞれの形態素列である。
ここで、文書D1において、文書D1~D5をもとに算出されたTF-IDF値が最大の単語は、「パソコン」である。このため、文書D1のTF-IDF値が最大となる単語の位置ID1は、「ID1=0」となる。文書D1において、単語「パソコン」の位置は、「0番目」である。また、文書D2において、文書D1~D5をもとに算出されたTF-IDF値が最大の単語は、「パソコン」である。このため、文書D2のTF-IDF値が最大となる単語の位置ID2は、「ID2=2」となる。この場合、rは、上記式(17)から「r=4」となる。このため、ずらす範囲Rは、「-4≦i≦4」となる。
これにより、比較対象となる文書Dk,Dkの中で重要な単語がどこに位置しているのかを特定し、重要な単語同士を比較するためにはどれだけずらせばよいのかを考慮して、ずらす範囲Rを決定することができる。このため、計算量を抑えつつ、類似度Sの算出精度を確保することができる。
(情報処理装置101の評価処理手順)
つぎに、情報処理装置101の評価処理手順について説明する。ここでは、文書群D1~Dnのうち、ある文書Dkと最も類似している文書Dlを探す場合を例に挙げて説明する。文書Dkの指定は、例えば、図2に示した入力装置207を用いたユーザの操作入力により行われる。
まず、情報処理装置101が用いる類似度テーブル700について説明する。類似度テーブル700は、例えば、図2に示したメモリ202、ディスク204に記憶される。
図7は、類似度テーブル700の記憶内容の一例を示す説明図である。図7において、類似度テーブル700は、第1文書、第2文書、一致度および類似度のフィールドを有し、各フィールドに情報を設定することで、類似度情報(例えば、類似度情報700-1,700-2)をレコードとして記憶する。
ここで、第1文書は、比較対象となる一方の文書Dである。第2文書は、比較対象となる他方の文書Dである。一致度は、ずらす数iにおける一致度xiである。類似度は、第1文書と第2文書との類似度合いを示す。
図8は、情報処理装置101の評価処理手順の一例を示すフローチャートである。図8のフローチャートにおいて、まず、情報処理装置101は、文書群D1~Dnに対する単語の転置インデックスを作成する(ステップS801)。そして、情報処理装置101は、文書群D1~Dnから、指定された文書Dkを選択する(ステップS802)。これにより、情報処理装置101は、文書Dkの形態素列を受け付ける。
つぎに、情報処理装置101は、文書群D1~Dnから選択されていない未選択の文書Dlを選択する(ステップS803)。これにより、情報処理装置101は、文書Dlの形態素列を受け付ける。ただし、文書Dlは、文書Dkとは異なる文書Dである。
そして、情報処理装置101は、文書Dkの形態素列内の形態素の数と、文書Dlの形態素列内の形態素の数とに基づいて、ペナルティ値Pを設定する(ステップS804)。つぎに、情報処理装置101は、文書Dkの形態素列内の形態素の数と、文書Dlの形態素列内の形態素の数とに基づいて、ずらす範囲Rを決定する(ステップS805)。ただし、ずらす範囲Rを「-r≦i≦r」とする。
つぎに、情報処理装置101は、一致度算出処理を実行する(ステップS806)。なお、一致度算出処理の具体的な処理手順については、図9を用いて後述する。また、一致度算出処理において算出された結果(一致度f(xi,i))は、図7に示した類似度テーブル700に記憶される。図7の例では、文書Dkとして「文書D1」が指定されている。
そして、情報処理装置101は、類似度テーブル700を参照して、文書Dkと文書Dlとの類似度Sを算出する(ステップS807)。算出された類似度Sは、類似度テーブル700に記憶される。つぎに、情報処理装置101は、文書群D1~Dnから選択されていない未選択の文書Dlがあるか否かを判断する(ステップS808)。
ここで、未選択の文書Dlがある場合(ステップS808:Yes)、情報処理装置101は、ステップS803に戻る。一方、未選択の文書Dlがない場合(ステップS808:No)、情報処理装置101は、類似度テーブル700を参照して、文書群D1~Dnのうち、文書Dkとの類似度Sが最大の文書Dを示す情報を出力して(ステップS809)、本フローチャートによる一連の処理を終了する。
これにより、文書群D1~Dnの中から、指定された文書Dkと最も類似している文書Dlを特定することができる。
つぎに、図9を用いて、ステップS806の一致度算出処理の具体的な処理手順について説明する。
図9は、一致度算出処理の具体的処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、情報処理装置101は、ずらす数iを「i=-r」とする(ステップS901)。そして、情報処理装置101は、ずらす数iが0以上であるか否かを判断する(ステップS902)。
ここで、ずらす数iが0以上の場合(ステップS902:Yes)、情報処理装置101は、文書Dkに対して文書Dlを右にi形態素分ずらして(ステップS903)、ステップS905に移行する。これにより、上述した「形態素列α」が特定される。一方、ずらす数iが0未満の場合(ステップS902:No)、情報処理装置101は、文書Dkに対して文書Dlを左に|i|形態素分ずらす(ステップS904)。これにより、上述した「形態素列β」が特定される。
つぎに、情報処理装置101は、文書Dkと、ずらした文書Dlとを、出現位置ごとに比較して、作成した単語の転置インデックスに基づいて、一致数xiを算出する(ステップS905)。そして、情報処理装置101は、算出した一致数xiに基づいて、一致度f(xi,i)を算出する(ステップS906)。算出された一致度f(xi,i)は、類似度テーブル700に記憶される。
つぎに、情報処理装置101は、ずらす数iをインクリメントして(ステップS907)、ずらす数iがrよりも大きくなったか否かを判断する(ステップS908)。ここで、ずらす数iがr以下の場合(ステップS908:No)、情報処理装置101は、ステップS902に戻る。
一方、ずらす数iがrよりも大きくなった場合(ステップS908:Yes)、情報処理装置101は、一致度算出処理を呼び出したステップに戻る。これにより、文書Dkと、ずらした文書Dlとで、一度に一致する形態素の数が多いほど類似度合いが高くなるように、一致数xiを重み付けした一致度f(xi,i)を求めることができる。
なお、ここでは、ある文書Dkと最も類似している文書Dlを探す場合を例に挙げて説明したが、これに限らない。例えば、情報処理装置101は、文書群D1~Dnのうちの全文書D間の類似度Sを算出することにしてもよい。これにより、各文書D間の類似度Sをもとに、類似する文書同士をグループ化したりすることができる。
以上説明したように、実施の形態にかかる情報処理装置101によれば、第1の形態素列と第2の形態素列とを受け付け、受け付けた第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列αを特定することができる。そして、情報処理装置101によれば、特定した複数の形態素列αに含まれる各形態素列αと、受け付けた第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数xを特定し、特定した数xに基づき、第1の形態素列及び第2の形態素列の類似度に関する評価を行うことができる。
これにより、第1の形態素列において先頭となる形態素をずらしながら、第2の形態素列と出現位置ごとに比較して、第1の形態素列及び第2の形態素列の類似度合いを評価することができ、語順(単語の出現位置)を考慮した文書の類似判定を行うことができる。また、文書中に形容詞などの単語が挿入されていても、文書間で一致する部分を見つけ出すことができる。
また、情報処理装置101によれば、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することができる。具体的には、例えば、情報処理装置101は、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、ずらす範囲Rを決定する。そして、情報処理装置101は、決定したずらす範囲R内において、第1の形態素列に対して第2の形態素列を形態素単位でずらすことにより、複数の形態素列α及び/又は複数の形態素列βを特定することができる。
これにより、第1の形態素列(文書Dk)に対して第2の形態素列(文書Dl)を、各文書Dk,Dlの半分程度まで左右にずらして比較することが可能となり、計算量を抑えつつ、類似度Sの算出精度を確保することができる。
また、情報処理装置101によれば、第1の形態素列と第2の形態素列とで、重複する形態素の数及び重複しない形態素の数に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することができる。具体的には、例えば、情報処理装置101は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1の形態素列と第2の形態素列とで、重複する形態素の数及び重複しない形態素の数に基づいて、ずらす範囲Rを決定することができる。
これにより、第1の形態素列と第2の形態素列とで重複する形態素(単語)が多いほど、ずらす範囲Rを制限して計算量を抑えることができ、計算量を抑えつつ、類似度Sの算出精度を確保することができる。また、文書Dk,Dl間で重複する単語が少ないときは、ずらす範囲Rを広げることで、一見すると類似しているのかが分かり難いような文書Dの類似性を判定することが可能となる。
また、情報処理装置101によれば、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との差に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することができる。具体的には、例えば、情報処理装置101は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1の形態素列内の形態素の数と第2の形態素列内の形態素の数との差に基づいて、ずらす範囲Rを決定することができる。
これにより、第1の形態素列と第2の形態素列とで形態素数の差が少ないほど、ずらす範囲Rを制限して計算量を抑えることができる。一方、第1の形態素列と第2の形態素列とで形態素数の差が多いときは、ずらす範囲Rを広げることで、短い文書Dを長い文書Dの各部分と比較可能にして、類似度Sの算出精度を確保することができる。
また、情報処理装置101によれば、第1の形態素列と第2の形態素列とを含む形態素列群の各形態素列内の形態素の数のばらつきを表す値に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することができる。具体的には、例えば、情報処理装置101は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、形態素列群(文書群D1~Dn)の各形態素列内の形態素の数のばらつきを表す値(例えば、標準偏差)に基づいて、ずらす範囲Rを決定することができる。
これにより、文書群D1~Dnの各文書Dの単語数のばらつきが小さいほど、ずらす範囲Rを制限して計算量を抑えることができる。一方、文書群D1~Dnの各文書Dの単語数のばらつきが大きいときは、ずらす範囲Rを広げることで、文書D間の長さの差を考慮して文書D同士を適切に比較可能にし、類似度Sの算出精度を確保することができる。
また、情報処理装置101によれば、第1の形態素列内の形態素の重要度合いを表す指標値と、第2の形態素列内の形態素の重要度合いを表す指標値とを取得し、取得した指標値に基づいて、複数の形態素列α及び/又は複数の形態素列βを特定することができる。具体的には、例えば、情報処理装置101は、複数の形態素列α及び/又は複数の形態素列βを特定するにあたり、第1及び第2の形態素列内の形態素の重要度合いを表す指標値に基づいて、ずらす範囲Rを決定することができる。
これにより、比較対象となる文書Dk,Dkにおける重要な単語の位置を特定して、重要な単語同士を比較可能なずらす範囲Rを決定することができ、計算量を抑えつつ、類似度Sの算出精度を確保することができる。
また、情報処理装置101によれば、第2の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列βを特定し、特定した複数の形態素列βに含まれる各形態素列βと、第1の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の第2の数x’を特定することができる。そして、情報処理装置101によれば、特定した数xと第2の数x’とに基づき、第1の形態素列及び第2の形態素列の類似度に関する評価を行うことができる。
これにより、第2の形態素列において先頭となる形態素をずらしながら、第1の形態素列と出現位置ごとに比較して、第1の形態素列及び第2の形態素列の類似度合いを評価することができる。このため、第1の形態素列に対して第2の形態素列を左右両方向にずらして比較した結果を用いて類似度合いを評価することができ、類似度Sの算出精度を向上させることができる。
また、情報処理装置101によれば、第1の形態素列内の形態素の数と、第2の形態素列内の形態素の数とに基づいて、ペナルティ値Pを設定することができる。そして、情報処理装置101によれば、さらに、設定したペナルティ値Pに基づいて、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことができる。
これにより、第1の形態素列及び第2の形態素列それぞれに含まれる形態素の数が多い、すなわち、比較対象となる文書Dk,Dlが長い(単語数が多い)ほど、類似度Sが高くなるのを防ぐことができる。
また、情報処理装置101によれば、特定した数xと第2の数x’とのうち所定数γよりも大きい数に基づき、第1の形態素列及び第2の形態素列の類似度Sに関する評価を行うことができる。これにより、形態素列同士を比較したときに、一度に一致する形態素の数が多いほど類似度合いが高くなるようにして、類似度Sの算出精度を向上させることができる。
これらのことから、情報処理装置101によれば、計算量を抑えつつ、語順を考慮した文書の類似判定を行うことが可能となり、自然文同士の類似判定の精度を向上させ、ひいては、類似文書のグループ化精度の向上を図ることができる。また、類似文書を精度よくグループ化することで、例えば、FAQ(Frequently Asked Question)としてまとめる質問を効率的に特定することができる。この際、一見すると類似していることが分かり難いような質問についても特定することが可能となる。
なお、本実施の形態で説明した評価方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本評価プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本評価プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1の形態素列と第2の形態素列とを受け付け、
受け付けた前記第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列を特定し、
特定した前記複数の形態素列に含まれる各形態素列と、受け付けた前記第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定し、
特定した前記数に基づき、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う、
処理をコンピュータに実行させることを特徴とする評価プログラム。
(付記2)前記複数の形態素列を特定する処理は、
前記第1の形態素列内の形態素の数と、前記第2の形態素列内の形態素の数とに基づいて、前記複数の形態素列を特定する、
ことを特徴とする付記1に記載の評価プログラム。
(付記3)前記複数の形態素列を特定する処理は、
前記第1の形態素列と前記第2の形態素列とで、重複する形態素の数及び重複しない形態素の数に基づいて、前記複数の形態素列を特定する、
ことを特徴とする付記1または2に記載の評価プログラム。
(付記4)前記複数の形態素列を特定する処理は、
前記第1の形態素列内の形態素の数と前記第2の形態素列内の形態素の数との差に基づいて、前記複数の形態素列を特定する、
ことを特徴とする付記1~3のいずれか一つに記載の評価プログラム。
(付記5)前記複数の形態素列を特定する処理は、
前記第1の形態素列と前記第2の形態素列とを含む形態素列群の各形態素列内の形態素の数のばらつきを表す値に基づいて、前記複数の形態素列を特定する、
ことを特徴とする付記1~4のいずれか一つに記載の評価プログラム。
(付記6)前記第1の形態素列内の形態素の重要度合いを表す指標値と、前記第2の形態素列内の形態素の重要度合いを表す指標値とを取得する、処理を前記コンピュータに実行させ、
前記複数の形態素列を特定する処理は、
取得した前記指標値に基づいて、前記複数の形態素列を特定する、
ことを特徴とする付記1~5のいずれか一つに記載の評価プログラム。
(付記7)前記第2の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列を特定し、
特定した前記複数の形態素列に含まれる各形態素列と、前記第1の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の第2の数を特定する、処理を前記コンピュータに実行させ、
前記評価を行う処理は、
特定した前記数と前記第2の数とに基づき、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う、
ことを特徴とする付記1~6のいずれか一つに記載の評価プログラム。
(付記8)前記第1の形態素列内の形態素の数と、前記第2の形態素列内の形態素の数とに基づいて、前記第1の形態素列及び前記第2の形態素列それぞれに含まれる形態素の数の多さに対するペナルティ値を設定し、
前記評価を行う処理は、
さらに、設定した前記ペナルティ値に基づいて、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う、
ことを特徴とする付記1~7のいずれか一つに記載の評価プログラム。
(付記9)前記評価を行う処理は、
特定した前記数と前記第2の数とのうち所定数よりも大きい数に基づき、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う、
ことを特徴とする付記7に記載の評価プログラム。
(付記10)前記評価の結果を出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~9のいずれか一つに記載の評価プログラム。
(付記11)前記数を特定する処理は、
前記第1の形態素列と前記第2の形態素列とを含む形態素列群に含まれる各形態素が、前記形態素列群のいずれの形態素列のいずれの位置にあるかを特定する転置インデックスを参照して、前記数を特定する、ことを特徴とする付記1~10のいずれか一つに記載の評価プログラム。
(付記12)第1の形態素列と第2の形態素列とを受け付け、
受け付けた前記第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列を特定し、
特定した前記複数の形態素列に含まれる各形態素列と、受け付けた前記第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定し、
特定した前記数に基づき、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う、
処理をコンピュータが実行することを特徴とする評価方法。
(付記13)第1の形態素列と第2の形態素列とを受け付ける受付部と、
前記受付部が受け付けた前記第1の形態素列内で形態素が出現する出現位置のうち、複数の出現位置にそれぞれ出現する形態素を先頭とする複数の形態素列を特定する第1の特定部と、
前記第1の特定部によって特定された前記複数の形態素列に含まれる各形態素列と、前記受付部が受け付けた前記第2の形態素列とを、出現位置ごとに比較して、形態素が一致する出現位置の数を特定する第2の特定部と、
前記第2の特定部によって特定された前記数に基づき、前記第1の形態素列及び前記第2の形態素列の類似度に関する評価を行う評価部と、
を有することを特徴とする情報処理装置。