JP5505234B2 - 文字列比較プログラム、文字列比較装置及び文字列比較方法 - Google Patents

文字列比較プログラム、文字列比較装置及び文字列比較方法 Download PDF

Info

Publication number
JP5505234B2
JP5505234B2 JP2010219878A JP2010219878A JP5505234B2 JP 5505234 B2 JP5505234 B2 JP 5505234B2 JP 2010219878 A JP2010219878 A JP 2010219878A JP 2010219878 A JP2010219878 A JP 2010219878A JP 5505234 B2 JP5505234 B2 JP 5505234B2
Authority
JP
Japan
Prior art keywords
character string
comparison
concept
conceptual
conceptual structure
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
JP2010219878A
Other languages
English (en)
Other versions
JP2012073951A (ja
Inventor
和夫 嶺野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010219878A priority Critical patent/JP5505234B2/ja
Priority to US13/219,817 priority patent/US9037593B2/en
Publication of JP2012073951A publication Critical patent/JP2012073951A/ja
Application granted granted Critical
Publication of JP5505234B2 publication Critical patent/JP5505234B2/ja
Priority to US14/690,578 priority patent/US9460084B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition

Description

本発明は、文字列の比較処理を行う技術に関する。
文字列に対して形態素解析を行って単語単位に分割し、各単語の品詞等に基づいて構文解析を行い、当該解析結果を様々な処理に用いる技術が提案されている。例えば、文書に含まれる文字列を形態素解析及び構文解析して単語同士の係り受けを特定し、翻訳を行う技術がある。また、検索文字列の単語同士の係り受けを特定した上で構文木データを作成し、当該構文木データを用いてデータ検索を行う技術がある。さらに、文書を構成する各種の概念の構造、及び、概念の話題性を知識ベースに保持しておき、入力文書による概念の構造のスロットの充足率及び当該概念の話題性に基づいて評価値を算出し、評価値の高い概念を用いて入力文書の要約を作成する技術がある。また、入力文書から構文木データ及びその部分木データを生成し、さらに関連する2つの語句と語句間の関係とを表したタプルデータに変換して、頻度集計等に用いる技術がある。さらに、言語翻訳において、原言語文及び目的言語文の対に対し、単語に分割して品詞名で置き換えた対を生成し、頻度の高い単語及び品詞を連結して意味的なまとまりを形成するフレーズを抽出する技術が提案されている。
特開平3−8082号公報 特開2003−167898号公報 特開昭63−261457号公報 特開2003−58537号公報 特開2000−305930号公報
ところで、文字列同士を比較する処理を行う場合、従来の比較処理においては、単純に文字列の表記の比較をするに過ぎない。かかる比較処理では、比較対象となる文字列の有する意味内容が同一であっても、表記が異なれば異なる文字列として判定される。ここで、かりに文字列に対して上述のような形態素解析及び構文解析を行った上で比較をしても、かかる構文解析は各単語の意味内容までも反映させるものではないため、文字列の表記が異なれば解析結果も異なり、比較結果も異なるものとなる。このため、従来技術では、文字列同士の意味内容を考慮した上で両文字列が一致しているか否かを判定することが困難であった。
以上のような問題点に鑑み、本技術は、1つの側面において、文字列同士の比較処理において、文字列の意味内容を考慮して両文字列の比較を行うことを目的とする。
本技術は、比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得する。そして、取得した情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定して、当該意味属性が共通する各単語に対応する概念記号同士を夫々比較する。さらに、各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列の比較結果を生成する。
本技術によれば、文字列同士の比較処理において、文字列の意味内容を考慮して両文字列の比較を行うことができるようになる。
名寄せ処理を実現するシステムの一例の全体構成の説明図である。 名寄せ処理定義の一例の説明図である。 概念構造生成部の詳細構成の一例の説明図である。 用語辞書の一例の説明図である。 形態素解析結果の一例の説明図である。 解析文法の一例の説明図である。 概念構造の一例の説明図である。 標準概念構造の一例の説明図である。 標準概念構造の一例の説明図である。 正規化ルールの一例の説明図である。 照合部の詳細構成の一例の説明図である。 重み付けの一例の説明図である。 名寄せ処理全体の一例を示すフローチャートである。 概念構造生成処理の一例を示すフローチャートである。 概念構造正規化処理の一例を示すフローチャートである。 照合処理の一例を示すフローチャートである。 概念評価関数の処理の一例を示すフローチャートである。 名寄せ先概念構造の具体例(正規化の途中過程)の説明図である。 名寄せ先概念構造の具体例(正規化完了)の説明図である。 名寄せ元概念構造の一例(正規化完了)の説明図である。 評価値の一例の説明図である。 概念評価関数の処理の一例を示すフローチャートである。 データベースを検索する処理を実現するシステムの一例の全体構成の説明図である。 データベースを検索する処理の具体例の説明図である。 XMLを検索する処理を実現するシステムの一例の全体構成の説明図である。 XMLを検索する処理の具体例の説明図である。 名寄せ装置のハードウェア構成の一例を示す説明図である。
本明細書では、文字列同士を比較する処理において、単に文字列の表記同士を比較するのではなく、その文字列が有する意味内容に基づいた比較処理を行うことについて主に説明する。本明細書で説明する文字列比較処理によれば、例えば、相互に比較される文字列において、表記が異なっていても、文字列が有する意味内容が同じであれば、両文字列は一致しているものとして比較結果が生成される。
<第1実施例>
第1実施例では、上述の文字列比較処理につき、複数項目を含むレコード同士が一致しているか否かを判定する名寄せ処理において適用する例を用いて説明する。なお、本明細書において「一致する」とは、完全一致のみならず、比較対象同士が一定基準以上類似していることも含むものとする。かかる名寄せ処理は、名寄せ元データと関連性のあるデータを名寄せ先データから検出するのに用いられる。具体的には、名寄せ処理は、一例として、1つのデータベース内において、1のレコードと当該レコード以外の他のレコードとを名寄せし、両者が一致している場合に、重複レコードを除去すべく一方を削除する処理に用いられる。また、他の例として、名寄せ処理は、複数のデータベース間において、一方のデータベースに含まれるレコードと他方のデータベースに含まれるレコードとを名寄せし、両者に関連性がある場合(例えばキー項目の値が同一である等)に、両レコードを関連付ける処理に用いられることもある。
図1は、名寄せ処理を実現するシステムの一例の全体構成図である。このシステムでは、名寄せ装置1が、名寄せ元データ2Aに含まれる名寄せ元レコード及び名寄せ先データ2Bに含まれる名寄せ先レコードを照合して比較し、両レコードが一致しているか否かを判定し、判定結果として名寄せ結果3を出力する。名寄せ元データ2A及び名寄せ先データ2Bは、例えば、ハードディスクやフラッシュメモリ等の記憶装置に格納されている。また、名寄せ結果3は、例えば、記憶装置にファイル等として出力されたり、ディスプレイ等の表示装置に画面表示されたり、帳票出力等されてもよい。なお、名寄せ元データ2A及び名寄せ先データ2B並びに名寄せ結果3が格納される記憶装置は、名寄せ装置1が備える記憶装置であってもよいし、また、外部の記憶装置であってもよい。
名寄せ装置1は、名寄せ処理を実行する機構として、概念構造生成部4と、照合部5と、判定部6と、を備える。さらに、名寄せ装置1は、ハードディスク等の記憶装置(記憶手段)に格納された、概念構造生成情報7、照合情報8及び名寄せ処理定義9を備える。
概念構造生成部4は、名寄せ元レコードに含まれる各項目の文字列について名寄せ元概念構造10Aを生成する一方、名寄せ元データ2Aに含まれる各項目の文字列について名寄せ先概念構造10Bを生成する。この概念構造については、後述する概念構造生成部4の説明において詳述する。
照合部5は、名寄せ元レコード及び名寄せ先レコード間で対応する各項目の値(文字列)を、概念構造生成部4により生成された概念構造を用いて比較する。そして、各項目の文字列の比較結果を総合した総合評価値11を算出する。
判定部6は、照合部5による比較結果に基づいて、名寄せ元レコード及び名寄せ先レコードが一致しているか否かにつき、一致(White)、不一致(Black)又は判定不能(Gray)のいずれかの判定結果である名寄せ結果3を出力する。
概念構造生成情報7は、概念構造生成部4における概念構造の生成において必要な情報を含む。概念構造生成情報7の内容については、後述する概念構造生成部4の説明において詳述する。
照合情報8は、照合部5における照合処理において必要な情報が格納されている。照合情報8の内容については、後述する照合部5の説明において詳述する。
名寄せ処理定義9は、例えば図2に示すように、名寄せ元データ2A及び名寄せ先データ2Bを特定する情報や、名寄せを行う対象項目、対象項目に適用する評価関数とその評価結果に対する重み、判定部6においてレコードが一致しているか否かの判定基準とする判定閾値等の情報を含む。ここで、概念構造を用いた評価関数(概念評価関数)として「概念評価_XX」を指定することができる。なお、本明細書では評価関数として概念評価関数が指定されている場合について説明している。
名寄せ処理定義9において、対象項目の対に適用する評価関数として概念評価関数が指定されると、指定された概念評価関数が扱う意味的な領域が決まり、意味的な領域に対応する解析文法16、標準概念構造17、正規化ルール18が決定し、以降の処理ではここで決定した組み合わせで進められる。
例えば、図2に例示する名寄せ処理定義において最初の<名寄せ項目>タグで指定されている名寄せを行う対象項目は、「名寄せ元データ」の「氏名」項目と、「名寄せ先データ」の「氏名」項目の対であり、その対象項目に適用する評価関数は「概念評価_人名」であり、その評価結果に対する重みが「0.4」であることを示している。ここで、対象項目に適用する評価関数として「概念評価_人名」が指定されているので、当該評価関数が扱う意味的な領域は「人名」であり、「人名」領域に対応する解析文法16、標準概念構造17、正規化ルール18が使用されることになる。
なお、名寄せを行う対象項目とは、名寄せ元レコード及び名寄せ先レコード間において比較対象とする項目を示し、かかる比較対象となる各項目に含まれる文字列は、共通する意味的な領域(性質)を有しており、指定された概念評価関数が扱う意味的な領域とも一致している必要がある。
ここで、本明細書における「意味的な領域」とは、対象となる個々の文字列が表現する意味的な領域であり、一般的にRDB(リレーショナル・データベース)などの表における項目(列)は項目名に代表される特定の意味的な領域を有する文字列の集まりとして構造化される。また、XMLにおける要素(element)は、要素名に代表される特定の意味的な領域を有する文字列を値や属性として有するように構造化される。例えば、RDBにおいて「氏名」項目の意味的な領域が「人名」であるとき、各レコードの「氏名」項目には「田中一郎」、「鈴木次郎」などの意味的に「人名」の領域に属する文字列を値とすることを意味する。また、XMLにおける<会員>要素の子要素である<氏名>要素の意味的な領域が「人名」であるとき、各<会員>要素の子要素である<氏名>要素は、「田中一郎」、「鈴木次郎」などの意味的に「人名」の領域に属する文字列を値とすることを意味する。
なお、名寄せ元概念構造10A及び名寄せ先概念構造10B並びに総合評価値11は、一時的にRAM(Random Access Memory)等に格納されてもよいし、ハードディスク等に格納されてもよい。
次に、概念構造生成部4の構成について詳述する。
図3は、概念構造生成部4の詳細構成を示す。概念構造生成部4は、形態素解析部12と、構文解析部13と、正規化部14と、を含む。概念構造生成部4は、名寄せ装置1が備える記憶装置に格納された、用語辞書15、解析文法16、標準概念構造17及び正規化ルール18を参照して処理を行う。
形態素解析部12は、名寄せ元データ2A及び名寄せ先データ2Bのレコードの各項目のうち、概念構造を用いた比較を行う項目の文字列につき形態素解析を行う。具体的には、形態素解析部12は、文字列を先頭から順に参照して用語辞書15と照合し、用語辞書15に設定された単語単位に分割する。
図4は、用語辞書15の一例を示す。用語辞書15は、文字列に含まれる単語に対応する表記と、単語の品詞と、単語の概念記号と、単語が有する意味属性と、単語の重要性(出現可能性の高さ)を示す頻度を含む。
ここで、本明細書における概念記号とは、意味的な観点(概念レベル)において単語の現実世界における概念を識別する記号であり、単語は1つの概念記号を有する。例えば、図4に示す単語「富士通」の概念記号は「FUJITSU」であり、他の会社名とは区別できる記号となっている。
また、本明細書における「意味属性」とは、単語が持つ意味を表現する属性であり、1つの単語に複数の意味属性を有することもある。例えば文字列「富士地域の会社」と、「富士通男の会社」において、前者の単語「富士」は文法属性として「地域名」を有し、文字列は「富士という地域名の地域に存在する会社」の意味である。同様に後者の単語「富士」は文法属性として「姓」を有し、文字列は「富士さんが所属する会社」の意味である。このように表記が同じでも意味属性が異なる単語は多く存在するので、区別する必要がある。また、図4における単語「富士通」は「会社名」と「後株」の2つの意味属性を有し、単語「ミドルウエア事業本部」は「組織名」と「事業部」の2つの意味属性を有する。
なお、形態素解析部12は、必要に応じ、品詞情報によって、隣り合う事ができる単語と、隣り合えない単語の判断を行う隣接判定を行う。また、文字列中に競合する単語が存在する場合(分割方法が複数考え得る文字列が存在する場合)には、形態素解析部12は、例えば、単語の表記長や用語辞書15に設定された単語の出現頻度、品詞等に基づいて優先度の計算等を行った上で、分割方法を決定する処理等を行う。また、分割する処理が途中で失敗した場合は、直前の別の選択肢を試す処理などが行われる場合もある。
そして、形態素解析部12は、かかる用語辞書15に基づいて、各単語の有する意味属性、及び各単語の概念記号を取得し、形態素解析結果19(単語リスト)を生成する。図5は、形態素解析結果19の一例である。形態素解析結果19には、単語ごとに、用語辞書15から取得した単語の意味属性や概念記号が保持され、以降の処理で活用される。
ここで、用語辞書15は概念評価関数が扱う意味的な領域毎に使用される可能性のある単語だけを集めた用語辞書でも良く、その場合には形態素解析部12は評価対象項目に適用する概念評価関数が扱う意味的な領域に対応する用語辞書15を使用して処理を行う。なお、本明細書では用語辞書が全体で1つの場合について説明している。
構文解析部13は、各項目の文字列について、形態素解析結果19に含まれる各単語の意味属性に基づき、当該項目に適用する概念評価関数が扱う意味的な領域に対応する解析文法16を参照して各単語同士の関連を特定し、文字列の概念構造を生成する。概念構造とは、文字列に含まれる各単語の概念記号を要素とし当該各要素が単語の有する意味属性や文字列における文法上の配置に基づく関連性によって関連付けられたものである。
ここで、図6は、解析文法16の一例を示す。解析文法16は、概念評価関数が扱う意味的な領域に応じて存在し、適用条件として、解析処理の状態が肯定条件に一致するときに対応する規則を適用できることを示す肯定条件と、解析処理の状態が否定条件に一致しないときに対応する規則を適用できることを示す否定条件と、を含む。なお、肯定条件及び否定条件が両方設定されているときには、両方を満たす必要がある(AND条件)。さらに、解析文法16は、適用条件を満足するときに適用する、概念構造の生成規則を含む。なお、図6に示す解析文法16は、「勤務先」項目に対応する解析文法の一例であり、具体的に説明すると次のようになる。なお、この説明において、例えば[会社名]とは、意味属性が会社名の単語を表わす(他も同様である)。
<1>は、[会社名]を、概念構造の主軸<COMMON>とすることを示す。
<2>は、[会社名]と[法人格]が連続する場合、[会社名]の単語の意味属性にさらに[前株]がなければ、[会社名]と[法人格]を連結したものを、[会社名]とみなすことを示す。
<3>は、[会社名]と[ビル名]が連続する場合、両者を<事業所>という概念で関連付けられる(すなわち、[ビル名]を[会社名]の事業所とする)ことを示す。
<4>は、[会社名]と[組織名]が連続する場合、両者を<下位組織>という概念で関連付けられる(すなわち、[組織名]を[会社名]の下位組織とする)ことを示す。
<5>は、[組織名]と[区切り記号]が連続する場合、[区切り記号]は[組織名]に吸収することを示す。
<6>は、[数字]と[組織名]が連続する場合、[数字]は[組織名]に吸収され、概念記号も[数字]の概念記号と[組織名]の概念記号を結合することを示す。
構文解析部13は、文字列に含まれる単語の意味属性が解析文法16の適用条件を満たす場合に、解析文法16の規則を適用して、単語間の関連を構築する処理を再帰的に繰り返し、概念構造(正規化前)20を生成する。このようにして生成される概念構造20は、内部構造において[Fromノード(要素)]-<アーク(要素間の関連を示す概念)>-[Toノード(要素)]で表現され、方向性のあるネットワークの集合となる。概念構造の要素(Fromノード又はToノード)は原則として単語に対応するものであり、各単語の概念記号で表される。また、概念構造の要素は、当該単語の意味属性を示す情報も含んでおり、この意味属性は、概念記号に続けて$で表される。また、概念構造には、主軸(概念構造の始点)となる要素が1つ存在する(Fromノードを持たない<COMMON>アークのToノードとして指定される)。図7は、かかる概念構造の一例を示す。図7(A)は概念構造の内部表現であり、図7(B)は、その概念構造を図式化したものである。なお、図7に示す概念構造は、「勤務先」項目の文字列について生成された概念構造の一例であり、具体的に説明すると次のようになる。
<1>は、[FUJITSU $会社名]が、概念構造の主軸<COMMON>であることを示す。
<2>は、[FUJITSU $会社名]に対し、[SY_Buil $ビル名]が<事業所>の概念で関連付けられている。
<3>は、[FUJITSU $会社名]に対し、[DMM $事業部]が<下位組織>の概念で関連付けられている。
<4>は、[FUJITSU $会社名]に対し、[3Develop $部門]が<下位組織>の概念で関連付けられている。
正規化部14は、文字列の意味的な領域が持つべき標準的な概念構造として予め定められた標準概念構造17を参照し、各項目の文字列について生成された概念構造20を、さらに標準概念構造17の構造に合わせるように変換する正規化処理を行う。
このとき、正規化部14は、各標準概念構造17に対応した正規化ルール18に基づいて正規化処理を行う。
ここで、図8は、標準概念構造17の一例を示す。標準概念構造17は、上述したように項目に適用する概念評価関数が扱う意味的な領域に応じた概念構造の標準形であり、各概念評価関数の意味的な領域に応じて存在する。また、この標準概念構造17は、個別具体的な概念構造とは別に定められる標準形であるので、内部表現では、図8(A)に示すように、各要素は意味属性を示す情報のみを有している。したがって、標準概念構造17では、各要素の先頭に「$」が付けられ、個別具体的な概念構造とは区別されている。また、図8(B)は、図8(A)の標準概念構造17を図式化したものである。なお、図8に示す標準概念構造17は、「勤務先」項目の標準概念構造17の一例であり、具体的に説明すると次のようになる。
<1>は、[$会社名]が、概念構造の主軸<COMMON>であることを示す。
<2>は、[$会社名]に対して[$事業所名]が<事業所>の概念で関連付けられている(すなわち、[$事業所名]は[$会社名]の事業所である)ことを示す。
<3>は、[$会社名]に対して[$事業部]が<下位組織>の概念で関連付けられている(すなわち、[$事業部]は[$会社名]の下位組織である)ことを示す。
<4>は、[$事業部]に対して[$部門]が<下位組織>の概念で関連付けられている(すなわち、[$部門]は[$事業部]の下位組織である)ことを示す。
さらに、図9は、「会社」領域を含む複数の意味的な領域に対応する標準概念構造17の例として、「会社」領域、「住所」領域及び「人名」領域について図式化して表わした例である。このように、標準概念構造17は、概念評価関数が扱う意味的な領域に応じて夫々保持されている。
また、図10は、正規化ルール18の一例を示す。正規化ルール18は、適用条件として、概念構造の内部表現が肯定条件に一致するときに該当する規則が適用できることを示す肯定条件と、概念構造の内部表現が否定条件に一致しないときに該当する規則が適用できることを示す否定条件と、を含む。なお、肯定条件及び否定条件が両方設定されているときには、両方を満たす必要がある(AND条件)。さらに、正規化ルール18は、適用条件を満足するときに適用する変換規則を含む。
なお、図10に示す正規化ルール18は、「勤務先」項目から生成した「会社」領域の概念構造を、上記図9に示す「会社」領域の標準概念構造17に変換するための正規化ルール18の一例であり、具体的に説明すると次のようになる。なお、[*]で示される要素には、全ての意味属性を有する単語の概念記号が該当する。
<1>は、ある要素に対して[ビル名]が<事業所>の概念で関連付けられているとき、[ビル名]の意味属性を事業所名に変更することを示す。
<2>は、ある要素に対して[事業部]が<下位組織>の概念で関連付けられており、且つ、当該要素に対して[部門]もまた<下位組織>の概念で関連付けられているとき、当該要素の単語と[部門]との関連を解除し、[部門]を[事業部]に対して<下位組織>の概念で関連付けることを示す。
なお、用語辞書15、解析文法16、標準概念構造17および正規化ルール18は、例えばシステム管理者等が、比較対象となる文字列と、適用する概念評価関数に対応した内容で予め準備し、事前に名寄せ装置1が備える記憶装置に格納しておくものである。用語辞書15、解析文法16、標準概念構造17および正規化ルール18は、いずれも任意にメンテナンスすることが可能であり、適用する概念評価関数に応じて選定可能である。
また、形態素解析結果19、正規化前の概念構造20、正規化済の概念構造である名寄せ元概念構造10A及び名寄せ先概念構造10Bは、一時的にRAM等に格納されてもよいし、ハードディスク等に格納されてもよい。
次に、照合部5の構成について詳述する。
図11は、照合部5の詳細構成を示す。照合部5は、要素比較部21と、評価値算出部22と、総合評価値算出部23と、を含む。また、照合部5は、名寄せ装置1が備える記憶装置に格納された、標準概念構造24、要素重み付け25、項目重み付け26を参照する。ここで、要素重み付け25は、各要素の値の比較結果が文字列全体の比較結果に対して及ぼす影響度合(重要度)を示す値である。また、項目重み付け26は、各項目の値の比較結果がレコード全体の比較結果に対して及ぼす影響度合を示す値である。なお、図12(A)は、要素重み付け25の一例を示し、図12(B)は、項目重み付け26の一例を示している。なお、標準概念構造24は、概念構造生成部4において参照する標準概念構造17と同じである。
要素比較部21及び評価値算出部22は、各項目の文字列につき、概念構造生成部4により生成された概念構造同士を比較して評価を行う概念評価関数として機能する。かかる概念評価関数は、項目の意味的な領域に応じて(すなわち、比較する名寄せ元概念構造10A及び名寄せ先概念構造10Bの構造に応じて)存在してもよい。各項目の概念構造の比較処理においてどの概念評価関数を用いるかの関連付けについては、例えば、図2に示すように、名寄せ処理定義9において定義しておくことが可能である。
要素比較部21は、各項目の意味的な領域に応じた標準概念構造17を参照し、各項目について生成された名寄せ元概念構造10A及び名寄せ先概念構造10B間において対応する要素を特定して、当該要素の概念記号同士を比較する。当該比較は、換言すれば、名寄せ元概念構造10A及び名寄せ先概念構造10間において同一の関連性と意味属性を有する要素を特定し、同一の関連性と意味属性を有する要素同士で概念記号を比較することによって、意味レベルの比較を行うということである。
評価値算出部22は、要素同士の比較結果に基づいて、比較結果を表わす比較値27を決定し(例えば、一致なら1、不一致なら0とする等)、当該要素ごとの比較値27に対し、要素重み付け25に基づいて重み付けをした上で、対象項目の文字列全体について各要素の比較値27を合算した評価値28を算出する。この重み付けは、例えば、各要素の比較値27に対し、要素重み付け25の値を乗算することによって行われる。そして、評価値算出部22は、概念構造に基づいて比較を行う各対象項目について、対応する照合情報と概念評価関数を適用して評価値28を算出する。
総合評価値算出部23は、評価値28につき、項目重み付け26に基づいて重み付けをした上で、レコードに含まれる項目のうち、評価値28を算出した項目全体について評価値28を合算した総合評価値11を算出する。
次に、かかる名寄せ装置1で実行される名寄せ処理について、フローチャートを用いて説明する。
図13は、名寄せ装置1で実行される全体処理の一例を示すフローチャートである。なお、当該処理は、名寄せ装置1において、図2に示す名寄せ処理定義9に基づき、名寄せ元データ2Aおよび名寄せ先データ2B、比較対象となる項目および評価関数(ここでは概念構造を用いて比較する概念評価関数と概念評価関数に対応する解析文法16、標準概念構造17、正規化ルール18)の特定、並びに判定閾値等の特定を含む環境設定が完了したことを前提として実行される。なお、ここでは、名寄せ元データ2Aが複数の名寄せ元レコードを含む一方、名寄せ先データ2Bが複数の名寄せ先レコードを含み、名寄せ元レコードの夫々について、複数の名寄せ先レコードとの比較照合を行う場合の処理の一例を用いて説明する。
ステップ1(図ではS1と表記している。他も同様)では、名寄せ先データ2Bに含まれる名寄せ先レコードの概念評価関数による評価対象である各項目の文字列につき、概念構造生成部4が概念構造生成処理を行い、名寄せ先概念構造10Bを生成する。なお、概念構造生成処理の内容については後述する。
ステップ2では、概念構造生成部4が、未処理の名寄せ先レコードが残っているか否かを判定する。未処理の名寄せ先レコードが残っているときには、ステップ1に戻って、次の名寄せ先レコードについて概念構造生成処理を行う(Yes)、一方全ての名寄せ先レコードについて処理をしたときには、ステップ3の処理を実行する(No)。
ここまでの処理で生成された名寄せ先概念構造10Bは名寄せ処理終了まで保持することによって、同じ処理の繰り返しを防いでいる。
ステップ3では、概念構造生成部4が、名寄せ元データ2Aに含まれる名寄せ元レコードを1件ずつ順に読み出す。
ステップ4では、概念構造生成部4が、読み出した名寄せ元レコードの概念評価関数による評価対象である各項目の文字列につき、概念構造生成処理を行い、名寄せ元概念構造10Aを生成する。ここで生成された名寄せ元概念構造10Aは、当該名寄せ元に対する処理が終了するまで一時的に保持される。
ステップ5では、照合部5が、名寄せ先レコードの概念評価関数による評価対象である各項目の文字列が概念構造化された名寄せ先概念構造10Bを順次1レコード分読み出す。
ステップ6では、照合部5が、ステップ4で生成した名寄せ元概念構造10Aと、ステップ5で読み出した名寄せ先概念構造10Bと、の照合処理を行い、総合評価値11を算出する。なお、照合処理の内容については後述する。
ステップ7では、判定部6が、算出された総合評価値11と名寄せ処理定義9に設定された判定閾値とに基づいて、名寄せ先レコードと名寄せ元レコードとが一致しているか否かの判定を行う。そして、判定部6は、当該判定処理結果に基づいて、名寄せ結果3の出力処理を実行する。すなわち、判定部6は、判定結果が判定閾値における上位閾値以上である場合には比較結果を一致とし、判定結果が上下の閾値の間である場合には比較結果を判定不能とし、判定結果が下位閾値以下である場合には比較結果を不一致として、名寄せ結果3を出力する。なお、このとき、照合部5は、比較結果を判定不能とした場合には、処理対象の名寄せ元レコード及び名寄せ先レコードにつき、人手による判断が必要なレコードとして別途リスト出力等をしてもよい。
ステップ8では、照合部5が、現在処理中の名寄せ元概念構造10Aとの間で照合処理を未だ行っていない名寄せ先概念構造10Bが残っているか否かを判定する。未処理の名寄せ先概念構造10Bが残っているときには、ステップ5に戻る(Yes)、一方全ての名寄せ先概念構造10Bについて処理をしたときには、ステップ9の処理を実行する(No)。ここまでの処理で、名寄せ元の1レコードに関する名寄せ処理が終了するので、ステップ4で生成された名寄せ元概念構造10Aは開放できる。
ステップ9では、概念構造生成部4が、未処理の名寄せ元レコードが残っているか否かを判定する。未処理の名寄せ元レコードが残っているときには、ステップ3に戻る一方(Yes)、全ての名寄せ元レコードについて処理をしたときには、全体処理を終了する(No)。
次に、概念構造生成部4(形態素解析部12、構文解析部13及び正規化部14を含む)で実行される概念構造生成処理について詳述する。
図14は、概念構造生成処理を示すフローチャートである。
ステップ11では、概念構造生成部4が、照合対象となる項目を1つ選択する。
ステップ12では、概念構造生成部4が、名寄せ処理定義9を参照し、選択した項目が、概念評価関数を適用する項目であるか否かを判定する。この判定は、換言すれば、選択した項目の文字列の照合処理において、概念構造を用いた比較を行うか否かの判定である。さらに換言すれば、この判定は、選択した項目が、意味内容に基づいて文字列の比較処理を行う項目であるか否かの判定である。当該項目が概念評価関数を適用する項目である場合には、ステップ13の処理を実行する(Yes)、一方当該項目が概念評価関数を適用する項目でない場合には、ステップ17の処理を実行する(No)。
ステップ13では、形態素解析部12が、対象項目の文字列を取得する。
ステップ14では、形態素解析部12が、対象項目の文字列につき、文字列を先頭から順に用語辞書15と照合して単語単位に分解し、形態素解析結果19を生成する。
ステップ15では、構文解析部13が、対象項目の文字列に対応する形態素解析結果19である単語リストに基づき、当該項目の意味的な領域に対応する解析文法16を参照して各単語同士の関連を特定し、対象文字列の概念構造を生成する。
ステップ16では、正規化部14が、概念構造正規化処理を行う。なお、概念構造正規化処理の内容については後述する。
ステップ17は、概念構造生成部4が、未処理の項目が残っているか否かを判定する。未処理の項目が残っているときには、ステップ11に戻る(Yes)、一方全ての項目について処理をしたときには、概念構造生成処理を終了する(No)。
次に、正規化部14で実行される概念構造正規化処理について詳述する。
図15は、概念構造正規化処理を示すフローチャートである。
ステップ21では、正規化部14が、処理対象の概念構造を取得する。
ステップ22では、正規化部14が、記憶装置に格納された標準概念構造17の中から、処理対象の項目の意味的な領域に対応する標準概念構造17を取得する。
ステップ23では、正規化部14が、正規化処理が完了しているか否かを判定する。この判定では、具体的には、処理中の概念構造と標準概念構造17とが同一構造となっている場合に正規化処理が完了していると判定し、両者が同一構造となっていない場合に、正規化処理が完了していないと判定する。正規化部14は、正規化処理が完了しているときには、概念構造正規化処理を終了する(Yes)、一方正規化処理が完了していないときには、ステップ24に進む(No)。
ステップ24では、正規化部14が、取得した標準概念構造17に対応する正規化ルール18を参照し、現在処理中の概念構造に適用可能なルールを選択する。換言すれば、正規化部14は、正規化ルール18における適用条件が、現在処理中の概念構造の少なくとも一部の構造(状態)に合致するルールを選択する。なお、該当する正規化ルール18が複数存在する場合は、正規化部14は、例えば正規化ルール18における規則が標準概念構造17に近いものや、適用条件を満たすことが難しいもの等を選択し、同じ正規化ルール18を繰り返し適用することは回避する。
ステップ25では、正規化部14が、ステップ24の正規化ルール18の選択において、適用可能な正規化ルール18があったか否かを判定する。適用可能な正規化ルール18があったときには、ステップ26に進む(Yes)一方、適用可能な正規化ルール18がなかったときには、概念構造正規化処理を終了する(No)。なお、このように、正規化処理が完了していないにも関わらず適用可能な正規化ルール18がない場合(すなわち、現在処理中の概念構造が標準概念構造17に合致する概念構造でない場合)には、正規化部14は、正規化処理自体が失敗したものとして処理をしてもよい。この場合、もし途中段階まで正規化処理による概念構造の変換が進行している場合には、もとの概念構造に戻してもよいし、あるいは、途中段階まで変換が行われた状態の概念構造のまま正規化処理を終了し、正規化が途中段階であることがシステムの使用者等にわかるように通知等を行ってもよい。
ステップ26では、正規化部14が、選択した正規化ルール18の規則を適用して概念構造を変換する。そして、ステップ23へと戻る。なお、正規化部14は、概念構造自体のデータを書き換えるのではなく、正規化ルール18を適用した概念構造を、正規化ルール18を適用する前の概念構造とは別に生成して出力(作業領域に格納)してもよい。
次に、照合部5(概念評価関数の処理を行う要素比較部21及び評価値算出部22、並びに総合評価値算出部23を含む)で実行される照合処理について詳述する。
図16は、照合処理を示すフローチャートである。
ステップ31では、照合部5が、名寄せ先および名寄せ元の対象項目を順に選択する。
ステップ32では、照合部5が、選択された各項目の文字列について生成された名寄せ元概念構造10A及び名寄せ先概念構造10Bを取得する。
ステップ33では、要素比較部21及び評価値算出部22が、名寄せ元概念構造10Aと名寄せ先概念構造10Bに対して、概念評価関数の適用処理を行って評価値を一時的に保持する。なお、概念評価関数の処理については後で詳述する。
ステップ34では、照合部5が、未処理の対象項目があるか否かを判定する。照合処理部は、未処理の照合対象項目があるときには、ステップ31に戻り(Yes)、未処理の照合対象項目がないときには、ステップ35に進む(No)。
ステップ35では、総合評価値算出部23が、各対象項目について算出された評価値28につき、記憶装置に格納された項目重み付け26の値に基づいて重み付けをした上で、項目毎の評価値28を合算して総合評価値11を算出する。
ステップ36では、総合評価値算出部23が、算出した総合評価値11を出力(作業領域に格納)して照合処理を終了する。
次に、概念評価関数の処理について詳述する。
図17は、概念評価関数の処理を示すフローチャートである。
ステップ41では、評価値算出部22が、評価値28を0に初期化する。
ステップ42では、要素比較部21が、記憶装置に格納された標準概念構造17から、処理対象の項目に対応する標準概念構造17を取得する。また、評価値算出部22が、当該標準概念構造17に対応する要素重み付け25を取得する。
ステップ43では、要素比較部21が、標準概念構造17の要素を順次選択する。
ステップ44では、要素比較部21が、選択した要素に対応する名寄せ元概念構造10Aの要素の概念記号と、選択した要素に対応する名寄せ先概念構造10Bの要素の概念記号と、を特定して、両要素の概念記号同士を比較し、比較結果を示す比較値27を決定する。この比較値27としては、例えば、概念記号同士が一致していれば1、一致していなければ0とする。
ステップ45では、評価値算出部22が、対象要素に対応する重み値を要素重み付け25から取得して、比較値27に対して重み付けを実施した上で、評価値28に加算する。
ステップ46では、要素比較部21が、未処理の要素があるか否かを判定する。照合処理部は、未処理の要素があるときには、ステップ43に戻り(Yes)、未処理の要素がないときには、ステップ47に進む(No)。
ステップ47では、評価値算出部22が、算出した評価値28を出力(作業領域に格納)して概念評価関数を終了する。
ここで、名寄せ装置1で実行される処理について、具体例を示して説明する。
本具体例では、説明の便宜上、名寄せ元レコード及び名寄せ先レコードはいずれも1件とする。また、名寄せ元レコード及び名寄せ先レコードともに、「ID」、「氏名」、「住所」、「勤務先」項目を有している。
まず、概念構造生成処理につき、「勤務先」項目の文字列を例に用いて説明する。名寄せ元レコード及び名寄せ先レコードにおける「勤務先」項目の文字列は、夫々次に示す内容である。
名寄せ元:「富士通株式会社 ミドルウエア事業本部 データマネジメント・ミドルウエア事業部 第二開発部 新横浜ビル」
名寄せ先:「富士通SY DMM)3開発」
さらに、本具体例では、用語辞書15は図4、解析文法16は図6、「勤務先」項目に対応する標準概念構造17は図8、正規化ルール18は図10に示す内容とする。
そして、概念構造生成部4においては、次の処理を行う。すなわち、形態素解析部12が、名寄せ先レコードの「勤務先」項目の文字列を取得し、図4の用語辞書15を参照しつつ、図5に示すような、単語単位に分割した形態素解析結果19を生成する(図14のステップ14)。
さらに、構文解析部13が、図6の解析文法16を参照しつつ、名寄せ先レコードの「勤務先」項目の文字列から生成した形態素解析結果19を概念構造に変換する(図14のステップ15)。当該変換は、次のような手順を経る。
(1)解析文法<1>により、意味属性に[会社名]を持つ単語「富士通」が主軸ノード<COMMON>に選定される。
(2)解析文法<3>により、意味属性に[会社名]を持つ単語「富士通」と、意味属性に[ビル名]を持つ単語「SY」と、は<事業所>の概念で関連付けられる。
(3)解析文法<5>により、意味属性に[区切り記号]を持つ単語「)」は、意味属性に[組織名]を持つ単語「DMM」に吸収される。
(4)解析文法<4>により、意味属性に[会社名]を持つ単語「富士通」と、意味属性に[組織名]を持つ単語「DMM」と、は<下位組織>の概念で関連付けられる。
(5)解析文法<6>により、意味属性に[数字]を持つ単語「3」は、意味属性に[組織名]を持つ単語「開発」に吸収されて1つの要素となる。且つ、当該要素は概念記号「3Develop」に変換される。
(6)解析文法<4>により、意味属性に[会社名]を持つ単語「富士通」と、意味属性が[組織名]である単語「開発」と、は<下位組織>の概念で関連付けられる。
(7)全ての単語について概念構造への変換が完了し、これ以上適用できるルールが無いので終了する。
かかる処理の結果、名寄せ先レコードの「勤務先」項目の文字列は、図7に示すような概念構造に変換される。
次に、正規化部14が、当該概念構造について概念構造正規化処理を行う(図14のステップ16)。ここでは、正規化部14は、図7に示す概念構造を取得するとともに、図8に示す「勤務先」項目に対応する「会社」領域の標準概念構造17を取得する(図15のステップ21、22)。そして、正規化部14は、概念構造生成部4によって生成された図7の概念構造と図8の標準概念構造17との比較を行い、正規化処理が完了しているか否かを判定する(ステップ23:1回目)。この場合、図7の概念構造と図8の標準概念構造とでは、概念構造<2>[FUJITSU $会社名]-<事業所>-[SY_Buil $ビル名]のToノードと、標準概念構造<2>[$会社名]-<事業所>-[$事業所名]のToノードにおいて、要素の意味属性が「$ビル名」と「$事業所名」とで異なっている。このため、異なっている部分につき、図10に示す正規化ルール18の中から、適用可能なルールを選択する(ステップ24:1回目)。ここでは、概念構造<2>に適用可能なルールとして、正規化ルール<1>を選択する。そして、正規化ルール<1>を適用して、図7の概念構造を変換する(ステップ25、26:1回目)。すると、概念構造<2>のToノードの意味属性が、「$ビル名」から「$事業所名」に変更されるので、概念構造は図18のようになる。
そして、再び、正規化部14は、図18の概念構造と図8の標準概念構造との比較を行い、正規化処理が完了しているか否かを判定する(ステップ23:2回目)。この場合、図18の概念構造と図8の標準概念構造とでは、概念構造<4>[FUJITSU $会社名]-<下位組織>-[3Develop $部門]のFromノードと、標準概念構造<4>[$事業部]-<下位組織>-[$部門]のFromノードにおいて、意味属性が「$会社名」と「$事業部」とで異なっている。このため、異なっている部分につき、図10に示す正規化ルールの中から、適用可能なルールを選択する(ステップ24:2回目)。
ここで、正規化ルール<2>に着目すると、第1条件である[*]-<下位組織>-[$事業部]については、Fromノード[*]を[FUJITSU $会社名]、Toノード[$事業部]を[DMM $事業部]とすれば、概念構造<3>がこの条件と一致する。また、第2条件である[*]-<下位組織>-[$部門]については、Fromノード[*]は第1条件と同じ[FUJITSU $会社名]であるから、概念構造<4>がこの条件と一致する。すなわち、現在処理中の概念構造は、正規化ルール<2>の適用条件を満たしている。このため、正規化ルール<2>を適用して図18の概念構造を変換する(ステップ25、26:2回目)。すると、概念構造<4>のFromノードが、上述した第1条件で[$事業部]に適合した[DMM $事業部]に変更されるので、概念構造は図19のようになる。
そして、再び、正規化部14は、概念構造生成部4によって生成された図19の概念構造と図8の標準概念構造との比較を行い、正規化処理が完了しているか否かを判定する(ステップ23:3回目)。この段階では、図19の概念構造と図8の標準概念構造とで全ての概念構造が一致するので、図19の概念構造が名寄せ先概念構造10Bとして確定し、概念構造正規化処理が終了する。
一方、概念構造生成部4は、名寄せ元レコードの勤務先の文字列についても、上記処理と同様に概念構造生成処理を行う。その結果、名寄せ元レコードの「勤務先」項目の文字列については、図20のような名寄せ元概念構造10Aが生成される。
次に、照合処理について説明する。ここでは特に、上記「勤務先」項目について生成した概念構造の比較について説明する。照合部5が、「勤務先」項目を処理対象として選択し、名寄せ元概念構造10A及び名寄せ先概念構造10Bを取得する(図16のステップ31、32)。そして、概念評価関数として機能する要素比較部21が、名寄せ元概念構造10A及び名寄せ先概念構造10Bとの間で対応する要素の概念記号同士を比較し、「勤務先」項目の評価値28を算出する(ステップ33)。
具体的には、評価値算出部22が、まず評価値28を0に初期化する(図17のステップ41)。そして、要素比較部21は、名寄せ元概念構造10A及び名寄せ先概念構造10Bとの間で対応する要素同士が一致しているときに要素の評価値を1.0とする一方、一致していないときに0とし、図12(A)に示す要素重み付け25を適用した上で評価値28に加算する(ステップ42〜45)。例えば、図20の名寄せ元概念構造10Aの〔会社名〕の要素と、図19の名寄せ先概念構造10Bの〔会社名〕の要素とを比較すると、両者はともに[FUJITSU]で一致する。そして、〔会社名〕要素の重み付けは0.6である。このとき、〔会社名〕要素の評価値は、1.0×0.6=0.6となる。同様に、〔事業部〕要素及び〔事業所名〕要素も一致するため、〔事業部〕要素の評価値は1.0×0.2=0.2、〔事業所名〕要素の評価値は1.0*0.1=0.1となる。一方、〔部門〕要素は、名寄せ元と名寄せ先とで一致しないため、0*0.1=0となる。そして、評価値算出部22は、各要素の評価値を合算した評価値0.6+0.2+0.1+0=0.9を評価値28として出力する(ステップ46、47)。なお、各要素に対する要素重み付けと、これらの各要素同士の比較値27と、比較値27に要素重み付けを反映させた値と、評価値28と、の関係を表に表したものが図21である。
さらに、概念構造生成部4は、「勤務先」以外の項目である「氏名」及び「住所」についても同様に概念構造を生成して正規化し、照合部5は、これらの項目についても夫々評価値28を算出する。そして、照合部5は、全項目の評価値28につき、図12(B)に示す項目に対する重み付けを適用した上で合算し、総合評価値11を算出する。例えば、「氏名」項目の文字列及び「住所」項目の文字列が意味的に一致しており、各項目の評価値28が、夫々、氏名=1、住所=1、勤務先=0.9である場合、各項目の評価値に図12(B)に示す項目に対する重み付けをすると、「氏名」項目は1×0.5=0.5、「住所」項目は1×0.3=0.3、「勤務先」項目は0.9*0.2=0.18となり、総合評価値11は0.5+0.3+0.18=0.98となる。ここで、図2に示す名寄せ処理定義9に設定された閾値の上限が0.72、下限が0.26であるため、総合評価値11は上限閾値以上である。このため、判定部6は、この名寄せ元レコード及び名寄せ先レコードを一致していると判定し、名寄せ結果3として出力する(図13のステップ7)。
かかる名寄せ処理によれば、名寄せ元レコードの比較対象項目の文字列及び名寄せ先レコードの比較対象項目の文字列について、文字列の表記そのものではなく、文字列について生成された概念構造において対応する要素の概念記号同士において比較がなされる。ここで、比較対象となる概念構造は、比較対象項目自体が共通に持つべき意味的な構造として与えられた標準概念構造に合わせて正規化されている。この正規化処理においては、比較対象となる概念構造の夫々につき、各要素の意味属性と要素間の関連付けについて、全体の意味が変わらないように修正され、標準概念構造に合わせた構造に変換される。その結果、名寄せ元概念構造10A及び名寄せ先概念構造10Bは、標準概念構造に準じた対応する要素を特定することができる。即ち、対応する要素とは、意味的に共通性があるべき要素、換言すれば、本質的に比較すべき対象となる。例えば、図20と図19の〔部門〕要素は、「会社の事業部の下位組織である部門」という共通の意味を持つ要素であり、この要素を比較することは、「会社の事業部の下位組織である部門」について厳密な比較を実現することになる。そして、概念記号は単語の現実世界における概念を識別する記号であるから、かかる概念構造を用いて対応する要素の概念記号同士を比較することは、すなわち、意味的に共通性がある要素間の厳密な比較において、具体的な比較対象の違いを検定することとなる。例えば、図20の〔部門〕の概念記号である[2Develop]と、図19の〔部門〕の概念記号である[3Develop]とを比較することは、比較対象の文字列における表記は多様で異なっていても、意味的に同じ概念である部門について「第二開発部」と「第3開発部」とを比較するのと同義であり、「部門は異なる」「部門は近い」などの現実世界に照らして本質的な比較結果を得ることを可能にするものである。
このため、概念構造を用いた概念評価関数による比較によれば、従来の文字列表記同士の比較(例えば、文字列の表記同士が完全一致、部分一致又は前方一致等をしているかについての比較や、N−gramや編集距離を用いた比較を行う評価関数による比較)と異なり、次のような判定が可能である。すなわち、概念構造を用いた比較によれば、比較対象となる文字列間において表記が異なっていても、標準概念構造に照らして、共通する構造を構成する要素である単語同士の現実世界における概念が一致していれば、両者が一致しているものと判定された比較結果が生成される。
さらに、かかる概念構造を用いた比較処理によれば、例えば、比較対象となる文字列間において、例えば、同一意味内容を有するが表記が異なる単語が用いられている場合、同一表記の単語が用いられているが単語の表記順序が異なっている場合、また、同一意味内容を有するが表記が異なる単語が用いられ、かつ表記順序が異なっている場合も、両文字列は一致しているものと判定され得る。なお、上記具体例においては、名寄せ元の「勤務先」項目の文字列及び名寄せ先の「勤務先」項目の文字列につき、概念構造を用いた比較を行った結果、両者が一致しているという比較結果が生成されたが、これらの文字列の表記を単純に比較した場合、両者は当然に不一致となるばかりか、従来の比較手段(完全一致、完全一致、部分一致、前方一致、N−gram、編集距離、など)では類似していると判定することも困難である。
したがって、概念構造を用いた比較処理によれば、単なる文字列表記の比較処理とは異なり、人間が文字列を比較して一致しているか否かを判断する場合に近い文字列比較処理を実現することができる。
また、上記実施例では、評価値の算出において、各要素の概念記号の比較値に対し、要素の重要度に応じた要素重み付けを行った上で評価値を算出している。これにより、要素重み付けの設定次第で、各要素同士の比較結果が文字列全体の比較結果に与える影響度合を調整することができる。しかし、かかる調整が必要ない場合には、要素重み付けをせずに評価値を算出することも可能である。なお、同様に、総合評価値の算出においても、項目の重要度に応じた項目重み付けを行った上で総合評価値を算出している。これにより、項目重み付けの設定次第で、各項目における評価関数による比較結果がレコード同士の比較結果へ与える影響度合を調整することができる。しかし、かかる調整が必要ない場合には、要素重み付けをせずに総合評価値を算出することも可能である。
さらに、上記実施例では、図13に示す名寄せの全体処理において、全ての名寄せ先レコードの文字列について先ず名寄せ先概念構造10Bを生成している(ステップ1及び2)。これにより、以降の処理においてこの名寄せ先概念構造10Bを用いて名寄せ元レコードとの比較を行うことが可能となる。このため、処理対象の名寄せ元レコードが変わるたびに名寄せ先概念構造を生成する処理をする必要がなくなる。
なお、概念構造の各要素の概念記号を用いて比較を行う処理は、上記第1実施例のように名寄せを目的とした処理のみならず、文字列同士の比較処理であれば、いかなる処理においても適用可能である。すなわち、比較対象となる2つの文字列の内容(領域)に応じた用語辞書、解析文法、標準概念構造及び正規化ルールが予め記憶装置に格納されていれば、概念構造生成処理により、両文字列について正規化された概念構造を生成し、正規化することができる。そして、照合処理により、両概念構造において対応する要素の概念記号同士を比較し、評価値が算出される。なお、この場合は、当該文字列に対する評価値によって文字列同士の比較結果が決定される場合には、上記第1実施例のような、複数項目の文字列の評価値を合算した総合評価値11の算出や閾値による判定処理は不要となる。
また、上記実施例では、概念構造生成処理において、構文解析部13によって概念構造を生成した後に、正規化部14によって、当該概念構造を正規化している。しかし、構文解析部13によって生成される概念構造の構造自体が標準概念構造と一致していれば、正規化処理を行う必要はない。換言すれば、構文解析部によって標準概念構造と同様に概念構造を生成することができるように用語辞書や解析文法が設定されていれば、さらなる正規化処理は不要となる。
さらに、そもそも概念構造を生成する処理は必ずしも必要ではない。例えば、比較対象となり得る文字列について予め概念構造を生成して記憶装置に格納しておき、比較対象とされた文字列に対応する概念構造を取得して、概念構造同士の比較を行ってもよい。そのようにすれば、文字列を比較するごとに概念構造を生成する必要がなく、処理負荷を軽減することができる。
また、上記実施例では概念構造を用いた比較を行っているが、そもそも、比較対象となる文字列間において、意味属性が共通する概念記号同士を比較することができれば、必ずしも概念構造を用いる必要もない。例えば、比較対象となる一の文字列及び他の文字列のそれぞれの形態素解析結果が有する各単語の意味属性に基づいて、両文字列において意味属性が共通する単語を特定し、当該単語の概念記号同士を比較してもよい。
ここで、上述の実施例のように、項目(文字列全体)に応じた標準概念構造に合わせて正規化された概念構造を用いて比較を行う場合、例えば次のような処理が可能である。すなわち、正規化処理において、概念構造を標準概念構造に一致させることができない(正規化ルールを完全に適用できない)文字列については、意味内容に基づいた比較に適さない文字列であるとして、概念構造の生成を中止する(概念構造を用いた比較処理を回避する)ことが可能である。換言すれば、比較対象となる両文字列について完全に標準概念構造と一致することを要求した完全な一致を評価することができ、意味内容に基づいた完全一致を求める手段として有効である。
また、正規化処理において、概念構造を標準概念構造に一致させることができない場合には、可能な限りの処理をした上で、次の照合処理に進み、照合処理では標準概念構造と一致している部分の要素について比較を行うこともできる。この方法は、比較対象の文字列に情報が不足している場合でも、それなりの比較結果を得ることができるので、曖昧性を許容したい場合に有効である。この照合処理において、片方の要素が存在しない場合の評価値を0にするのではなく、0.5など、中間的な点数を与えることによって「仮に情報が有った場合を考慮すると、異なる場合よりも両者は近い」という概念を導入することもできる。
かかる概念構造の生成及び正規化を行わずに、単に一の文字列及び他の文字列において意味属性が共通する単語の概念記号同士を比較する場合には、文字列全体として意味内容に基づいた厳密なの判定をすることは困難である。しかし、例えば、文字列を構成する各単語の意味属性が明らかに一致している文字列同士を比較する場合などには有効であり、文字列の意味内容に基づいた比較を実現することは可能である。
次に、照合処理の概念評価関数の処理において各要素の比較結果を表わす値を順に加算して評価値を算出する過程において、評価値が所定の閾値以下になることが明らかになった段階で、当該要素の照合処理を中止する(打ち切る)変形例について説明する。
図22は、照合部5で実行される概念評価関数の処理の一例を示すフローチャートである。
ステップ51では、評価値算出部22が、評価値を0に初期化する。さらに、評価値算出部22は、当該項目において評価値が取り得る最高値(例えば1)を残最高値として設定する。
ステップ52では、要素比較部21が、記憶装置に格納された標準概念構造から、処理対象の項目に対応する標準概念構造を取得する。さらに、評価値算出部22が、当該標準概念構造に対応する要素重み付けと、処理対象の項目についての概念評価関数の処理を中断する判断基準となる足切値と、を取得する。
ステップ53では、要素比較部21が、標準概念構造の要素を、重み付けの大きい要素から順に選択する。なお、ここで重み付けの大きい要素から順に選択するのは、足切りの判断をできるだけ早い段階で行うことができるようにし、処理量を効率的に減らすためであって、必ずしも重み付けの大きい要素から順に選択する必要はない。
ステップ54では、要素比較部21が、選択した要素について、名寄せ元概念構造10Aと名寄せ先概念構造10Bとを比較し、比較結果を示す判定値を特定する。この判定値としては、例えば、要素同士が一致していれば1、一致していなければ0とすることができる。
ステップ55では、評価値算出部22が、ステップ54で特定された判定値に、当該要素に対応する重み付けを行った上で、評価値に加算する。
ステップ56では、評価値算出部22が、残最高値から、当該要素が一致した場合における判定値(即ち、当該要素における最高の判定値)に対して重み付けを行った値を減算する。
ステップ57では、評価値算出部22が、現段階における評価値及び残最高値の合算値が足切値よりも大きいか否かを判定する。この判定は、換言すれば、この段階で残り要素に対する判定値がすべて最高であると仮定した場合に、評価値が足切値よりも大きくなる可能性があるか否かの判定であり、この段階で処理を中断するか否かの判定である。合算値が足切値よりも大きいときには、ステップ58に進み(Yes)、合算値が足切値以下であるときには、ステップ59に進む(No)。
ステップ58では、要素比較部21が、未処理の要素があるか否かを判定する。照合処理部は、未処理の要素があるときには、ステップ53に戻り(Yes)、未処理の要素がないときには、ステップ59に進む(No)。
ステップ59では、評価値算出部22が、算出した評価値を出力(作業領域に格納)して概念評価関数の処理を終了する。
かかる変形例における概念評価関数の処理によれば、評価値を算出する途中段階において、評価値が足切値に到達しないことが明らかとなったときには、概念評価関数の処理を中断し、現段階までの各要素の比較値を加算して算出した評価値を出力する。かかる処理は、例えば、上記名寄せ処理においては、文字列の比較を行う対象が1項目のみである場合等に有効である。すなわち、文字列の比較を行う対象が1項目のみである場合には、当該項目について算出された評価値がそのまま総合評価値になる。このため、例えば、足切値を判定閾値の下限値としておけば、評価値の算出(要素ごとの比較値の加算)を中断したとしても、当該総合評価値と判定閾値との比較においては、評価値が判定閾値の下限値を下回ることに変わりはない。したがって、概念評価関数の処理を中断しない場合と比べ、比較結果に影響を及ぼすことなく、不要な処理を削減し、CPUの処理負荷を軽減させることができる。
また、かかる変形例における概念評価関数の処理も、名寄せ処理のみならず、文字列同士を比較して一致しているか否かを判定する処理であれば当然に適用可能である。
<第2実施例>
ここで、上記のように各項目の文字列の意味内容に基づいて文字列を比較する処理は、名寄せ処理に適用されるのみならず、あらゆる処理に適用可能である。第2実施例では、かかる処理を、データベースの検索において、検索条件となる文字列(検索文字列)と、データベースに格納されたレコードの検索対象項目の値文字列と、の比較に用いる例について説明する。
図23は、データベース検索処理を実現するシステムの一例の全体構成図である。このシステムでは、データベース検索装置31が、検索式32Aにおいて指定された検索対象項目に対する検索条件の値である検索文字列につき、データベース32Bに格納されたレコードに含まれる前記の検索対象項目の値文字列と検索条件に応じて照合する。そして、データベース検索装置31は、検索文字列と意味内容が一致する(検索条件に適合する)文字列を検索対象項目に有するレコードを特定し、検索結果33を出力する。
データベース検索装置31は、データベース検索処理を実行する機構として、概念構造生成部34、照合部35及び判定部36を有する。さらに、データベース検索装置は、ハードディスク等の記憶装置に格納された、概念構造生成情報37、照合情報38及び判定閾値39を有する。なお、概念構造生成部34、照合部35及び判定部36並びに概念構造生成情報37及び照合情報38は、比較対象が検索文字列及びデータベースの項目の文字列であるという点が名寄せ装置とは異なることを除けば、原則として名寄せ装置1の例における概念構造生成部4、照合部5及び判定部6並びに概念構造生成情報7及び照合情報8に対応する。なお、データベース検索処理においては、検索式32Aにおいて、検索における文字列比較を概念構造を用いて行うか否か等が検索条件として指定されるため、名寄せ処理における名寄せ処理定義9の代わりに、検索文字列とデータベースの項目の文字列とが一致しているか否かの判定に用いる判定閾値39のみが記憶装置に格納されており、判定閾値を検索式で動的に指定する実装も可能である。また、データベース検索装置31は、検索式32Aを解釈した結果として検索対象項目および検索条件と併せて、検索条件の値である検索文字列を持つが、検索式32Aの解釈処理は従来からデータベースにおけるSQLパーサなどによって実現されている技術なので、省略している。また、データベース検索装置31は、前記検索文字列について生成された概念構造である検索文字列概念構造40Aを含む。さらに、データベース検索装置31は、検索文字列とデータベース32Bのレコードの項目の文字列との比較結果を示す評価値41を含む。以下、データベース検索装置31につき、主に名寄せ装置1との相違点に重点をおいて説明する。
データベース検索装置31においては、システム使用者等は、データベース32Bの意味内容に基づく検索の対象となる可能性を有する各レコードの各項目の文字列につき、予め検索対象概念構造40Bを生成しておき、データベース32Bに格納しておく。なお、当該概念構造は、データベースの項目値として格納されていてもよいし、インデックスとして格納されていてもよい。これらの検索対象概念構造40Bは、必要に応じてメンテナンスすることが可能である。
そして、検索式32Aが指定されると、既知技術である検索式の解釈が行われ、検索条件と併せて、検索対象項目とその検索文字列に分解される。次に、文字列比較を意味内容に基づいて行うことが指定された検索条件である場合には、概念構造生成部34が、検索文字列について、概念構造生成処理及び概念構造正規化処理を行う。なお、第1実施例の説明における名寄せ元レコードを検索文字列、名寄せ元概念構造を検索文字列概念構造と夫々読み替えるものとする。一方、本実施例では、検索対象となるデータベース32Bのレコードの項目の値である文字列の概念構造40Bが第1実施例の名寄せ先概念構造に対応するが、上述したように概念構造40Bは概念構造生成部と同等の処理によって項目の値である文字列から作成され、予めデータベース32Bに格納されているため、検索対象に対する検索実行時の概念構造生成処理は不要である。
さらに、照合部35は、検索文字列について生成された検索文字列概念構造40Aと、当該検索文字列の検索対象となるデータベースのレコードの項目の値として(または対応するインデックスとして)格納されている検索対象項目の検索対象概念構造40Bと、を概念評価関数を用いて要素ごとに比較し、評価値41を算出する。なお、第2実施例においては、検索文字列とレコードに含まれる1項目の文字列との比較結果により判定部56による検索条件に応じた判定がなされるため、各レコードにつき、各項目の比較結果を総合する必要がない。このため、総合評価値の算出は不要であり、評価値41がそのまま第1実施例における総合評価値に相当する。
そして、判定部36は、この評価値41と判定閾値39とを検索条件によって比較し、検索文字列とデータベースの項目値とが一致しているか(検索条件に適合するか)否かを判定し、判定結果に基づいて検索結果33を出力する。
なお、検索式として複数の検索条件が指定される場合には、判定部36で複数の検索条件を考慮した判定を行う中で、第1実施例における総合評価値に相当する判定処理をすることもできる。
また、必ずしも対象となる文字列をデータベーから一旦取り出してデータベース検索装置で処理する必要は無く、データベース検索装置と論理的に同じ処理であれば、他の実装も可能である。具体的には、データベース検索装置は、データベース管理システム(DBMS)の一部としてデータベース32B内に実装し、照合部35と判定部36の処理は、検索式で指定された検索対象項目の値が検索条件を満足することをデータベースのレコードまたは対応するインデックスを検索する処理の中で判定を行い、検索式に適合する検索結果33だけを出力することも可能である。
図24に、データベースを検索する処理の具体例を示す。この例では、検索式32Aとして、「SELECT * FROM 会員表 WHERE 勤務先 SAME(富士通SY DMM)3開発);」
が実行されたとする。なお、ここでは、SAME関数は、文字列をその意味内容の比較により既定の閾値で類似検索する関数であるとする。すなわち、この検索式は、データベースの「会員表」32Bから、「勤務先」項目の文字列の意味内容が、検索文字列「富士通SY DMM)3開発」の意味内容と類似するレコードを抽出するという検索条件が指定されていることを表わしている。即ち、検索式32Aは、検索対象項目は「勤務先」であり、検索文字列は「富士通SY DMM)3開発」、検索条件はSAME( )であると解釈される。ここで、データベース32Bには、「勤務先」項目の値に対応する各項目の検索対象概念構造40Bが予め格納されているとする。具体的には、ID「103」のレコードの「勤務先」項目には、値の文字列「富士通株式会社 ミドルウエア事業本部 データマネジメント・ミドルウエア事業部 第二開発部 新横浜ビル」を「会社名」領域の標準概念構造に基づいて概念構造にした検索対象概念構造40Bが格納されているとする。そして、概念構造生成情報37及び照合情報38は、夫々上記第1実施例の具体例における概念構造生成情報7及び照合情報8と同じ内容であるとする。
この場合、第1実施例の具体例と同様に、検索文字列「富士通SY DMM)3開発」を検索対象項目である「勤務先」項目に対応する「会社名」領域の標準概念構造に基づいて概念構造にした検索文字列概念構造40Aが生成され、検索文字列概念構造40Aと、上述の検索対象概念構造40Bと、が比較される。その結果、評価値41は第1実施例の具体例と同様0.9となる。そして、判定閾値39が、第1実施例の名寄せ処理定義9に定義された判定閾値と同様に上限が0.72、下限が0.26である場合、評価値は上限閾値以上である。このため、判定部36は、検索文字列とID「103」のレコードの「勤務先」項目の文字列が類似しており、ID「103」のレコードが検索式に適合していると判定し、検索結果33として出力する。
このように、文字列の意味内容に基づいた文字列比較処理を、データベース検索に用いることにより、検索文字列とデータベースの検索対象の項目の文字列とで表記が異なっても、両者で意味内容が一致していれば、当該項目の文字列を含んだレコードを検索結果として抽出することができる。
なお、当該第2実施例においては、検索対象の項目の文字列につき予めデータベースに概念構造を格納することで、検索に要する処理量を軽減している。しかし、検索処理において、検索対象の項目の文字列につき概念構造を生成するようにしてもよい。
<第3実施例>
次に、上記のように文字列の意味内容に基づいて文字列同士を比較する処理を、XMLの検索に用いる実施例について説明する。
なお、第3実施例の説明では、XMLの「要素」(element)のことを「element」、XMLの「属性」(attribute)のことを「attribute」と表記して、文法属性における「要素」や、意味属性としての「属性」と区別している。
図25は、XML検索処理を実現するシステムの一例の全体構成図である。このシステムでは、XML検索装置51が、検索式52Aにおいて指定された検索対象elementやattributeの値に対する検索条件の値である検索文字列につき、XMLデータベース52Bのデータのうち検索対象となるelement(又はattribute)の値である文字列と照合する。そして、XML検索装置51は、検索対象elementやattributeが検索文字列と意味内容が一致する(検索条件に適合する)文字列を有するXMLデータ(element)を特定し、検索結果53を出力する。
XML検索装置51は、XML検索処理を実行する機構として、概念構造生成部54、照合部55及び判定部56を有する。さらに、XML検索装置51は、ハードディスク等の記憶装置に格納された、概念構造生成情報57、照合情報58及び判定閾値59を有する。なお、概念構造生成部54、照合部55及び判定部56並びに概念構造生成情報57及び照合情報58は、比較対象が検索文字列及びXMLのXMLelementまたはattributeの値としての文字列であるという点が名寄せ装置とは異なることを除けば、原則として名寄せ装置1の例における概念構造生成部4、照合部5及び判定部6並びに概念構造生成情報7及び照合情報8に対応する。なお、XML検索処理においては、第2実施例と同様、検索文字列と対象となるXMLのelementまたはattributeの値の文字列とが一致しているか否かの判定に用いる判定閾値59が記憶装置に格納されており、判定閾値59を検索式で動的に指定する実装も可能である。また、XML検索装置51は、検索式文字列52Aを解釈した結果として検索対象elementまたはattributeおよび検索条件と併せて、検索条件の値である検索文字列を持つが、検索式52Aの解釈処理は従来からXMLにおけるXQueryパーサなどによって実現されている技術なので、省略している。また、XML検索装置51は、前記検索文字列について生成された概念構造である検索文字列概念構造60Aを含む。さらに、XML検索装置51は、検索文字列とXMLデータベース52Bのelementまたはattributeの値である文字列との比較結果を示す評価値61を含む。以下、XML検索装置51につき、主に名寄せ装置1との相違点に重点をおいて説明する。
XML検索装置51においては、第2実施例と同様、システム使用者等は、XMLデータベース52Bの意味内容に基づく検索の対象となる可能性を有する各elementまたはattributeの値である文字列につき、予め検索対象概念構造60Bを生成しておき、XMLデータベース52Bに格納しておく。なお、当該概念構造は、XMLデータベースのelementやattributeの値として格納されていてもよいし、インデックスとして格納されていてもよい。これらの検索対象概念構造60Bは、必要に応じてメンテナンスすることが可能である。
そして、検索式52Aが指定されると、既知技術である検索式の解釈が行われ、検索条件と併せて、検索対象elementまたはattributeと、その検索文字列に分解される。次に、当該検索における文字列比較を意味内容に基づいて行うことが指定された検索条件である場合には、概念構造生成部54が、検索文字列について、概念構造生成処理及び概念構造正規化処理を行う。なお、第1実施例の説明における名寄せ元レコードを検索文字列、名寄せ元概念構造を検索文字列概念構造と夫々読み替えるものとする。一方、本実施例では、XMLデータベース52Bに含まれる検索対象elementまたはattributeの文字列の概念構造60Bが第1実施例の名寄せ先概念構造に対応するが、上述したように概念構造60Bは概念構造生成部と同等の処理によってXMLのelementまたはattributeの値である文字列から作成され、予めXMLデータベース52Bに格納されているため、検索対象に対する検索実行時の概念構造生成処理は不要である。
さらに、照合部55は、検索文字列について生成された検索文字列概念構造60Aと、当該検索文字列の検索対象となるelementまたはattributeの値として(または対応するインデックスとして)格納されている検索対象elementまたはattributeの検索対象概念構造60Bと、を概念評価関数を用いて要素ごとに比較し、評価値61を算出する。なお、第3実施例においても、第2実施例と同様、評価値61がそのまま第1実施例における総合評価値に相当する。
そして、判定部56は、この評価値61と判定閾値59とを検索条件によって比較し、検索文字列とXMLデータベースの対象elementまたはattributeの値とが一致しているか(検索条件に適合するか)否かを判定し、判定結果に基づいて検索結果53を出力する。
なお、検索式として複数の検索条件が指定される場合には、判定部56で複数の検索条件を考慮した判定を行う中で、第1実施例における総合評価値に相当する判定処理をすることもできる。
また、必ずしも対象となるelementまたはattributeの値である文字列をXMLデータベーから一旦取り出してXML検索装置で処理する必要は無く、XML検索装置と論理的に同じ処理であれば、他の実装も可能である。具体的には、XML検索装置は、XMLデータベースの一部としてXMLデータベース52B内に実装し、照合部55と判定部56の処理は、検索式で指定された検索対象elementまたはattributeの値が検索条件を満足することをXMLデータベースのelement、attribute、または対応するインデックスを検索する処理の中で判定を行い、検索式に適合する検索結果53だけを出力することも可能である。
図26に、XMLを検索する処理の具体例を示す。この例では、検索式(XQuety FLWR表現式)として、
「for $p in document(“全会員”)//会員 let $pn := $p/勤務先/text()
where same($pn ,”富士通SY DMM)3開発”) return <特定会員> { $p } </特定会員>」
が実行されたとする。なお、ここでは、第2実施例と同様、same関数は、文字列をその意味内容の比較により既定の閾値で類似検索する関数であるとする。すなわち、この検索式は、XMLデータベース52Bに含まれるXML「全会員」から、「会員」elementの子要素である「勤務先」elementの値文字列(テキスト)が、「富士通SY DMM)3開発」と意味内容において一致する「会員」elementを「特定会員」elementとして抽出するという検索条件を表わしている。即ち、検索式52Aは、検索対象elementは「会員」elementの子要素である「勤務先」elementであり、検索文字列は「富士通SY DMM)3開発」、検索条件はsame( )であると解釈される。具体的には、XMLデータベース52Bには、ID「005」を子要素に持つ「会員」elementの子要素である「勤務先」elementの値である文字列「富士通株式会社 ミドルウエア事業本部 データマネジメント・ミドルウエア事業部 第二開発部 新横浜ビル」を「勤務先」elementに対応する「会社名」領域の標準概念構造に基づいて概念構造にした検索対象概念構造60Bが格納されているとする。そして、概念構造生成情報57及び照合情報58は、夫々第1実施例における具体例と同じ内容であるとする。
この場合、第1実施例の具体例と同様に、検索文字列「富士通SY DMM)3開発」を「勤務先」elementに対応する「会社名」領域の標準概念構造に基づいて概念構造にした検索文字列概念構造60Aと、上述の検索対象概念構造60Bと、が比較される。その結果、第2実施例の具体例と同様に、判定部56は、検索文字列と子要素にID「005」を持つ「会員」elementの子要素である「勤務先」elementの値の文字列とが類似しており、ID「005」を子要素に持つ「会員」elementが検索式に適合していると判定し、「特定会員」elementとして検索結果53に出力する。
このように、文字列の意味内容に基づいた文字列比較処理を、XML検索に用いることにより、検索文字列とXMLにおける検索対象のelementまたはattributeの値文字列とで表記が異なっても、両者で意味内容が一致していれば、当該項目の文字列を含んだelementデータを検索結果として抽出することができる。
なお、当該第3実施例においても、検索対象のelementまたはattributeの値文字列につき予めXMLデータベースに概念構造を格納しておくのではなく、検索処理において、検索対象のelementまたはattributeの値文字列につき概念構造を生成してもよい。
<ハードウェア構成>
ところで、上述した第1実施例の名寄せ装置1の機能的構成及び物理的構成は、図1に記載の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。第2実施例のデータベース検索装置31及び第3実施例のXML検索装置51も同様である。また、この名寄せ装置1、データベース検索装置31及びXML検索装置51の諸機能は、プログラムをコンピュータのCPU(Central Processing Unit)で実行したり、論理回路若しくはFPGA(Field Programmable Gate Array)等で実装したりすることによって実現することが可能である。以下、第1実施例の名寄せ装置1の例を用いて、コンピュータのハードウェア構成について説明する。
図27は、名寄せ処理を行うプログラムを実行するコンピュータの一例を示す。当該コンピュータは、入力装置71、CPU72、RAM(Random Access Memory)73、HDD(Hard Disk Drive)74及び表示装置75を有する。
入力装置71は、各種の入力を受け付ける装置であり、例えば、システム管理者等による名寄せ処理の実行指示を受け付ける。入力装置71のハードウェアは、例えば、キーボード、マウス、タッチパネル、マイク等である。
CPU72は、HDD74に格納されている名寄せ処理プログラム76をRAM73にロードして、名寄せ処理プログラム77を実行する。このとき、CPU72では、名寄せ処理プロセス78が処理される。当該名寄せ処理プロセス78で実現される機能(処理)は、例えば、上述した全体処理、概念構造生成処理、概念構造正規化処理、照合処理、概念評価関数の処理である。
RAM73には、上述したようにHDD74に格納されている名寄せ処理プログラム76がCPU72によってロードされるとともに、ロードされた名寄せ処理プログラム77をCPU72が実行するのに要する処理データ78が格納される。なお、処理データ78は、例えば、形態素解析結果19、概念構造(正規化前)20、名寄せ元概念構造10A、名寄せ先概念構造10B、比較値27、評価値28及び総合評価値11である。
HDD74には、名寄せ処理プログラム76が格納される一方、入力データ79並びに各種データ80が格納される。入力データ79は、例えば、名寄せ元データ2A及び名寄せ先データ2Bであり、各種データ80は、例えば、概念構造生成情報7、照合情報8及び名寄せ処理定義9である。
表示装置75は、名寄せ結果3を表示する装置であり、例えば、ディスプレイ等である。
なお、名寄せ処理プログラム76は、必ずしもHDD74に格納されている必要はなく、例えば、コンピュータが読み取り可能な各種記憶媒体(CDやDVD、フラッシュメモリ等)に格納されていてもよい。また、名寄せ処理プログラム76は、例えば、上記コンピュータとネットワークを介して接続された他のコンピュータが備える各種記憶手段に記憶されていてもよい。同様に、入力データ79や各種データ80についても、各種記憶媒体や、上記コンピュータとネットワークを介して接続された他のコンピュータが備える各種記憶手段に記憶されていてもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得し、前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較し、各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する処理をコンピュータに実現させることを特徴とする文字列比較プログラム。
(付記2)前記比較する処理は、前記第1文字列全体及び前記第2文字列全体が共通して有する意味的な領域に応じて共通的に定めた構造であって、前記第1文字列に含まれる各単語に対応する概念記号を要素とし当該各要素が単語の有する意味属性または配置に基づいて関連付けられた第1概念構造、及び前記第2文字列に含まれる各単語に対応する概念記号を要素とし当該各要素が単語の有する意味属性または配置に基づいて関連付けられた第2概念構造を取得し、前記第1概念構造及び前記第2概念構造間において、対応する要素の概念記号同士を比較することを特徴とする付記1記載の文字列比較プログラム。
(付記3)前記比較する処理は、前記第1文字列に基づいて前記第1概念構造を生成する一方、前記第2文字列に基づいて前記第2概念構造を生成することを特徴とする付記2記載の文字列比較プログラム。
(付記4)前記比較する処理は、前記第1文字列及び前記第2文字列間における概念記号同士の比較結果を示す比較値を各概念記号につき夫々決定して、各概念記号の比較値を合算した評価値を算出し、前記比較結果を生成する処理は、所定の判定閾値と前記評価値との比較結果に基づいて、前記第1文字列及び前記第2文字列の比較結果を生成することを特徴とする付記1又は2に記載の文字列比較プログラム。
(付記5)前記比較する処理は、各概念記号の比較値に、概念記号に対応する単語の意味属性または配置に応じた重み付けを反映させ、当該重み付けを反映させた比較値を合算して前記評価値を算出することを特徴とする付記4記載の文字列比較プログラム。
(付記6)前記比較する処理は、各概念記号について前記比較値を決定するごとに、決定済みの比較値の合算値と、未だ比較値が決定されていない概念記号について決定され得る比較値の最大値と、を合算し、当該合算した値が所定の足切値よりも少ないときには、概念記号同士を比較する処理を中断することを特徴とする付記4又は5に記載の文字列比較プログラム。
(付記7)前記比較する処理は、各概念記号のうち、概念記号に対応する単語の前記重み付けが大きい概念記号から順に前記比較値を決定して、当該比較値に前記重み付けを反映させ、すでに決定済み且つ前記重み付けを反映させた比較値の合算値と、未だ比較値が決定されていない概念記号について決定され得る比較値の最大値と、を合算し、当該合算した値が所定の足切値よりも少ないときには、概念記号同士を比較する処理を中断することを特徴とする付記6記載の文字列比較プログラム。
(付記8)比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得する手段と、前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較する手段と、各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する手段と、を備えたことを特徴とする文字列比較装置。
(付記9)比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得し、前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較し、各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する処理をコンピュータが実行することを特徴とする文字列比較方法。
(付記10)名寄せ元データを名寄せ先データに対して照合する名寄せ処理を実行する名寄せ処理プログラムであって、名寄せ元データに含まれる文字列及び名寄せ先データに含まれる文字列の夫々につき、各文字列を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性及び各単語を意味的に識別する概念記号を特定し、前記名寄せ元データに含まれる文字列及び前記名寄せ先データに含まれる文字列の間において意味属性が共通する概念記号同士を夫々比較し、各概念記号同士の比較結果に基づいて、前記名寄せ元データに含まれる文字列及び前記名寄せ先データに含まれる文字列同士の比較結果を生成する処理をコンピュータに実現させることを特徴とする名寄せプログラム。
(付記11)検索文字列を用いて、レコードが格納されたデータベースを検索し、前記検索文字列と一致するデータを有するレコードをデータベースから抽出するデータベース検索プログラムであって、前記検索文字列及びデータベースに格納されたレコードに含まれる文字列の夫々につき、各文字列を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性及び各単語を意味的に識別する概念記号を特定し、前記検索文字列に含まれる文字列及び前記データベースに格納されたレコードに含まれる文字列の間において意味属性が共通する概念記号同士を夫々比較し、各概念記号同士の比較結果に基づいて、前記検索文字列に含まれる文字列及び前記データベースに格納されたレコードに含まれる文字列同士の比較結果を生成する処理をコンピュータに実現させることを特徴とするデータベース検索プログラム。
(付記12)検索文字列を用いてXMLデータベースを検索し、前記検索文字列と一致するデータをXMLデータベースから抽出するXML検索プログラムであって、前記検索文字列及びXMLデータベースに格納されたデータに含まれる文字列の夫々につき、各文字列を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性及び各単語を意味的に識別する概念記号を特定し、前記検索文字列に含まれる文字列及び前記XMLデータベースに格納されたデータに含まれる文字列の間において意味属性が共通する概念記号同士を夫々比較し、各概念記号同士の比較結果に基づいて、前記検索文字列に含まれる文字列及び前記XMLデータベースに格納されたデータに含まれる文字列同士の比較結果を生成する処理をコンピュータに実現させることを特徴とするXML検索プログラム。
1 名寄せ装置
2 名寄せ対象データ
2A 名寄せ元データ
2B 名寄せ先データ
3 名寄せ結果
4 概念構造生成部
5 照合部
6 判定部
7 概念構造生成情報
8 照合情報
9 名寄せ処理定義
10A 名寄せ元概念構造
10B 名寄せ先概念構造
11 総合評価値
12 形態素解析部
13 構文解析部
14 正規化部
15 用語辞書
16 解析文法
17 標準概念構造
18 正規化ルール
19 形態素解析結果
20 概念構造(正規化前)
21 要素比較部
22 評価値算出部
23 総合評価値算出部
24 標準概念構造
25 要素重み付け
26 項目重み付け
27 比較値
28 評価値
31 データベース検索装置
32A 検索式
32B データベース
33 検索結果
34 概念構造生成部
35 照合部
36 判定部
37 概念構造生成情報
38 照合情報
39 判定閾値
40A 検索文字列概念構造
40B 検索対象概念構造
51 XML検索装置
52A 検索式
52B XMLデータベース
53 検索結果
54 概念構造生成部
55 照合部
56 判定部
57 概念構造生成情報
58 照合情報
59 判定閾値
60A 検索文字列概念構造
60B 検索対象概念構造
71 入力装置
72 CPU
73 RAM
74 HDD
75 表示装置
76 名寄せ処理プログラム
77 名寄せ処理プログラム
78 名寄せ処理プロセス
79 入力データ
80 各種データ

