JP5629701B2 - 類似度算出装置、類似度算出方法、および類似度算出プログラム - Google Patents

類似度算出装置、類似度算出方法、および類似度算出プログラム Download PDF

Info

Publication number
JP5629701B2
JP5629701B2 JP2012014476A JP2012014476A JP5629701B2 JP 5629701 B2 JP5629701 B2 JP 5629701B2 JP 2012014476 A JP2012014476 A JP 2012014476A JP 2012014476 A JP2012014476 A JP 2012014476A JP 5629701 B2 JP5629701 B2 JP 5629701B2
Authority
JP
Japan
Prior art keywords
word
string
feature
common part
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012014476A
Other languages
English (en)
Other versions
JP2013156692A (ja
Inventor
角田 誠
誠 角田
渡部 修平
修平 渡部
Original Assignee
エヌ・ティ・ティ・コムウェア株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エヌ・ティ・ティ・コムウェア株式会社 filed Critical エヌ・ティ・ティ・コムウェア株式会社
Priority to JP2012014476A priority Critical patent/JP5629701B2/ja
Publication of JP2013156692A publication Critical patent/JP2013156692A/ja
Application granted granted Critical
Publication of JP5629701B2 publication Critical patent/JP5629701B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、類似度算出装置、類似度算出方法、および類似度算出プログラムに関する。
テキスト検索において、照合対象である文字列をキーとして、被照合対象である文章の中から、照合対象に類似する文字列を検索する技術がある。例えば、構文の類似性に重点を置いたり、あるいは、単語の一致度に重点を置くなどの様々な観点に基づき、照合対象に対する被照合対象の類似度を算出するものがある(例えば、特許文献1〜5)。このようにして、算出した類似度を基準として、複数の被照合対象の中から照合対象に最も類似するものを取得することにより、検索者が全ての被照合対象を確認した上で照合対象に類似する部分を検索するよりも、検索の効率化を図ることができる。
特開2009−075747号公報 特開2005−127597号公報 特開2001−357065号公報 特開2001−243245号公報 特開2001−134605号公報
しかしながら、文を構成する文字列は異なるものの、この文が意図するものが類似していると経験的に認識される場合がある。このような文についての類似度を上述のような方法を用いて算出すると、計算される類似度は低くなる。よって、構成される文字列が異なる文同士では、経験的に認識される類似性を類似度に反映させることができない問題があった。
本発明は、上記課題を解決するものであり、構成される文字列が異なる文同士についての類似度を算出する際に、経験的に人によって認識される類似性を類似度に反映させることができる類似度算出装置、類似度算出方法、および類似度算出プログラムを提供することを目的とする。
この発明は上述した課題を解決するためになされたもので、本発明の一態様による類似度算出装置は、照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定部と、前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得部と、前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは前記第2単語列に含まれる前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出部と、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出部と、を備える。
また、上述の類似度算出装置は、前記類似度を算出する際に、前記第1単語列あるいは前記第2単語列を構成する単語を取得する際の条件、前記共通部分を構成する単語を取得する際の条件、あるいは、前記重みを算出する際の条件のうち少なくとも1つを設定する設定部をさらに備える。
また、上述の類似度算出装置において、前記特徴語判定部は、前記予め決められた特徴語を構成する単語として、複数の単語によって構成される複合語と等しい単語列を作ることができる単語の全てが前記第1単語列あるいは前記第2単語列に含まれているか否かを判定し、前記複合語と等しい単語列を作ることができる単語の全てが含まれている場合に前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれていると判定する。
また、上述の類似度算出装置において、前記特徴語判定部は、前記予め決められた特徴語を構成する単語として、互いに同様の意味を有する同義語として予め登録されている単語が前記第1単語列あるいは前記第2単語列に含まれているか否かを判定し、前記同義語として予め登録されている単語が前記第1単語列あるいは前記第2単語列に含まれている場合に前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれていると判定する。
また、上述の類似度算出装置において、前記類似度算出部は、前記特徴語を構成する単語の重みを算出する場合、1つの単語として取り扱われる特徴語に対して最も重い重要度を乗算することを特徴とする請求項1から4のうちいずれか一項に記載の類似度算出装置。
この発明は上述した課題を解決するためになされたもので、本発明の一態様による類似度算出方法は、類似度算出装置が実行する類似度算出方法であって、照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定ステップと、前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得ステップと、前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは第2単語列に含まれている前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出ステップと、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出ステップと、を備える。
この発明は上述した課題を解決するためになされたもので、本発明の一態様による類似度算出プログラムは、コンピュータを、照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定手段、前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得ステップと、前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは第2単語列に含まれている前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出手段、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出手段、として機能させるための類似度算出プログラムである。
本発明によれば、構成される文字が異なる文字列同士についての類似度を算出する際に、経験的に人によって認識される類似性を類似度に反映させることができる。
本発明の実施形態に係る類似度算出装置の一例を示すブロック図である。 本発明の第1実施形態に係る類似度算出装置1の一例を示すブロック図である。 本発明の実施形態に係る単語重要度テーブル402の一例を示す図である。 本発明の第1実施形態に係る類似度算出装置1における類似度算出方法の一例を示すフローチャートである。 本発明の第2実施形態に係る類似度算出装置2の一例を示すブロック図である。 本発明の実施形態に係る同義語テーブル403の一例を示す図である。 本発明の第3実施形態に係る類似度算出装置3の一例を示すブロック図である。 本発明の第3実施形態に係る類似度算出装置3における類似度算出方法の一例を示すフローチャートである。 本発明の第4実施形態に係る類似度算出装置4の一例を示すブロック図である。 本発明の第5実施形態に係る類似度算出装置5の一例を示すブロック図である。 本発明の第6実施形態に係る類似度算出装置6の一例を示すブロック図である。
以下、本発明の一実施形態による類似度算出装置の一例について、図面を参照して詳細に説明する。図1は、本発明に係る類似度算出装置の機能ブロック図である。
図1に示す通り、本発明の一実施形態による類似度算出装置は、特徴語取得部100と、照合部200と、算出部300と、記憶部400を備える。
特徴語取得部100は、照合対象である文字列aと被照合対象である文字列bを入力とする。本実施形態において、照合対象である文字列aと被照合対象である文字列bは、一つの文である。例えば、照合対象である文字列aは「ユーザそれぞれの情報はユーザ管理サーバに記録される」である。被照合対象である文字列bは「ユーザ管理サーバにユーザ情報を格納する」である。この文字列a,bは、意図する内容は類似しているものの、文を構成する文字列が異なる。なお、本実施形態において、文字列aは、文書Aの中に含まれる文であり、文字列bは、文書Bの中に含まれる文である。文字列bは、文書Bに含まれる文の一例であり、照合対象である文字列aに経験的に類似していると人によって認識される文を探す際に比較される文書Bに含まれる文の一例である。つまり、本実施形態に係る類似度算出装置は、照合対象である文字列aに対する、被照合範囲Bに含まれる文字列bおよび他の複数の文字列のそれぞれ類似度を算出する。これら類似度を比較して、類似度が最も高い文字列が文字列aに最も似ていると判定することができる。なお、照合範囲は、複数の文のセットである文書Aであってもよく、単文である文字列aであってもよい。同様に、被照合範囲は、複数の文のセットである文書Bであってもよく、単文である文字列bであってもよい。
この特徴語取得部100は、入力する文字列a,bを単語単位に分解し、分解した単語の集合からなる単語列a,bを取得する。例えば、特徴語取得部100は、単語列a「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」を取得する。
特徴語取得部100は、この単語列a,bのそれぞれについて、予め決められている特徴語を構成する単語が含まれているか否かを判定し、特徴語が含まれている場合、各単語列a,bのそれぞれから特徴語を取得する。この特徴語取得部100は、単語列a,bのそれぞれに取得した特徴語を対応付けて照合部200に出力する。本実施形態においては、特徴語が取得された場合、特徴語取得部100は、“単語列+特徴語(特徴語を構成する単語列)”という情報を出力する。なお、特徴語が取得されなかった場合、特徴語取得部100は、単語列のみを出力する。
照合部200は、原文である文字列a,bに特徴語が含まれている場合、特徴語取得部100から入力する情報に基づき、この文字列a,bに含まれている特徴語を構成する単語を特徴語に置き換えた単語列a,bを取得する。この照合部200は、特徴語を構成する単語を特徴語に置き換える処理をした後の単語列a,b同士を比較して、それぞれに共通する単語からなる共通部分abを取得する。
算出部300は、記憶部400に記憶されている単語毎に予め決められている重要度pを参照して、照合部200から入力する共通部分abに基づき、共通部分abに含まれる全ての単語の重みW(ab)を算出する。
また、算出部300は、記憶部400に記憶されている単語毎に予め決められている重要度pを参照して、照合部200から入力する特徴語の置き換え処理後の単語列aに基づき、この単語列aに含まれる全ての単語の重みW(aa)を算出する。
つまり、共通部分abあるいは単語列aに特徴語を構成する単語が含まれている場合、算出部300は、特徴語を構成する単語が特徴語に置き換えた共通部分abに含まれる全ての単語の重みW(ab)あるいは単語列aに含まれる全ての単語の重みW(aa)を算出する。一方、共通部分abあるいは単語列aに特徴語を構成する単語が含まれていない場合、算出部300は、共通部分abあるいは単語列aに含まれる全ての単語の重みW(aa)を算出する。
本実施形態において、重要度pは、0≦p≦1の範囲の数値であり、特徴語については、他の単語に比べて、最も重い重要度p=1が設定されている。よって、特徴語を構成する単語が含まれている場合、この特徴語を構成する複数の単語の集合を1つの単語と取り扱い、特徴語と等しい単語列を作ることができる単語を特徴語に置き換えて、置き換えた特徴語について最も重い重要度を与える。一方、特徴語を構成する単語が含まれていない場合、予め決められた特徴語の重要度よりも低い重要度を、単語列を構成する各単語に与える。
さらに、算出部300は、共通部分abに含まれる全ての単語の重みW(ab)と、単語列aに含まれる全ての単語の重みW(aa)に基づき、文字列aに対する文字列bの類似度S(ab)を算出する。
このように、本発明に係る類似度算出装置は、照合対象である文字列aおよび被照合対象である文字列bから事前に特徴語を取得するとともに、特徴語の置き換え処理後の単語列a,bに基づき、両者の共通部分abを取得してこの重みW(ab)を算出するとともに、特徴語の置き換え処理後の単語列aの重みW(aa)を算出する。これにより、特徴語を考慮した類似度S(ab)を算出することができる。つまり、特徴語として、経験的に人により類似していると認識される単語や文字列等を予め登録しておくことにより、文を構成する文字列が異なる文同士についての類似度を算出する場合であっても、経験的に人により認識される類似性を類似度に反映させることができる。よって、より人間の感覚に近い感覚で類似しているか否かを示す類似度を算出することができる。
<第1実施形態>
次に、図2を参照して、本発明の第1実施形態に係る類似度算出装置1の一例について説明する。図2は、本実施形態に係る類似度算出装置1の一例を示す機能ブロック図である。なお、図2は、図1に示す構成の詳細について説明するための図である。
図2に示す通り、特徴語取得部100は、形態素解析部101と、連結文字列検出部102と、特徴語判定部103を備える。照合部200は、共通部分抽出部201と、置換部202を備える。算出部300は、重み算出部301と、類似度算出部302を備える。記憶部400は、一般連結文字列データベース401と、単語重要度テーブル402とを備える。
一般連結文字列データベース401は、連結文字列検出部102によって検出される連結文字列のうち、特徴語ではない連結文字列を登録する記憶領域である。本実施形態において、一般連結文字列データベース401には、一般連結文字列として「ユーザ情報」が予め登録されている。なお、本実施形態において、連結文字列とは、複数の名詞が連続してなる文字列である。
単語重要度テーブル402は、単語w毎に予め決められている重要度pを登録するテーブルである。本実施形態において、単語重要度テーブル402には、図3に示す通り、単語「回線」には重要度「0.8」が、単語「格納」には重要度「0.5」が、・・・単語「を」には重要度「0.1」が、それぞれ対応付けられている。なお、この重要度pは、単語wごとに予め決められており、本実施形態において、重要度pは、以下に示す式(1)に従って算出される。この重要度pを算出するために、より一般的な(内容に偏りが無い)文書の集合である全体文章Zが用意されている。
Figure 0005629701
なお、式(1)において、Xは、全体文書Zに含まれる文書Z{Z,Z,・・・,Z}の数である。つまり、全体文書Zには、X個の文書Zが含まれている。この文書Zは、それぞれ、関連する複数の文を含む文書であり、例えば、同一のカテゴリーや項目について説明する文書等である。Yは、単語wが全体文章Z内において出現する回数を示す。本実施形態において、Yは、全体文書Zの中で単語wが出現する文書Zの数である。
また、この重要度pは、上述の算出方法に限られず、例えばTF−IDF(Term Frequency−Inverse Document Frequency)を用いて、一般的な単語の重要度を低く、文書Z{Z,Z,・・・,Z}の全体や個々に特徴的に出現する単語の重要度を高くするような重要度を算出するものであってもよい。このようにTF−IDFを用いて単語の重要度を算出する場合、用意する文書Z{Z,Z,・・・,Z}は、より一般的な(内容に偏りが無い)文書の集合であることが好ましい。照合対象の文で構成される同じ分野の文書の集合は、単語に偏りがあり、このような文書集合をもとにTF−IDFを計算すると、その分野の専門用語の重要度は低くなり、一般的な語の重要度は比較的高くなることが予想されるからである。
形態素解析部101は、入力する文字列a,bを、形態素(単語)単位に分解し、この分解後の単語の集合からなる単語列a(101),b(101)を出力する。本実施形態において、形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」を入力し、単語単位に分解する。また、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」を、連結文字列検出部102に出力する。形態素解析部101の入力(文字列a,b)と出力(単語列a,b)を以下に示す。
Figure 0005629701
Figure 0005629701
連結文字列検出部102は、形態素解析部101から入力する単語列a(101),b(101)に基づき、同一文節中において連続する単語(名詞)を連結文字列として取得する。本実施形態において、連結文字列検出部102は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」から、連結文字列α1「ユーザ/管理/サーバ」を取得する。また、連結文字列検出部102は、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」から、連結文字列β1「ユーザ/管理/サーバ」と連結文字列β2「ユーザ/情報」を取得する。この連結文字列検出部102は、単語列a(101)に連結文字列α1を対応付けた情報と、単語列b(101)に連結文字列β1,β2を対応付けた情報を、特徴語判定部103に出力する。本実施形態において、連結文字列検出部102によって取得される連結文字列を以下に示す。
Figure 0005629701
特徴語判定部103は、連結文字列検出部102から入力する単語列a(101)と単語列b(101)のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。本実施形態において、特徴語とは、照合対象や被照合対象において利用される頻度が比較的高い複合語であって、一般的に比較的よく用いられる複合語でない複合語のことをいう。特徴語判定部103は、連結文字列検出部102によって取得された連結文字列のうち、記憶部400に登録されている一般連結文字列以外の文字列を、特徴語として取得する。
単語列a(101)から取得される連結文字列α1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列α1「ユーザ/管理/サーバ」を特徴語と判定し、単語列a(101)に対応付けて照合部200に出力する。この特徴語判定部103は、例えば、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。
また、単語列b(101)から取得される連結文字列β1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列β1「ユーザ/管理/サーバ」を特徴語と判定する。一方、単語列b(101)から取得される連結文字列β2「ユーザ/情報」は一般連結文字列データベース401に登録されている。このため、特徴語判定部103は、この連結文字列β2「ユーザ/情報」を特徴語とは判定しない。よって、特徴語判定部103は、特徴語と判定した連結文字列β1「ユーザ/管理/サーバ」を単語列b(101)に対応付けて照合部200に出力する。この特徴語判定部103は、例えば、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。この特徴語判定部103からの出力の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、特徴語取得部100の特徴語判定部103から出力される単語列a(101)と単語列b(101)とを比較して、それぞれの特徴語において共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「ユーザ管理情報」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語からなる共通部分ab_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
Figure 0005629701
置換部202は、共通部分抽出部201から取得された特徴語からなる共通部分ab_1が入力された場合、特徴語取得部100の特徴語判定部103から入力する単語列a(101)と単語列b(101)からこの特徴語からなる共通部分ab_1を削除する。つまり、置換部202は、特徴語判定部103から入力する単語列a,bにおいて共通する特徴語が含まれている場合、この共通する特徴語を構成する単語列を、特徴語に置き換える。この置換部202は、共通する特徴語を構成する単語列が特徴語に置換えられた後の単語列a(201),b(201)を、再び、共通部分抽出部201に戻して出力する。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「ユーザ管理サーバ」の特徴語を構成する単語列「ユーザ/管理/サーバ」に相当する単語を削除する。つまり、置換部202は、単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。
また、置換部202は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)” から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「ユーザ管理サーバ」の特徴語を構成する単語列「ユーザ/管理/サーバ」に相当する単語を削除する。つまり、置換部202は、単語列b(201):“「に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。
この置換部202からの出力の一例を以下に示す。
Figure 0005629701
一方、単語列a(101)と単語列b(101)とを比較して、それぞれの特徴語において共通する特徴語が無い場合、共通部分抽出部201は、この単語列a(101)と単語列b(101)とを比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、共通する単語からなる共通部分abを取得し、算出部300の重み算出部301に出力する。
共通部分抽出部201は、置換部202から出力される単語列a(201)と単語列b(201)とを比較して、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(201)と単語列b(201)のそれぞれに対応付けられた特徴語以外の単語列から「ユーザ/情報/に」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2:「ユーザ/情報/に」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した単語列a(101)と単語列b(101)から特徴語からなる共通部分ab_1を抽出していた場合、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abを作成し、単語列a(201)と単語列b(201)とともに重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
Figure 0005629701
置換部202は、共通部分抽出部201から、特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abと、置き換え処理後の単語列a(201)と単語列b(201)とを、重み算出部301に出力する。つまり、本実施形態において、置換部202は、共通部分ab「ユーザ管理サーバ/ユーザ/情報/に」と、単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”と、単語列b(201):“「に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”とを、重み算出部301に出力する。
なお、共通部分抽出部201が、単語列a(101)と単語列b(101)から、特徴語からなる共通部分ab_1しか取得しなかった場合、あるいは、特徴語以外の単語列に含まれる共通部分ab_2しか取得しなかった場合、それぞれを共通部分abとして重み算出部301に出力する。より詳細に説明すると、特徴語からなる共通部分ab_1しか取得しなかった場合、共通部分抽出部201は、置換部202によって置換え処理がなされた後の単語列a(201)と単語列b(201)とともに共通部分abを重み算出部301に出力する。特徴語以外の単語列に含まれる共通部分ab_2しか取得しなかった場合、共通部分抽出部201は、特徴語判定部103から入力する単語列a(101)と単語列b(101)とともに共通部分abを重み算出部301に出力する。
また、置換部202は、特徴語取得部100の特徴語判定部103から入力する単語列a(101)に特徴語が含まれているか否かを判定する。単語列a(101)に特徴語が含まれている場合、単語列a(101)から特徴語を削除する。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語「ユーザ/管理/サーバ」)”から、特徴語を構成する単語「ユーザ/管理/サーバ」を削除する。つまり、置換部202は、単語列a(101)´:“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語「ユーザ/管理/サーバ」)”を出力する。
重み算出部301は、単語w毎に予め決められている重要度Pを記憶部400の単語重要度テーブル402から参照して、照合部200から入力する共通部分abに基づき、共通部分abに含まれる全ての単語の重みW(ab)を算出する。重み算出部301は、以下の式(2)に従って、共通部分abに含まれる全ての単語の重みW(ab)を算出する。また、重み算出部301は、共通部分abに特徴語が含まれている場合、この特徴語の重要度P=1として算出する。本実施形態において、重み算出部301は、単語重要度テーブル402に含まれていない単語について、重要度P=1を与える。これにより、重み算出部301は、特徴語の重要度P=1として算出することができる。
Figure 0005629701
なお、式(2)において、l{i=1,2,・・・,n}は、共通部分abに含まれる全ての単語w,w,・・・,wの各単語wの文字数である。また、P{i=1,2,・・・,n}は、単語w毎に予め決められている重要度である。なお、重み算出部301は、特徴語を1つの単語wとして取り扱うため、特徴語を構成する単語の集合=1つの単語wとしてカウントする。また、上述の通り、特徴語の重要度P=1である。
本実施形態において、重み算出部301は、共通部分ab:“「ユーザ/情報/に」 + 特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、以下のようにして、共通部分abに含まれる全ての単語の重みW(ab)を算出する。
Figure 0005629701
重み算出部301は、単語w毎に予め決められている重要度Pを記憶部400の単語重要度テーブル402から参照して、照合部200から入力する単語列a(101´)あるいは単語列a(101)に基づき、この単語列a(101´)あるいは単語列a(101)に含まれる全ての単語の重みW(aa)を算出する。つまり、単語列a(101)に特徴語が含まれている場合、置換部202によって特徴語の置き換え処理後の単語列a(101´)に含まれる全ての単語の重みW(aa)を算出する。一方、単語列a(101)に特徴語が含まれていない場合、重み算出部301は、単語列a(101)に含まれる全ての単語の重みW(aa)を算出する。
重み算出部301は、以下の式(3)に従って、特徴語の置き換え処理後の単語列a(101)´、あるいは単語列a(101)に含まれる全ての単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(101)´に含まれる特徴語の重要度P=1として算出する。本実施形態において、重み算出部301は、単語重要度テーブル402に含まれていない単語について、重要度P=1を与える。これにより、重み算出部301は、特徴語の重要度P=1として算出することができる。
Figure 0005629701
なお、式(3)において、l{j=1,2,・・・,m}は、特徴語の置き換え処理後の単語列a(201)に含まれる単語w,w,・・・,wの各単語wの文字数である。また、P{j=1,2,・・・,m}は、単語w毎に予め決められている重要度である。なお、重み算出部301は、特徴語を1つの単語wとして取り扱うため、特徴語を構成する単語の集合=1つの単語wとしてカウントする。また、上述の通り、特徴語の重要度P=1である。
本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、以下のようにして、特徴語の置き換え処理後の単語列a(201)に含まれる全ての単語の重みW(aa)を算出する。以下に示す通り、本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(201)に含まれる単語の重みW(aa)=347.5と算出する。
Figure 0005629701
類似度算出部302は、共通部分abに含まれる全ての単語の重みW(ab)と、特徴語の置き換え処理後の単語列aに含まれる全ての単語の重みW(aa)とに基づき、以下の式(4)に従って、文字列aに対する文字列bの類似度S(ab)を算出する。
Figure 0005629701
本実施形態において、類似度算出部302は、重み算出部301によって算出された共通部分abに含まれる全ての単語の重みW(ab)を、特徴語の置き換え処理後の単語列aに含まれる全ての単語の重みW(aa)で除算した類似度S(ab)を、以下のようにして算出する。
Figure 0005629701
次に、図4を参照して、本実施形態に係る類似度算出装置1における類似度算出方法の一例について説明する。図4は、本実施形態に係る類似度算出装置1における類似度算出方法の一例を示すフローチャートである。
(ステップST1)
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。そして、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、連結文字列検出部102に出力する。
(ステップST2)
連結文字列検出部102は、単語列a(101),b(101)に連結文字列が含まれている場合、連結文字列を取得し、取得した連結文字列を単語列a(101),b(101)に対応付けて特徴語判定部103に出力する。本実施形態において、連結文字列検出部102は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」から、連結文字列α1「ユーザ/管理/サーバ」を取得する。また、連結文字列検出部102は、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」から、連結文字列β1「ユーザ/管理/サーバ」と連結文字列β2「ユーザ/情報」とを取得する。そして、連結文字列検出部102は、取得した連結文字列α1を単語列a(101)に対応づけ、また、取得した連結文字列β1,β2を単語列b(101)に対応付けて、特徴語判定部103に出力する。
特徴語判定部103は、連結文字列検出部102から入力する連結文字列α1が対応付けられた単語列a(101)と、連結文字列β1,β2が対応付けられた単語列b(101)のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。
本実施形態において、特徴語判定部103は、連結文字列検出部102によって取得された連結文字列α1,β1,β2のそれぞれと、記憶部400に登録されている一般連結文字列とを比較して、連結文字列α1,β1,β2が一般連結文字列として登録されている文字列であるか否かを判定する。連結文字列α1,β1,β2のうち、一般連結文字列として登録されている文字列でない場合、この連結文字列を特徴語として取得する。
つまり、単語列a(101)に対応付けられている連結文字列α1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていないため、特徴語判定部103は、この連結文字列α1「ユーザ/管理/サーバ」を特徴語と判定し、単語列a(101)に特徴語として対応付けて照合部200に出力する。また、単語列b(101)に対応付けられている連結文字列β1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていないため、特徴語判定部103は、この連結文字列β1「ユーザ/管理/サーバ」が特徴語であると判定する。一方、単語列b(101)に対応付けられている連結文字列β2「ユーザ/情報」は一般連結文字列データベース401に登録されているため、特徴語判定部103は、この連結文字列β2「ユーザ/情報」が特徴語でないと判定する。よって、特徴語判定部103は、特徴語と判定した連結文字列β1「ユーザ/管理/サーバ」を単語列b(101)に特徴語として対応付けて照合部200に出力する。
なお、単語列に対応付けられている連結文字列がない場合、あるいは、連結文字列の中に一般連結文字列以外の文字列がない場合、特徴語判定部103は、特徴語がないと判定し、単語列に特徴語を対応づけることなく、形態素解析後の単語列をそのまま照合部200の共通部分抽出部201に出力する。
(ステップST3)
共通部分抽出部201は、特徴語判定部103から出力される単語列a(101)と単語列b(101)とを比較して、それぞれに対応付けられた特徴語同士において共通する特徴語があるか否かを判定する。
(ステップST4)
それぞれに対応付けられた特徴語同士において共通する特徴語がある場合、共通部分抽出部201は、それぞれの特徴語において共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「ユーザ管理情報」を共通する特徴語からなる共通部分ab_1として取得する。つまり、共通部分抽出部201は、特徴語からなる共通部分ab_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を取得し、置換部202に出力する。
(ステップST5)
そして、置換部202は、共通部分抽出部201から入力する特徴語からなる共通部分ab_1を入力した場合、特徴語判定部103から入力する単語列a(101)と単語列b(101)からこの特徴語からなる共通部分ab_1を削除する。つまり、置換部202は、特徴語判定部103から入力する単語列a,bにおいて共通する特徴語が含まれている場合、この共通する特徴語を構成する単語列を、特徴語に置き換える。この置換部202は、共通する特徴語を構成する単語列が特徴語に置換えられた後の単語列a(201)と単語列b(201)を、再び、共通部分抽出部201に戻して出力する。
なお、置換部202は、別途、特徴語取得部100の特徴語判定部103から入力する単語列a(101)に特徴語が含まれているか否かを判定する。単語列a(101)に特徴語が含まれている場合、単語列a(101)から特徴語を削除する。
(ステップST6)
一方、ステップST3においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、あるいは、ステップST5において置換部202から特徴語に置換えられた後の単語列a(201)と単語列b(201)が入力された場合、共通部分抽出部201は、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
(ステップST7)
例えば、ステップST3においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、共通部分抽出部201は、この単語列a(101)と単語列b(101)とを比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を取得し、この共通部分ab_2を共通部分abとして、単語列a(101)と単語列b(101)とともに重み算出部301に出力する。
例えば、ステップST5において置換部202から特徴語に置換えられた後の単語列a(201)と単語列b(201)が入力された場合、共通部分抽出部201は、この単語列a(201)と単語列b(201)とを比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を取得する。そして、共通部分抽出部201は、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abを作成し、単語列a(201)と単語列b(201)とともに重み算出部301に出力する。
(ステップST8)
そして、重み算出部301は、記憶部400の単語重要度テーブル402を参照して、照合部200から入力する共通部分abに基づき、式(2)に従って、共通部分abに含まれる全ての単語の重みW(ab)を算出する。本実施形態において、共通部分abに含まれる全ての単語の重みW(ab)=162.4である。
また、重み算出部301は、記憶部400の単語重要度テーブル402を参照して、照合部200から入力する単語列aに基づき、式(3)に従って、この単語列aに含まれる全ての単語の重みW(aa)を算出する。本実施形態において、単語列aに含まれる全ての単語の重みW(aa)=347.5である。
(ステップST7)
次いで、類似度算出部302は、共通部分abに含まれる単語の重みW(ab)と、単語列aに含まれる単語の重みW(aa)とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を算出する。本実施形態において、文字列aに対する文字列bの類似度S(ab)=0.46734である。
<第2実施形態>
次に、図5を参照して、本発明の第2実施形態に係る類似度算出装置2の一例について説明する。図5は、本実施形態に係る類似度算出装置2の一例を示す機能ブロック図である。なお、図5は、図1に示す類似度算出装置の構成の一例について説明するための図である。第1実施形態と同様の機能を有する構成については、同一の符号を付して詳細な説明は省略する。
図5に示す通り、本実施形態に係る類似度算出装置2は、特徴語取得部100_2と、照合部200と、算出部300と、記憶部400_2を備える。特徴語取得部100_2は、形態素解析部101と、特徴語判定部103_2を備える。記憶部400_2は、単語重要度テーブル402と、同義語テーブル403を備える。つまり、本実施形態に係る類似度算出装置2は、第1実施形態に係る類似度算出装置2と比べて、特徴語取得部100_2が連結文字列検出部102を備えていない点、記憶部400_2が一般連結文字列データベース401に換えて同義語テーブル403を備えている点が異なる。また、本実施形態に係る特徴語取得部100_2は、特徴語として同義語を取得する点が第1実施形態に係る特徴語取得部100と異なる。それ以外の構成については、同様の機能を有するため、同一の符号を付して詳細な説明は省略する。
同義語テーブル403は、同義語を登録するテーブルである。この同義語テーブル403の一例を図6に示す。図6に示す通り、同義語テーブル403は、代表語と同義語とを対応付けるテーブルである。
本実施形態において、同義語テーブル403には、代表語「格納」と同義語「格納」とが、代表語「格納」と同義語「記憶」とが、それぞれ対応付けられている。これは、「格納」の同義語である「記憶」が、「格納」を代表語として登録されていることを示している。なお、代表語とは、同義語を有する2以上の単語のうちの任意に選択されたいずれか一つの単語である。よって、「記憶」を代表語としてもよい。
特徴語取得部100_2は、形態素解析部101と、特徴語判定部103_2とを備える。この特徴語判定部103_2は、第1実施形態の特徴語判定部103と異なり、連結文字列検出部102を備えていない。
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。また、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、特徴語判定部103_2に出力する。
特徴語判定部103_2は、形態素解析部101から入力する単語列a(101)と単語列b(101)のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。本実施形態において、特徴語とは、照合対象や被照合対象において利用される類似語である。特徴語判定部103_2は、記憶部400_2の同義語テーブル403に登録されている類似語と同一の単語を、特徴語として取得する。
本実施形態において、特徴語判定部103_2は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」から、代表語「格納」に対応付けられている類似語「記録」を特徴語として取得する。この特徴語判定部103_2は、取得した特徴語である類似語「記録」を特徴語として単語列a(101)に対応付けて照合部200に出力する。例えば、特徴語判定部103_2は、単語列a:“(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”を出力する。
また、特徴語判定部103_2は、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」から、代表語「格納」に対応付けられている類似語「格納」を特徴語として取得する。この特徴語判定部103_2は、取得した特徴語である類似語「格納」を単語列b(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_2は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「格納」(特徴語を構成する単語「格納」)”を出力する。この特徴語判定部103_2からの出力の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、特徴語取得部100_2の特徴語判定部103_2から出力される単語列a(101)と単語列b(101)とを比較して、それぞれの特徴語に共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「格納」を共通する特徴語(代表語)して取得する。つまり、共通部分抽出部201は、共通部分ab_1:特徴語「格納」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
Figure 0005629701
置換部202は、共通部分抽出部201から取得された特徴語からなる共通部分ab_1が入力された場合、特徴語取得部100_2の特徴語判定部103_2から入力する単語列a(101)と単語列b(101)からこの特徴語からなる共通部分ab_1を削除する。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「格納」の特徴語を構成する単語「記録」に相当する単語を削除する。つまり、置換部202は、単語列a(201):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”を出力する。
また、置換部202は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「格納」(特徴語を構成する単語「格納」)” から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「格納」の特徴語を構成する単語列「格納」に相当する単語を削除する。つまり、置換部202は、単語列b(201):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/する」+特徴語「格納」(特徴語を構成する単語列「格納」)”を出力する。
この置換部202からの出力の一例を以下に示す。
Figure 0005629701
なお、単語列a(101)と単語列b(101)とを比較して、それぞれに対応付けられている特徴語において共通する特徴語が無い場合、共通部分抽出部201は、この単語列a(101)と単語列b(101)とを比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、共通する単語からなる共通部分abを取得し、算出部300の重み算出部301に出力する。
共通部分抽出部201は、置換部202から出力される単語列a(201)と単語列b(201)とを比較して、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(201)と単語列b(201)のそれぞれに対応付けられた特徴語以外の単語列から「ユーザ/情報/に」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2:「ユーザ/管理/サーバ/に/ユーザ/情報」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
Figure 0005629701
また、共通部分抽出部201は、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した同一の単語列a(101)と単語列b(101)から特徴語からなる共通部分ab_1を抽出していた場合、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abを作成し、単語列a(201)と単語列b(201)とともに重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
Figure 0005629701
そして、置換部202は、共通部分抽出部201から、特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abと、置き換え処理後の単語列a(201)と単語列b(201)とを、重み算出部301に出力する。つまり、本実施形態において、置換部202は、共通部分ab「格納/ユーザ/管理/サーバ/に/ユーザ/情報」と、単語列a(201):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「記録」(特徴語を構成する単語「格納」)”と、単語列b(201):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/する」+特徴語「格納」(特徴語を構成する単語「格納」)”とを、重み算出部301に出力する。
なお、共通部分抽出部201が、単語列a(101)と単語列b(101)から、特徴語からなる共通部分ab_1しか取得しなかった場合、あるいは、特徴語以外の単語列に含まれる共通部分ab_2しか取得しなかった場合、それぞれを共通部分abとして重み算出部301に出力する。より詳細に説明すると、特徴語からなる共通部分ab_1しか取得しなかった場合、共通部分抽出部201は、置換部202によって置換え処理がなされた後の単語列a(201)と単語列b(201)とともに共通部分abを重み算出部301に出力する。特徴語以外の単語列に含まれる共通部分ab_2しか取得しなかった場合、共通部分抽出部201は、特徴語判定部103_2から入力する単語列a(101)と単語列b(101)とともに共通部分abを重み算出部301に出力する。
また、置換部202は、特徴語取得部100_2の特徴語判定部103_2から入力する単語列a(101)に特徴語が含まれているか否かを判定する。単語列a(101)に特徴語が含まれている場合、単語列a(101)から特徴語を削除する。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”から、特徴語を構成する単語「記録」に相当する単語を削除する。つまり、置換部202は、単語列a(101)´:“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”を出力する。
重み算出部301は、記憶部400_2の単語重要度テーブル402に記憶されている重要度Pを記憶部400_2から参照して、照合部200から入力する共通部分abに基づき、式(2)に従って、共通部分abに含まれる全ての単語の重みW(ab)を算出する。
本実施形態において、重み算出部301は、共通部分ab:「格納/ユーザ/管理/サーバ/に/ユーザ/情報」に基づき、以下のようにして、共通部分abに含まれる全ての単語の重みW(ab)を算出する。また、重み算出部301は、共通部分abに特徴語が含まれている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103_2は、共通部分abに含まれる単語の重みW(ab)=177.6と算出する。
Figure 0005629701
重み算出部301は、記憶部400_2の単語重要度テーブル402に記憶されている重要度を参照して、照合部200から入力する特徴語の置き換え処理後の単語列a(101´)に基づき、式(3)に従って、単語列a(101´)に含まれる全ての単語の重みW(aa)を算出する。
本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(101´):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”に含まれる全ての単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(101´)に特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103_2は、特徴語の置き換え処理後の単語列a(201)に含まれる単語の重みW(aa)=310.0と算出する。
Figure 0005629701
類似度算出部302は、共通部分abに含まれる全ての単語の重みW(ab)と、特徴語の置き換え処理後の単語列aに含まれる全ての単語の重みW(aa)とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を、以下のようにして算出する。
Figure 0005629701
なお、本実施形態に係る類似度算出装置2は、上述の第1実施形態において説明した類似度算出方法と同様のステップに従って、類似度S(ab)を算出するため、詳細な説明は省略する。ただし、本実施形態に係る類似度算出装置2は、連結文字列検出部102を備えていないため、図4に示すステップST2の連結文字列の検出ステップを含まない点が異なる。
<第3実施形態>
次に、図7を参照して、本発明の第3実施形態に係る類似度算出装置3の一例について説明する。図7は、本実施形態に係る類似度算出装置3の一例を示す機能ブロック図である。なお、図7は、図1に示す構成の詳細について説明するための図である。第1実施形態と同様の機能を有する構成については、同一の符号を付して詳細な説明は省略する。
図7に示す通り、本実施形態に係る類似度算出装置3は、特徴語取得部100_3と、照合部200と、算出部300と、記憶部400を備える。特徴語取得部100_3は、形態素解析部101と、連結文字列検出部102と、特徴語判定部103と、係り受け関係単語列作成部104を備える。記憶部400は、一般連結文字列データベース401と、単語重要度テーブル402を備える。つまり、本実施形態に係る類似度算出装置3は、第1実施形態に係る類似度算出装置1と比べて、特徴語取得部100_3が係り受け関係単語列作成部104を備えている点が異なる。それ以外の構成については、概ね同様の機能を有するため、同一の符号を付して同様の機能についての詳細な説明は省略する。
形態素解析部101は、入力する文字列a,bを、形態素(単語)単位に分解し、この分解後の単語の集合からなる単語列a,bを出力する。本実施形態において、形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。この形態素解析部101は、単語単位に分解した後、文字列において各単語の並び位置を示す情報を取得し、各単語に対応づける。
本実施形態において、形態素解析部101は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」と、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを、連結文字列検出部102に出力する。なお、この単語列に含まれる単語には、それぞれの品詞を示す情報が対応付けられている。
係り受け関係単語列作成部104は、形態素解析部101から入力する単語列a(101)と単語列b(101)に基づき、各単語の品詞に従って、文節ごとの係り受け(修飾)関係を判定する。この係り受け関係単語列作成部104は、係り受け関係(主従関係)のある文節を構成して係り受け関係単語列を作成する。なお、係り受け関係単語列作成部104は、係り受け関係(主従関係)に従って、複数の係り受け関係単語列が作成できる場合、全ての係り受け関係単語列を作成する。
本実施形態において、係り受け関係単語列作成部104は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」に基づき、係り受け関係単語列a1(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/記録(20)/さ(21)/れる(22)」と、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」とを作成する。
また、係り受け関係単語列作成部104は、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」に基づき、係り受け関係単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」と、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを作成する。
以下に、本実施形態に係る係り受け関係単語列作成部104によって作成される係り受け関係単語列の一例を示す。
Figure 0005629701
連結文字列検出部102は、係り受け関係単語列作成部104から入力する係り受け関係単語列a1(101),a2(101),b1(101),b2(101)に基づき、同一文節中において連続する単語(名詞)を連結文字列として取得する。
本実施形態において、連結文字列検出部102は、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」と係り受け関係単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」のそれぞれから、連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」と連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」を取得する。
また、連結文字列検出部102は、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」から連結文字列β2「ユーザ(35)/情報(36)」を取得する。
この連結文字列α1,β1,β2を以下に示す。この連結文字列検出部102は、係り受け関係単語列a2(101)に連結文字列α1を対応付けた情報と、係り受け関係単語列b1(101)に連結文字列β1を対応付けた情報と、係り受け関係単語列b2(101)に連結文字列β2を対応付けた情報を、特徴語判定部103に出力する。
Figure 0005629701
特徴語判定部103は、連結文字列検出部102から入力する係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)に対応付けられた連結文字列に、予め決められた特徴語を構成する単語が含まれているか否かを判定する。本実施形態において、特徴語とは、照合対象や被照合対象において利用される複合語であって一般的でない複合語のことをいう。特徴語判定部103は、連結文字列検出部102によって取得された連結文字列のうち、記憶部400に登録されている一般連結文字列以外の文字列を、特徴語として取得する。
本実施形態において、記憶部400の一般連結文字列データベース401において、一般連結文字列として「ユーザ情報」が登録されている。
係り受け関係単語列a2(101)から取得される連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」を特徴語と判定し、係り受け関係単語列a2(101)に対応付けて照合部200に出力する。この特徴語判定部103は、例えば、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を出力する。
また、係り受け関係単語列b1(101)から取得される連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」を特徴語と判定し、係り受け関係単語列b1(101)に特徴語として対応付けて照合部200に出力する。この特徴語判定部103は、例えば、係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”を出力する。
一方、係り受け関係単語列b2(101)から取得される連結文字列β2「ユーザ(35)/情報(36)」は一般連結文字列データベース401に登録されている。このため、特徴語判定部103は、この連結文字列β2「ユーザ(35)/情報(36)」を特徴語ではないと判定する。よって、特徴語判定部103は、係り受け関係単語列b2(101)に特徴語を対応付けることなく照合部200に出力する。この特徴語判定部103は、例えば、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」を出力する。この特徴語判定部103からの出力の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、特徴語取得部100_3の特徴語判定部103から出力される係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)を、それぞれ比較し、比較した双方に共通する単語があるか否かを判定する。
この共通部分抽出部201は、はじめに、それぞれの特徴語において共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。
また、共通部分抽出部201は、特徴語からなる共通部分ab_1があるか否かを判定した後、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2があるか否かを判定する。この特徴語以外の単語列において共通する単語からなる共通部分ab_2があると判定した場合、共通部分抽出部201は、この特徴語以内の単語列からなる共通部分ab_2を取得し、置換部202に出力する。
ここで、置換部202によって、特徴語からなる共通部分ab_1を含む係り受け関係単語列から、特徴語からなる共通部分ab_1を構成する単語が削除されている場合、共通部分抽出部201は、比較対象として、この特徴語からなる共通部分ab_1の置換え処理がなされた後の係り受け関係単語列を比較対象として決定する。一方、特徴語からなる共通部分ab_1を含まない係り受け関係単語列は置換え処理が実行されない。このため、共通部分抽出部201は、置換え処理前の特徴語判定部103から出力される係り受け関係単語列を比較対象として決定する。
なお、本実施形態において、共通部分抽出部201は、受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較する度に、特徴語からなる共通部分ab_1があるか否かを判定し、その後、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2があるか否かを判定する。
具体的に説明すると、共通部分抽出部201は、係り受け関係単語列a1(101)と係り受け関係単語列b1(101)とを比較して、それぞれの特徴語において共通する特徴語からなる共通部分a1b1_1を取得し、置換部202に出力する。
次いで、共通部分抽出部201は、係り受け関係単語列a1(101)と置換え後の係り受け関係単語列b1(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a1b1_2を取得し、置換部202に出力する。
また、共通部分抽出部201は、係り受け関係単語列a1(101)と係り受け関係単語列b2(101)とを比較して、それぞれの特徴語において共通する特徴語からなる共通部分a1b2_1を取得し、置換部202に出力する。
次いで、共通部分抽出部201は、係り受け関係単語列a1(101)と係り受け関係単語列b2(101)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a1b2_2を取得し、置換部202に出力する。
さらに、共通部分抽出部201は、係り受け関係単語列a2(101)と係り受け関係単語列b1(101)とを比較して、それぞれの特徴語において共通する特徴語からなる共通部分a2b1_1を取得し、置換部202に出力する。
次いで、共通部分抽出部201は、係り受け関係単語列a2(201)と係り受け関係単語列b1(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b1_2を取得し、置換部202に出力する。
さらにまた、共通部分抽出部201は、係り受け関係単語列a2(101)と係り受け関係単語列b2(101)とを比較して、それぞれの特徴語において共通する特徴語からなる共通部分a2b2_1を取得し、置換部202に出力する。
次いで、共通部分抽出部201は、係り受け関係単語列a2(201)と係り受け関係単語列b2(101)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b2_2を取得し、置換部202に出力する。
なお、共通する特徴語からなる共通部分を取得できない場合、共通部分抽出部201は、そのことを示す情報や、NULL値を置換部202に出力する。
本実施形態において、共通部分抽出部201は、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”と係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”から、それぞれの特徴語において共通する共通部分a2b1_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」”を共通する単語として取得する。この共通部分抽出部201によって取得される共通部分の一例を以下に示す。
Figure 0005629701
また、共通部分抽出部201によって取得される特徴語以外の単語列に含まれる共通部分ab_2の一例を以下に示す。
Figure 0005629701
つまり、共通部分抽出部201は、全ての係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して特徴語からなる共通部分があるか否かを判定する。この共通部分抽出部201は、特徴語において共通する部分がある場合、この特徴語からなる共通部分を取得する。本実施形態において、共通部分抽出部201は、共通部分a2b1_1については、共通語からなる共通部分を取得することができるが、その他の共通部分a1b1_1、a1b2_1、a2b2_1については、共通語からなる共通部分を取得することができない。
置換部202は、共通部分抽出部201から特徴語からなる共通部分a1b1_1、a1b2_1、a2b1_1、a2b2_1が入力された場合、特徴語取得部100_3の特徴語判定部103から入力する係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)から、特徴語からなる共通部分a1b1_1、a1b2_1、a2b1_1、a2b2_1を削除する。
本実施形態において、共通部分抽出部201は、特徴語からなる共通部分a2b1_1のみを置換部202に出力する。よって、置換部202は、特徴語判定部103から入力する係り受け関係単語列のうち、この特徴語からなる共通部分a2b1_1が含まれていた係り受け関係単語列a2(101)、b1(101)から、特徴語からなる共通部分a2b1_1を構成する単語列を、特徴語に置き換える。この置換部202は、共通する特徴語を構成する単語列が特徴語に置換えられた後の係り受け関係単語列a2(101)、b1(101)を、再び、共通部分抽出部201に戻して出力する。
本実施形態において、置換部202は、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”から、特徴語からなる共通部分a2b1_1「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」に相当する単語を削除する。
つまり、置換部202は、係り受け関係単語列a2(201):“「に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を出力する。
また、置換部202は、係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”から、特徴語からなる共通部分a2b1_1「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」に相当する単語を削除する。
つまり、置換部202は、係り受け関係単語列b1(201):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”を出力する。
この置換部202からの出力の一例を以下に示す。
Figure 0005629701
一方、共通部分抽出部201は、係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して、それぞれの特徴語において共通する特徴語が無い場合、共通部分抽出部201は、これら係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、共通する単語からなる共通部分abを取得し、算出部300の重み算出部301に出力する。
共通部分抽出部201は、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、既に特徴語からなる共通部分ab_1を抽出している場合、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2とを合わせて共通部分abを作成し、重み算出部301に出力する。
なお、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出しない場合であって、特徴語からなる共通部分ab_1を抽出した場合、共通部分抽出部201は、特徴語からなる共通部分ab_1を共通部分abとして、重み算出部301に出力する。
本実施形態において、共通部分抽出部201は、特徴語からなる共通部分a2b1_1「ユーザ管理サーバ(特徴語を構成する単語列ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))と特徴語以外の単語列に含まれる共通部分a2b1_2「に(19)/に(34)」とを合わせて、共通部分a2b1「ユーザ管理サーバ(特徴語を構成する単語列ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))/に(19)/に(34)」を作成し、重み算出部301に出力する。
また、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分a2b1_2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」を、共通部分a2b1として、重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、取得した共通部分を重み算出部301に出力する。重み算出部301は、複数の共通部分を入力した場合、複数の共通部分のうち、最も重みが重い共通部分を判定する。
重み算出部301は、単語毎に予め決められている重要度を記憶部400から参照して、照合部200から入力する共通部分a1b2および共通部分a2b1に基づき、式(2)に従って、共通部分a1b2および共通部分a2b1に含まれる全ての単語の重みW(a1b2)および重みW(a2b1)をそれぞれ算出する。また、重み算出部301は、共通部分abに特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。
重み算出部301は、共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と算出する。
Figure 0005629701
そして、重み算出部301は、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」に基づき、以下のようにして、共通部分a1b2に含まれる単語の重みW(a1b2)を算出する。
本実施形態に係る重み算出部301は、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」を構成する単語のうち、共通部分a2b1:“ユーザ管理サーバ(ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))/に(19)/に(34)”に含まれる単語を削除した単語について重みW(a1b2)を算出する。
ここで、共通部分a2b1:“ユーザ管理サーバ(ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))/に(19)/に(34)”と、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」とには、共に、ユーザという文字が含まれている。しかし、このユーザという文字は、その後ろのカッコ内( )に記載されているように、文字列a,bにおける位置が異なるため、異なる単語である。よって、重み算出部301が、それぞれの重みを算出したとしても、重複して重みを算出することにはならない。従って、重み算出部301は、このユーザについては削除せず、重みW(a1b2)を、以下のようにして算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5と算出する。
Figure 0005629701
よって、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5とを比較して、共通部分a2b1に含まれる全ての単語の重みW(a2b1)の方が重みが重いと判定する。
この重み算出部301は、最も重みが重いと判定した共通部分a2b1を、置換部202に出力する。
置換部202は、共通部分抽出部201から重みが最も重いと判定された共通部分a2b1が入力された場合、この共通部分a2b1を構成する単語を係り受け関係単語列a2,b1から削除する。この置換部202によって共通部分a2b1が削除された例を以下に示す。この置換部202は、共通部分a2b1を削除した係り受け関係単語列a2(301)、b1(301)を共通部分抽出部201に出力する。
Figure 0005629701
具体的に説明すると、置換部202は、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”から、特徴語からなる共通部分a2b1_1「ユーザ管理サーバ」の特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」に相当する単語を削除する。
つまり、置換部202は、係り受け関係単語列a2(201):“「に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を出力する。
また、置換部202は、係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”から、特徴語からなる共通部分a2b1_1「ユーザ管理サーバ」の特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」に相当する単語を削除する。
つまり、置換部202は、係り受け関係単語列b1(201):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”を出力する。
共通部分抽出部201は、上に示したとおり、置換部202から入力する共通部分a2b1が置き換えられた係り受け関係単語列a2(301)、b1(301)と、特徴語判定部103から入力する係り受け関係単語列a1(101)、b2(101)とに基づき、共通部分abを取得する。つまり、共通部分抽出部201は、重みが最も重い共通部分を取得した場合、この共通部分を構成する単語を係り受け関係単語列から削除して、さらに共通部分があるか否かを判定する。さらに共通部分があった場合、この共通部分を取得して重み算出部301に出力する。ここで、さらに複数の共通部分があった場合、共通部分抽出部201は、上述と同様にして、この複数の共通部分のうち、重みが最も重い共通部分を取得し、重み算出部301と置換部202を出力する。置換部202は、入力した共通部分を削除した係り受け関係単語列を共通部分抽出部201に出力する。共通部分抽出部201は、重み算出部301に出力した共通部分に相当する単語が置換部202によって削除された後の係り受け関係単語列同士を比較して共通部分を取得する。共通部分抽出部201は、このようにして、共通部分が取得されなくなるまで、この作業を繰り返す。
本実施形態において、共通部分抽出部201は、上に示す通り、係り受け関係単語列a1(101)、a2(301)、b1(301)、b2(101)をそれぞれ比較する。それぞれの単語列において共通する特徴語が無いため、共通部分抽出部201は、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。係り受け関係単語列a1(101)と係り受け関係単語列b2(101)とに、特徴語以外のその他の単語同士で共通する単語があるため、共通部分抽出部201は、共通する単語からなる共通部分a1b2を取得し、算出部300の重み算出部301に出力する。この共通部分抽出部201によって取得される共通部分a1b2の一例を示す。
Figure 0005629701
置換部202は、共通部分抽出部201から共通部分a1b2が入力された場合、この共通部分a1b2を構成する単語を、係り受け関係単語列a1(101),b2(101)のそれぞれから削除する。具体的に説明すると、置換部202は、係り受け関係単語列a1(101),b2(101)のそれぞれから共通部分a2b1を削除した係り受け関係単語列a1(401)、b2(401)を共通部分抽出部201に出力する。この置換部202によって共通部分a1b2が削除された例を以下に示す。
Figure 0005629701
共通部分抽出部201は、上に示したとおり、置換部202から入力する共通部分a1b2が置き換えられた係り受け関係単語列a1(401)、b2(401)と、前回置換部202によって置き換えられた係り受け関係単語列a2(301)、b1(301)とに基づき、共通部分abがあるか否かを判定する。
ここでは、共通部分が取得されないため、共通部分抽出部201は、共通部分を取得する作業を終了させる。
また、形態素解析部101は、入力する文字列aを、形態素(単語)単位に分解し、この分解後の単語の集合からなる単語列a(101)を連結文字列検出部102に出力する。本実施形態において、形態素解析部101は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」を連結文字列検出部102に出力する。
連結文字列検出部102は、形態素解析部101から入力する単語列a(101)に基づき、同一文節中において連続する単語(名詞)を連結文字列として取得する。本実施形態において、連結文字列検出部102は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」から、連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」を取得する。この連結文字列検出部102は、単語列a(101)に連結文字列α1を対応付けた情報を、特徴語判定部103に出力する。
特徴語判定部103は、連結文字列検出部102から入力する単語列a(101)に、予め決められた特徴語を構成する単語が含まれているか否かを判定する。単語列a(101)から取得される連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」を特徴語と判定し、単語列a(101)に対応付けて照合部200の置換部202に出力する。
本実施形態において、特徴語判定部103は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を照合部200の置換部202に出力する。
置換部202は、特徴語取得部100_3の特徴語判定部103から入力する単語列a(101)に特徴語が付加されている場合、単語列a(101)に特徴語を構成する単語が含まれているか否かを判定する。単語列a(101)に特徴語を構成する単語が含まれている場合、置換部202は、単語列a(101)から特徴語を構成する単語を削除し、共通語を付加して算出部300に出力する。一方、単語列a(101)に特徴語を構成する単語が含まれていない場合、あるいは、単語列a(101)に特徴語が付加されていない場合、置換部202は、単語列a(101)の一部を特徴語に置換えることなく、特徴語判定部103から入力する単語列a(101)(+特徴語)をそのまま算出部300に出力する。つまり、置換部202は、単語列a(101)に特徴語を構成する単語が含まれている場合、この特徴語を構成する単語を特徴語に置き換える。
本実施形態において、置換部202は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”に基づき、単語列a(101)内の特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」に相当する単語を削除する。つまり、置換部202は、単語列a(501):“ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を算出部300に出力する。この置換部202から出力される単語列a(501)の一例を以下に示す。
Figure 0005629701
重み算出部301は、単語毎に予め決められている重要度を記憶部400から参照して、照合部200から入力する共通部分a1b2および共通部分a2b1に基づき、式(2)に従って、共通部分a1b2および共通部分a2b1に含まれる全ての単語の重みW(a1b2)および重みW(a2b1)をそれぞれ算出する。また、重み算出部301は、共通部分abに特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。
この重み算出部301は、共通部分が複数ある場合、重複している単語についての重みを重複して算出しないように、いずれか一方の共通部分から重複している単語を削除して、重みを算出する。
本実施形態において、重み算出部301は、重みが大きい順に重みの算出を行う。重み算出部301は、例えば、共通部分に含まれる特徴語の文字数が多い順に重みの算出を行う。
重み算出部301は、共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と算出する。
Figure 0005629701
そして、重み算出部301は、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」に基づき、以下のようにして、共通部分a1b2に含まれる単語の重みW(a1b2)を算出する。
本実施形態に係る重み算出部301は、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」を構成する単語のうち、共通部分a2b1:“ユーザ管理サーバ(ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))/に(19)/に(34)”に含まれる単語を削除した単語について重みW(a1b2)を算出する。
ここで、共通部分a2b1:“ユーザ管理サーバ(ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33))/に(19)/に(34)”と、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」とには、共に、ユーザという文字が含まれている。しかし、このユーザという文字は、その後ろのカッコ内( )に記載されているように、文字列a,bにおける位置が異なるため、異なる単語である。よって、重み算出部301が、それぞれの重みを算出したとしても、重複して重みを算出することにはならない。従って、重み算出部301は、このユーザについては削除せず、重みW(a1b2)を、以下のようにして算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5と算出する。
Figure 0005629701
この重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5を加算して、1つの共通部分abに含まれる全ての単語の重みW(ab)=90.4を算出する。
重み算出部301は、記憶部400の単語重要度テーブル402に記憶されている重要度を参照して、照合部200の置換部202から入力する特徴語の置き換え処理後の単語列a(501)に基づき、式(3)に従って、この特徴語の置き換え処理後の単語列a(501):“ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”に含まれる単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(501)に特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103は、特徴語の置き換え処理後の単語列a(501)に含まれる単語の重みW(aa)=347.5と算出する。
Figure 0005629701
類似度算出部302は、共通部分abに含まれる単語の重みW(ab)=90.4と、特徴語を構成する単語が特徴語に置き換えた単語列aに含まれる単語の重みW(aa)=347.5とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を、以下のようにして算出する。
Figure 0005629701
次に、図8を参照して、本実施形態に係る類似度算出装置3における類似度算出方法の一例について説明する。図8は、本実施形態に係る類似度算出装置3における類似度算出方法の一例を示すフローチャートである。
(ステップST11)
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。そして、形態素解析部101は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」と、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを、連結文字列検出部102に出力する。
(ステップST12)
そして、係り受け関係単語列作成部104は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」に基づき、係り受け関係単語列a1(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/記録(20)/さ(21)/れる(22)」と、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」とを作成する。
また、係り受け関係単語列作成部104は、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」に基づき、係り受け関係単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」と、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを作成する。
(ステップST13)
次いで、連結文字列検出部102は、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」と係り受け関係単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」のそれぞれ、連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」と連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」を取得する。また、連結文字列検出部102は、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」から連結文字列β2「ユーザ(35)/情報(36)」を取得する。
この連結文字列検出部102は、係り受け関係単語列a2(101)に連結文字列α1を対応付けた情報と、係り受け関係単語列b1(101)に連結文字列β1を対応付けた情報と、係り受け関係単語列b2(101)に連結文字列β2を対応付けた情報を、特徴語判定部103に出力する。
特徴語判定部103は、係り受け関係単語列a2(101)に連結文字列α1を対応付けた情報と、係り受け関係単語列b1(101)に連結文字列β1を対応付けた情報と、係り受け関係単語列b2(101)に連結文字列β2を対応付けた情報のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。
係り受け関係単語列a2(101)から取得される連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列α1「ユーザ(16)/管理(17)/サーバ(18)」を特徴語と判定し、係り受け関係単語列a2(101)に特徴語として対応付けて照合部200に出力する。この特徴語判定部103は、例えば、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を出力する。
また、係り受け関係単語列b1(101)から取得される連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列β1「ユーザ(31)/管理(32)/サーバ(33)」を特徴語と判定し、係り受け関係単語列b1(101)に特徴語として対応付けて照合部200に出力する。この特徴語判定部103は、例えば、係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”を出力する。
一方、係り受け関係単語列b2(101)から取得される連結文字列β2「ユーザ(35)/情報(36)」は一般連結文字列データベース401に登録されている。このため、特徴語判定部103は、この連結文字列β2「ユーザ(35)/情報(36)」を特徴語ではないと判定する。よって、特徴語判定部103は、係り受け関係単語列b2(101)に特徴語を対応付けることなく、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」を照合部200の共通部分抽出部201に出力する。
(ステップST14)
次いで、共通部分抽出部201は、特徴語取得部100_3の特徴語判定部103から出力される係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)を、それぞれ比較し、比較した双方に共通する特徴語からなる共通部分ab_1があるか否かを判定する。
(ステップST15)
本実施形態において、共通部分抽出部201は、係り受け関係単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”と係り受け関係単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”から、それぞれの特徴語において共通する共通部分a2b1_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」”を共通する単語として取得する。そして、共通部分抽出部201は、取得した共通部分a2b1_1を置換部202に出力する。
(ステップST16)
次いで、置換部202は、特徴語判定部103から入力する係り受け関係単語列のうち、この特徴語からなる共通部分a2b1_1が含まれていた係り受け関係単語列a2(101)、b1(101)から、特徴語からなる共通部分a2b1_1を構成する単語列を、特徴語に置き換える。そして、この置換部202は、共通する特徴語を構成する単語列が特徴語に置換えられた後の係り受け関係単語列a2(201)、b1(201)を、再び、共通部分抽出部201に戻して出力する。
つまり、置換部202は、係り受け関係単語列a2(201):“「に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を共通部分抽出部201に出力する。また、置換部202は、係り受け関係単語列b1(201):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(31)/管理(32)/サーバ(33)」)”を共通部分抽出部201に出力する。
(ステップST17)
一方、ステップST14においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、あるいは、ステップST16において置換部202から特徴語に置換えられた後の係り受け関係単語列が入力された場合、共通部分抽出部201は、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
(ステップST18)
特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、この特徴語以内の単語からなる共通部分ab_2を取得し、置換部202に出力する。
例えば、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、既に特徴語からなる共通部分ab_1を抽出している場合、共通部分抽出部201は、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2とを合わせて共通部分abを作成し、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
一方、特徴語以外の単語列に含まれる共通部分ab_2を抽出しない場合であって、特徴語からなる共通部分ab_1を抽出した場合、共通部分抽出部201は、特徴語からなる共通部分ab_1を共通部分abとして、重み算出部301に出力する。
そして、共通部分抽出部201は、取得した共通部分abを重み算出部301に出力する。複数の共通部分を取得した場合、共通部分抽出部201は、複数の共通部分のうち、最も重みが重いと判定した共通部分を重み算出部301に出力する。
(ステップST19)
次いで、置換部202は、共通部分抽出部201によって取得された共通部分abであって、重み算出部301に出力された共通部分ab(つまり、重み算出部301によって重みが算出される共通部分ab)を構成する単語を係り受け関係単語列から削除する。
そして、置換部202は、共通部分abを構成する単語を削除した係り受け関係単語列を共通部分抽出部201に出力する。
(ステップST20)
次いで、共通部分抽出部201は、共通部分abを構成する単語を削除した係り受け関係単語列等をそれぞれ比較して共通する単語があるか否かを判定する。なお、共通部分abを含まない係り受け関係単語列がある場合、共通部分抽出部201は、特徴語取得部100_3から出力される単語列をそれぞれ比較する。
つまり、共通部分抽出部201は、ステップST14に戻って、係り受け関係単語列a1、a2、b1、b2の共通部分更新後の単語列を、それぞれ比較し、比較した双方に共通する特徴語からなる共通部分ab_1があるか否かを判定する。この共通部分更新後の単語列とは、重み算出部301によって重みが算出される共通部分abを含む場合、この共通部分abを構成する単語を削除した係り受け関係単語列のことである。
特徴語からなる共通部分ab_1がなく、かつ、特徴語以外の単語を含む共通部分ab_2がない場合、共通部分抽出部201は、共通部分abを取得することができない。
この場合、共通部分抽出部201は、共通部分abの抽出を終了すると判定する。
このようにして、共通部分抽出部201は、共通部分abが取得されなくなるまで、ステップST14〜ST20の作業を繰り返す。
本実施形態において、共通部分抽出部201は、共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”と、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」とを、重み算出部301に出力する。
(ステップST21)
そして、重み算出部301は、共通部分抽出部201から入力する共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”に基づき、記憶部400の単語重要度テーブル402を参照して、共通部分a2b1に含まれる単語の重みW(a2b1)=72.9を算出する。
次いで、重み算出部301は、共通部分a1b2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」に基づき、記憶部400の単語重要度テーブル402を参照して、共通部分a2b1に含まれる単語の重みW(a1b2)=17.5を算出する。
そして、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5を加算して、1つの共通部分abに含まれる全ての単語の重みW(ab)=90.4を算出する。
また、重み算出部301は、記憶部400の単語重要度テーブル402を参照して、照合部200の置換部202から入力する特徴語の置き換え処理後の単語列a(501):“ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”に含まれる単語の重みW(aa)を算出する。本実施形態において、特徴語の置き換え処理後の単語列aに含まれる全ての単語の重みW(aa)=347.5である。
(ステップST22)
次いで、類似度算出部302は、共通部分abに含まれる単語の重みW(ab)=90.4と、特徴語を構成する単語が特徴語に置き換えた単語列aに含まれる単語の重みW(aa)=347.5とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を算出する。本実施形態において、文字列aと文字列bの類似度S(ab)=0.26014・・・である。
<第4実施形態>
次に、図9を参照して、本発明の第2実施形態に係る類似度算出装置4の一例について説明する。図9は、本実施形態に係る類似度算出装置4の一例を示す機能ブロック図である。なお、図9は、図1に示す構成の詳細について説明するための図である。第1実施形態と同様の機能を有する構成については、同一の符号を付して詳細な説明は省略する。
図9に示す通り、本実施形態に係る類似度算出装置4は、特徴語取得部100_4と、照合部200と、算出部300と、記憶部400_4を備える。特徴語取得部100_4は、形態素解析部101と、特徴語判定部103_4と、係り受け関係単語列作成部104を備える。記憶部400_4は、単語重要度テーブル402と、同義語テーブル403を備える。つまり、本実施形態に係る類似度算出装置4は、第1実施形態に係る類似度算出装置1と比べて、特徴語取得部100_4が連結文字列検出部102を備えていない点、特徴語取得部100_4が係り受け関係単語列作成部104を備えている点、記憶部400_4が一般連結文字列データベース401に換えて同義語テーブル403を備えている点が異なる。また、本実施形態に係る特徴語取得部100_4は、特徴語として同義語を取得する点が第1実施形態に係る特徴語取得部100と異なる。それ以外の構成については、同様の機能を有するため、同一の符号を付して詳細な説明は省略する。
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。この形態素解析部101は、単語単位に分解した後、文字列において各単語の並び位置を示す情報を取得し、各単語に対応づける。
本実施形態において、形態素解析部101は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」と、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを、連結文字列検出部102に出力する。なお、この単語列に含まれる単語には、それぞれの品詞を示す情報が対応付けられている。
係り受け関係単語列作成部104は、形態素解析部101から入力する単語列a(101)と単語列b(101)に基づき、各単語の品詞に従って、文節毎の係り受け(修飾)関係を判定する。この係り受け関係単語列作成部104は、係り受け関係のある文節を構成して係り受け関係単語列を作成する。なお、係り受け関係単語列作成部104は、係り受け関係に従って、複数の係り受け関係単語列が作成できる場合、全ての係り受け関係単語列を作成する。
本実施形態において、係り受け関係単語列作成部104は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」に基づき、係り受け関係単語列a1(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/記録(20)/さ(21)/れる(22)」と、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」とを作成する。
また、係り受け関係単語列作成部104は、単語列b(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」に基づき、係り受け関係単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」と、係り受け関係単語列b2(101)「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」とを作成する。
以下に、本実施形態に係る係り受け関係単語列作成部104によって作成される係り受け関係単語列の一例を示す。
Figure 0005629701
特徴語判定部103_4は、係り受け関係単語列作成部104から入力する係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。本実施形態において、特徴語とは、照合対象や被照合対象において利用される類似語である。特徴語判定部103_4は、記憶部400_4の同義語テーブル403に登録されている類似語と同一の単語を、特徴語として取得する。
本実施形態において、特徴語判定部103_4は、係り受け関係単語列a1(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/記録(20)/さ(21)/れる(22)」から、代表語「格納」に対応付けられている類似語「記録(20)」を特徴語として取得する。この特徴語判定部103_4は、取得した特徴語である類似語「記録(20)」を単語列a1(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_4は、単語列a1(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/記録(20)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語「記録(20)」)”を出力する。
また、特徴語判定部103_4は、係り受け関係単語列a2(101)「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」から、代表語「格納」に対応付けられている類似語「記録(20)」を特徴語として取得する。この特徴語判定部103_4は、取得した特徴語である類似語「記録(20)」を単語列a2(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_4は、単語列a2(101):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語「記録(20)」)”を出力する。
さらに、特徴語判定部103_4は、単語列b1(101)「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」から、代表語「格納」に対応付けられている類似語「格納(38)」を特徴語として取得する。この特徴語判定部103_4は、取得した特徴語である類似語「格納」を単語列b1(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_4は、単語列b1(101):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/格納(38)/する(39)」+特徴語「格納」(特徴語を構成する単語「格納(38)」)”を出力する。
さらにまた、特徴語判定部103_4は、単語列b2(101):「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」から、代表語「格納」に対応付けられている類似語「格納(38)」を特徴語として取得する。この特徴語判定部103_4は、取得した特徴語である類似語「格納」を単語列b2(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_4は、単語列b2(101):“「ユーザ(35)/情報(36)/を(37)/格納(38)/する(39)」+特徴語「格納」(特徴語を構成する単語「格納(38)」)”を出力する。この特徴語判定部103_4からの出力の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、特徴語取得部100_4の特徴語判定部103_4から出力される係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)を、それぞれ比較し、比較した双方に共通する単語があるか否かを判定する。
この共通部分抽出部201は、はじめに、それぞれの係り受け関係単語列において共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。本実施形態において、共通部分抽出部201は、それぞれの係り受け関係単語列同士に共通する特徴語として「格納」を取得する。
また、共通部分抽出部201は、特徴語からなる共通部分ab_1があるか否かを判定した後、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2があるか否かを判定する。この特徴語以外の単語列において共通する単語からなる共通部分ab_2があると判定した場合、共通部分抽出部201は、この特徴語以内の単語列からなる共通部分ab_2を取得し、置換部202に出力する。
ここで、置換部202によって、特徴語からなる共通部分ab_1を含む係り受け関係単語列から、特徴語からなる共通部分ab_1を構成する単語が削除されている場合、共通部分抽出部201は、比較対象として、この特徴語からなる共通部分ab_1の置換え処理がなされた後の係り受け関係単語列を比較対象として決定する。一方、特徴語からなる共通部分ab_1を含まない係り受け関係単語列は置換え処理が実行されない。このため、共通部分抽出部201は、置換え処理前の特徴語判定部103_4から出力される係り受け関係単語列を比較対象として決定する。
なお、本実施形態において、共通部分抽出部201は、受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較する度に、特徴語からなる共通部分ab_1があるか否かを判定し、その後、それぞれの特徴語以外の単語列において共通する単語からなる共通部分ab_2があるか否かを判定する。
具体的に説明すると、共通部分抽出部201は、係り受け関係単語列a1(101)と係り受け関係単語列b1(101)から共通部分a1b1_1:格納(記録(20)/格納(38))を取得する。
次いで、共通部分抽出部201は、係り受け関係単語列a1(201)と係り受け関係単語列b1(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a1b1_2を取得し、置換部202に出力する。
また、共通部分抽出部201は、係り受け関係単語列a1(101)と係り受け関係単語列b2(101)から共通部分a1b2_1:格納(記録(20)/格納(38))を取得する。
次いで、共通部分抽出部201は、係り受け関係単語列a1(201)と係り受け関係単語列b2(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a1b2_2を取得し、置換部202に出力する。
さらに、共通部分抽出部201は、係り受け関係単語列a2(101)と係り受け関係単語列b1(101)から共通部分a2b1_1:格納(記録(20)/格納(38))を取得する。
次いで、共通部分抽出部201は、係り受け関係単語列a2(201)と係り受け関係単語列b1(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b1_2を取得し、置換部202に出力する。
さらにまた、共通部分抽出部201は、係り受け関係単語列a2(101)と係り受け関係単語列b2(101)から共通部分a2b2_1:格納(記録(20)/格納(38))を取得する。
次いで、共通部分抽出部201は、係り受け関係単語列a2(201)と係り受け関係単語列b2(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b2_2を取得し、置換部202に出力する。
この共通部分抽出部201によって取得される特徴語からなる共通部分ab_1の一例を以下に示す。
Figure 0005629701
また、共通部分抽出部201によって取得される特徴語以外の単語列に含まれる共通部分ab_2の一例を以下に示す。
Figure 0005629701
つまり、共通部分抽出部201は、全ての係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して特徴語からなる共通部分があるか否かを判定する。この共通部分抽出部201は、特徴語において共通する部分がある場合、この特徴語からなる共通部分を取得する。
置換部202は、共通部分抽出部201から特徴語からなる共通部分a1b1_1、a1b2_1、a2b1_1、a2b2_1が入力された場合、特徴語取得部100_4の特徴語判定部103_4から入力する係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)から、特徴語からなる共通部分a1b1_1、a1b2_1、a2b1_1、a2b2_1を削除する。
つまり、置換部202は、共通部分a1b1_1、a1b2_1に対応する記憶(20)を係り受け関係単語列作成部a1(101)から削除し、係り受け関係単語列a1(201):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語列「記憶(20))”を出力する。
また、置換部202は、共通部分a2b1_1、a2b2_1に対応する記憶(20)を係り受け関係単語列作成部a2(101)から削除し、係り受け関係単語列a2(201):“「ユーザ(16)/管理(17)/サーバ(18)/に(19)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語列「記憶(20))”を出力する。
さらに、置換部202は、共通部分a1b1_1、a2b1_1に対応する記憶(20)を係り受け関係単語列作成部b1(101)から削除し、係り受け関係単語列b1(201):“「ユーザ(31)/管理(32)/サーバ(33)/に(34)/する(39)」+特徴語「格納」(特徴語を構成する単語列「格納(38))”を出力する。
また、置換部202は、共通部分a1b2_1、a2b2_1に対応する記憶(20)を係り受け関係単語列作成部b2(101)から削除し、係り受け関係単語列b2(201):“「ユーザ(35)/情報(36)/を(37)/する(39)」+特徴語「格納」(特徴語を構成する単語列「格納(38))”を出力する。
この置換部202からの出力の一例を以下に示す。
Figure 0005629701
一方、共通部分抽出部201は、係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して、それぞれの特徴語において共通する特徴語が無い場合、共通部分抽出部201は、これら係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)をそれぞれ比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、共通する単語からなる共通部分abを取得し、算出部300の重み算出部301に出力する。
共通部分抽出部201は、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、既に特徴語からなる共通部分ab_1を抽出している場合、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2とを合わせて共通部分abを作成し、重み算出部301に出力する。
なお、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出しない場合であって、特徴語からなる共通部分ab_1を抽出した場合、共通部分抽出部201は、特徴語からなる共通部分ab_1を共通部分abとして、重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
Figure 0005629701
共通部分抽出部201は、取得した共通部分を重み算出部301に出力する。重み算出部301は、複数の共通部分を入力した場合、複数の共通部分のうち、最も重みが重い共通部分を判定する。
重み算出部301は、単語毎に予め決められている重要度を記憶部400_4から参照して、照合部200から入力する共通部分a1b1、共通部分a1b2、共通部分a2b1および共通部分a2b1に基づき、式(2)に従って、これら共通部分a1b1、共通部分a1b2、共通部分a2b1および共通部分a2b1に含まれる全ての単語の重みW(a1b1)、重みW(a1b2)、重みW(a2b1)および重みW(a2b2)をそれぞれ算出する。また、重み算出部301は、共通部分abに特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。
重み算出部301は、共通部分a1b1:“格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(31)”に基づき、以下のようにして、共通部分a1b1に含まれる単語の重みW(a1b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a1b1に含まれる全ての単語の重みW(a1b1)=20.5と算出する。
Figure 0005629701
また、重み算出部301は、共通部分a1b2:“格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(35)/情報(14)/情報(36)”に基づき、以下のようにして、共通部分a1b2に含まれる単語の重みW(a1b2)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=38.5と算出する。
Figure 0005629701
さらにまた、重み算出部301は、共通部分a2b1:“格納(記録(20)/格納(38))/ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=83.6と算出する。
Figure 0005629701
さらにまた、重み算出部301は、共通部分a2b2:“格納(記録(20)/格納(38))/ユーザ(16)/ユーザ(35)”に基づき、以下のようにして、共通部分a2b2に含まれる単語の重みW(a2b2)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b2に含まれる全ての単語の重みW(a2b2)=20.5と算出する。
Figure 0005629701
この重み算出部301は、共通部分a1b1に含まれる全ての単語の重みW(a1b1)=20.5、部分a1b2に含まれる全ての単語の重みW(a1b2)=38.5、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=83.6と、部分a2b2に含まれる全ての単語の重みW(a2b2)=20.5を比較して、最も重みが重い重みは、共通部分a2b1に含まれる全ての単語の重みW(a2b1)であると判定する。
この重み算出部301は、最も重みが重いと判定した共通部分a2b1を、置換部202に出力する。
置換部202は、共通部分抽出部201から重みが最も重いと判定された共通部分a2b1が入力された場合、この共通部分a2b1を構成する単語を係り受け関係単語列a2,b1から削除する。この置換部202によって共通部分a2b1が削除された例を以下に示す。この置換部202は、共通部分a2b1を削除した係り受け関係単語列a2(301)、b1(301)を共通部分抽出部201に出力する。
Figure 0005629701
共通部分抽出部201は、上に示したとおり、置換部202から入力する共通部分a2b1が置き換えられた係り受け関係単語列a2(301)、b1(301)と、特徴語判定部103_4から入力する係り受け関係単語列a1(101)、b2(101)とに基づき、共通部分abを取得する。つまり、共通部分抽出部201は、重みが最も重い共通部分を取得した場合、この共通部分を構成する単語を係り受け関係単語列から削除して、さらに共通部分があるか否かを判定する。さらに共通部分があった場合、この共通部分を取得して重み算出部301に出力する。ここで、さらに複数の共通部分があった場合、共通部分抽出部201は、上述と同様にして、この複数の共通部分のうち、重みが最も重い共通部分を取得し、重み算出部301と置換部202を出力する。置換部202は、入力した共通部分を削除した係り受け関係単語列を共通部分抽出部201に出力する。共通部分抽出部201は、重み算出部301に出力した共通部分に相当する単語が置換部202によって削除された後の係り受け関係単語列同士を比較して共通部分を取得する。共通部分抽出部201は、このようにして、共通部分が取得されなくなるまで、この作業を繰り返す。
本実施形態において、共通部分抽出部201は、上に示す通り、係り受け関係単語列a1(101)、a2(301)、b1(301)、b2(101)をそれぞれ比較する。この共通部分抽出部201は、係り受け関係単語列a1(101)とb2(101)とに共通する共通部分a1b2:格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(35)/情報(14)/情報(36)を取得し、算出部300の重み算出部301に出力する。この共通部分抽出部201によって取得される共通部分a1b2の一例を示す。
Figure 0005629701
置換部202は、共通部分抽出部201から共通部分a1b2が入力された場合、この共通部分a1b2を構成する単語を、係り受け関係単語列a1(101),b2(101)のそれぞれから削除する。具体的に説明すると、置換部202は、係り受け関係単語列a1(101),b2(101)のそれぞれから共通部分a2b1を削除した係り受け関係単語列a1(401)、b2(401)を共通部分抽出部201に出力する。この置換部202によって共通部分a1b2が削除された例を以下に示す。
Figure 0005629701
共通部分抽出部201は、上に示したとおり、置換部202から入力する共通部分a1b2が置き換えられた係り受け関係単語列a1(401)、b2(401)と、前回置換部202によって置き換えられた係り受け関係単語列a2(301)、b1(301)とに基づき、共通部分abがあるか否かを判定する。
ここでは、共通部分が取得されないため、共通部分抽出部201は、共通部分を取得する作業を終了させる。
また、形態素解析部101は、入力する文字列aを、形態素(単語)単位に分解し、この分解後の単語の集合からなる単語列a(101)を係り受け関係単語列作成部104に出力する。本実施形態において、形態素解析部101は、単語列a(101)「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」を係り受け関係単語列作成部104に出力する。
特徴語判定部103_4は、係り受け関係単語列作成部104から入力する単語列a(101)に、予め決められた特徴語を構成する単語が含まれているか否かを判定する。単語列a(101)から取得される記録(20)は、同義語テーブル403に登録されている。このため、特徴語判定部103_4は、この記録(20)を特徴語と判定し、単語列a(101)に対応付けて照合部200の置換部202に出力する。
本実施形態において、特徴語判定部103_4は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語列「記録(20)」)”を照合部200の置換部202に出力する。
置換部202は、特徴語取得部100_4の特徴語判定部103_4から入力する単語列a(101)に特徴語が付加されている場合、単語列a(101)に特徴語を構成する単語が含まれているか否かを判定する。単語列a(101)に特徴語を構成する単語が含まれている場合、置換部202は、単語列a(101)から特徴語を構成する単語を削除し、共通語を付加して算出部300に出力する。一方、単語列a(101)に特徴語を構成する単語が含まれていない場合、あるいは、単語列a(101)に特徴語が付加されていない場合、置換部202は、単語列a(101)の一部を特徴語に置換えることなく、特徴語判定部103_4から入力する単語列a(101)(+特徴語)をそのまま算出部300に出力する。つまり、置換部202は、単語列a(101)に特徴語を構成する単語が含まれている場合、この特徴語を構成する単語を特徴語に置き換える。
本実施形態において、置換部202は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語「記録(20)」)”に基づき、単語列a(101)内の特徴語を構成する単語「記録(20)」に相当する単語を削除する。つまり、置換部202は、単語列a(501):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語「記録(20)」)”を算出部300に出力する。この置換部202から出力される単語列a(501)の一例を以下に示す。
Figure 0005629701
重み算出部301は、単語毎に予め決められている重要度を記憶部400_4から参照して、照合部200から入力する共通部分a1b2および共通部分a2b1に基づき、式(2)に従って、共通部分a1b2および共通部分a2b1に含まれる全ての単語の重みW(a1b2)および重みW(a2b1)をそれぞれ算出する。また、重み算出部301は、共通部分abに特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。
この重み算出部301は、共通部分が複数ある場合、重複している単語についての重みを重複して算出しないように、いずれか一方の共通部分から重複している単語を削除して、重みを算出する。
本実施形態において、重み算出部301は、重みが大きい順に重みの算出を行う。重み算出部301は、例えば、共通部分に含まれる特徴語の文字数が多い順に重みの算出を行う。
重み算出部301は、共通部分a2b1:“格納(記録(20)/格納(38))/ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=83.6と算出する。
Figure 0005629701
そして、重み算出部301は、共通部分a1b2:“格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(35)/情報(14)/情報(36)”に基づき、以下のようにして、共通部分a1b2に含まれる単語の重みW(a1b2)を算出する。
本実施形態に係る重み算出部301は、共通部分a1b2:“格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(35)/情報(14)/情報(36)”を構成する単語のうち、共通部分a2b1:“格納(記録(20)/格納(38))/ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)/に(19)/に(34)”に含まれる単語を削除した単語について重みW(a1b2)を算出する。つまり、重み算出部301は、共通部分a1b2:“格納(記録(20)/格納(38))/ユーザ(11)/ユーザ(35)/情報(14)/情報(36)”から共通部分a2b1に含まれる格納(記録(20)/格納(38))を削除した単語「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」についての重みW(a1b2)を、以下のようにして算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=2.8と算出する。
Figure 0005629701
この重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=83.6と、共通部分a1b2に含まれる全ての単語の重みW(a1b2)=17.5を加算して、1つの共通部分abに含まれる全ての単語の重みW(ab)=101.1を算出する。
また、重み算出部301は、記憶部400_4の単語重要度テーブル402に記憶されている重要度を参照して、照合部200の置換部202から入力する特徴語の置き換え処理後の単語列a(501)に基づき、式(3)に従って、この特徴語の置き換え処理後の単語列a(501):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語「記録(20)」)”に含まれる全ての単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(501)に特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103_4は、特徴語の置き換え処理後の単語列a(501)に含まれる単語の重みW(aa)=310.0と算出する。
Figure 0005629701
類似度算出部302は、共通部分abに含まれる全ての単語の重みW(ab)と、特徴語の置き換え処理後の単語列a(501)に含まれる全ての単語の重みW(aa)とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を、以下のようにして算出する。
Figure 0005629701
なお、本実施形態に係る類似度算出装置4は、上述の第3実施形態において説明した類似度算出方法と同様のステップに従って、類似度S(ab)を算出するため、詳細な説明は省略する。ただし、本実施形態に係る類似度算出装置4は、連結文字列検出部102を備えていないため、図8に示すステップST13の連結文字列の検出ステップを含まない点が異なる。
例えば、ソフトウェア開発の過程で生成される設計書や試験項目票、マニュアルなどの各種文書に点在する関連する文同士は、相互に同じ用語を含むなど類似性が高いことが経験的に分かっている。ある工程の開発ドキュメントのレビューでは、前の工程の開発ドキュメントに記載された内容が漏れなく反映されていることを確認する必要がある。また、前工程で仕様変更が発生すると後工程の関連箇所を追跡し、整合性を保たなければならない。
ところが、開発規模が大きくなればなるほど開発ドキュメントの分量も増大するので、レビュー箇所や関連箇所を探し出すことに多くの時間を割かなければならなくなる。このようなときに、本発明に係る類似度算出装置1〜4を利用することにより、前工程のドキュメント中の文と後工程のドキュメントの各文を比較し、類似度の高い文をレビュー対象箇所や関連箇所として提示することができる。これにより、捜し出す時間を短縮することができる。
また、ソフトウェア開発の過程で生成される各種文書中の文の重要な語は複合語であることが多いため、単語の一致度に着目した類似度の判定では、複合語を構成する各単語の一致度の合計として類似度に反映される。
開発ドキュメントのような技術文書では、例えば、‘加入者管理サーバ’と‘事業者管理サーバ’のように構成する単語の一部だけが異なる複合語も多くあるため、感覚的な類似性との差が大きくなる傾向にある。また、略称を使うなど同じ事項に対して複数種類の記述が見られるため、同義語は類似度の計算に反映させるべきであるが、類義語は区別すべきケースが多い。さらに,複数の作業者により記述されることで、関連する内容であっても用語の使いかたや言い回しに多様性が見られることがあり、厳密なキーワードマッチングではうまくいかないことが多い。従来技術ではこのような点への考慮に欠けている。
一方、従来技術では構文の類似性を重要視するものがある。これは、機械翻訳のための例文を見付ける目的での類似文検索では有効な方法である。開発ドキュメントのような技術文書の関連箇所を見付けるための類似度の判定において、構文の類似性は重要ではない。
しかし、主語、述語、目的語がそろって等しいときは類似度が高いと判断されるべきである。つまり、類似のポイントは類似度を利用するケースによって異なると言える。
このように、従来技術では用途ごとに異なる類似のポイントに柔軟に対応することができなかった。本願発明に係る類似度算出装置は、上述の課題を解決するものである。
また、上記説明において、照合対象あるいは被照合対象は、1つの文あるいは係り受け関係にある文節の列である係り受け関係単語列を例に説明した。しかし、本発明はこれに限られない。例えば、1つの文に括弧書きを含む場合、括弧に囲まれた部分とそれ以外の文字列とをそれぞれ異なる照合対象あるいは被照合対象の単位としてもよい。
例えば、括弧に囲まれた部分を含む文章については、その括弧に囲まれた部分を削除した文章を照合対象あるいは被照合対象として取り扱い、係り受け関係を解析する。括弧に囲まれた部分を含む文は、係り受け解析がうまくいかないことが多く、文節の列に正しく分けることが難しい。しかし、上述の通り、予め、括弧に囲まれた部分とそれ以外に分割しておくことにより、係り受け解析がしやすくなる。
また、照合対象が複数の文にまたがることも許容できる。このときも、文節の列と同様に扱うことができ、例えば、段落単位の照合を実現することができる。
さらに、上記説明において、特徴語取得部100_4は、連結文字列検出部102により、複数の名詞が連続してなる文字列である連結文字列を検出し、この連結文字列の中から、特徴語である複合語があるか否かを判定する例について説明した。しかし、本発明はこれに限られない。例えば、連結文字列検出部102はなくてもよく、特徴語判定部103_4が、形態素解析部101によって取得される単語列や、係り受け関係単語列作成部104によって取得される係り受け関係単語列に含まれる単語が、特徴語である複合語を構成する単語と等しい場合、特徴語が含まれていると判定するものであってもよい。つまり、単語列や係り受け関係単語列における特徴語を構成する単語の順番は問わない。
例えば、特徴語判定部103_4は、単語列a(101)や単語列b(101)の中に、特徴語(複合語)と等しい単語列を作ることができる単語が含まれていれば、特徴語が含まれていると判定する。よって、特徴語判定部103_4は、単語列a(101)と単語列b(101)の中に含まれている特徴語を構成する単語の順番が、特徴語である複合語と同一の順番で並んでいなくても、特徴語と等しい単語列を作ることができる単語が単語列a(101)や単語列b(101)に含まれていれば、特徴語が含まれていると判定する。
また、上記説明において、算出部300の重み算出部301は、単語重要度テーブル402を参照して、式(2)と(3)に従い、共通部分abに含まれる全ての単語の重みW(ab)と特徴語の置き換え処理後の単語列a(201)に含まれる全ての単語の重みW(aa)とを算出する例について説明した。しかし、本発明はこれに限られない。
例えば、パラメータ「0(無効)」あるいは「1(有効)」のいずれか一方を設定しておき、パラメータ「1(有効)」が設定されている場合のみ、このパラメータが設定されている処理内容を実行するものであってもよい。
具体的に説明すると、単語重要度テーブル402に登録されている各単語にパラメータを設定しておき、単語毎に重要度の算出の有無を重み算出部301に対して設定するものであってもよい。
また、重みを算出する際の演算式として式(2)(3)以外の演算式を用意して、各演算式にパラメータを設定しておき、重みごとに算出に用いる演算式を重み算出部301が選択するものであってもよい。
さらに、重みを算出する際に重要度pを乗算して各単語の重みを算出する単語を品詞に応じて決定するようにパラメータを設置しておき、重み算出部301がパラメータ「1(有効)」が設定されている品詞に対応する単語のみについて重要度pを乗算して重みを算出するものであってもよい。例えば、共通部分abや特徴語の置き換え処理後の文字列aに含まれる「名詞」と「動詞」についてのみ、重要度pを乗算して重みを算出するようにパラメータを設定するものであってもよい。
さらにまた、「名詞」のうちでも、「副詞」になれるもの、「形容動詞語幹」になれるもの、「非自立語」や「接尾語」となれるものは、類似度の算出において重要でない場合が多いと考えられるため、これらについては重要度pを乗算して重みを算出しないようにパラメータを設定するものであってもよい。
また、共通部分abや特徴語の置き換え処理後の文字列aに含まれる“ひらがな”は、類似度の算出において重要でない場合が多いと考えられる。このため、重み算出部301は、単語に含まれる“ひらがな”を除去した単語について、重要度pを乗算して重みを算出しないようにパラメータを設定するものであってもよい。これにより、異なる送り仮名が付された場合であっても同一の単語として取り扱うことができる。
例えば、重み算出部301は、特徴語の置き換え処理後の単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”について、“ひらがな”を除去した単語列a(201):“「ユーザ/それぞれ/情報/記録」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、各単語に重要度pを乗算して重みW(aa)を算出する。
また、上記説明において、照合部200の共通部分抽出部201は、照合する単語列aと単語列bについて一致する単語を共通部分abとして取得する例について説明した。しかし、本発明はこれに限られない。例えば、各単語列を構成する単語が共通していたとしても、主語や目的語が一致しない場合には、両単語列を類似していると判定しない方が人間の感覚的に認識される類似性と一致すると考えられる。よって、共通部分抽出部201は、照合する単語列aと単語列bに含まれる単語において、形態素解析において動詞や名詞であると判定された単語のうち、“副詞可能”、“非自立”、“サ変接続”、“接尾”、“形容動詞語幹”に該当する単語については、共通語abとして取得しないものが好ましい。
<第5実施形態>
次に、図10を参照して、本発明の第5実施形態に係る類似度算出装置5の一例について説明する。図10は、本実施形態に係る類似度算出装置5の一例を示す機能ブロック図である。なお、図10は、図1に示す類似度算出装置の構成の一例について説明するための図である。第1実施形態と同様の機能を有する構成については、同一の符号を付して詳細な説明は省略する。
図10に示す通り、本実施形態に係る類似度算出装置5は、特徴語取得部100_5と、照合部200と、算出部300と、記憶部400_5を備える。特徴語取得部100_5は、形態素解析部101と、連結文字列検出部102と、特徴語判定部103_5を備える。記憶部400_5は、一般連結文字列データベース401と、単語重要度テーブル402と、同義語テーブル403とを備える。つまり、本実施形態に係る類似度算出装置5は、第1実施形態に係る類似度算出装置1と第2実施形態に係る類似度算出装置2とを組み合わせた構成であって、特徴語として、連結文字列および同義語を取得するものである。
特徴語取得部100_5は、形態素解析部101と、連結文字列検出部102と、特徴語判定部103_5とを備える。
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。また、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、特徴語判定部103_5に出力する。
連結文字列検出部102は、形態素解析部101から入力する単語列a(101),b(101)に基づき、同一文節中において連続する単語(名詞)を連結文字列として取得する。本実施形態において、連結文字列検出部102は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」から、連結文字列α1「ユーザ/管理/サーバ」を取得する。また、連結文字列検出部102は、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」から、連結文字列β1「ユーザ/管理/サーバ」と連結文字列β2「ユーザ/情報」を取得する。この連結文字列検出部102は、単語列a(101)に連結文字列α1を対応付けた情報と、単語列b(101)に連結文字列β1,β2を対応付けた情報を、特徴語判定部103_5に出力する。
特徴語判定部103_5は、連結文字列検出部102から入力する単語列a(101)と単語列b(101)のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する。本実施形態において、特徴語とは、照合対象や被照合対象において利用される頻度が比較的高い複合語であって、一般的に比較的よく用いられる複合語でない複合語のことをいう。また、本実施形態において、特徴語とは、照合対象や被照合対象において利用される類似語である。
特徴語判定部103_5は、連結文字列検出部102によって取得された連結文字列のうち、記憶部400_5の一般連結文字列データベース401に登録されている一般連結文字列以外の文字列を、特徴語として取得する。また、特徴語判定部103_5は、記憶部400_5の同義語テーブル403に登録されている類似語と同一の単語を、特徴語として取得する。
本実施形態において、単語列a(101)から取得される連結文字列α1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103_5は、この連結文字列α1「ユーザ/管理/サーバ」を特徴語と判定する。また、単語列a(101)は、同義語テーブル403に登録されている。このため、特徴語判定部103_5は、「記録」を特徴語と判定する。
そして、特徴語判定部103_5は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)+特徴語「格納」(特徴語を構成する単語「記録」)を照合部200に出力する。
また、単語列b(101)から取得される連結文字列β1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103_5は、この連結文字列β1「ユーザ/管理/サーバ」を特徴語と判定する。一方、単語列b(101)から取得される連結文字列β2「ユーザ/情報」は一般連結文字列データベース401に登録されている。このため、特徴語判定部103_5は、この連結文字列β2「ユーザ/情報」を特徴語とは判定しない。さらに、単語列b(101)に含まれる「格納」は同義語テーブル403に登録されている。
このため、特徴語判定部103_5は、連結文字列α1「ユーザ/管理/サーバ」と、「記録」とを特徴語と判定する。
そして、特徴語判定部103_5は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)+特徴語「格納」(特徴語を構成する単語「格納」)を照合部200に出力する。
なお、その後の処理の流れについては、上述の通りであるため、詳細な説明は省略する。
<第6実施形態>
次に、図11を参照して、本発明の第6実施形態に係る類似度算出装置6の一例について説明する。図11は、本実施形態に係る類似度算出装置6の一例を示す機能ブロック図である。なお、図11に示す類似度算出装置6は、図1に示す類似度算出装置の変形例である。よって、同一の符号を付して説明を省略する構成については、第1〜4実施形態において説明した構成に置き換えて適用することができる。
図11に示す通り、本実施形態に係る類似度算出装置6は、特徴語取得部100と、照合部200と、算出部300と、記憶部400と、パラメータ設定部500を備える。
パラメータ設定部500は、照合対象や被照合対象に応じて、実行する処理内容を変更するためのパラメータを設定する。なお、このパラメータは、例えば、上述の「0(無効)」あるいは「1(有効)」である。
パラメータ設定部500は、類似度S(ab)を算出する際に、パラメータを調整して条件を設定する。このパラメータ設定部500は、例えば、単語列a(101)、特徴語の置き換え処理後の単語列a(201)、単語列b(101)、特徴語の置き換え処理後の単語列b(201)を構成する単語を取得する際の条件、共通部分abを構成する単語を取得する際の条件、あるいは、重みW(ab)や重みW(aa)を算出する際の条件のうち少なくとも1つの条件を設定する。
本実施形態において、パラメータ設定部500は、パラメータ「0(無効)」あるいは「1(有効)」の設定が異なる全ての組み合わせPAR{PAR,PAR,・・・,PAR}のそれぞれについて、算出部300によって算出された類似度S(ab)に基づき、照合対象aに最も類似している被照合対象b´を照合範囲Bの中から検索するために要すると予想される期待時間Tを算出する。
本実施形態において、パラメータ設定部500は、以下の式(5)に従って期待時間Tを算出する。
Figure 0005629701
なお、式(5)において、Pは、反映文がQ位以内に入っている確率であり、P=0である。
あるQでTを最小にするパラメータの組み合わせが最も効果のあるパラメータの組み合わせと言える。
よって、パラメータ設定部500は、期待時間Tが最小となるパラメータの組み合わせPAR{PAR,PAR,・・・,PAR}に基づき、各パラメータを設定する。
例えば、ソフトウェア開発の過程で生成される各種文書に点在する関連する文同士は、相互に同じ用語を含むなど類似性が高い。このため、本実施形態に係る類似度算出装置6により算出した文同士の類似度から、このような各種文書間の関連する箇所の文同士を見つけ出すことができる。
このソフトウェア開発の過程で生成される各種文書が関連しているか否かを判断するための類似度は、概ね次のような傾向があると考えられる。
・同じ技術用語や専門用語などが含まれているものは類似度が高い。
・構文の類似性は類似度には関係ない。
・主語と述語の双方が同じ文は類似度が高い。
以上の点を考慮して、パラメータ設定部500は、各種パラメータを決定し、算出部300が類似度を算出する。
例えば、前工程の開発ドキュメントの記載内容の反映箇所を、後工程の開発ドキュメントから探す作業にかかる時間は、次のようにモデル化することができる。
一つの比較対象文(前工程の開発ドキュメント中の一文)に対応する一つの反映文を、従来の方法(本方式に依らない方法)で探すのにかかる時間をt、あるパラメータの組み合わせで計算した類似度順に被照合対象の文(後工程の開発ドキュメント中の文)を並べた表から探すのにかかる時間をtrs×反映文の順位とする。
表のQ位以内に見つからなければ、従来の方法で探すとすると、反映文を探す時間Tは上述の式(5)で表せる。
ただし、Pは、反映文がn位以内に入っている確率であり、P=0である。
あるNでTを最小にするパラメータの組み合わせが最も効果のあるパラメータの組み合わせと言える。
上記説明の通り、本実施形態に係る類似度算出装置1〜5によると、用途ごとに異なる類似のポイントに柔軟に対応可能な文同士の類似度算出が可能になり、例えば、ソフトウェア開発の過程で生成される自然言語で書かれた各種文書から関連する箇所同士を見つけ出すことが可能になる。ソフトウェア開発におけるドキュメントのレビューでは前工程のドキュメントの記述内容の、後工程での反映箇所をレビューする必要がある。また、前工程で仕様変更が発生すると後工程の関連箇所を追跡し、整合性を保たなければならない。
このようなときに本提案に基づく技術を利用することで、前後の工程間の関連箇所を文単位で容易に見付け出すことができ、稼働を削減する効果が見込める。
従来、このようなことを実現するためには予め形式言語で記述したり、ドキュメントにタグを付けたりすることが一般的であったが、形式言語は有スキル者しか扱えないなどの課題があり、予めタグを付けるには大きな稼働がかかることが課題であった。
しかし、本実施形態に係る類似度算出装置1〜5によると、用途ごとに異なる類似のポイントに柔軟に対応可能であり、ソフトウェア開発の過程で生成される文書など自然言語で書かれた各種技術文書から関連する箇所同士を見つけ出すことができる。
また、本実施形態に係る類似度算出装置1〜5により、ソフトウェア開発の過程で生成されるドキュメントの記載されている事項を追跡することで、レビューの効率化や修正時の影響範囲の把握を支援する商品やサービスに応用することができる。また、用途ごとに異なる類似のポイントに柔軟に対応可能であるため、ソフトウェア開発の過程で生成される文書など自然言語で書かれた各種技術文書からの関連箇所検出のための類似度算出に応用である。
また、上述の類似度算出方法に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、上述の類似度算出装置1〜5の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、検出対象物の形状情報の推定値を算出する処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1,2,3,4,5・・・類似度算出装置、100・・・特徴語取得部、101・・・形態素解析部、102・・・連結文字列検出部、103・・・特徴語判定部、104・・・係り受け関係単語列作成部、200・・・照合部、201・・・共通部分抽出部、202・・・置換部、300・・・算出部、301・・・重み算出部、302・・・類似度算出部、400・・・記憶部、401・・・一般連結文字列データベース、402・・・単語重要度テーブル、403・・・同義語テーブル

