JP5629701B2 - 類似度算出装置、類似度算出方法、および類似度算出プログラム - Google Patents
類似度算出装置、類似度算出方法、および類似度算出プログラム Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図1に示す通り、本発明の一実施形態による類似度算出装置は、特徴語取得部100と、照合部200と、算出部300と、記憶部400を備える。
特徴語取得部100は、この単語列a,bのそれぞれについて、予め決められている特徴語を構成する単語が含まれているか否かを判定し、特徴語が含まれている場合、各単語列a,bのそれぞれから特徴語を取得する。この特徴語取得部100は、単語列a,bのそれぞれに取得した特徴語を対応付けて照合部200に出力する。本実施形態においては、特徴語が取得された場合、特徴語取得部100は、“単語列+特徴語(特徴語を構成する単語列)”という情報を出力する。なお、特徴語が取得されなかった場合、特徴語取得部100は、単語列のみを出力する。
また、算出部300は、記憶部400に記憶されている単語毎に予め決められている重要度pを参照して、照合部200から入力する特徴語の置き換え処理後の単語列aに基づき、この単語列aに含まれる全ての単語の重みW(aa)を算出する。
つまり、共通部分abあるいは単語列aに特徴語を構成する単語が含まれている場合、算出部300は、特徴語を構成する単語が特徴語に置き換えた共通部分abに含まれる全ての単語の重みW(ab)あるいは単語列aに含まれる全ての単語の重みW(aa)を算出する。一方、共通部分abあるいは単語列aに特徴語を構成する単語が含まれていない場合、算出部300は、共通部分abあるいは単語列aに含まれる全ての単語の重みW(aa)を算出する。
さらに、算出部300は、共通部分abに含まれる全ての単語の重みW(ab)と、単語列aに含まれる全ての単語の重みW(aa)に基づき、文字列aに対する文字列bの類似度S(ab)を算出する。
次に、図2を参照して、本発明の第1実施形態に係る類似度算出装置1の一例について説明する。図2は、本実施形態に係る類似度算出装置1の一例を示す機能ブロック図である。なお、図2は、図1に示す構成の詳細について説明するための図である。
図2に示す通り、特徴語取得部100は、形態素解析部101と、連結文字列検出部102と、特徴語判定部103を備える。照合部200は、共通部分抽出部201と、置換部202を備える。算出部300は、重み算出部301と、類似度算出部302を備える。記憶部400は、一般連結文字列データベース401と、単語重要度テーブル402とを備える。
単語重要度テーブル402は、単語wk毎に予め決められている重要度pkを登録するテーブルである。本実施形態において、単語重要度テーブル402には、図3に示す通り、単語「回線」には重要度「0.8」が、単語「格納」には重要度「0.5」が、・・・単語「を」には重要度「0.1」が、それぞれ対応付けられている。なお、この重要度pkは、単語wkごとに予め決められており、本実施形態において、重要度pkは、以下に示す式(1)に従って算出される。この重要度pkを算出するために、より一般的な(内容に偏りが無い)文書の集合である全体文章Zが用意されている。
また、この重要度pkは、上述の算出方法に限られず、例えばTF−IDF(Term Frequency−Inverse Document Frequency)を用いて、一般的な単語の重要度を低く、文書Zr{Z1,Z2,・・・,ZX}の全体や個々に特徴的に出現する単語の重要度を高くするような重要度を算出するものであってもよい。このようにTF−IDFを用いて単語の重要度を算出する場合、用意する文書Zr{Z1,Z2,・・・,ZX}は、より一般的な(内容に偏りが無い)文書の集合であることが好ましい。照合対象の文で構成される同じ分野の文書の集合は、単語に偏りがあり、このような文書集合をもとにTF−IDFを計算すると、その分野の専門用語の重要度は低くなり、一般的な語の重要度は比較的高くなることが予想されるからである。
また、単語列b(101)から取得される連結文字列β1「ユーザ/管理/サーバ」は一般連結文字列データベース401に登録されていない。このため、特徴語判定部103は、この連結文字列β1「ユーザ/管理/サーバ」を特徴語と判定する。一方、単語列b(101)から取得される連結文字列β2「ユーザ/情報」は一般連結文字列データベース401に登録されている。このため、特徴語判定部103は、この連結文字列β2「ユーザ/情報」を特徴語とは判定しない。よって、特徴語判定部103は、特徴語と判定した連結文字列β1「ユーザ/管理/サーバ」を単語列b(101)に対応付けて照合部200に出力する。この特徴語判定部103は、例えば、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。この特徴語判定部103からの出力の一例を以下に示す。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「ユーザ管理情報」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語からなる共通部分ab_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
また、置換部202は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)” から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「ユーザ管理サーバ」の特徴語を構成する単語列「ユーザ/管理/サーバ」に相当する単語を削除する。つまり、置換部202は、単語列b(201):“「に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を出力する。
この置換部202からの出力の一例を以下に示す。
本実施形態において、共通部分抽出部201は、単語列a(201)と単語列b(201)のそれぞれに対応付けられた特徴語以外の単語列から「ユーザ/情報/に」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2:「ユーザ/情報/に」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語「ユーザ/管理/サーバ」)”から、特徴語を構成する単語「ユーザ/管理/サーバ」を削除する。つまり、置換部202は、単語列a(101)´:“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語「ユーザ/管理/サーバ」)”を出力する。
本実施形態において、重み算出部301は、共通部分ab:“「ユーザ/情報/に」 + 特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、以下のようにして、共通部分abに含まれる全ての単語の重みW(ab)を算出する。
重み算出部301は、以下の式(3)に従って、特徴語の置き換え処理後の単語列a(101)´、あるいは単語列a(101)に含まれる全ての単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(101)´に含まれる特徴語の重要度P=1として算出する。本実施形態において、重み算出部301は、単語重要度テーブル402に含まれていない単語について、重要度P=1を与える。これにより、重み算出部301は、特徴語の重要度P=1として算出することができる。
本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、以下のようにして、特徴語の置き換え処理後の単語列a(201)に含まれる全ての単語の重みW(aa)を算出する。以下に示す通り、本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(201)に含まれる単語の重みW(aa)=347.5と算出する。
(ステップST1)
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。そして、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、連結文字列検出部102に出力する。
連結文字列検出部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,β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に出力する。
共通部分抽出部201は、特徴語判定部103から出力される単語列a(101)と単語列b(101)とを比較して、それぞれに対応付けられた特徴語同士において共通する特徴語があるか否かを判定する。
それぞれに対応付けられた特徴語同士において共通する特徴語がある場合、共通部分抽出部201は、それぞれの特徴語において共通する特徴語からなる共通部分ab_1を取得し、置換部202に出力する。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「ユーザ管理情報」を共通する特徴語からなる共通部分ab_1として取得する。つまり、共通部分抽出部201は、特徴語からなる共通部分ab_1:“特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”を取得し、置換部202に出力する。
そして、置換部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)から特徴語を削除する。
一方、ステップST3においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、あるいは、ステップST5において置換部202から特徴語に置換えられた後の単語列a(201)と単語列b(201)が入力された場合、共通部分抽出部201は、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
例えば、ステップST3においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、共通部分抽出部201は、この単語列a(101)と単語列b(101)とを比較して、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を取得し、この共通部分ab_2を共通部分abとして、単語列a(101)と単語列b(101)とともに重み算出部301に出力する。
特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を取得する。そして、共通部分抽出部201は、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2からなる共通部分abを作成し、単語列a(201)と単語列b(201)とともに重み算出部301に出力する。
そして、重み算出部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である。
次いで、類似度算出部302は、共通部分abに含まれる単語の重みW(ab)と、単語列aに含まれる単語の重みW(aa)とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を算出する。本実施形態において、文字列aに対する文字列bの類似度S(ab)=0.46734である。
次に、図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には、代表語「格納」と同義語「格納」とが、代表語「格納」と同義語「記憶」とが、それぞれ対応付けられている。これは、「格納」の同義語である「記憶」が、「格納」を代表語として登録されていることを示している。なお、代表語とは、同義語を有する2以上の単語のうちの任意に選択されたいずれか一つの単語である。よって、「記憶」を代表語としてもよい。
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。また、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、特徴語判定部103_2に出力する。
また、特徴語判定部103_2は、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」から、代表語「格納」に対応付けられている類似語「格納」を特徴語として取得する。この特徴語判定部103_2は、取得した特徴語である類似語「格納」を単語列b(101)に特徴語として対応付けて照合部200に出力する。例えば、特徴語判定部103_2は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「格納」(特徴語を構成する単語「格納」)”を出力する。この特徴語判定部103_2からの出力の一例を以下に示す。
本実施形態において、共通部分抽出部201は、単語列a(101)と単語列b(101)のそれぞれに対応付けられた特徴語から「格納」を共通する特徴語(代表語)して取得する。つまり、共通部分抽出部201は、共通部分ab_1:特徴語「格納」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「格納」の特徴語を構成する単語「記録」に相当する単語を削除する。つまり、置換部202は、単語列a(201):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”を出力する。
また、置換部202は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「格納」(特徴語を構成する単語「格納」)” から、共通部分抽出部201から入力する特徴語からなる共通部分ab_1「格納」の特徴語を構成する単語列「格納」に相当する単語を削除する。つまり、置換部202は、単語列b(201):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/する」+特徴語「格納」(特徴語を構成する単語列「格納」)”を出力する。
この置換部202からの出力の一例を以下に示す。
本実施形態において、共通部分抽出部201は、単語列a(201)と単語列b(201)のそれぞれに対応付けられた特徴語以外の単語列から「ユーザ/情報/に」を共通する単語して取得する。つまり、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2:「ユーザ/管理/サーバ/に/ユーザ/情報」を取得し、置換部202に出力する。この共通部分抽出部201からの出力の一例を以下に示す。
本実施形態において、置換部202は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”から、特徴語を構成する単語「記録」に相当する単語を削除する。つまり、置換部202は、単語列a(101)´:“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”を出力する。
本実施形態において、重み算出部301は、共通部分ab:「格納/ユーザ/管理/サーバ/に/ユーザ/情報」に基づき、以下のようにして、共通部分abに含まれる全ての単語の重みW(ab)を算出する。また、重み算出部301は、共通部分abに特徴語が含まれている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103_2は、共通部分abに含まれる単語の重みW(ab)=177.6と算出する。
本実施形態において、重み算出部301は、特徴語の置き換え処理後の単語列a(101´):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/さ/れる」+特徴語「格納」(特徴語を構成する単語「記録」)”に含まれる全ての単語の重みW(aa)を算出する。また、重み算出部301は、特徴語の置き換え処理後の単語列a(101´)に特徴語が対応付けられている場合、この特徴語の重要度P=1として算出する。以下に示す通り、本実施形態において、特徴語判定部103_2は、特徴語の置き換え処理後の単語列a(201)に含まれる単語の重みW(aa)=310.0と算出する。
次に、図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(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は、単語列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によって作成される係り受け関係単語列の一例を示す。
本実施形態において、連結文字列検出部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に出力する。
本実施形態において、記憶部400の一般連結文字列データベース401において、一般連結文字列として「ユーザ情報」が登録されている。
また、係り受け関係単語列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からの出力の一例を以下に示す。
この共通部分抽出部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)と係り受け関係単語列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(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は、特徴語からなる共通部分a2b1_1のみを置換部202に出力する。よって、置換部202は、特徴語判定部103から入力する係り受け関係単語列のうち、この特徴語からなる共通部分a2b1_1が含まれていた係り受け関係単語列a2(101)、b1(101)から、特徴語からなる共通部分a2b1_1を構成する単語列を、特徴語に置き換える。この置換部202は、共通する特徴語を構成する単語列が特徴語に置換えられた後の係り受け関係単語列a2(101)、b1(101)を、再び、共通部分抽出部201に戻して出力する。
つまり、置換部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からの出力の一例を以下に示す。
なお、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出しない場合であって、特徴語からなる共通部分ab_1を抽出した場合、共通部分抽出部201は、特徴語からなる共通部分ab_1を共通部分abとして、重み算出部301に出力する。
また、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分a2b1_2「ユーザ(11)/ユーザ(35)/情報(14)/情報(36)」を、共通部分a2b1として、重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
重み算出部301は、共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と算出する。
本実施形態に係る重み算出部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と算出する。
この重み算出部301は、最も重みが重いと判定した共通部分a2b1を、置換部202に出力する。
つまり、置換部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は、共通部分を取得する作業を終了させる。
本実施形態において、特徴語判定部103は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ(16)/管理(17)/サーバ(18)」)”を照合部200の置換部202に出力する。
本実施形態において、置換部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)の一例を以下に示す。
この重み算出部301は、共通部分が複数ある場合、重複している単語についての重みを重複して算出しないように、いずれか一方の共通部分から重複している単語を削除して、重みを算出する。
本実施形態において、重み算出部301は、重みが大きい順に重みの算出を行う。重み算出部301は、例えば、共通部分に含まれる特徴語の文字数が多い順に重みの算出を行う。
重み算出部301は、共通部分a2b1:“ユーザ管理サーバ(特徴語を構成する単語列「ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)」)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=72.9と算出する。
本実施形態に係る重み算出部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と算出する。
(ステップ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に出力する。
そして、係り受け関係単語列作成部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)」とを作成する。
次いで、連結文字列検出部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に出力する。
係り受け関係単語列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に出力する。
次いで、共通部分抽出部201は、特徴語取得部100_3の特徴語判定部103から出力される係り受け関係単語列a1(101)、a2(101)、b1(101)、b2(101)を、それぞれ比較し、比較した双方に共通する特徴語からなる共通部分ab_1があるか否かを判定する。
本実施形態において、共通部分抽出部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に出力する。
次いで、置換部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に出力する。
一方、ステップST14においてそれぞれに対応付けられた特徴語同士において共通する特徴語がない場合、あるいは、ステップST16において置換部202から特徴語に置換えられた後の係り受け関係単語列が入力された場合、共通部分抽出部201は、特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。
特徴語以外のその他の単語同士で共通する単語があるか否かを判定する。特徴語以外のその他の単語同士で共通する単語がある場合、共通部分抽出部201は、この特徴語以内の単語からなる共通部分ab_2を取得し、置換部202に出力する。
例えば、この特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、既に特徴語からなる共通部分ab_1を抽出している場合、共通部分抽出部201は、この特徴語からなる共通部分ab_1と特徴語以外の単語列に含まれる共通部分ab_2とを合わせて共通部分abを作成し、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
次いで、置換部202は、共通部分抽出部201によって取得された共通部分abであって、重み算出部301に出力された共通部分ab(つまり、重み算出部301によって重みが算出される共通部分ab)を構成する単語を係り受け関係単語列から削除する。
そして、置換部202は、共通部分abを構成する単語を削除した係り受け関係単語列を共通部分抽出部201に出力する。
次いで、共通部分抽出部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に出力する。
そして、重み算出部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である。
次いで、類似度算出部302は、共通部分abに含まれる単語の重みW(ab)=90.4と、特徴語を構成する単語が特徴語に置き換えた単語列aに含まれる単語の重みW(aa)=347.5とに基づき、式(4)に従って、文字列aに対する文字列bの類似度S(ab)を算出する。本実施形態において、文字列aと文字列bの類似度S(ab)=0.26014・・・である。
次に、図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(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は、単語列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によって作成される係り受け関係単語列の一例を示す。
また、特徴語判定部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からの出力の一例を以下に示す。
この共通部分抽出部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)と係り受け関係単語列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(201)と係り受け関係単語列b1(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b1_2を取得し、置換部202に出力する。
さらにまた、共通部分抽出部201は、係り受け関係単語列a2(101)と係り受け関係単語列b2(101)から共通部分a2b2_1:格納(記録(20)/格納(38))を取得する。
次いで、共通部分抽出部201は、係り受け関係単語列a2(201)と係り受け関係単語列b2(201)とを比較して、それぞれの特徴語以外の単語列に含まれる共通部分a2b2_2を取得し、置換部202に出力する。
つまり、置換部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からの出力の一例を以下に示す。
なお、特徴語以外の単語列に含まれる共通部分ab_2を抽出した場合であって、特徴語からなる共通部分ab_1を抽出していない場合、共通部分抽出部201は、特徴語以外の単語列に含まれる共通部分ab_2を共通部分abとして、重み算出部301に出力する。
また、特徴語以外の単語列に含まれる共通部分ab_2を抽出しない場合であって、特徴語からなる共通部分ab_1を抽出した場合、共通部分抽出部201は、特徴語からなる共通部分ab_1を共通部分abとして、重み算出部301に出力する。この共通部分抽出部201からの出力(共通部分ab)の一例を以下に示す。
この重み算出部301は、最も重みが重いと判定した共通部分a2b1を、置換部202に出力する。
ここでは、共通部分が取得されないため、共通部分抽出部201は、共通部分を取得する作業を終了させる。
本実施形態において、特徴語判定部103_4は、単語列a(101):“「ユーザ(11)/それぞれ(12)/の(13)/情報(14)/は(15)/ユーザ(16)/管理(17)/サーバ(18)/に(19)/記録(20)/さ(21)/れる(22)」+特徴語「格納」(特徴語を構成する単語列「記録(20)」)”を照合部200の置換部202に出力する。
本実施形態において、置換部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)の一例を以下に示す。
この重み算出部301は、共通部分が複数ある場合、重複している単語についての重みを重複して算出しないように、いずれか一方の共通部分から重複している単語を削除して、重みを算出する。
本実施形態において、重み算出部301は、重みが大きい順に重みの算出を行う。重み算出部301は、例えば、共通部分に含まれる特徴語の文字数が多い順に重みの算出を行う。
重み算出部301は、共通部分a2b1:“格納(記録(20)/格納(38))/ユーザ(16)/ユーザ(31)/管理(17)/管理(32)/サーバ(18)/サーバ(33)/に(19)/に(34)”に基づき、以下のようにして、共通部分a2b1に含まれる単語の重みW(a2b1)を算出する。以下に示す通り、本実施形態において、重み算出部301は、共通部分a2b1に含まれる全ての単語の重みW(a2b1)=83.6と算出する。
本実施形態に係る重み算出部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と算出する。
ところが、開発規模が大きくなればなるほど開発ドキュメントの分量も増大するので、レビュー箇所や関連箇所を探し出すことに多くの時間を割かなければならなくなる。このようなときに、本発明に係る類似度算出装置1〜4を利用することにより、前工程のドキュメント中の文と後工程のドキュメントの各文を比較し、類似度の高い文をレビュー対象箇所や関連箇所として提示することができる。これにより、捜し出す時間を短縮することができる。
開発ドキュメントのような技術文書では、例えば、‘加入者管理サーバ’と‘事業者管理サーバ’のように構成する単語の一部だけが異なる複合語も多くあるため、感覚的な類似性との差が大きくなる傾向にある。また、略称を使うなど同じ事項に対して複数種類の記述が見られるため、同義語は類似度の計算に反映させるべきであるが、類義語は区別すべきケースが多い。さらに,複数の作業者により記述されることで、関連する内容であっても用語の使いかたや言い回しに多様性が見られることがあり、厳密なキーワードマッチングではうまくいかないことが多い。従来技術ではこのような点への考慮に欠けている。
一方、従来技術では構文の類似性を重要視するものがある。これは、機械翻訳のための例文を見付ける目的での類似文検索では有効な方法である。開発ドキュメントのような技術文書の関連箇所を見付けるための類似度の判定において、構文の類似性は重要ではない。
しかし、主語、述語、目的語がそろって等しいときは類似度が高いと判断されるべきである。つまり、類似のポイントは類似度を利用するケースによって異なると言える。
このように、従来技術では用途ごとに異なる類似のポイントに柔軟に対応することができなかった。本願発明に係る類似度算出装置は、上述の課題を解決するものである。
例えば、括弧に囲まれた部分を含む文章については、その括弧に囲まれた部分を削除した文章を照合対象あるいは被照合対象として取り扱い、係り受け関係を解析する。括弧に囲まれた部分を含む文は、係り受け解析がうまくいかないことが多く、文節の列に正しく分けることが難しい。しかし、上述の通り、予め、括弧に囲まれた部分とそれ以外に分割しておくことにより、係り受け解析がしやすくなる。
また、照合対象が複数の文にまたがることも許容できる。このときも、文節の列と同様に扱うことができ、例えば、段落単位の照合を実現することができる。
例えば、特徴語判定部103_4は、単語列a(101)や単語列b(101)の中に、特徴語(複合語)と等しい単語列を作ることができる単語が含まれていれば、特徴語が含まれていると判定する。よって、特徴語判定部103_4は、単語列a(101)と単語列b(101)の中に含まれている特徴語を構成する単語の順番が、特徴語である複合語と同一の順番で並んでいなくても、特徴語と等しい単語列を作ることができる単語が単語列a(101)や単語列b(101)に含まれていれば、特徴語が含まれていると判定する。
例えば、パラメータ「0(無効)」あるいは「1(有効)」のいずれか一方を設定しておき、パラメータ「1(有効)」が設定されている場合のみ、このパラメータが設定されている処理内容を実行するものであってもよい。
また、重みを算出する際の演算式として式(2)(3)以外の演算式を用意して、各演算式にパラメータを設定しておき、重みごとに算出に用いる演算式を重み算出部301が選択するものであってもよい。
さらにまた、「名詞」のうちでも、「副詞」になれるもの、「形容動詞語幹」になれるもの、「非自立語」や「接尾語」となれるものは、類似度の算出において重要でない場合が多いと考えられるため、これらについては重要度pkを乗算して重みを算出しないようにパラメータを設定するものであってもよい。
例えば、重み算出部301は、特徴語の置き換え処理後の単語列a(201):“「ユーザ/それぞれ/の/情報/は/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”について、“ひらがな”を除去した単語列a(201):“「ユーザ/それぞれ/情報/記録」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)”に基づき、各単語に重要度pkを乗算して重みW(aa)を算出する。
次に、図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とを組み合わせた構成であって、特徴語として、連結文字列および同義語を取得するものである。
形態素解析部101は、照合対象である文字列a「ユーザそれぞれの情報はユーザ管理サーバに記録される」と、被照合対象である文字列b「ユーザ管理サーバにユーザ情報を格納する」とを入力し、単語単位に分解する。また、形態素解析部101は、単語列a(101)「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」と、単語列b(101)「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」とを、特徴語判定部103_5に出力する。
特徴語判定部103_5は、連結文字列検出部102によって取得された連結文字列のうち、記憶部400_5の一般連結文字列データベース401に登録されている一般連結文字列以外の文字列を、特徴語として取得する。また、特徴語判定部103_5は、記憶部400_5の同義語テーブル403に登録されている類似語と同一の単語を、特徴語として取得する。
そして、特徴語判定部103_5は、単語列a(101):“「ユーザ/それぞれ/の/情報/は/ユーザ/管理/サーバ/に/記録/さ/れる」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)+特徴語「格納」(特徴語を構成する単語「記録」)を照合部200に出力する。
このため、特徴語判定部103_5は、連結文字列α1「ユーザ/管理/サーバ」と、「記録」とを特徴語と判定する。
そして、特徴語判定部103_5は、単語列b(101):“「ユーザ/管理/サーバ/に/ユーザ/情報/を/格納/する」+特徴語「ユーザ管理サーバ」(特徴語を構成する単語列「ユーザ/管理/サーバ」)+特徴語「格納」(特徴語を構成する単語「格納」)を照合部200に出力する。
なお、その後の処理の流れについては、上述の通りであるため、詳細な説明は省略する。
次に、図11を参照して、本発明の第6実施形態に係る類似度算出装置6の一例について説明する。図11は、本実施形態に係る類似度算出装置6の一例を示す機能ブロック図である。なお、図11に示す類似度算出装置6は、図1に示す類似度算出装置の変形例である。よって、同一の符号を付して説明を省略する構成については、第1〜4実施形態において説明した構成に置き換えて適用することができる。
図11に示す通り、本実施形態に係る類似度算出装置6は、特徴語取得部100と、照合部200と、算出部300と、記憶部400と、パラメータ設定部500を備える。
パラメータ設定部500は、照合対象や被照合対象に応じて、実行する処理内容を変更するためのパラメータを設定する。なお、このパラメータは、例えば、上述の「0(無効)」あるいは「1(有効)」である。
本実施形態において、パラメータ設定部500は、パラメータ「0(無効)」あるいは「1(有効)」の設定が異なる全ての組み合わせPARh{PAR1,PAR2,・・・,PARQ}のそれぞれについて、算出部300によって算出された類似度S(ab)に基づき、照合対象aに最も類似している被照合対象b´を照合範囲Bの中から検索するために要すると予想される期待時間Tを算出する。
本実施形態において、パラメータ設定部500は、以下の式(5)に従って期待時間Tを算出する。
あるQでTを最小にするパラメータの組み合わせが最も効果のあるパラメータの組み合わせと言える。
よって、パラメータ設定部500は、期待時間Tが最小となるパラメータの組み合わせPARh{PAR1,PAR2,・・・,PARQ}に基づき、各パラメータを設定する。
このソフトウェア開発の過程で生成される各種文書が関連しているか否かを判断するための類似度は、概ね次のような傾向があると考えられる。
・同じ技術用語や専門用語などが含まれているものは類似度が高い。
・構文の類似性は類似度には関係ない。
・主語と述語の双方が同じ文は類似度が高い。
以上の点を考慮して、パラメータ設定部500は、各種パラメータを決定し、算出部300が類似度を算出する。
一つの比較対象文(前工程の開発ドキュメント中の一文)に対応する一つの反映文を、従来の方法(本方式に依らない方法)で探すのにかかる時間をts、あるパラメータの組み合わせで計算した類似度順に被照合対象の文(後工程の開発ドキュメント中の文)を並べた表から探すのにかかる時間をtrs×反映文の順位とする。
表のQ位以内に見つからなければ、従来の方法で探すとすると、反映文を探す時間Tは上述の式(5)で表せる。
あるNでTを最小にするパラメータの組み合わせが最も効果のあるパラメータの組み合わせと言える。
このようなときに本提案に基づく技術を利用することで、前後の工程間の関連箇所を文単位で容易に見付け出すことができ、稼働を削減する効果が見込める。
従来、このようなことを実現するためには予め形式言語で記述したり、ドキュメントにタグを付けたりすることが一般的であったが、形式言語は有スキル者しか扱えないなどの課題があり、予めタグを付けるには大きな稼働がかかることが課題であった。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
Claims (7)
- 照合対象である第1単語列と被照合対象である第2単語列を入力し、前記第1単語列および前記第2単語列のそれぞれに、予め決められた特徴語を構成する単語が含まれているか否かを判定する特徴語判定部と、
前記第1単語列と前記第2単語列とを比較して、それぞれに共通する単語からなる共通部分を取得する共通部分取得部と、
前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれている場合、前記第1単語列あるいは前記第2単語列に含まれる前記特徴語を構成する単語を1つの単語として、単語毎に予め決められている重要度と各単語に含まれる文字数とを乗算した値の総和に基づき、前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みを、それぞれ算出する重み算出部と、
前記共通部分に含まれる単語の重みと、前記第1単語列に含まれる単語の重みとに基づき、前記第1単語列に対する前記第2単語列の類似度を算出する類似度算出部と、
を備えることを特徴とする類似度算出装置。 - 前記類似度を算出する際に、前記第1単語列あるいは前記第2単語列を構成する単語を取得する際の条件、前記共通部分を構成する単語を取得する際の条件、あるいは、前記重みを算出する際の条件のうち少なくとも1つを設定する設定部をさらに備えることを特徴とする請求項1に記載の類似度算出装置。
- 前記特徴語判定部は、
前記予め決められた特徴語を構成する単語として、複数の単語によって構成される複合語と等しい単語列を作ることができる単語の全てが前記第1単語列あるいは前記第2単語列に含まれているか否かを判定し、前記複合語と等しい単語列を作ることができる単語の全てが含まれている場合に前記第1単語列あるいは前記第2単語列に前記特徴語を構成する単語が含まれていると判定することを特徴とする請求項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単語列の類似度を算出する類似度算出手段、
として機能させるための類似度算出プログラム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103616992B (zh) | 2013-11-13 | 2017-10-17 | 华为技术有限公司 | 应用程序控制方法和装置 |
Family Cites Families (3)
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 | 大日本印刷株式会社 | 電子書籍作成支援装置 |
-
2012
- 2012-01-26 JP JP2012014476A patent/JP5629701B2/ja not_active Expired - Fee Related
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 |