Claims (7)

  1. 比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得し、
    前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較し、
    各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する
    処理をコンピュータに実現させることを特徴とする文字列比較プログラム。
  2. 前記比較する処理は、前記第1文字列全体及び前記第2文字列全体が共通して有する意味的な領域に応じて共通的に定めた構造であって、前記第1文字列に含まれる各単語に対応する概念記号を要素とし当該各要素が単語の有する意味属性または配置に基づいて関連付けられた第1概念構造、及び前記第2文字列に含まれる各単語に対応する概念記号を要素とし当該各要素が単語の有する意味属性または配置に基づいて関連付けられた第2概念構造を取得し、前記第1概念構造及び前記第2概念構造間において、対応する要素の概念記号同士を比較することを特徴とする請求項1記載の文字列比較プログラム。
  3. 前記比較する処理は、前記第1文字列及び前記第2文字列間における概念記号同士の比較結果を示す比較値を各概念記号につき夫々決定して、各概念記号の比較値を合算した評価値を算出し、
    前記比較結果を生成する処理は、所定の判定閾値と前記評価値との比較結果に基づいて、前記第1文字列及び前記第2文字列の比較結果を生成することを特徴とする請求項1又は2に記載の文字列比較プログラム。
  4. 前記比較する処理は、各概念記号の比較値に、概念記号に対応する単語の意味属性または配置応じた重み付けを反映させ、当該重み付けを反映させた比較値を合算して前記評価値を算出することを特徴とする請求項3記載の文字列比較プログラム。
  5. 前記比較する処理は、各概念記号について比較値を決定するごとに、決定済みの比較値の合算値と、未だ比較値が決定されていない概念記号について決定され得る比較値の最大値と、を合算し、当該合算した値が所定の足切値よりも少ないときには、概念記号同士を比較する処理を中断することを特徴とする請求項3又は4に記載の文字列比較プログラム。
  6. 比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得する手段と、
    前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較する手段と、
    各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する手段と、
    を備えたことを特徴とする文字列比較装置。
  7. 比較対象とする第1文字列及び第2文字列の夫々を単語単位に分割するとともに、各単語の有する意味的な性質を表す意味属性、及び各単語を意味的に識別する概念記号を含む情報を記憶手段から取得し、
    前記情報に基づいて、前記第1文字列及び前記第2文字列間において意味属性が共通する各単語を特定し、当該特定した各単語に対応する概念記号同士を前記第1文字列及び前記第2文字列間において比較し、
    各概念記号同士の比較結果に基づいて、前記第1文字列及び前記第2文字列同士の比較結果を生成する
    処理をコンピュータが実行することを特徴とする文字列比較方法。
JP2010219878A 2010-09-29 2010-09-29 文字列比較プログラム、文字列比較装置及び文字列比較方法 Expired - Fee Related JP5505234B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010219878A JP5505234B2 (ja) 2010-09-29 2010-09-29 文字列比較プログラム、文字列比較装置及び文字列比較方法
US13/219,817 US9037593B2 (en) 2010-09-29 2011-08-29 Comparison of character strings
US14/690,578 US9460084B2 (en) 2010-09-29 2015-04-20 Comparison of character strings

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010219878A JP5505234B2 (ja) 2010-09-29 2010-09-29 文字列比較プログラム、文字列比較装置及び文字列比較方法

Publications (2)

Publication Number Publication Date
JP2012073951A JP2012073951A (ja) 2012-04-12
JP5505234B2 true JP5505234B2 (ja) 2014-05-28

Family

ID=45871705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010219878A Expired - Fee Related JP5505234B2 (ja) 2010-09-29 2010-09-29 文字列比較プログラム、文字列比較装置及び文字列比較方法

Country Status (2)

Country Link
US (2) US9037593B2 (ja)
JP (1) JP5505234B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047283B1 (en) * 2010-01-29 2015-06-02 Guangsheng Zhang Automated topic discovery in documents and content categorization
JP5505234B2 (ja) * 2010-09-29 2014-05-28 富士通株式会社 文字列比較プログラム、文字列比較装置及び文字列比較方法
US8688453B1 (en) * 2011-02-28 2014-04-01 Nuance Communications, Inc. Intent mining via analysis of utterances
US9251289B2 (en) * 2011-09-09 2016-02-02 Microsoft Technology Licensing, Llc Matching target strings to known strings
US9128915B2 (en) * 2012-08-03 2015-09-08 Oracle International Corporation System and method for utilizing multiple encodings to identify similar language characters
US9070090B2 (en) * 2012-08-28 2015-06-30 Oracle International Corporation Scalable string matching as a component for unsupervised learning in semantic meta-model development
JP5733285B2 (ja) * 2012-09-20 2015-06-10 カシオ計算機株式会社 検索装置、検索方法及びプログラム
US9342592B2 (en) 2013-07-29 2016-05-17 Workday, Inc. Method for systematic mass normalization of titles
JP6578685B2 (ja) * 2015-03-16 2019-09-25 富士通株式会社 関係推定方法、関係推定プログラムおよび情報処理装置
JP6753401B2 (ja) * 2015-07-24 2020-09-09 富士通株式会社 符号化プログラム、符号化装置、及び符号化方法
US11900283B1 (en) * 2015-10-28 2024-02-13 Reputation.Com, Inc. Business listings
KR102637338B1 (ko) * 2017-01-26 2024-02-16 삼성전자주식회사 번역 보정 방법 및 장치와 번역 시스템
JP6870421B2 (ja) 2017-03-28 2021-05-12 富士通株式会社 判定プログラム、判定装置および判定方法
US10635699B2 (en) * 2017-05-03 2020-04-28 Servicenow, Inc. Fuzzy matching for computing resources
US10482128B2 (en) * 2017-05-15 2019-11-19 Oracle International Corporation Scalable approach to information-theoretic string similarity using a guaranteed rank threshold
US10229195B2 (en) 2017-06-22 2019-03-12 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10223639B2 (en) 2017-06-22 2019-03-05 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10885056B2 (en) 2017-09-29 2021-01-05 Oracle International Corporation Data standardization techniques
US10783138B2 (en) * 2017-10-23 2020-09-22 Google Llc Verifying structured data
RU2758571C1 (ru) * 2018-01-26 2021-10-29 Фудзицу Лимитед Программа оценки, устройство обработки информации и способ оценки
CN108762812B (zh) * 2018-05-21 2021-12-03 北京中科睿芯科技集团有限公司 面向通用字符串处理的硬件加速结构装置及控制方法
WO2020065777A1 (ja) * 2018-09-26 2020-04-02 日本電気株式会社 情報処理装置、制御方法、及びプログラム
CN111831869B (zh) * 2020-06-30 2023-11-03 深圳价值在线信息科技股份有限公司 一种字符串的查重方法、装置、终端设备及存储介质
JP2022050011A (ja) * 2020-09-17 2022-03-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4887212A (en) * 1986-10-29 1989-12-12 International Business Machines Corporation Parser for natural language text
JPS63261457A (ja) 1987-04-17 1988-10-28 Matsushita Electric Ind Co Ltd 文章表題候補生成装置
JP2866944B2 (ja) 1989-06-06 1999-03-08 富士通株式会社 機械翻訳処理装置
JPH0782500B2 (ja) * 1992-09-25 1995-09-06 日本電気株式会社 未登録語獲得方式
US6470306B1 (en) * 1996-04-23 2002-10-22 Logovista Corporation Automated translation of annotated text based on the determination of locations for inserting annotation tokens and linked ending, end-of-sentence or language tokens
WO1999063456A1 (fr) 1998-06-04 1999-12-09 Matsushita Electric Industrial Co., Ltd. Dispositif de preparation de regles de conversion du langage, dispositif de conversion du langage et support d'enregistrement de programme
JP3441400B2 (ja) 1998-06-04 2003-09-02 松下電器産業株式会社 言語変換規則作成装置、及びプログラム記録媒体
JP2003058537A (ja) 2001-08-10 2003-02-28 Shiseido Co Ltd テキストデータ解析方法,テキストデータ解析サーバ,テキストデータ解析プログラム及びテキストデータ解析プログラムを記録した記録媒体
JP4005343B2 (ja) 2001-12-04 2007-11-07 東京ソフト株式会社 情報検索システム
JP3812818B2 (ja) * 2001-12-05 2006-08-23 日本電信電話株式会社 データベース生成装置、データベース生成方法及びデータベース生成処理プログラム
JP4185399B2 (ja) * 2003-05-22 2008-11-26 日本電信電話株式会社 顧客データ管理装置、顧客データ管理方法および顧客データ管理用プログラムならびに顧客データ管理用プログラムを格納した記録媒体
US7454745B2 (en) * 2003-07-31 2008-11-18 International Business Machines Corporation Automated semantic-based updates to modified code base
US7865353B2 (en) * 2005-03-22 2011-01-04 Fuji Xerox Co., Ltd. Translation device, image processing device, translation method, and recording medium
JP2007140781A (ja) * 2005-11-16 2007-06-07 Nippon Telegr & Teleph Corp <Ntt> 名義解析装置、名義解析方法及び名義解析プログラム
JP2008152641A (ja) * 2006-12-19 2008-07-03 Toyota Central R&D Labs Inc 類似例文検索装置
US7991987B2 (en) * 2007-05-10 2011-08-02 Intel Corporation Comparing text strings
US8548791B2 (en) * 2007-08-29 2013-10-01 Microsoft Corporation Validation of the consistency of automatic terminology translation
US8468160B2 (en) * 2009-10-30 2013-06-18 International Business Machines Corporation Semantic-aware record matching
JP5505234B2 (ja) * 2010-09-29 2014-05-28 富士通株式会社 文字列比較プログラム、文字列比較装置及び文字列比較方法

Also Published As

Publication number Publication date
US9460084B2 (en) 2016-10-04
US9037593B2 (en) 2015-05-19
US20120078919A1 (en) 2012-03-29
US20150227506A1 (en) 2015-08-13
JP2012073951A (ja) 2012-04-12

Similar Documents

Publication Publication Date Title
JP5505234B2 (ja) 文字列比較プログラム、文字列比較装置及び文字列比較方法
US10140333B2 (en) Trusted query system and method
US9280535B2 (en) Natural language querying with cascaded conditional random fields
JP5376163B2 (ja) 文書管理・検索システムおよび文書の管理・検索方法
US7548933B2 (en) System and method for exploiting semantic annotations in executing keyword queries over a collection of text documents
US9164962B2 (en) Document assembly systems and methods
JP6176017B2 (ja) 検索装置、検索方法、およびプログラム
JP5501967B2 (ja) 間接話法内の意味論的関係の識別
US20110270815A1 (en) Extracting structured data from web queries
WO2001022287A1 (en) System and method for performing similarity searching
JP2002297605A (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
KR20160124079A (ko) 인-메모리 데이터베이스 탐색을 위한 시스템 및 방법
JP2012178078A (ja) 文書処理装置
JP2016192202A (ja) 照合処理システム、方法、及びプログラム
JP5836893B2 (ja) ファイル管理装置、ファイル管理方法、及びプログラム
Moscato et al. iwin: A summarizer system based on a semantic analysis of web documents
JP4439496B2 (ja) 検索処理装置及びプログラム
JP2000293537A (ja) データ分析支援方法および装置
WO2015049769A1 (ja) データ分析システム及びその方法
JP2009251845A (ja) 検索結果評価装置及び検索結果評価方法
JP5140524B2 (ja) 文検索装置,文検索プログラム,文検索方法
JP2020181529A (ja) 調査支援方法、調査支援用コンピュータプログラムおよび調査支援システム
JP2013125429A (ja) 分析対象決定装置
JP2010067213A (ja) 検索対象列決定装置及び方法
Bai et al. Towards Knowledge Acquisition from Semi-Structured Content.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

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: 20140218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140303

R150 Certificate of patent or registration of utility model

Ref document number: 5505234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees