(57)【特許請求の範囲】
【請求項１】
マルチバイト文字で記述された姓名を含む文字列をシングルバイト文字列に変換する情報処理装置であって、前記情報処理装置は、
前記文字列が含むマルチバイト文字を、前記情報処理装置が登録する字体に正規化する漢字正規化部と、
前記漢字正規化部による正規化後の文字列を形態素トークンに分割し、かつ前記形態素トークンが帰属される文化圏を示す文化圏識別値および前記形態素トークンに割当てられた属性識別子を形態素辞書から取得する形態素解析部と、
前記形態素解析部が分割した前記形態素トークンと、前記属性識別子と、前記形態素トークン間の前記属性識別子から接続識別子を生成し、姓名を表す形態素トークンの組み合わせがが通常か非通常かを示す文化圏重付け値を生成して、姓名候補リストとして登録し、各姓名候補の先頭の形態素トークンが帰属される文化圏を当該姓名候補の文化圏とする姓名候補作成部と、
前記形態素トークン、前記接続識別子、および前記文化圏重付け値について割当てられたスコア値を取得し、合計スコア値を計算して、前記姓名の先頭から末尾までの距離の尺度を与える姓名距離を生成し、前記姓名距離の短さを使用して姓名候補とするスコア計算部と、
文化圏別に形態素トークンと、シングルバイト表記とが対として登録された辞書を参照し、前記姓名候補を抽出して、前記姓名候補の文化圏に応じて、前記姓名候補が含む前記形態素トークンの姓および名に対応するシングルバイト文字列を出力する表記変換部と
を含む情報処理装置。
【請求項２】
前記漢字正規化部に対して異字体に対応する登録漢字を対応付けて提供する漢字辞書と、
前記形態素解析部に対して前記姓名を構成するための形態素トークンおよび属性識別値を提供し、前記姓名の属する文化圏に対応付けて形態素トークンおよび前記属性識別子を登録する形態素辞書と、
前記スコア計算部に対して、前記形態素トークンおよび前記接続識別子について割当てたスコア値を提供するためのスコア・テーブルと、
前記形態素トークンの前記姓に対応するシングルバイト文字列および前記名に対応するシングルバイト文字列を登録する変換辞書と
を含む請求項１に記載の情報処理装置。
【請求項３】
前記変換辞書は、前記姓についてのシングルバイト文字列を前記文化圏ごとに登録した姓テーブルおよび前記名についてのシングルバイト文字列を前記文化圏ごとに登録した名テーブルを含み、前記文化圏が同一の姓名の組合わせおよび前記文化圏の異なる姓名の組合わせについての前記シングルバイト文字列に変換する、請求項２に記載の情報処理装置。
【請求項４】
前記表記変換部は、異なる文化圏ごとに最尤の前記姓および前記名についてのシングルバイト文字列を出力する、請求項１に記載の情報処理装置。
【請求項５】
マルチバイト文字で記述された姓名を含む文字列をシングルバイト文字列に変換する情報処理装置が実行する姓名識別方法であって、前記姓名識別方法は、コンピュータが、
漢字辞書を参照して前記文字列が含むマルチバイト文字を、前記情報処理装置が登録する字体に正規化するステップと、
形態素辞書を参照して、漢字正規化部による正規化後の文字列を形態素トークンに分割し、かつ前記形態素トークンが帰属される文化圏を示す文化圏識別値および前記形態素トークンに割当てられた属性識別子を取得し、形態素解析部が分割した前記形態素トークンと、前記属性識別子と、前記形態素トークン間の前記属性識別子から接続識別子を生成し、姓名を表す形態素トークンの組み合わせがが通常か非通常かを示す文化圏重付け値を生成して、前記形態素トークンと、前記接続識別子と、前記文化圏重付け値とを姓名候補リストに記述し、各姓名候補の先頭の形態素トークンが帰属される文化圏を当該姓名候補の文化圏とするステップと、
前記形態素トークン、前記接続識別子、および前記文化圏重付け値について割当てられたスコア値を使用して、合計スコア値を計算して、前記姓名の先頭から末尾までの距離の尺度を与える姓名距離を生成し、前記姓名距離の短さを使用して姓名候補とするステップと、
文化圏別に形態素トークンと、シングルバイト表記とが対として登録された辞書を参照し、前記姓名候補を抽出して、前記姓名候補の文化圏に応じて、前記姓名候補が含む前記形態素トークンの姓および名に対応するシングルバイト文字列を出力するステップと
を実行する、姓名識別方法。
【請求項６】
前記シングルバイト文字列を出力するステップは、
前記姓についてのシングルバイト文字列を前記文化圏ごとに登録した姓テーブルおよび前記名についてのシングルバイト文字列を前記文化圏ごとに登録した名テーブルを参照するステップと、
前記文化圏が同一の姓名の組合わせおよび前記文化圏の異なる姓名の組合わせについての前記シングルバイト文字列に変換する、請求項５に記載の姓名識別方法。
【請求項７】
姓名識別を実行するための情報処理システムであって、前記情報処理システムは、
ネットワークに接続され、前記ネットワークを介して姓名識別要求および姓名を含むマルチバイト文字列を受領する姓名識別サーバと、
前記姓名識別サーバが受領した前記文字列から変換されたシングルバイト文字列に対応するシングルバイト文字列を検索し、検索された前記シングルバイト文字列に対応付けられたマルチバイト文字の姓および名を前記姓名識別サーバに返すデータベース・サーバとを含み、
前記姓名識別サーバは、
前記文字列を、前記情報処理装置が登録する字体に正規化する漢字正規化部と、
前記漢字正規化部による正規化後の文字列を形態素トークンに分割し、かつ前記形態素トークンが帰属される文化圏を示す文化圏識別値および前記形態素トークンに割当てられた属性識別子を形態素辞書から取得する形態素解析部と、
前記形態素解析部が分割した前記形態素トークンと、前記属性識別子と、前記形態素トークン間の前記属性識別子から接続識別子を生成し、姓名を表す形態素トークンの組み合わせがが通常か非通常かを示す文化圏重付け値を生成し、姓名候補リストとして登録し、各姓名候補の先頭の形態素トークンが帰属される文化圏を当該姓名候補の文化圏とする姓名候補作成部と、
前記形態素トークン、前記接続識別子、および前記文化圏重付け値について割当てられたスコア値を取得し、合計スコア値を計算して、前記姓名の先頭から末尾までの距離の尺度を与える姓名距離を生成し、前記姓名距離の短さを使用して姓名候補とするスコア計算部と、
文化圏別に形態素トークンと、シングルバイト表記とが対として登録された辞書を参照し、前記姓名候補を抽出して、前記姓名候補の文化圏に応じて、前記姓名候補が含む前記形態素トークンの姓および名に対応するシングルバイト文字列を出力する表記変換部と、
前記表記変換部の出力を受領して前記データベース・サーバに照会を発行する氏名識別部と、
前記データベース・サーバの照会結果をマルチバイト文字列の姓名として受領して姓と名とを分離して表示させる処理を実行する出力処理部と
を含む、情報処理システム。
【請求項８】
前記データベース・サーバは、前記シングルバイト文字列に対して前記マルチバイト文字列を対応させるための姓名識別子を登録するテーブルと、
前記姓名に対応付けられた情報を管理する情報テーブルと
を含み、前記テーブルから前記姓および前記名を検索し、前記情報テーブルから関連する前記情報を検索し、検索結果として前記姓名検索サーバに渡す、請求項７に記載の情報処理システム。
【請求項９】
マルチバイト文字で記述された姓名を含む文字列をシングルバイト文字列に変換する情報処理方法を実行するためのコンピュータ実行可能なプログラムであって、前記プログラムは、情報処理装置に対し、
前記文字列が含むマルチバイト文字を、前記情報処理装置が登録する字体に正規化する漢字正規化部と、
前記漢字正規化部による正規化後の文字列を形態素トークンに分割し、かつ前記形態素トークンが帰属される文化圏を示す文化圏識別値および前記形態素トークンに割当てられた属性識別子を形態素辞書から取得する形態素解析部と、
前記形態素解析部が分割した前記形態素トークンと、前記属性識別子と、前記形態素トークン間の前記属性識別子から接続識別子を生成し、姓名を表す形態素トークンの組み合わせがが通常か非通常かを示す文化圏重付け値を生成し、姓名候補リストとして登録し、各姓名候補の先頭の形態素トークンが帰属される文化圏を当該姓名候補の文化圏とする姓名候補作成部と、
前記形態素トークン、前記接続識別子、および前記文化圏重付け値について割当てられたスコア値を取得し、合計スコア値を計算して、前記姓名の先頭から末尾までの距離の尺度を与える姓名距離を生成し、前記姓名距離の短さを使用して姓名候補とするスコア計算部と、
文化圏別に形態素トークンと、シングルバイト表記とが対として登録された辞書を参照し、前記姓名候補を抽出して、前記姓名候補の文化圏に応じて、前記姓名候補が含む前記形態素トークンの姓および名に対応するシングルバイト文字列を出力する表記変換部と
を実現する、コンピュータ実行可能なプログラム。
【請求項１０】
前記表記変換部は、前記姓についてのシングルバイト文字列を前記文化圏ごとに登録した姓テーブルおよび前記名についてのシングルバイト文字列を前記文化圏ごとに登録した名テーブルを含み、前記文化圏が同一の姓名の組合わせおよび前記文化圏の異なる姓名の組合わせについての前記シングルバイト文字列に変換する、請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姓名識別を行う情報処理技術に関し、より詳細にはマルチバイト文字を含む人名の検索をその発音特性を含めて可能とする、情報処理装置、姓名識別方法、情報処理システム、およびプログラムに関する。
【背景技術】
【０００２】
アルファベットなどのシングルバイト文字で記述された人名を比較して、人名の類似性を、類似性スコアを計算することにより比較する方法は、人名検索のために利用されている。シングルバイト文字で記述された人名を検索するためのシステムとしては、例えば、米国特許第６、９６３、８７１Ｂ１明細書（特許文献１）には、アルファベットで記述された人名を検索する自動化人名検索システムが開示されている。
【０００３】
また、http://publibfp.boulder.ibm.com/epubs/pdf/c1912860.pdf（非特許文献１）で指定されるＵＲＩには、アルファベット表記された人名についての類似性を使用して、人名検索する、Global
Name Analytics（ＧＮＡ）システムが開示されている。
【０００４】
一方、日本語など、マルチバイト文字で記述された文書を、設定された単位の語（トークン）に分割して文書検索を行う情報検索装置は、例えば特開２００４−２０６４７３号公報（特許文献２）に記載されている。さらにマルチバイト文字で記述された人名のうち、姓、名を使用して異なる重み付けを付与して検索する情報検索装置技術も例えば、特開２００４−２９５７９７号公報（特許文献３）に記載されている。
【０００５】
特許文献１〜３、非特許文献１に開示される情報検索は、アルファベットや、その他のシングルバイトコードで記述される人名を検索するには、充分な精度および検索性を提供することができる。また、特許文献２、３では、１文字がマルチバイトコードで定義されるマルチバイト文字で記述された文書を検索し、また文書中から人名を抽出して重み付けに反映させることも可能である。しかしながら、日本語など、マルチバイト文字で記述される言語を使用する文化圏では、同一の文字について異なる発音が割当てられる可能性がある。例えば、日本語で漢字「大」は、人名に使用された場合、「ｄａｉ」、「ｈｉｒｏｓｈｉ」などの複数の発音が割当てられることも想定される。
【０００６】
また、姓名は、文化圏の相違に大きく依存し、文化圏が異なる場合、姓名同一であっても(Sir Name, Given Name)の並び順が異なることや、漢字などのマルチバイト文字が異なる複数の発音特性を派生させ、この結果、異なるアルファベット表記を生じさせる場合もある。このような場合、特許文献１〜３および非特許文献１に記載された姓名検索技術は、効率的な姓名識別を行うものではない。このため、マルチバイト文字で記述された人名の検索は、シングルバイト文字における人名検索技術とは異なる技術を必要とするということができる。
【０００７】
例えば典型的なマルチバイト文字である日本語の漢字で記述された人名について考える。漢字の文字列をローマ字に変換する技術は、種々想定できる。例えば、漢字列に対して形態素解析技術を適用して検索を実行する技術が知られている。形態素解析においては、品詞や頻度情報を含む辞書を参照し、姓および名といった入力文字列を形態素解析して行き、辞書に登録されるエントリ単位にまで分解する。形態素分解のパターンが複数存在する場合は、分割数を最小とするものを優先的に選択する手法や、文法情報や頻度情報を用いて最尤の候補を選択する手法を使用して人名を形態素に分解することによって、姓名の検索が行われる。
【０００８】
また、漢字の読みの違い、すなわち発音特性の相違に対応する場合には、漢字の読み方を、漢字に対応して登録した辞書を用いて漢字に対する発音の多様性に対応する方法も知られている。近年、経済活動のグローバル化、交通機関の発達、ネットワーク技術の進歩に伴い、異なる文化圏に属する者が異文化圏において生活したり、経済活動を行ったり、サーバにアクセスするなどの種々の活動が通常に行われている。このため、文化圏を越えて姓名を検索する必要性がますます高まっている。さらに、近年では、年金、銀行口座の統合を目的とする名寄せ、マネーロンダリングなど文化圏が同一の場合や非同一の場合に、これらを総合して姓名の同一性が同一人物であることを示しているか否かを判断する必要性もますます増大してきている。
【特許文献１】米国特許第６、９６３、８７１Ｂ１明細書
【特許文献２】特開２００４−２０６４７３号公報
【特許文献３】特開２００４−２９５７９７号公報
【非特許文献１】http://publibfp.boulder.ibm.com/epubs/pdf/c1912860.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、漢字などのマルチバイト文字を含む姓名の検索を実行する方法として、形態素解析法および読み方辞書を使用して行う方法が知られている。しかしながら、漢字で書かれた姓名は、アルファベットの姓名とは異なり、スペースやカンマなどの区切り文字で分割されず、一続きで記述される。このため、何処までが姓であり、何処までが名であるのかについて、直接的に判断することはできない。また、姓名には、敬称や役職名などが前後に追加される場合もある。このような漢字で記述された人名を、姓・名・敬称のコンポーネントへ分割することは、多くの知識を有する人間にとっては容易であると考えられるが、複数の分割方法が存在する場合もあり、また再現性や正確性にかけるという問題点がある。一方、コンピュータを使用して姓名分割を自動実行する場合には、分割のパターンを選択しなければならないという曖昧さを解決する必要がある。さらに、漢字には、新字体、旧字体、異字体、略字体などが存在し、これらの相違を統合して人名を識別することが必要とされていた。
【００１０】
さらに、人名の姓、名といった各コンポーネントを仮名またはアルファベット(ローマ字)に転写(transcribe)する場合について考えると、漢字の読み方の多様性や、漢字などの発音特性をアルファベットに変換するパターンの多様性に起因して、数多くの候補が存在する。このため、姓名識別の多様性に加え発音の多様性も加わり、人名検索を行う上で充分な精度および効率を提供することができないという問題もある。
【００１１】
さらに、同じ漢字を使った名前であっても、文化圏の違いによる表音特性の相違もある。例えば、中国の発音特性および日本の発音特性は、同一の漢字であってもまったく異なるため、単純な辞書引きだけでは正しい発音特性は推定できない。発音特性は、漢字、ハングルで記述された場合、姓名のアルファベット表記や仮名表記に直結することになるので、人名の検索において人名記載の多様性に対応するためにもマルチバイト文字−シングルバイト文字の転写までも含めた検索を行うことが重要であった。
【００１２】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、漢字など複数の発音特性を与える可能性があり、漢字、平仮名、カタカナ、ハングルなどで記述された姓名を、アルファベットへの転写の曖昧さを排除して、マルチバイト文字の姓名からアルファベット表記の姓名を生成する、情報処理装置、姓名識別方法、情報処理システム、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は上記課題を解決するために、姓名を含む文字列について形態素解析を実行する。形態素解析では、文字列に対して形態素トークンを割当て、形態素トークン列とする。形態素解析に使用する形態素辞書には、形態素トークンの他、形態素トークンが姓、名、または姓名に対して付属される「君」、「代表取締役」などの付属語といった属性を示すための属性識別子と、形態素トークンが、日本語圏、韓国語圏、または中国語圏など、どの文化圏の帰属とともに分類されている。
【００１４】
形態素解析の結果は、全部列挙されて、姓名候補作成部に送付される。姓名候補作成部では、姓名候補リストを作成する。姓名候補リストは、形態素トークンと、形態素トークン間の接続関係を示す接続識別子と、形態素トークンが属する文化圏で決定される姓名特性によって指定される文化圏重付け値を少なくとも登録する。文化圏重付け値は、姓名の形態素分割において、当該文化圏の姓名シーケンス順となっていない場合および文化圏特有の文字、例えば日本語圏であっては国字を含む場合に、当該文化圏の特有性を付与された姓名候補について非通常の分類であることを示す値とされる。
【００１５】
また、他の実施形態では、姓名候補リストは、姓名候補の文化圏を陽に示す文化圏識別値を登録することもでき、文化圏ごとに最尤の姓名候補を特定し、文化圏ごとに可能性のあるアルファベット文字列の出力を可能としている。
【００１６】
姓名候補リストのフィールドに登録された値には、形態素トークンの姓、名として使用される頻度に対応したスコアが付されている。また、形態素トークン間の属性識別子についてもスコアが割当てられている。当該実施形態の場合、文化圏重付け値は、スコア合計を行うための例えばＳＱＬ文、スクリプトなどの設定値として登録することができる。また、他の実施形態では、文化圏重付け値についてのスコアが割当てられていてもよい。
【００１７】
スコア計算部は、姓名候補リストに登録された形態素トークン、接続識別子、文化圏重付け値のスコア値を合計して、合計スコア値を計算する。合計スコア値は、姓名の先頭から末尾までの距離を示す姓名距離の尺度として使用され、姓名距離の最小の姓名候補が、表記変換部に送付され、アルファベット表記などのシングルバイト文字に変換される。
【００１８】
他の実施形態では、姓名距離の最小のものから設定された数の姓名候補を抽出し、これらについてまとめて表記変換を実行することができる。さらに他の実施形態では、文化圏識別子ごとに生成された姓名候補について、文化圏識別値ごとに最小の姓名距離の姓名候補を抽出し、表記変換を実行することもできる。
【００１９】
本発明によれば、文化圏ごとに最尤の姓名候補についてシングルバイト文字列への変換を行うことができ、また、本発明によれば、姓名が複数の文化圏にまたがる場合であっても、最尤の発音特性に対応したシングルバイト文字列への変換を可能とする、情報処理装置、姓名識別方法、情報処理システム、およびプログラムを提供することができる。
【００２０】
さらに、本発明によれば、マルチバイト文字を使用する文化圏の姓名について最尤のシングルバイト文字列を、既存の姓名識別システムへの入力文字列として使用可能とする、情報処理装置、姓名識別方法、情報処理システム、およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本実施形態の情報処理装置１００について機能ブロックを示す。情報処理装置１００は、好ましくは、サーバとして構成することができる。なお、他の実施形態で、処理容量やアプリケション・サイズなどの点で姓名識別処理が可能な場合、ワークステーション、パーソナル・コンピュータとして実装することもできる。
【００２２】
以下、情報処理装置１００のハードウェア構成について概略的に説明する。情報処理装置１００は、オペレーティング・システム（ＯＳ）の下で各種処理を管理するシングルコアまたはマルチコアのＣＰＵと、アプリケーションの実行空間を与えるＲＡＭと、初期セットアップ用のブートコード、ＢＩＯＳなどを格納するＲＯＭ、およびハードディスク装置などを含んで構成されている。
【００２３】
ＣＰＵとしては、例えば、ＰＥＮＴＩＵＭ（登録商標）、ＰＥＮＴＩＵＭ（登録商標）互換チップ、などのＣＩＳＣアーキテクチャのマイクロプロセッサ、または、ＰＯＷＥＲ  ＰＣ（登録商標）などのＲＩＳＣアーキテクチャのマイクロプロセッサをシングルコア、またはマルチコアとして実装することができる。さらに、ＣＰＵの処理の命令フェッチ、データフェッチなどの高速化する目的で、Ｌ１キャッシュ、Ｌ２キャッシュ、Ｌ３キャッシュなどの階層キャッシュを実装することができる。
【００２４】
ＯＳとしては、例えば、ＷＩＮＤＯＷＳ（登録商標）２００Ｘ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＡＩＸ（登録商標）などを使用することができる。また、情報処理装置１００は、Ｃ＋＋、ＪＡＶＡ（登録商標）、ＪＡＶＡ（登録商標）ＢＥＡＮＳ、ＰＥＲＬ、ＲＵＢＹなどのプログラミング言語を使用して記述される各種アプリケーションを実行して、入力されたデータを処理し、処理結果を生成させている。情報処理装置１００をサーバとして構成する場合、情報処理装置１００は、ウェブ・サーバまたはＣＯＲＢＡ(Common Object Resource Broker Architecture)などを使用する分散コンピューティング環境を提供するためのサーバとすることができる。
【００２５】
情報処理装置１００をネットワークを介してデータを提供するサーバとして構成する場合、情報処理装置１００は、ＬＡＮ、ＷＡＮ、インターネットなどのネットワーク（図示せず）を介して、ＨＴＴＰ、ＨＴＴＰＳなどのファイル転送プロトコル、ＲＰＣ、ＲＭＩなど手続呼出しやメソッド呼出しを使用して、ネットワークを介して接続されたクライアント・コンピュータ（図示せず）から、姓名に対応する漢字列といったデータを受信し、アプリケーションによる処理を実行する。
【００２６】
情報処理装置１００をウェブ・サーバとして構成する場合には、情報処理装置１００は、上述したプログラミング言語により記述された、ＣＧＩ、サーブレット、ＡＰＡＣＨＥなどのサーバ・プログラムを実行し、ウェブ・クライアントに対して処理結果である、姓名識別値、姓名識別値により参照される銀行口座、年金情報などの特定情報などを返す。
【００２７】
図１を参照して情報処理装置１００の機能ブロックについて説明する。情報処理装置１００の各機能処理部は、上述したハードウェア資源を含むコンピュータ装置１１０で、プログラムをＲＡＭ上に展開することによってコンピュータ上に機能手段として実現することができる。情報処理装置１００は、ＣＧＩなどを使用して構成された入力インタフェース１１２を備えている。入力インタフェース１１２は、外部から入力される姓名と考えられる文字列を受領して、以後の処理を実行するための各機能ブロックを呼出す。本実施形態では、姓名と考えられる文字列としては、マルチバイト文字を含み、例えば、漢字列、カタカナ列、仮名列、ハングル列など、表意文字列でもよいし、表音文字でもよく、表意文字および表音文字の混合文字列であってもよい。
【００２８】
情報処理装置１００は、さらに、漢字正規化部１１４と、形態素解析部１１６と、姓名候補作成部１１８とを含んでいる。漢字正規化部１１４は、文字列が漢字を含む場合、漢字辞書１２４を参照し、異字体、旧字体、略字体などを、コンピュータが処理するに適切な字体に修正する。適切な字体とは、各文化圏について規格の字体を挙げることができ、日本語については例えば、ＪＩＳ第１水準、ＪＩＳ第２水準などで設定された字体に修正し、情報処理装置１００が形態素解析において統一して処理を実行する。漢字辞書１２４は、この目的のため、異字体、旧字体、略字体などを、情報処理装置１００が登録する漢字に対応付けたテーブルとして構成される。
【００２９】
形態素解析部１１６は、正規化処理後の文字列を受領して、形態素トークンを登録した形態素辞書１２６を参照し、文字列を、形態素トークン列に分解する。また、形態素辞書１２６は、形態素トークンが帰属される文化圏を示す識別値および当該文化圏で、当該形態素トークンが姓（ＳＮ：Sir Name)として使用されるか、名（ＧＮ：Given Name)として使用されるかを示す属性識別子を登録する。形態素解析部１１６は、形態素トークンが帰属される文化圏識別値、姓を示すか、名を示すか、または付属語を示すかの属性識別子を形態素辞書１２６から取得して、対として後述する姓名候補作成部１１８に送付する。
【００３０】
また、形態素辞書１２６は、姓名と判断される文字列の前後に付される場合がある、「代表取締役」、「部長」、「課長」、「係長」、「教授」、「君」、「様」、「殿」などの形態素トークンに対し、付属語であることを示す識別子「ＳＸ(Suffix)」を付属語とされる可能性のある形態素トークンに割当てて登録する。以下、姓、名、付属語を示すための識別子を、属性識別子として参照する。
【００３１】
なお、形態素辞書１２６は、異字体、旧字体、略字体など同一の漢字として処理することが可能な形態素トークンを登録する同義漢字辞書（図示せず）を実装することもできる。この場合、形態素辞書１２６が異字体、旧字体、略字体などの漢字の相違を含め姓名候補を作成することもできる。この実施形態の場合にあっては、漢字正規化部１１４、漢字辞書１２４の機能は、形態素辞書１２６の機能に統合させることができる。
【００３２】
なお、本実施形態では、漢字の字体が異なる文字列であっても、当該文字列に対応するアルファベット表記を出力するので、複数の異字体からなる姓名候補を作成するよりも、漢字正規化部１１４、漢字辞書１２４を使用して形態素解析前に文字列を統一して処理することが、後述する姓名候補作成部１１８以後の処理を効率化する点では好ましい。
【００３３】
形態素解析部１１６は、文字列を解析し、文字列を、姓に対応する形態素トークン、名に対応する形態素トークン、付属語に対応する形態素トークンに分類し、形態素トークンについて割当てられた属性識別子を、形態素トークンに対応付けて抽出し、文字列に対応する順序で（形態素トークン、属性識別子、形態素トークン、属性識別子、・・・）といったベクトル型式、有向グラフ型式などの適切な型式で解析結果を姓名組合わせとして生成し、姓名候補作成部１１８に渡す。
【００３４】
姓名候補作成部１１８は、形態素解析部１１６が生成した姓名組合わせが抽出した姓名組合わせ情報を受領して、形態素トークンに付された属性識別子について接続を解析する。属性識別子の解析では、連続する形態素トークンに付された属性識別子を抽出し、接続識別子として決定する。そして、姓名候補作成部１１８は、形態素トークンの接続を特徴付ける接続識別子を、形態素トークン間に挿入する型式で、（形態素トークン−接続識別子−形態素トークン−接続識別子、・・・）のフィールドから構成されるレコードを含む姓名候補リスト（６００、８００）を、生成された全形態素トークン列について作成する。
【００３５】
この結果、姓名候補作成部１１８が作成する姓名候補リスト（６００、８００）は、特定の姓名候補についての形態素トークンおよび接続識別子が１レコードを構成するフィールドを構成する。また、特定の実施形態では、姓名候補リスト（６００、８００）は、姓名候補について計算された合計スコア値を登録するフィールドを含んで構成することもできる。合計スコア値を登録するフィールドには、スコア計算部１２０により形態素トークンの属性識別子および接続識別子を使用して計算された合計スコア値を登録し、処理結果として出力するべき姓名候補を選択するために使用される。
【００３６】
また、姓名候補作成部１１８は、入力文字列が、漢字、ハングル、カタカナ、平仮名などを含んで構成される場合、文化圏判断を実行し、文化圏重付け値を生成する。文化圏重付け値は、文字列が漢字、ハングル、カタカナ、平仮名などを含む場合、付属語を除いた姓名候補の先頭に存在する形態素トークンの人名属性識別値が、ＳＮであるか、ＧＮであるかを判断する。また、姓名候補作成部１１８は、姓名候補の形態素トークンと名候補の形態素トークンとに対し、各形態素トークンがどの文化圏に帰属されるかを判断して、姓、名が同一の文化圏に帰属される場合と、異なる文化圏に帰属される場合でも、姓名シーケンスの場合と同様に、異なる文化圏重付け値を生成して、姓名候補リスト（６００、８００）に登録する。
【００３７】
さらに、他の実施形態では、姓名候補作成部１１８は、姓名候補ごとに文化圏識別値を生成し、後述するスコア計算部１２０に対し文化圏ごとに最尤の姓名候補を利用可能とすることができる。
【００３８】
スコア計算部１２０は、姓名候補リスト（６００、８００）の特定のレコードについて、当該レコードの値がＮＵＬＬではないフィールドの値を取得する。その後、スコア計算部１２０は、スコア・テーブル１２８を参照して当該フィールド値について割当てられたスコア値を取得し、処理レコードの非ＮＵＬＬのフィールド値について取得されたスコア値を合計する。さらに、スコア計算部１２０は、文化圏重付け値についてのスコア値を加算して合計スコア値を計算し、姓名候補リスト（６００、８００）の対応するレコード内に記述する。
【００３９】
なお、文化圏重付け値は、スコア・テーブル１２８に登録されている場合、スコア計算部１２０が計算のために参照されるが、スコア計算部１２０を記述するＳＱＬ文やスクリプトの定数として設定することができる。スコア・テーブル１２８が登録する各スコア値は、形態素トークン列が与える、姓名候補の文字列の先頭から末尾までの姓名距離を示すものとして利用される。
【００４０】
好ましい実施形態では、姓名候補リストのレコードの非ＮＵＬＬの値を総和して合計スコア値を計算させ、当該合計スコア値を、文化圏判断を含む姓名の先頭から末尾までのシーケンスの距離を示す値として使用する。また、他の実施形態では、より精度は低くなるが、文化圏重付け値姓および名候補が含む接続識別子の総数を使用して姓名候補の先頭から末尾までの距離の指標として使用することもできる。
【００４１】
表記変換部１２２は、合計スコア値の最小な姓名候補を姓名候補リスト（６００、８００）から最尤の姓名候補として抽出する。表記変換部１２２は、最尤の姓名候補について、変換辞書１３０を参照して、最尤の姓名候補について登録されたアルファベット表記を、姓および名について割当て、姓名候補についての最尤のアルファベット表記として出力する。アルファベット表記変換辞書１３０は、最尤の姓名候補が含む文字が姓または名に使用される統計的確率、または漢字の場合には漢字が国字であるか、非国字であるかを使用して、文化圏ごとに異なるアルファベット表記を登録している。なお、姓名候補リスト（６００、８００）は、ＲＡＭなどの記憶装置内に処理中に生成される例えばビューなどとして構成することができ、その詳細な構成については後述する。
【００４２】
表記変換部１２２は、姓名候補の文字列を登録するテーブルを登録した変換辞書１３０に対して姓名候補の文字列を姓および名について照会する。表記変換部１２２は、文字列について設定されたアルファベット表記を抽出し、同一の表意文字であっても、文化圏ごとにその表記が異なる可能性に対して対応可能としている。
【００４３】
図１で説明した各機能部は、ＪＡＶＡ（登録商標）、ＰＥＲＬ、ＲＵＢＹなどのプログラミング言語によるサーバ・プログラムとして実装することができる。また、他の実施形態で、ＤＢ２（登録商標）、ＭＹＳＱＬ、ＯＲＡＣＬＥ（登録商標）などのリレーショナル・データベースや、オブジェクト指向データベース（ＯＯＤＢ）が利用できる場合、各種処理を実行するＳＱＬ文(Structured Query Language)を使用して作成した機能モジュールとして実装することができる。いずれの形態で実装するかについては、プログラミングの便宜や、データベースの利用性に応じて適宜選択することができる。
【００４４】
図２は、本実施形態の情報処理装置１００の姓名識別方法のフローチャートである。図２に示す処理は、ステップＳ２００から開始し、ステップＳ２０１で、姓名であると考えられる文字列について、文字列とともに姓名識別要求を受領したか否かを判断し、姓名識別要求を受領しない場合（ｎｏ）、姓名識別要求を受領するまで処理をステップＳ２０１で待機させる。
【００４５】
ステップＳ２０１で姓名識別要求を受領した場合（ｙｅｓ）、ステップＳ２０２で文字列を取得し、ステップＳ２０３で漢字正規化部１１４を呼出して、文字列について異字体、旧字体、略字体の正規化処理を実行する。なお、姓名識別を要求する文字列が複数送付された場合、受領した文字列をキューに登録し、受領順に処理を実行する。なお、正規化処理は、日本語の異字体正規化処理の他、中国語と台湾語など、略字体が異なるものの同義語に分類されるべき漢字の正規化も同時に実行する。
【００４６】
ステップＳ２０４では、形態素解析部１１６を呼出して正規化後の文字列に対して形態素辞書１２６を参照して、姓および名として登録された形態素トークンおよび対応する属性識別値の候補を決定する。ステップＳ２０５では、姓名候補作成部１１８を呼出して、決定された形態素トークンおよび属性識別値を姓名候補リストのレコードの登録し、姓名候補リストを作成する。
【００４７】
ステップＳ２０６では、スコア計算部１２０を呼出してスコア計算を実行させる。計算された合計スコア値は、文字列についての姓名距離として、姓名候補リストの合計対象のレコードの合計スコア値フィールドに登録される。ステップＳ２０６では、表記変換部１２２は、姓名候補リストに登録された姓名候補のうち、姓名距離が最小の姓名候補を検索し、表記変換辞書１３０を使用して最尤のシングルバイト文字列として、特定の実施形態ではアルファベット表記を決定する。
【００４８】
ステップＳ２０７では、決定されたアルファベット表記を、処理結果として出力し、ステップＳ２０８では、キューに未処理の文字列が残っているか否かを判断する。未処理の文字列が残っていない場合（ｎｏ）処理をステップＳ２０１に戻し、未処理の文字列がなくなるまで処理を繰り返す。
【００４９】
一方、キュー内に未処理の文字列が残っている場合（ｙｅｓ）には、処理をステップＳ２０２に戻し、別の文字列に対する姓名候補を決定し、ステップＳ２０７でアルファベット表記を出力するまで処理を反復させる。
【００５０】
なお、他の実施形態では、ステップＳ２０５のスコア計算部１２０の処理で、姓名距離の小さいものから複数の姓名候補を抽出し、それぞれについてアルファベット表記を割当てることもできる。また、さらに他の実施形態では、例えば文字列が「林子平」などのように、文字列に対して可能性のある複数の姓名候補が異なる文化圏について得られる場合も想定される。この場合、各文化圏について最尤の姓名候補をそれぞれ抽出し、ステップＳ２０６、ステップＳ２０７の処理を繰り返すことで、文化圏にまたがった複数のアルファベット表記を出力させることもできる。この実施形態では、各文化圏ごとに、最尤の姓名候補から昇順に複数の姓名候補を設定数抽出して、可能性のあるアルファベット表記の選択数を増加させてもよい。
【００５１】
図３は、図２で説明した処理のステップＳ２０４において、本実施形態の形態素解析部１１６が実行する形態素解析処理により生成される形態素トークン列生成処理の実施形態を示す。なお、図３の実施形態では、正規化後の文字列は、「下鶴間大和君」であるものとして説明を行う。
【００５２】
文字列が、「下鶴間大和君」である場合、姓名について知識を有する日本人の場合、何処までが姓で、どこまでが名であり、付属語がどれかを判断することは、姓名知識を利用することによってある程度分類可能である。また、例えば、文字列の何文字目までが姓であり、名であるのかについては、姓名についての統計解析により、形態素辞書１２６に登録しておくことが可能である。また、例えば、短い姓として、「間」、長い姓として、「勅使河原」、「左衛門三郎（サエモンサブロウ」、「勘解由小路（かでのこうじ）」などを例示的に挙げることができ、文字列の何処までを姓とし、何処までを名とするかについては、形態素辞書１２６で、姓、名として登録された形態素トークンの組合わせから、最尤の組合わせを与えるように姓名分割を実行することができる。
【００５３】
さらに、他の実施形態では、特に日本人の姓名を分割する場合、形態素辞書１２６において割当てるべき姓、名の組合わせについて、音声−言語処理で汎用的に利用される、モーラ解析を併用し、最尤の姓名分割を決定してもよい。
【００５４】
図３に示した実施形態で、文字列が、「下鶴間大和君」の場合、文字列の判断から、文化圏は、日本語、中国語、韓国語のいずれかであると判断される。説明している実施形態では、形態素トークン解析の結果、「下」、「鶴」、「下鶴」、「鶴間」、「下鶴間」、「大」、「和」、「君」、「大和」、「和」、「和君」の形態素トークンが抽出される。
【００５５】
これらの形態素トークンを使用して姓名を再現する場合、形態素解析部１１６は、文化圏の判断を、各文化圏での姓名として登録されているか否かを判断して、文化圏の判定を行う。図３に示した実施形態では、「下」、「鶴」、「間」、「下鶴」、「鶴間」、「下鶴間」を含む姓は、日本語の文化圏で姓に割当てられた形態素トークンである。なお、形態素トークン「下」および「鶴」については、日本語の文化圏では、名にも割当てられた形態素トークンであるものとして説明を行う。なお、図３には、代表的な属性識別子および当該属性識別子に割り当てたスコアの値を示す。
【００５６】
本実施形態の情報処理装置１００の形態素解析部１１６は、図３に示す形態素トークン解析で、形態素トークン列をグラフ化する処理を実行する。形態素トークン列のグラフ化は、形態素トークン列について、特定した形態素トークンをノードとし、連続するノードに与えられた属性識別子から、連続する順で接続識別子を生成させて、文字列順に形態素トークンおよび接続識別子を登録することにより実行される。
【００５７】
図３に示した実施形態では、文字列「下鶴間大和君」について、形態素辞書１２６により、「鶴」、「下鶴」、「鶴間」、「下鶴間」、「大」、「和」、「君」、「大和」、「和」、「和君」の形態素トークンが抽出されている。そして、文字列「下鶴間大和君」を、先頭の「下」から末尾の「君」までについて、抽出された形態素トークン列を割当てる。具体的には、形態素トークン「下鶴間」については、「下」、「鶴」、「間」、「下鶴」、「鶴間」、「下鶴間」の６形態素トークンが抽出され、これらの形態素トークンを文字列「下鶴間」に割当てる。
【００５８】
図３に示した実施形態では、「下鶴間」に対して、｛「下（ＳＮ）」−「鶴間（ＳＮ）」｝、｛「下（ＧＮ）」−「鶴（ＧＮ）」−「間（ＳＮ）」｝、｛「下鶴（ＳＮ）」−「間（ＳＮ）」｝、｛「下鶴間（ＳＮ）」｝の形態素トークン列が割当てられている。そして、図３に示した実施形態では、姓として使用される可能性の高い形態素トークンを含む形態素トークン列がより上方となるようにして、形態素トークン列を配置示している。例えば、「下」、「鶴間」については、スコア１が与えられ、「下鶴間」についてはスコア４が与えられている。
【００５９】
形態素辞書１２６は、当該形態素トークンが、姓（ＳＮ）を示すものであるか、または名（ＧＮ）を示すものであるかを統計的に解析し、形態素トークンの属性識別子が、形態素トークンに対応付けて登録する。図３に示した実施形態では、形態素トークン「下」および「鶴」は、名（ＧＮ）を示す属性識別子が採用されたものとして説明する。なお、形態素トークン「下」を姓とし、「鶴」を、名（ＧＮ）とする姓名候補も想定できるが、この場合でも、図３の形態素トークン列に１シリーズが追加されることになるのみで、処理は同様に行うことができる。なお、図３に示した実施形態では、合計スコア値は、破線で囲った形態素トークン列３１０が最小値を与え、この結果、「下鶴間大和君」の姓名識別の結果、姓＝「下鶴間」、名＝「大和」、付属語＝「君」に分解することが最尤の結果として出力される。
【００６０】
図３に示した形態素トークン列を生成させた後、形態素解析部１１６は、当該形態素トークンの属性識別子、「ＳＮ」、「ＧＮ」、「ＳＸ」を各形態素トークンと対応付けて姓名候補リストに、例えば、「下」−「鶴間」について、｛下、ＳＮ−鶴間、ＳＮ｝のシーケンスで登録する。また、「下」−「鶴」−「間」については、｛下、ＧＮ−鶴、ＧＮ−間、ＳＮ｝のシーケンスで属性識別子を追加しながら登録され、姓名を表す形態素トークン列が姓名候補リスト内に定義される。
【００６１】
図４は、本実施形態の姓名候補作成部１１８およびスコア計算部１２０が実行する処理のフローチャートである。図４の処理は、ステップＳ４００から開始し、ステップＳ４０１で正規化後の処理対象の文字列についての形態素解析部１１６の結果を受取り、当該文字列について可能性のある形態素トークン、属性識別値を、姓名候補リストに追加して行く。
【００６２】
ステップＳ４０２では、互いに隣接する形態素トークンの属性識別子を使用して形態素トークン間の接続識別値を生成し、姓名候補リストに登録する。例えば、姓（ＳＮ）として構成された形態素トークンが連続する場合ＳＳ、姓（ＳＮ）名（ＧＮ）が連続する場合ＳＧ、名（ＧＮ）姓（ＳＮ）が連続する場合ＧＳなどである。さらに、文化圏の判定を用いて文化圏重付け値を生成し、姓名候補リストに登録する。文化圏の判定は、図３に示した実施形態では、文字列が漢字を含んで構成されている。このため、文字列が姓名に対応する場合、姓が先頭に記述されるのは通常（Ｎ：Ｎｏｒｍａｌ）であり、名が先頭に記述されるシーケンスは、非通常(ＡＮ：Ａｂｎｏｒｍａｌ）ということができる。文化圏重付け値は、文化圏を考慮した場合に通常か非通常かを識別して重付けを行うために用いられる値であり、特定の識別文字、フラグ、または他の適切なキャラクタなどを用いることができる。
【００６３】
また、他の文化圏判定の実施形態では、姓名候補作成部１１８は、姓および名の形態素トークン分割が終了した段階で姓および名に帰属された形態素トークンの文化圏判定を実行する。この実施形態では、姓に帰属された形態素トークンと名に帰属された形態素トークンとが異なる文化圏の組合わせであると判断した場合、文化圏重付け値として値ＡＮを付し、同一の形態素トークンのみで姓名が分解されている場合に値Ｎを付して姓名候補リストに登録する。なお、先に文化圏重付け値が設定されている場合には、先の文化圏重付け値の値と、後の文化圏重付け値とを参照し、ＡＮが存在する場合には、ＡＮを付し、ＡＮが存在しない場合Ｎを付する処理を実行する。
【００６４】
その後、ステップＳ４０３では、スコア・テーブル１２８を参照し、形態素トークン、接続識別子のスコア値を取得する。ステップＳ４０４では、文字列を形成する形態素トークンの先頭から最後まで、特定の姓名候補についてのレコードのスコア値および文化圏重付け値のスコア値または値を合計して姓名距離を計算する。その後、計算した姓名距離の最も小さい形態素トークン列を有するものを、最尤の姓名候補として決定する。
【００６５】
その後、ステップＳ４０５で、表記変換部１２２に送付して、処理をステップＳ４０６で終了する。なお、ステップＳ４０４では、上述したように、特定の目的および実装形態に応じて、ランク順、または文化圏別に複数の候補形態素トークン列を姓名候補として、表記変換部１２２に送付することもできる。
【００６６】
図５は、本実施形態のスコア計算部１２０が参照するスコア・テーブル１２８の実施形態を示す。スコア・テーブル１２８は、形態素トークン・スコア・テーブル５００と、シーケンス・スコア・テーブル５５０とを含んで構成されている。形態素トークン・スコア・テーブル５００は、形態素トークンが姓または名として使用される場合の頻度の高さを、頻度が高いほど低いスコアを割当てたデータ構造として構成されている。例えば、姓として形態素トークン「下」、「間」が使用されることはその頻度は高いと言えるので、スコア＝１が割当てられている。
【００６７】
一方、名について、「下」が使用される頻度はないとは言えないが、それほど頻度は高くないと言えるので、図３に示した実施形態では、スコア＝２が割当てられている。また、３文字姓である「下鶴間」については、出現頻度はさらに低いと考えられるので、スコア＝４が割当てられており、例えば、「勘解由小路」などについては、さらに大きなスコアを割当てることができる。図５に示した形態素トークン・スコア・テーブル５００では、特定の形態素トークンについて、姓（ＳＮ）スコア、名（ＧＮ）スコアが対として登録され、レコードを構成している。
【００６８】
また、シーケンス・スコア・テーブル５５０は、文字列に割当てた形態素トークンの順が、当該文化圏および姓名構造に関連して妥当か否かの統計的判断を使用して形態素トークンの間の接続識別子をスコア付けするために利用されるデータ構造である。図５に示すシーケンス・スコア・テーブル５５０は、姓−名、姓−姓、名−姓などの形態素トークンの接続関係が、接続識別子ＳＧ、ＳＳ、ＧＳなどとして登録され当該文化圏に関連して適切か否かの統計的および文化圏の判断から、接続識別子に対して接続スコアが登録されている。
【００６９】
スコア計算部１２０は、姓名候補リストに登録された接続識別子のフィールドに値が登録されている場合、当該値に対応する接続スコア値をシーケンス・スコア・テーブル５５０から取得して、形態素トークン・スコア・テーブル５００に登録された形態素トークンのスコア値とともにスコア計算のために使用する。なお、文化圏重付け値は、上述したようにスコア・テーブル１２８に登録することもできるし、また、Ｎの場合０、ＡＮの場合、適切な大数としてプログラム中に設定しておくことができ、適宜、プログラミングの便宜を考慮して実装することができる。
【００７０】
図６は、本実施形態で姓名候補作成部１１８が作成する姓名候補リスト６００の実施形態を示す。図６に示した姓名候補リスト６００の実施形態では、４種類の姓候補に対してそれぞれ３種類の名候補の組み合わせが全部リストされる。図６に示した実施形態では、レコード・セット６１０が、「下＋鶴間」の姓組合わせに対応し、レコード・セット６２０が、「下＋鶴＋間」の姓組合わせに対応する。さらにレコード・セット６３０は、姓組合わせ「下鶴＋間」に対応し、さらにレコード・セット６４０は、姓組合わせ「下鶴間」に対応する。
【００７１】
また、姓名候補リスト６００は、文化圏重付け値を登録するフィールド６５０、文字列の開始からの形態素トークンの接続を示す先行形態素トークン接続リスト・フィールド６６０、文字列の末尾までの残りの形態素トークンの接続を示す後続形態素トークン接続リスト・フィールド６８０、および先行形態素トークンおよび後続形態素トークンの前後接続を示す前後接続リスト・フィールド６７０、および合計スコア値フィールド６９０を含んで構成されている。
【００７２】
フィールド６５０は、文化圏判断において、日本人名として判断されたことに対応して、姓名の先頭について、ＳＮの属性識別子を有する形態素トークンが割当てられている場合、姓名候補作成部１１８が、Ｎ：Ｎｏｒｍａｌの識別子を設定する。また、レコード・セット６２０は、「下」について、属性識別子が「ＧＮ」が割当てられているので、文化圏判断において、日本語の姓名の通常の記述ではないことから、ＡＮ：Ａｂｎｏｒｍａｌの識別子を設定している。
【００７３】
スコア計算部１２０は、図６の姓名候補リスト６００のレコードについて、それぞれＮＵＬＬではないフィールドのスコア値を、スコア・テーブル１２８を参照して取得して、好ましい実施形態では、下記式（１）を使用して合計スコア値を計算する。
【００７４】
【数１】
0005466376.tif 000002
上記式（１）中、ｉは、レコードを指定するサフィックスであり、ｊは、レコードｉのｊ番目のフィールドを示すサフィックスである。また、SUM_SCORE(i)は、合計スコア値であり、Culture_weight(i)は、文化圏重付け値である。なお、上述したように文化圏重付け値は、スコア・テーブル１２８の登録項目としておくこともできるし、またＳＱＬ文中の条件値として指定しておくこともできる。なお、「君」、「さん」、「殿」などの付属語については、姓名のスコア計算に影響を与えない適切なスコアを割当てることができ、図６に示した実施形態では、付属語「君」についてスコア＝１を割当てて合計スコア値であるSUM_SCORE(i)を計算している。なお、付属語については、スコア＝０として設定することもできるし、上記式（１）の計算から除外する処理を採用することもできる。
【００７５】
図６に示す姓名候補リスト６００について、上記式（１）を適用して計算された合計スコア値である、SUM_SCOREijの値が、フィールド６９０に登録される。なお、合計スコア値内のＮおよびＡＮの値は、文化圏判定に関連して例えば、Ｎ＝０、ＡＮ＝大数などの値を適宜設定することができる。スコア計算部１２０は、フィールド６９０の値を比較し、値が最小のレコードを姓名候補として採用し、表記変換部１２２に渡す。
【００７６】
さらにスコア計算部１２０のスコア計算処理の他の実施形態として、下記式（２）を使用して、文化圏重付け値および接続識別子のみを抽出し、そのスコアを合計して合計スコア値として姓名候補リスト６００に登録することもできる。
【００７７】
【数２】
0005466376.tif 000003
上記式（２）を使用して合計スコア値を計算する場合、形態素トークンが姓を示すか、または名を示すかの判断とは別に、文字列をいくつの形態素トークンで接続したか、および文化圏の判断結果を使用して姓名候補を抽出することが可能となる。この実施形態は、使用される姓、名の頻度を使用するものではないが、姓に利用される文字が比較的限定される場合、姓名候補を効率的に抽出するためには好ましく利用することができる。なお、上記式（２）の計算においても、付属語についての取扱いは、上記式（１）の場合と同様に実行することができる。
【００７８】
図６に示した実施形態では、文字列＝「下鶴間大和君」について、姓＝「下鶴間」、名＝「大和」、付属語＝「君」と分解することが、最小の合計スコア値を与える。表記変換部１２２は、姓名候補リストを検索し、合計スコア値が最小の姓名候補を最尤の姓名候補とするなど、適切な抽出形態を使用して抽出する。
【００７９】
図７は、表記変換部１２２が使用する変換辞書１３０が登録するテーブル・セット７００の実施形態を示す。図７に示したテーブル・セットは、姓テーブル７１０と、名テーブル７５０として構成されている。姓テーブル７１０には、さらに文化圏別にＪＰセクション７２０、ＣＮセクション７３０、ＫＲセクション７４０が割当てられていて、各セクションには、文化圏に帰属される姓に対応する形態素トークンが、そのアルファベット表記と対として登録されている。なお、姓テーブル７１０には、同一の文字が複数の文化圏で姓として使用される場合でも、それぞれのセクションにそのアルファベット表記とともに登録されている。
【００８０】
なお、アルファベット表記といったシングルバイト文字列は、日本人名についてはローマ字を使用することができ、ローマ字の表記方法としては、ＩＳＯ３６０２で規定される訓令式の表記方法の他、ヘボン式、日本式ローマ字など表記方式のアルファベット表記を使用することができ、これらは、単独で登録することもできるし、異表記形態候補として並列的にシングルバイト文字列に変換して、出力とすることもできる。
【００８１】
当該実施形態の変換辞書１３０を実装する場合、例えば、姓「柳」について、姓テーブルを使用して縦断的にアルファベット表記を検索することが可能となる。一方、名についても名テーブルを使用して縦断的にアルファベット表記を検索することが可能となる。一方で、姓について取得されたアルファベット表記と、名について取得されたアルファベット表記とを組合わせる場合、異なる文化圏のアルファベット表記の姓と名とが結合される可能性も発生する。
【００８２】
しかしながら、上述した場合でも、スコア計算部１２０が文化圏重付け値を利用して異なる文化圏に帰属される姓と名とが組合わされた姓名候補について高いスコアを付する。このため、文字列が異なる文化圏に帰属される姓および名でしか記述できなかった場合（例えば、異なる文化圏に帰属される男性と女性とが婚姻し、いずれか一方の姓に統一した場合など）を除き、通常では、表記変換部１２２は、異なる文化圏に帰属される姓名を組合わせる可能性は低い。この結果、表記変換部１２２は、文化圏に対応したアルファベット表記をシングルバイト文字列として返すことが可能となる。また、この結果、異文化圏の姓名の組合わせしか生成されなかった場合でも、対応するシングルバイト文字列を出力させることができる。
【００８３】
さらに変換辞書１３０は、他の実施形態では、文化圏ごとに姓、名として使用される形態素トークンと、属性識別子と、アルファベット表記とをＪＰテーブル、ＣＮテーブル、およびＫＲテーブルといった文化圏テーブルを含むように実装することができる。
【００８４】
姓テーブル、名テーブルではなく、文化圏テーブルを実装する説明する他の実施形態では、姓および名が同一の文化圏に帰属されるシングルバイト文字列が優先的に検索され、通常の姓名識別においてより効率的な処理を行うことができる。また、姓または名のいずれかが特定の文化圏テーブルのみで検索されたなった場合、検索されなかった姓または名について、ＪＰテーブルから、ＣＮテーブル、ＫＲテーブルへと検索対象テーブルを変更して検索することにより、異文化圏に帰属される姓名についてのアルファベット表記を、シングルバイト文字列として出力させることが可能となる。
【００８５】
図８は、姓名と考えられる文字列が、複数の文化圏にわたる可能性がある場合の情報処理装置１００の姓名候補作成部１１８が実行する処理の実施形態を示す。図８に示すように、例えば、入力文字列が、「江澤東」の場合、図８に示すように、「江澤−東」、「江−澤東」、「江−澤−東」の３つの形態素トークン列に分割可能である。この場合、姓名候補リスト８００には、江ＳＳ澤ＳＧ東、江ＳＧ澤東、江澤ＳＧ東の３つの形態素トークン列で示される姓名候補が作成される。姓として「江」は、日本姓として極めて希であるが、中国姓としては、通常に使われる姓であり、また「澤東」についても中国語で名として使用される可能性がある。
【００８６】
一方、姓「江澤」は、日本では通常に使われる姓であり、また名「東」についても名として使用される場合がある。このような場合、後述する江−澤東および江澤−東について文化圏重付け値では両者を区別できず、いずれもＮとして判断することになる。さらに合計スコア値の点でより低い姓名候補を選択することは、文字列「江澤東」について、日本姓または中国姓のいずれかであるかを強制的に決定し、他方を廃棄することは妥当ではない。なお、「江−澤−東」については、文化圏重付け値および接続識別子の数およびスコアに基づいて、「江澤−東」、「江−澤東」よりも合計スコア値が高くなるので、選択されず、表記変換部１２２が抽出することはないので詳細な説明は行わない。
【００８７】
姓名候補「江澤東」について説明するような場合には、姓名候補リスト８００に例えば、文化圏識別子を登録するフィールドを設けておき、各形態素トークン列を生成した場合の、先頭形態素トークンが帰属されている文化圏を識別するための識別子、例えばＪＰ、ＣＮ、ＫＲなどを記入するフィールドを定義しておくことができる。姓名候補作成部１１８は、各フィールドへの値の記入が終了した時点で、スコア計算部１２０を呼出し、姓名候補リスト８００の各レコードの値を総和して合計スコア値を計算する。その後、表記変換部１２２は、ＪＰ、ＣＮ、ＫＲの識別子ごとに合計スコア値の最小を与える最尤の形態素トークン列を抽出する。
【００８８】
表記変換部１２２は、姓名候補リスト８００を参照し、最尤の形態とトークン列を、各文化圏ごとに抽出し、抽出した姓名候補を、一旦キュー・バッファに格納する。さらに表示変換部１２２は、キュー・バッファが空になるまでＪＰ、ＣＮ、ＫＲごとにアルファベット表記を取得して、シングルバイト文字列として出力する。なお、表記変換部１２２は、各文化圏ごとに合計スコア値の小さいものから順に複数の形態素トークン列を表記変換部１２２に渡し、さらに多くのシングルバイト文字列変換候補を出力させることもできる。
【００８９】
また、図８に示した実施形態で、文字列「金澤雫」は、形態素トークンで、金−澤雫、金澤−雫、金−澤−雫に分割することができる。この実施形態の場合、姓としての「金」は、韓国姓としては普通に使用される姓であり、また姓「金澤」についても、日本姓として普通に使用される姓である。一方「金−澤−雫」は、接続識別子の数および種類を使用して、合計スコアはいずれにしても高くなるので、「江−澤−東」と同様の処理が実行され、表記変換部１２２には渡されることはないので詳細な説明は省略する。
【００９０】
ところで、文字列「金澤雫」に含まれる漢字のうち、「雫」は、日本製の漢字、いわゆる国字である。このため、姓名候補作成部１１８は、「金−澤雫」をＫＲとして識別し、「金澤−雫」についてＪＰとして識別する。そして、文化圏重付け値は、「金−澤雫」について先頭の形態素トークンが「金」であることから文化圏識別子＝ＫＲとしてはＮであるが、文字属性が文化圏識別子＝ＪＰを含んでいるため、ＡＮの値を検出し、この結果、文化圏重付け値としてＡＮを与え、合計スコア値を増加させている。なお、この場合でも、合計スコア値は、「金−澤雫」の方が低いので、ＪＰ、ＫＲ、ＣＮについてそれぞれ、「江澤東」、「金澤東」、「江澤東」が選択され、それぞれ表記変換部１２２により抽出される。
【００９１】
図９は、本実施形態の姓名識別方法を実行する情報処理ステム９００の実施形態を示す。図９に示した情報処理システム９００は、姓名識別処理を実行する情報処理装置である姓名識別サーバ９１０と、アルファベット表記と姓名候補とを対応付けて姓名識別結果を姓名識別サーバ９１０に返すデータベース・サーバ９６０とを含んで構成されている。
【００９２】
姓名識別サーバ９１０は、ネットワーク９２０を介してクライアント・コンピュータから姓名識別要求および姓名と考えられる少なくともマルチバイト文字を含む文字列をＨＴＴＰプロトコルなどを使用して受信する。受信された姓名識別要求は、ネットワーク・アダプタ９３０を介してアルファベット変換部９４０ａに送られる。アルファベット変換部９４０ａは、本実施形態の姓名識別処理を実行し、姓名識別サーバのフロントプロセッサとして実装されている。アルファベット変換部９４０ａは、マルチバイト文字を含む文字列を、単一または複数のシングルバイト文字列に変換し、姓名識別部９５０に送付する。
【００９３】
姓名識別部９５０は、例えば非特許文献１に記載されたインターナショナル・ビジネス・マシーンズ・コーポレーション製のGlobal Name Analyticsシステムとして実装することができる。姓名識別部９５０は、アルファベット変換部９４０ａからの出力をその入力文字列として取得する。図９に示した実施形態では、姓名識別部９５０は、例えば、ＳＱＬ文などを使用してデータベース・サーバ９６０に検索クエリーを発行し、シングルバイト文字に対応するマルチバイト文字列の検索を指令する。データベース・サーバ９６０は、例えばＤＢ２などのリレーショナル・データベース９７０を管理しており、リレーショナル・データベース９７０は、シングルバイト文字列で記述された姓名と、当該姓名を固有に特定する姓名識別子とを対応付けたテーブル９８０ａと、姓名識別子とマルチバイト文字列での姓名とを対応付けたテーブル９８０ｂとを含んで構成される。
【００９４】
データベース・サーバ９６０は、シングルバイト文字を参照して姓名識別子を特定し、特定された姓名識別子を検索キーとしてテーブル９８０ｂを検索し、対応するマルチバイト文字で記述された文字列を姓名として取得する。その後、データベース・サーバ９６０は、取得した姓名を姓名識別部９５０に返す。姓名識別部９５０は、取得したマルチバイト文字列の姓名を、出力処理部９４０ｂに渡し、姓名識別要求の送付元に返すべき処理結果を作成させる。出力処理部９４０ｂは、例えば、姓名識別部９５０により識別された姓名について、そのまま姓名識別要求の送付元に送付することもできるし、例えば、姓（ＳＮ）と名（ＳＮ）との間にスペース、中黒（・）、ハイフン、その他のキャラクタなどを挿入して、検索結果として返すこともできる。さらに他の実施形態では、フォームとして、検索結果を姓フィールド、名フィールドなどに別々に記述して、送信元であるクライアント・コンピュータに送付することもできる。
【００９５】
さらに他の実施形態では、データベース・サーバ９６０は、姓名に対応して住所、勤務先、年金情報、銀行口座、経歴などの姓名に関連付けられる情報を管理する情報テーブル９９０を管理する。当該実施形態では、姓名識別子により特定されたマルチバイト文字およびそのために使用したシングルバイト文字で参照される各種情報を検索し、その検索結果を、姓名識別結果とともに姓名識別部９５０に返すこともできる。姓名識別部９５０は、データベース・サーバ９６０から取得した姓名識別結果と、当該姓名識別結果を使用して検索された他の情報とを、出力処理部９４０ｂに送り、ネットワーク・アダプタ９３０を介して姓名識別要求の送信元であるクライアント・コンピュータに返すことにより、姓名識別および姓名によりタグ付けされる他の情報とを、クライアント・コンピュータに利用させている。
【００９６】
また、さらに他の実施形態は、姓名を含むと考えられる文字列が、シングルバイト文字と、マルチバイト文字とを含む場合について処理を実行する。シングルバイト文字とマルチバイト文字とを含む文字列が姓名を含むものと考えられる場合、例えば、文字列からシングルバイト文字を削除する処理を実行するプリプロセッサを実装することができる。その後、文字列を検索対象の文字列として使用することで、情報処理装置１００または情報処理システム９００は、同様の検索を実行することができる。また、アルファベット表記、例えばＪａｎｅ、Ｊｏｈｎｓなどのアルファベット表記がカタカナなどマルチバイト文字で記述された文字列の場合には、カタカナに相当するコードを削除して検索対象の文字列とするプリプロセッサを実装することで、上述した渡同様の処理を実行し、処理結果を生成することができる。
【００９７】
本実施形態の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、当該プログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００９８】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００９９】
【図１】本実施形態の情報処理装置１００について機能ブロックを示した図。
【図２】本実施形態の情報処理装置１００の姓名識別方法のフローチャート。
【図３】図２で説明した処理のステップＳ２０４において、本実施形態の形態素解析部１１６が実行する形態素解析処理により生成される形態素トークン列生成処理の実施形態を示した図。
【図４】本実施形態の姓名候補作成部１１８およびスコア計算部１２０が実行する処理のフローチャート。
【図５】本実施形態のスコア計算部１２０が参照するスコア・テーブル１２８の実施形態を示した図。
【図６】本実施形態で姓名候補作成部１１８が作成する姓名候補リスト６００の実施形態を示した図。
【図７】表記変換部１２２が使用する変換辞書１３０が登録するテーブル・セット７００の実施形態を示した図。
【図８】姓名と考えられる文字列が、複数の文化圏にわたる可能性がある場合の情報処理装置１００の姓名候補作成部１１８が実行する処理の実施形態を示した図。
【図９】本実施形態の姓名識別方法を実行する情報処理ステム９００の実施形態を示した図。
【符号の説明】
【０１００】
１００…情報処理装置、１１０…コンピュータ装置、１１２入力インタフェース、１１４…漢字正規化部、１１６…形態素解析部、１１８…姓名候補作成部、１２０…スコア計算部、１２２…表記変換部、１２４…漢字辞書、１２６…形態素辞書、１２８…スコア・テーブル、１３０変換辞書、６００、８００…姓名候補リスト、９００…情報処理システム
【図１】
0005466376.tif 000004
【図２】
0005466376.tif 000005
【図３】
0005466376.tif 000006
【図４】
0005466376.tif 000007
【図５】
0005466376.tif 000008
【図６】
0005466376.tif 000009
【図７】
0005466376.tif 000010
【図８】
0005466376.tif 000011
【図９】
0005466376.tif 000012