Claims (7)

  1. 照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定部と、
    前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得部と、
    前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは前記第2単語列に含まれる前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出部と、
    前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出部と、
    を備えることを特徴とする類似度算出装置。
  2. 前記類似度を算出する際に、前記第1単語列あるいは前記第2単語列を構成する単語を取得する際の条件、前記共通部分を構成する単語を取得する際の条件、あるいは、前記重みを算出する際の条件のうち少なくとも1つを設定する設定部をさらに備えることを特徴とする請求項1に記載の類似度算出装置。
  3. 前記特徴語判定部は、
    前記予め決められた特徴語を構成する単語として、複数の単語によって構成される複合語と等しい単語列を作ることができる単語の全てが前記第1単語列あるいは前記第2単語列に含まれているか否かを判定し、前記複合語と等しい単語列を作ることができる単語の全てが含まれている場合に前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれていると判定することを特徴とする請求項1あるいは2に記載の類似度算出装置。
  4. 前記特徴語判定部は、
    前記予め決められた特徴語を構成する単語として、互いに同様の意味を有する同義語として予め登録されている単語が前記第1単語列あるいは前記第2単語列に含まれているか否かを判定し、前記同義語として予め登録されている単語が前記第1単語列あるいは前記第2単語列に含まれている場合に前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれていると判定することを特徴とする請求項1あるいは2に記載の類似度算出装置。
  5. 前記類似度算出部は、
    前記特徴語を構成する単語の重みを算出する場合、1つの単語として取り扱われる特徴語に対して最も重い重要度を乗算することを特徴とする請求項1から4のうちいずれか一項に記載の類似度算出装置。
  6. 類似度算出装置が実行する類似度算出方法であって、
    照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定ステップと、
    前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得ステップと、
    前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは第2単語列に含まれている前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出ステップと、
    前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出ステップと、
    を備えることを特徴とする類似度算出方法。
  7. コンピュータを、
    照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定手段、
    前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得ステップと、
    前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは第2単語列に含まれている前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出手段、
    前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出手段、
    として機能させるための類似度算出プログラム。
JP2012014476A 2012-01-26 2012-01-26 類似度算出装置、類似度算出方法、および類似度算出プログラム Expired - Fee Related JP5629701B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012014476A JP5629701B2 (ja) 2012-01-26 2012-01-26 類似度算出装置、類似度算出方法、および類似度算出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012014476A JP5629701B2 (ja) 2012-01-26 2012-01-26 類似度算出装置、類似度算出方法、および類似度算出プログラム

Publications (2)

Publication Number Publication Date
JP2013156692A JP2013156692A (ja) 2013-08-15
JP5629701B2 true JP5629701B2 (ja) 2014-11-26

Family

ID=49051843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012014476A Expired - Fee Related JP5629701B2 (ja) 2012-01-26 2012-01-26 類似度算出装置、類似度算出方法、および類似度算出プログラム

Country Status (1)

Country Link
JP (1) JP5629701B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103616992B (zh) 2013-11-13 2017-10-17 华为技术有限公司 应用程序控制方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628580B2 (ja) * 2000-03-01 2005-03-16 日本電信電話株式会社 類似文検索方法、装置、および類似文検索プログラムを記録した記録媒体
JP3881638B2 (ja) * 2003-07-31 2007-02-14 株式会社東芝 文書検索装置、文書検索方法および文書検索プログラム
JP5212725B2 (ja) * 2009-01-30 2013-06-19 大日本印刷株式会社 電子書籍作成支援装置

Also Published As

Publication number Publication date
JP2013156692A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
CN103229162B (zh) 使用候选答案逻辑综合提供问题答案
CA2457693C (en) Method and system for enhanced data searching
US8983963B2 (en) Techniques for comparing and clustering documents
CN103229223A (zh) 使用多个候选答案评分模型提供问题答案
JP5273735B2 (ja) テキスト要約方法、その装置およびプログラム
JP2007087401A (ja) インデクシングシステム、インデクシング方法、質問テンプレート生成システム、質問テンプレート生成方法、及びプログラム
CA2853627C (en) Automatic creation of clinical study reports
JP2014228907A (ja) 情報構造化システム
Sarkar A hybrid approach to extract keyphrases from medical documents
JP2014106665A (ja) 文書検索装置、文書検索方法
Alzahrani et al. iPlag: intelligent plagiarism reasoner in scientific publications
JP2008083927A (ja) 医療情報抽出装置、及び医療情報抽出プログラム
JP2008117351A (ja) 検索システム
Paul et al. An affix removal stemmer for natural language text in nepali
JP5629701B2 (ja) 類似度算出装置、類似度算出方法、および類似度算出プログラム
Ahmed et al. Evaluation of n‐gram conflation approaches for Arabic text retrieval
Albukhitan et al. Semantic web annotation using deep learning with Arabic morphology
Albukhitan et al. Arabic ontology learning from un-structured text
Ketui et al. An EDU-based approach for Thai multi-document summarization and its application
Lloyd et al. Identifying co-referential names across large corpora
Buey et al. An approach for automatic query expansion based on NLP and semantics
Bolikowski et al. Towards a flexible author name disambiguation framework
Harrag et al. UML modeling of text mining in Arabic language and application to the prophetic traditions “Hadiths”
Zhou et al. Testing and Evaluating SNOMED CT Web Browsers' Textual Search Feature
Nia et al. Streaming fact extraction for wikipedia entities at web-scale

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141006

R150 Certificate of patent or registration of utility model

Ref document number: 5629701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees