(57)【要約】【課題】異体字を利用者によって選択された正規化文字に変換することを目的とする。【解決手段】正規化処理装置１は、異体字と正規化文字の候補とを対応づけて記憶し、正規化文字の候補のうち選択された正規化文字を示す識別情報を記憶する。また、正規化処理装置１は、被正規化文字列に含まれる文字のうち、記憶された異体字と一致する文字を検索する。そして、正規化処理装置１は、記憶部に記憶された異体字と一致する文字が検索された場合に、識別情報に基づいて、検索された異体字と対応付けられた正規化文字の候補のうち選択された正規化文字を取得する。その後、正規化処理装置１は、被正規化文字列に含まれる文字を、取得された文字に変換する。つまり、正規化処理装置１は、被正規化文字列に含まれる文字を、選択された正規化文字に変換する。【選択図】図１
2011198302.tif 000002
【特許請求の範囲】
【請求項１】
異体字と正規化文字の候補とを対応づけて記憶し、該正規化文字の候補のうち選択された正規化文字を示す識別情報を記憶する記憶部と、
被正規化文字列に含まれる文字のうち、前記記憶部に記憶された前記異体字と一致する文字を検索する検索部と、
前記検索部によって前記記憶部に記憶された前記異体字と一致する文字が検索された場合に、前記識別情報に基づいて、前記正規化文字の候補のうち前記選択された正規化文字を取得する取得部と、
前記被正規化文字列に含まれる文字を、前記取得部によって取得された前記選択された正規化文字に変換する変換部と
を備えたことを特徴とする正規化処理装置。
【請求項２】
正規化文字を記憶する正規化記憶部と、
前記正規化文字の候補の中から、前記正規化記憶部によって記憶された正規化文字と一致する文字を選択し、前記記憶部に記憶された識別情報を該選択された文字を示す識別情報に変更する識別情報変更部と
をさらに有することを特徴とする請求項１に記載の正規化処理装置。
【請求項３】
正規化文字を記憶する正規化記憶部と、
前記被正規化文字列に含まれる文字と前記正規化記憶部に記憶された正規化文字とが一致するか否かを判定する判定部と
をさらに有し、
前記検索部は、前記判定部によって前記被正規化文字列に含まれる文字と前記正規化記憶部に記憶された前記正規化文字が一致しないと判定された場合には、当該被正規化文字列に含まれる文字のうち、前記記憶部に記憶された前記異体字と一致する文字を検索することを特徴とする請求項１又は２に記載の正規化処理装置。
【請求項４】
被正規化文字列に含まれる文字のうち、異体字と正規化文字の候補とを対応づけた情報と該正規化文字の候補のうち選択された正規化文字を示す識別情報とを記憶する記憶部に記憶された前記異体字と一致する文字を検索する検索ステップと、
前記検索ステップによって前記記憶部に記憶された前記異体字と一致する文字が検索された場合に、前記識別情報に基づいて、前記正規化文字の候補のうち前記選択された正規化文字を取得する取得ステップと、
前記被正規化文字列に含まれる文字を、前記取得ステップによって取得された前記選択された正規化文字に変換する変換ステップと
を含むことを特徴とする正規化方法。
【請求項５】
被正規化文字列に含まれる文字のうち、異体字と正規化文字の候補とを対応づけた情報と該正規化文字の候補のうち選択された正規化文字を示す識別情報とを記憶する記憶部に記憶された前記異体字と一致する文字を検索する検索手順と、
前記検索手順によって前記記憶部に記憶された前記異体字と一致する文字が検索された場合に、前記識別情報に基づいて、前記正規化文字の候補のうち前記選択された正規化文字を取得する取得手順と、
前記被正規化文字列に含まれる文字を、前記取得手順によって取得された前記選択された正規化文字に変換する変換手順と
をコンピュータに実行させることを特徴とする正規化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正規化処理装置、正規化方法、及び、正規化プログラムに関する。
【背景技術】
【０００２】
従来、住所や人名などの文字列に含まれる文字を正規化する正規化処理装置が知られている。具体的には、正規化処理装置は、意味や読みが同じだが形が異なる文字の組（以下、異体字グループという）のうち標準的でない文字（以下、異体字という）を正規化辞書に記憶された正規化文字に変換する。ここで、正規化文字とは、異体字グループのうち標準的な文字のことをいう。
【０００３】
また、正規化処理装置は、異体字と正規化文字の候補とを対応付けて記憶する異体字辞書を有する。例えば、異体字辞書は、文字入力を補助するソフトウェアであるＩＭＥ（Ｉｎｐｕｔ  Ｍｅｔｈｏｄ  Ｅｄｉｔｏｒ）で使用される文字群から抽出された異体字グループのなかで、異体字と正規化文字の候補とを対応付けて記憶する。
【０００４】
このような正規化処理装置は、正規化辞書および異体字辞書を用いて、正規化処理を行う。具体的には、正規化処理装置は、被正規化文字列に含まれる文字のうち、異体字辞書に記憶された異体字と一致するものが存在するか検索する。この結果、異体字辞書に記憶された異体字と一致するものが存在する場合には、その異体字に対応付けられた正規化文字の候補と被正規化文字列に含まれる文字とをそれぞれ変換する。
【０００５】
そして、正規化処理装置は、正規化文字の候補に置き換えられた被正規化文字列のなかで、正規化辞書に記憶された文字列と同一のものがあるか判定する。この結果、正規化処理装置は、正規化辞書に記憶された文字列と同一のものがある場合には、その文字列を正規化文字として出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−００４７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した異体字辞書を用いて正規化を行う技術では、異体字の変換先である正規化文字の候補が固定であるので、文字列に含まれる異体字を任意の正規化文字に変換することができないという問題があった。
【０００８】
本願に開示の技術は、上述した問題に鑑みてなされたものであって、異体字を利用者によって選択された正規化文字に変換することを目的とする。
【課題を解決するための手段】
【０００９】
本願に開示する技術は、一つの様態によれば、異体字と正規化文字の候補とを対応づけて記憶し、正規化文字の候補のうち選択された正規化文字を示す識別情報を記憶する正規化処理装置である。また、正規化処理装置は、被正規化文字列に含まれる文字のうち、記憶された異体字と一致する文字を検索する。そして、正規化処理装置は、記憶部に記憶された異体字と一致する文字が検索された場合に、識別情報に基づいて、検索された異体字と対応付けられた正規化文字の候補のうち選択された正規化文字を取得する。その後、正規化処理装置は、被正規化文字列に含まれる文字を、取得された文字に変換する。つまり、正規化処理装置は、被正規化文字列に含まれる文字を、選択された正規化文字に変換する。
【発明の効果】
【００１０】
本願に開示の技術は、一つの態様によれば、異体字を利用者によって選択された正規化文字に変換する効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る正規化処理装置を説明するためのブロック図である。
【図２】図２は、実施例２に係る正規化処理装置を説明するためのブロック図である。
【図３】図３は、正規化辞書記憶部に記憶された情報の一例を説明するための図である。
【図４】図４は、正規化対象データ記憶部に記憶された情報の一例を説明するための図である。
【図５】図５は、異体字データ構造体の一例を説明するための図である。
【図６】図６は、実施例２に係る異体字辞書データの一例を説明するための図である。
【図７】図７は、フラグを格納した異体字辞書データの一例を説明するための図である。
【図８】図８は、実施例２に係る正規化済データ記憶部に記憶された情報の一例を説明するための図である。
【図９】図９は、正規化処理の効果を説明するための図である。
【図１０】図１０は、実施例２に係る異体字候補フラグの設定処理の流れを説明するためのフローチャートである。
【図１１】図１１は、実施例２に係る正規化処理の流れを説明するためのフローチャートである。
【図１２】図１２は、異体字の正規化処理の流れを説明するためのフローチャートである。
【図１３】図１３は、正規化プログラムを実行するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る正規化処理装置、正規化方法、及び、正規化プログラムについて説明する。
【実施例１】
【００１３】
以下の実施例１では、図１を用いて、正規化処理装置の一例を説明する。図１は、実施例１に係る正規化処理装置を説明するためのブロック図である。なお、正規化処理装置とは、少なくとも、任意のシステムに記憶された文字列を正規化する正規化処理装置である。
【００１４】
図１に示すように、実施例１に係る正規化処理装置１は、記憶部２、検索部３、取得部４、変換部５を有する。記憶部２は、異体字と正規化文字の候補（例えば、候補Ａ〜候補Ｅ）との対応関係情報（異体字辞書データ）と、正規化文字の候補の中から選択された文字（例えば、候補Ｂ）を示す識別情報とを記憶する。検索部３は、被正規化文字列に含まれる文字のうち、異体字辞書データに含まれる異体字と一致する文字が存在するか検索する。
【００１５】
取得部４は、検索部３によって異体字辞書に含まれる異体字と一致する文字が検索された場合には、識別情報に基づいて、検索部３によって検索された異体字に対応付けられた正規化文字の候補のうち選択された正規化文字（例えば、候補Ｂ）を記憶部から取得する。変換部５は、被正規化文字列に含まれる文字を取得部４によって取得された正規化文字の候補（例えば、候補Ｂ）に変換する。
【００１６】
つまり、正規化処理装置１では、任意の正規化文字の候補に対して識別情報が設定される。そして、正規化処理装置１は、識別情報が設定された正規化文字の候補を変換先の文字として取得し、被正規化文字に含まれる異体字を取得された正規化文字の候補に変換する正規化処理を行う。
【００１７】
上述したように、正規化処理装置１は、異体字辞書とともに選択された正規化文字の候補を示す識別情報に基づいて、被正規化文字列に含まれる異体字を正規化文字の候補に変換する。このため、正規化処理装置１は、異体字を利用者によって選択された任意の正規化文字に変換することもできる。
【００１８】
なお、取得部４は、選択された正規化文字が複数存在する（例えば、候補Ｂ、候補Ｃ）場合、複数の選択された正規化文字を全て取得する。また、変換部５は、被正規化文字列の文字を取得された正規化文字に変換した文字列を全ての組み合わせについて生成する（例えば、候補Ｂに置き換えた文字列と候補Ｃに置き換えた文字列とを生成する）。そして、変換部５は、生成した全ての文字列について、正しく正規化された文字列であるか否かを判定し、正しく正規化されたと判定された文字列（例えば、候補Ｂに置き換えた文字列）を正規化された文字列とする。このため、正規化処理装置１は、正規化文字が複数ある場合にも、適切に正規化処理を行う事ができる。
【実施例２】
【００１９】
以下の実施例２では、複数の図を用いて、正規化処理装置の一例を説明する。なお、実施例２に係る正規化処理装置は、少なくとも、システムに記憶された住所を示す文字列に含まれる異体字を正規化文字に変換する正規化処理装置である。
【００２０】
まず、図２を用いて、実施例２に係る正規化処理装置を説明する。図２は、実施例２に係る正規化処理装置を説明するためのブロック図である。図２に示す例では、正規化処理装置１０は、処理部１１、異体字辞書記憶部１５を有する。また、正規化処理装置１０は、システム文字記憶部１６、外字記憶部１７、正規化辞書記憶部１８、正規化対象データ記憶部１９、正規化済データ記憶部２０と接続される。また、処理部１１は、異体字グループ生成部１２、フラグ設定部１３、正規化処理実行部１４を有する。
【００２１】
システム文字記憶部１６は、後述する正規化対象データ記憶部１９に記憶された被正規化文字列に含まれる全ての文字を記憶する。例えば、システム文字記憶部１６は、被正規化文字列に含まれる全ての文字について、各文字に一意に割当てられる文字コードと各文字の字形を示す情報とを対応付けて記憶する。
【００２２】
外字記憶部１７は、利用者が個別に登録した文字である外字を記憶する。例えば、外字記憶部１７は、利用者によって個別に登録された全ての外字について、文字コードと各文字の字形を示す情報とを対応付けて記憶する。
【００２３】
正規化辞書記憶部１８は、正規化文字を記憶する。具体的には、正規化辞書記憶部１８は、正規化文字のみが使用された文字列を記憶する。例えば、正規化辞書記憶部１８は、正規化文字のみが使用された住所を示す文字列である正規化住所を記憶する。
【００２４】
例えば、図３に示す例では、正規化辞書記憶部１８は、正規化住所として「岡山県  津山市  加茂町  斉野谷」を記憶する。また、図３に示す例では、正規化辞書記憶部１８は、正規化住所として「岐阜県  可児郡  御嵜町」を記憶する。図３は、正規化辞書記憶部に記憶された情報の一例を説明するための図である。
【００２５】
正規化対象データ記憶部１９は、正規化の対象となる文字列である被正規化文字列を記憶する。例えば、図４に示す例では、正規化対象データ記憶部１９は、正規化の対象である文字列「岡山県  津山市  加茂町  斎野谷」を記憶する。また、図４に示す例では、正規化対象データ記憶部１９は、正規化の対象である文字列「岐阜県  可児郡  御崎町」を記憶する。図４は、正規化対象データ記憶部に記憶された情報の一例を説明するための図である。
【００２６】
ここで、正規化対象データ記憶部１９は、正規化処理前の文字列を記憶しているので、記憶された文字列には異体字が含まれている。例えば、正規化対象データ記憶部１９は、異体字「斎」を含んだ被正規化文字列「岡山県  津山市  加茂町  斎野谷」を記憶する。また、正規化対象データ記憶部１９は、異体字「崎」を含んだ被正規化文字列「岐阜県  可児郡  御崎町」を記憶する。
【００２７】
図２に戻って、異体字グループ生成部１２は、異体字と正規化文字の候補とを対応付けた異体字辞書データを作成する。具体的には、異体字グループ生成部１２は、システム文字記憶部１６と外字記憶部１７とに記憶された全ての文字を取得する。そして、異体字グループ生成部１２は、取得された全ての文字に係る異体字グループを抽出する。ここで、異体字グループとは、意味や読みが同じだが形が異なる文字の組をいう。
【００２８】
また、異体字グループ生成部１２は、異体字グループに含まれる各文字を相互に対応付けた異体字辞書データを生成する。そして、異体字グループ生成部１２は、生成された異体字辞書データを異体字辞書記憶部１５に記憶させる。
【００２９】
ここで、異体字グループ生成部１２が異体字辞書データを生成する処理の一例を説明する。例えば、異体字グループ生成部１２は、システム文字記憶部１６と外字記憶部１７とに記憶された文字から任意の一文字を選択し、選択された文字について、文字コードと字形を示す情報とを取得する。また、異体字グループ生成部１２は、取得された文字コードと字形を示す情報から文字の輪郭パターンとドットパターンとを取得する。
【００３０】
そして、異体字グループ生成部１２は、選択された文字の輪郭パターンとドットパターンとから文字の部首と字形を判定する。その後、異体字グループ生成部１２は、判定された部首と字形に基づいて、選択された文字の異体字グループを抽出する。そして、異体字グループ生成部１２は、選択された文字と抽出された異体字グループに含まれる各文字とを対応付けた異体字辞書データを生成する。
【００３１】
例えば、異体字グループ生成部１２は、システム文字記憶部１６から「齊」を取得する。そして、異体字グループ生成部１２は、「齊」の輪郭パターンとドットパターンとを判定し、判定された部首と字形に基づいて、文字の形が近い文字で読み方が同じ文字である「齋」、「斎」、「斉」を抽出する。同様に、異体字グループ生成部１２は、「斎」について、意味や読みが同じだが形が異なる文字である「齋」、「齊」、「斉」を抽出する。
【００３２】
また、異体字グループ生成部１２は、「齋」について、意味や読みが同じだが形が異なる文字である「齊」、「斎」、「斉」を抽出する。また、異体字グループ生成部１２は、「斉」について、意味や読みが同じだが形が異なる文字である「齋」、「齊」、「斎」を抽出する。また、異体字グループ生成部１２は、「▲崎▼」について、意味や読みが同じだが形が異なる文字である「嵜」、「崎」を抽出する。また、異体字グループ生成部１２は、「嵜」について、意味や読みが同じだが形が異なる文字である「▲崎▼」、「崎」を抽出する。また、異体字グループ生成部１２は、「崎」について、意味や読みが同じだが形が異なる文字である「▲崎▼」、「嵜」を抽出する。
【００３３】
そして、異体字グループ生成部１２は、選択された文字に抽出された文字を対応付けた異体字辞書データを生成する。すなわち、異体字グループ生成部１２は、異体字と正規化文字の候補とを対応付けた異体字辞書データを生成する。その後、異体字グループ生成部１２は、生成された異体字辞書データを異体字辞書記憶部１５に記憶させる。
【００３４】
次に、異体字グループ生成部１２が生成する異体字辞書データについて詳しく説明する。異体字グループ生成部１２は、異体字辞書データとして、異体字データ構造体および配列名［ｎ］［ｍ］からなるデータを生成する。ここで、異体字データ構造体は、図５に示すように、ＷＣＨＡＲ（ワードキャラクター）として文字コードと、ＢＯＯＬ（ブーリアン）として後述する異体字候補フラグとを有する。図５は、異体字データ構造体の一例を説明するための図である。
【００３５】
ここで、異体字候補フラグとは、正規化文字の候補の中から選択された文字を示す識別情報である。具体的には、異体字候補フラグは、後述するフラグ設定部１３によって設定される識別情報である。例えば、異体字候補フラグは、正規化辞書に同一の文字が記憶された文字に対してはフラグ「１」が設定され、正規化辞書に同一の文字が記憶されていない文字に対してはフラグ「０」が設定される。
【００３６】
異体字グループ生成部１２は、変換元となる異体字の配列名［ｎ］に「０」を格納し、変換元となる異体字の配列名［ｍ］に対応付けられた異体字と正規化文字の候補との組を示す正整数を格納する。また、異体字グループ生成部１２は、変換先となる正規化文字の候補の配列名［ｍ］に変換元の異体字と同じグループを示す正整数を格納し、変換先となる正規化文字の候補の配列名［ｎ］に正規化文字の候補のうち何番目の候補であるかを格納する。
【００３７】
異体字グループ生成部１２が生成する異体字辞書データの一例として、異体字「齊」と正規化文字の候補「齋」、「斎」、「斉」とを対応付けた異体字データを生成する処理について説明する。例えば、異体字グループ生成部１２は、異体字「齊」の異体字データ構造体にＷＣＨＡＲとして「齊」の文字コードを格納し、ＢＯＯＬとして異体字候補フラグ「０」を格納する。また、異体字「齊」の配列名［ｎ］に［０］を格納し、配列名［ｍ］に「１」を格納する。
【００３８】
また、異体字グループ生成部１２は、正規化文字の候補「齋」の異体字データ構造体にＷＣＨＡＲとして「齋」の文字コードを格納し、ＢＯＯＬとして異体字候補フラグ「０」を格納する。また、正規化文字の候補「齋」の配列名［ｎ］に［１］を格納し、配列名［ｍ］に「１」を格納する。
【００３９】
また、異体字グループ生成部１２は、正規化文字の候補「斎」の異体字データ構造体にＷＣＨＡＲとして「斎」の文字コードを格納し、ＢＯＯＬとして異体字候補フラグ「０」を格納する。また、正規化文字の候補「斎」の配列名［ｎ］に［２］を格納し、配列名［ｍ］に「１」を格納する。
【００４０】
また、異体字グループ生成部１２は、正規化文字の候補「斉」の異体字データ構造体にＷＣＨＡＲとして「斉」の文字コードを格納し、ＢＯＯＬとして異体字候補フラグ「０」を格納する。また、正規化文字の候補「斉」の配列名［ｎ］に［３］を格納し、配列名［ｍ］に「１」を格納する。
【００４１】
このように、異体字グループ生成部１２は、二次元の配列名を各異体字データ構造体に付加することによって、異体字と正規化文字の候補とを対応付けた異体字辞書データを生成する。その後、異体字グループ生成部１２は、生成された異体字辞書データを異体字辞書記憶部１５に記憶させる。
【００４２】
異体字辞書記憶部１５は、異体字と正規化文字の候補とを対応づけて記憶する。また、異体字辞書記憶部１５は、正規化文字の候補のうち選択された正規化文字を示す識別情報を記憶する。具体的には、異体字辞書記憶部１５は、異体字グループ生成部１２によって生成された異体字辞書データを記憶する。また、異体字辞書記憶部１５は、識別情報として、後述するフラグ設定部１３によって設定された異体字候補フラグを記憶する。
【００４３】
ここで、図６は、実施例２に係る異体字辞書データを説明するための図である。図６に示す例では、異体字辞書記憶部１５は、変換元の異体字と変換先の正規化文字の候補とを対応付けた異体字辞書データを記憶する。また、異体字辞書記憶部１５は、異体字辞書の各文字について異体字候補フラグ「０」を記憶する。また、後述するように、異体字辞書記憶部１５は、フラグ設定部１３によって異体字候補フラグが変更された場合には、各文字について、変更された異体字候補フラグを記憶する。
【００４４】
図２に戻って、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データに含まれる正規化文字の候補の中から、正規化記憶部１８によって記憶された正規化文字と一致する文字を選択する。そして、フラグ設定部１３は、異体字辞書記憶部１５に記憶された設定情報を選択された文字を示す識別情報に変更する。
【００４５】
具体的には、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの各文字を正規化辞書記憶部１８から検索する。そして、フラグ設定部１３は、検索された文字が正規化辞書記憶部１８に記憶されていた場合には、検索された文字の異体字候補フラグに「１」を格納する。また、フラグ設定部１３は、検索された文字が正規化辞書記憶部１８に記憶されていない場合には、検索された文字の異体字候補フラグに「０」を格納する。
【００４６】
例えば、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの文字「斉」を正規化辞書記憶部１８から検索する。図３に示す例では、文字「斉」が正規化辞書記憶部１８に記憶されている。このため、フラグ設定部１３は、異体字辞書記憶部１５に記憶された文字「斉」の異体字候補フラグに「１」を格納する。
【００４７】
また、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの文字「斎」を正規化辞書記憶部１８から検索する。図３に示す例では、文字「斎」が正規化辞書記憶部１８には記憶されていない。このため、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの文字「斎」の異体字候補フラグに「０」を格納する。
【００４８】
このように、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの各文字を正規化辞書記憶部１８から検索する。そして、フラグ設定部１３は、検索された文字が正規化辞書記憶部１８に記憶されていた場合には、異体字辞書データの異体字候補フラグに「１」を格納する。
【００４９】
ここで、図７は、フラグを格納した異体字辞書データの一例を説明するための図である。図７に示す例では、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの文字「齋」、「斉」、「斎」、「齊」、「嵜」、「崎」、「▲崎▼」それぞれを正規化辞書記憶部１８から検索する。そして、フラグ設定部１３は、検索された文字のうち「齋」、「斉」、「嵜」、「崎」の文字が正規化辞書記憶部１８に記憶されていると判定する。その後、フラグ設定部１３は、異体字辞書記憶部１５に記憶された異体字辞書データの文字のうち、「齋」、「斉」、「嵜」、「崎」を全て検索し、検索された各文字の異体字候補フラグにそれぞれ「１」を格納する。
【００５０】
図２に戻って、正規化処理実行部１４は、正規化対象データ記憶部１９に記憶された被正規化文字列に含まれる文字と正規化辞書記憶部１８に記憶された正規化文字とが一致するか否かを判定する。また、正規化処理実行部１４は、被正規化文字列に含まれる文字と正規化文字列に含まれる文字とが一致しないと判定した場合には、被正規化文字列に含まれる文字のうち、異体字辞書記憶部１５に記憶された異体字と一致する文字が存在するか検索する。
【００５１】
また、正規化処理実行部１４は、異体字辞書記憶部１５に記憶された異体字と一致する文字が検索された場合には、異体字候補フラグに基づいて、異体字辞書記憶部１５に記憶された正規化文字の候補のうち、選択された正規化文字を取得する。そして、正規化処理実行部１４は、被正規化文字列に含まれる文字を取得された正規化文字に変換する。
【００５２】
具他的には、正規化処理実行部１４は、正規化対象データ記憶部１９から被正規化文字列を取得する。また、正規化処理実行部１４は、取得された文字列と同じ文字列を正規化辞書記憶部１８から検索する。そして、正規化処理実行部１４は、検索された文字列が正規化辞書記憶部に記憶されている場合には、検索された文字列を正規化された文字列として正規化済データ記憶部２０に格納する。
【００５３】
一方、正規化処理実行部１４は、検索された文字列と同じ文字列が正規化辞書記憶部１８に記憶されていない場合には、検索された文字列の各文字を異体字辞書記憶部１５に記憶された異体字辞書データから検索する。そして、正規化処理実行部１４は、検索された文字と対応付けられた正規化文字の候補のうち、異体字候補フラグに「１」が格納された正規化文字の候補を異体字辞書データから取得する。
【００５４】
また、正規化処理実行部１４は、異体字候補フラグに「１」が格納された正規化文字の候補を異体字辞書データから取得した場合には、文字列の文字を取得された正規化文字の候補に変換した文字列を生成する。そして、正規化処理実行部１４は、生成された文字列と同じ文字列を正規化辞書記憶部１８から検索する。その後、正規化処理実行部１４は、生成された文字列と同じ文字列が正規化辞書記憶部１８に記憶されていた場合には、生成された文字列を正規化された文字列として正規化済データ記憶部２０に格納する。
【００５５】
一方、正規化処理実行部１４は、生成された文字列が正規化辞書記憶部１８に記憶されていない場合には、生成された文字列の文字を他の正規化文字の候補に変換した文字列を新たに生成する。そして、正規化処理実行部１４は、新たに生成された文字列と同じ文字列を正規化辞書記憶部１８から検索する。
【００５６】
また、正規化処理実行部１４は、文字を正規化文字の候補に変換するすべての組み合わせについて文字列を生成し、生成されたすべての文字列が正規化辞書記憶部１８に記憶されていない場合には、エラーメッセージを利用者に通知する。
【００５７】
ここで、正規化処理実行部１４が実行する処理について、具体例を説明する。なお、以下の例では、正規化辞書記憶部１８には、図３に例示された正規化住所が記憶されているものとする。また、正規化対象データ記憶部１９には、図４に例示された被正規化文字列が記憶されているものとする。また、異体字辞書記憶部１５には、図７に例示された異体字辞書データが記憶されているものとする。
【００５８】
まず、正規化処理実行部１４は、正規化対象データ記憶部１９から被正規化文字列「岡山県」を取得する。また、正規化処理実行部１４は、文字列「岡山県」と同一の文字列を正規化辞書記憶部１８から検索する。
【００５９】
ここで、正規化辞書記憶部１８には、文字列「岡山県」が記憶されているので、正規化処理実行部１４は、被正規化文字列「岡山県」を正規化された文字列として正規化済データ記憶部２０に格納する。また、正規化処理実行部１４は、「津山市」、「加茂町」についても同様の処理を実行し、各文字列を正規化された文字列として正規化済データ記憶部２０に格納する。
【００６０】
また、正規化処理実行部１４は、正規化対象データ記憶部１９から文字列「斎野谷」を取得する。そして、正規化処理実行部１４は、文字列「斎野谷」と同一の文字列を正規化辞書記憶部１８から検索する。ここで、正規化辞書記憶部１８には、文字列「斎野谷」が記憶されていない。このため、正規化処理実行部１４は、文字列「斎野谷」の各文字と対応付けられた正規化文字の候補のうち、異体字候補フラグに「１」が格納された正規化文字の候補を異体字辞書データから取得する。つまり、正規化処理実行部１４は、文字列「斎野谷」の各文字と対応付けられた正規化文字を異体字辞書データから取得する。
【００６１】
図７に示す例では、正規化処理実行部１４は、異体字辞書データから「斎」と対応付けられた正規化文字の候補「齋」と「斉」とを取得する。そして、正規化処理実行部１４は、文字列「斎野谷」の文字「斎」を「齋」に変換した文字列「齋野谷」を生成する。そして、正規化処理実行部１４は、生成された文字列「齋野谷」と同じ文字列を正規化辞書記憶部１８から検索する。
【００６２】
ここで、図３に示す例では、正規化辞書記憶部１８には、文字列「齋野谷」が記憶されていない。このため、正規化処理実行部１４は、新たな文字列として「斎野谷」の文字「斎」を「斉」に変換した文字列「斉野谷」を生成する。そして、正規化処理実行部１４は、生成された文字列「斉野谷」と同じ文字列を正規化辞書記憶部１８から検索する。
【００６３】
ここで、図３に示す例では、正規化辞書記憶部１８には、文字列「斉野谷」が記憶されているので、正規化処理実行部１４は、生成された文字列「斉野谷」を正規化された文字列として正規化済データ記憶部２０に格納する。
【００６４】
また、正規化処理実行部１４は、正規化対象データ記憶部１９から被正規化文字列「岐阜県」、「可児郡」についても、同じ文字列を正規化辞書記憶部１８から検索する。そして、正規化処理実行部１４は、「岐阜県」、「可児郡」が正規化辞書記憶部に記憶されているので、被正規化文字列「岐阜県」、「可児郡」を正規化された文字列として正規化済データ記憶部２０に格納する。
【００６５】
また、正規化処理実行部１４は、正規化対象データ記憶部１９から被正規化文字列「御崎町」を取得する。そして、正規化処理実行部１４は、文字列「御崎町」と同一の文字列を正規化辞書記憶部１８から検索する。
【００６６】
ここで、正規化辞書記憶部１８には、文字列「御崎町」が記憶されていない。このため、正規化処理実行部１４は、文字列「御崎町」の各文字と対応付けて記憶された正規化文字の候補のうち、異体字候補フラグに「１」が格納された正規化文字の候補を異体字辞書データから取得する。つまり、正規化処理実行部１４は、文字列「御崎町」の各文字と対応付けられた正規化文字を異体字辞書データから取得する。
【００６７】
図７に示す例では、正規化処理実行部は、異体字辞書データから「崎」に対応付けられた正規化文字の候補のうち、異体字候補フラグに「１」が格納された正規化文字「嵜」を取得する。そして、正規化処理実行部１４は、文字列「御崎町」の文字「崎」を取得された「嵜」に変換した文字列「御嵜町」を生成する。そして、正規化処理実行部１４は、正規化された文字列「御嵜町」と同じ文字列を正規化辞書記憶部１８から検索する。
【００６８】
ここで、図３に示す例では、正規化辞書記憶部１８には、文字列「御嵜町」が記憶されているので、正規化処理実行部１４は、生成された文字列「御嵜町」を正規化された文字列として正規化済データ記憶部２０に格納する。
【００６９】
図２に戻って、正規化済データ記憶部２０は、正規化された文字列を記憶する記憶部である。例えば、図８に示す例では、正規化済データ記憶部２０は、正規化された文字列「岡山県  津山市  加茂町  斉野谷」、及び、「岐阜県  可児郡  御嵜町」を記憶する。図８は、実施例２に係る正規化済データ記憶部に記憶された情報の一例を説明するための図である。
【００７０】
次に、図９を用いて、正規化処理装置１０が実行する正規化処理の効果を説明する。図９は、正規化処理の効果を説明するための図である。図９に示す例では、正規化処理装置１０は、最も広い範囲であるシステムが使用する文字コードの範囲で異体字辞書を生成する。このため、正規化処理装置１０は、文字列に含まれる全ての異体字を正規化文字の候補に変換することができる。
【００７１】
また、正規化処理装置１０は、正規化後の文字コードの範囲に含まれる文字同士の変換、又は、被正規化文字列の文字コードの範囲に含まれる文字から正規化後の文字コードの範囲に含まれる文字への変換を行う。例えば、図９に示す例では、正規化処理装置１０は、異体字「齊」を「斉」又は「齋」へと変換する。また、正規化処理装置１０は、異体字「斎」を「斉」又は「齋」へと変換する。
【００７２】
つまり、正規化処理装置１０は、正規化後の文字コードの範囲に含まれない文字へ異体字を変換することなく、正規化処理を行うので、処理コストを削減し、異体字の効率的な変換を行う事ができる。例えば、正規化処理装置１０は、「斉」又は「齋」を「齊」又は「斎」へ変換することはないので、処理コストを削減し、異体字の効率的な変更を行う事ができる。
【００７３】
また、正規化処理装置１０は、フラグを変更するだけで、正規化後の文字コードの範囲を任意に変更することができる。このため、正規化処理装置１０は、例えば、システムに記憶された住所、人名等の異なる情報の文字列について、正規化処理を適切に行うことができる。
【００７４】
例えば、処理部１１、及び、処理部１１が有する異体字グループ生成部１２、フラグ設定部１３、正規化処理実行部１４とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ （Field Programmable Gate Array）などの集積回路、またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用する。
【００７５】
また、異体字辞書記憶部１５、システム文字記憶部１６、外字記憶部１７、正規化辞書記憶部１８、正規化対象データ記憶部１９、正規化済データ記憶部２０とは、記憶装置である。ここで、記憶装置の例として、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどを適用する。
【００７６】
[補完装置の処理]
次に、図１０〜１２を用いて、正規化処理装置１０が実行する処理の流れを説明する。まず、図１０を用いて、正規化処理装置１０が実行する異体字候補フラグの設定処理の流れを説明する。図１０は、実施例２に係る異体字候補フラグの設定処理の流れを説明するためのフローチャートである。正規化処理装置１０は、利用者によって異体字候補フラグの設定処理の実行を要求されたことをトリガとして、処理を開始する。
【００７７】
まず、正規化処理装置１０は、異体字辞書記憶部１５に記憶された異体字辞書データの文字を全て取得する（ステップＳ１０１）。次に、正規化処理装置１０は、取得された文字を正規化辞書記憶部１８から検索し、検索された文字が正規化辞書記憶部１８に記憶されているか否かを判定する（ステップＳ１０２）。
【００７８】
そして、正規化処理装置１０は、検索された文字が正規化辞書記憶部１８に記憶されている場合には（ステップＳ１０２肯定）、検索された文字の異体字候補フラグに「１」を格納する（ステップＳ１０３）。また、正規化処理装置１０は、検索された文字が正規化辞書記憶部１８に記憶されていない場合には（ステップＳ１０２否定）、検索された文字の異体字候補フラグに「０」を格納する（ステップＳ１０４）。
【００７９】
次に、正規化処理装置１０は、異体字辞書記憶部１５に記憶された異体字辞書データの全ての文字について、異体字候補フラグを設定したか否かを判定する（ステップＳ１０５）。そして、正規化処理装置１０は、異体字辞書データの全ての文字について、異体字候補フラグを設定したと判定した場合には（ステップＳ１０５肯定）、異体字辞書記憶部１５に記憶された異体字辞書を更新し（ステップＳ１０６）、処理を終了する。
【００８０】
一方、正規化処理装置１０は、異体字辞書記憶部１５に記憶された異体字辞書データの全ての文字について、異体字候補フラグを設定していないと判定した場合には（ステップＳ１０５否定）、異体字候補フラグが設定されていない文字を識別する。そして、正規化処理装置１０は、識別された文字について、正規化辞書記憶部１８に記憶されているか否かを判定する（ステップＳ１０２）。
【００８１】
次に、図１１を用いて、正規化処理装置１０が実行する正規化処理の流れを説明する。図１１は、実施例２に係る正規化処理の流れを説明するためのフローチャートである。正規化処理装置１０は、利用者によって正規化処理の実行を要求されたことをトリガとして、処理を開始する。
【００８２】
まず、正規化処理装置１０は、正規化対象データ記憶部１９に記憶された住所の文字列から県を示す文字列を抽出する（ステップＳ２０１）。次に、正規化処理装置１０は、文字列を抽出できたか出来なかったかを判定する（ステップＳ２０２）。正規化処理装置１０は、文字列を抽出できたと判定した場合には（ステップＳ２０２否定）、抽出された文字列と同一の文字列が正規化辞書記憶部１８に記憶されているか否かを判定する（ステップＳ２０３）。
【００８３】
そして、正規化処理装置１０は、抽出された文字列と同一の文字列が正規化辞書記憶部１８に記憶されていないと判定した場合には（ステップＳ２０３否定）、異体字の正規化処理を実行する（ステップＳ２０４）。次に、正規化処理装置１０は、異体字の正規化処理を実行した結果、文字列の正規化に成功したか否かを判定する（ステップＳ２０５）。
【００８４】
そして、正規化処理装置１０は、文字列の正規化に成功したと判定した場合には（ステップＳ２０５肯定）、正規化された文字列を正規化済データ記憶部２０に格納する（ステップＳ２０６）。一方、正規化処理装置１０は、文字列の正規化に成功しなかった場合には（ステップＳ２０５否定）、エラーメッセージを出力する（ステップＳ２０７）。
【００８５】
次に、正規化処理装置１０は、住所の文字列に含まれる全ての種別について文字列を抽出したか否かを判定する（ステップＳ２０８）。つまり、正規化処理装置１０は、住所の文字列に含まれる県、市、町、村、番地を示す文字列全てを抽出したか否かを判定する。
【００８６】
正規化処理装置１０は、住所の文字列に含まれる全ての種別について文字列を抽出していないと判定した場合には（ステップＳ２０８否定）、次の種別の文字列を抽出する（ステップＳ２０１）。例えば、正規化処理装置１０は、直前の処理で県についての文字列を抽出した場合には、市についての文字列を抽出する。
【００８７】
また、正規化処理装置１０は、ステップＳ２０１にて抽出された文字列と同一の文字列が正規化辞書記憶部１８に記憶されていると判定した場合には（ステップＳ２０３肯定）、抽出された文字列を正規化済データ記憶部２０に格納する（ステップＳ２０６）。また、正規化処理装置１０は、正規化対象データ記憶部１９に記憶された文字列を抽出できなかった場合には（ステップＳ２０２肯定）、次の種別の文字列を抽出する（ステップＳ２０１）。
【００８８】
その後、正規化処理装置１０は、住所の文字列に含まれる全ての種別について文字列を抽出したと判定した場合には（ステップＳ２０８肯定）、正規化処理を終了する。
【００８９】
次に、図１２を用いて、正規化処理装置１０が実行する異体字の正規化処理の流れを説明する。図１２は、異体字の正規化処理の流れを説明するためのフローチャートである。正規化処理装置１０は、図１１のステップＳ２０３にて、抽出された文字列と同一の文字列が正規化辞書記憶部１８に記憶されていないと判定したことをトリガとして異体字の正規化処理を開始する（ステップＳ２０４）。
【００９０】
まず、正規化処理装置１０は、正規化に失敗した文字列の異体字に対応付けられた正規化文字の候補のうち、異体字候補フラグに「１」が格納された文字が異体字辞書データに含まれているか否かを判定する（ステップＳ３０１）。そして、正規化処理装置１０は、異体字候補フラグに「１」が格納された文字が含まれると判定した場合には（ステップＳ３０１肯定）、異体字辞書データから異体字候補フラグに「１」が格納された文字を全て取得する（ステップＳ３０２）。
【００９１】
次に、正規化処理装置１０は、取得された文字の組み合わせの数だけ文字列を生成したか否かを判定する（ステップＳ３０３）。そして、正規化処理装置１０は、取得された文字の組み合わせの数だけ文字列を生成してはいないと判定した場合には（ステップＳ３０３否定）、異体字を取得された正規化文字の候補に変換した新たな文字列を生成する（ステップＳ３０４）。
【００９２】
次に、正規化処理装置１０は、生成された文字列と同一の文字列が正規化辞書記憶部１８に記憶されているか否かを判定する（ステップＳ３０５）。そして、正規化処理装置１０は、生成された文字列と同一の文字列が正規化辞書記憶部１８に記憶されていると判定した場合には（ステップＳ３０５肯定）、生成された文字列を異体字の正規化処理の結果とする（ステップＳ３０６）。
【００９３】
次に、正規化処理装置１０は、正規化処理に成功したか否かを判定する（ステップＳ３０７）。そして、正規化処理装置１０は、正規化処理に成功したと判定した場合には（ステップＳ３０７肯定）、その後、異体字の正規化処理を終了する。
【００９４】
一方、正規化処理装置１０は、生成された文字列と同一の文字列が正規化辞書記憶部１８に記憶されていないと判定した場合には（ステップＳ３０５否定）、正規化に成功したか否かを判定する（ステップＳ３０７）。そして、正規化処理装置１０は、正規化処理に成功していないと判定した場合には（ステップＳ３０７否定）、再度、取得された文字の組み合わせの数だけ文字列を生成したか否かを判定する（ステップＳ３０３）。
【００９５】
一方、正規化処理装置１０は、異体字候補フラグに「１」が格納された文字が無いと判定した場合には（ステップＳ３０１否定）、エラーを異体字の正規化処理の結果とし（ステップＳ３０８）、その後、処理を終了する。また、正規化処理装置１０は、取得された文字の組み合わせの数だけ文字列を生成したと判定した場合には（ステップＳ３０３肯定）、エラーを異体字の正規化処理の結果とし（ステップＳ３０８）、その後、処理を終了する。
【００９６】
[実施例２の効果]
上述したように、正規化処理装置１０は、異体字辞書データに含まれる正規化文字の候補のうち、正規化辞書記憶部１８に記憶された文字の異体字候補フラグに「１」を格納する。そして、正規化処理装置１０は、正規化される文字を正規化文字の候補に変換する場合には、異体字辞書データに含まれる正規化文字の候補のうち、異体字候補フラグに「１」が格納された文字に変換する。
【００９７】
このため、正規化処理装置１０は、異体字辞書データに含まれる正規化文字の候補のうち、任意の正規化文字を異体字の変換先とする正規化処理を実行することができる。つまり、正規化処理装置１０は、異体字を利用者によって選択された正規化文字に変換することができる。
【００９８】
また、正規化処理装置１０は、異体字を正規化文字の候補のうち正規化辞書に記憶された正規化文字の候補に変換するので、効率的な正規化処理を行う結果、正規化処理の処理コストを削減することができる。
【００９９】
また、正規化処理装置１０は、システム文字記憶部１６に記憶された全ての文字と外字記憶部１７に記憶された全ての文字とに基づいて異体字辞書を生成する。このため、正規化処理装置１０は、正規化対象データの文字列に外字が含まれる場合にも、正規化を成功させることができる。
【０１００】
また、正規化処理装置１０は、被正規化文字列が正規化辞書記憶部１８に記憶されている場合には、異体字の正規化処理を行わずに、被正規化文字列を正規化された文字列として正規化済データ記憶部２０に格納する。また、正規化処理装置１０は、被正規化文字列が正規化辞書記憶部１８に記憶されていない場合には、被正規化文字列に含まれる異体字を正規化する。このため、正規化処理装置１０は、正規化処理に必要な処理コストを抑えることができる。
【実施例３】
【０１０１】
これまで、本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【０１０２】
（１）異体字辞書について
上述した正規化処理装置１０は、読みが同じで字形が異なる文字、又は、意味が同じで字形が異なる文字を対応付けて記憶する異体字辞書データを生成した。しかし、実施例は、これに限定されるものではなく、任意の関係性を有する文字同士を対応付けてよい。例えば、読みと意味が同じで字形が異なる文字同士を対応付ける異体字辞書データであってもよく、対応付けられる文字の関係性を利用者が任意に選択してよい。
【０１０３】
また、実施例２では、正規化処理装置１０が実行する正規化処理の例として、漢字を正規化する処理を説明したが、実施例はこれに限定されるものではない。例えば、半角の数字を全角の数字に変換する正規化処理でもよい。
【０１０４】
また、実施例２では、正規化処理装置１０が実行する正規化処理の例として、一つの文字を正規化文字の候補に変換する処理を説明したが、実施例はこれに限定されるものではない。例えば、一文字の異体字を複数の文字からなる文字列に変換する処理を行っても良い。
【０１０５】
（２）正規化対象データについて
実施例２では、正規化対象データとして、住所に係る文字列の正規化を行った。しかし、実施例はこれに限定されるものではなく、例えば、名前等、任意の文字列を正規化対象としてもよい。
【０１０６】
（３）プログラム
ところで、上述した実施例１〜２では、ハードウェアを利用して各種の処理を実現する正規化処理装置を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを正規化処理装置、又は、コンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１３を用いて、実施例１に示した正規化処理装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１３は、正規化プログラムを実行するコンピュータの一例を説明するための図である。
【０１０７】
図１３に例示されたコンピュータ１００は、ＲＡＭ（Random Access Memory）１２０、ＲＯＭ（Read Only Memory）１３０、ＣＰＵ１４０（Central Processing Unit）１４０、ＨＤＤ（Hard Disk Drive）１５０がバス１７０で接続される。また、バス１７０には、正規化された文字列を出力するためのＩ／Ｏ（Input Output）１６０が接続される。
【０１０８】
ＨＤＤ１５０には、異体字辞書データ１５１、識別情報１５２があらかじめ保存される。異体字辞書データ１５１、識別情報１５２は、実施例１に係る記憶部２に記憶された情報と同様の情報である。ＲＯＭ１３０には、検索プログラム１３１、取得プログラム１３２、変換プログラム１３３が予め保持される。ＣＰＵ１４０が各プログラム１３１〜１３３をＲＯＭ１３０から読み出して実行することによって、図１３に示す例では、各プログラム１３１〜１３３は、検索プロセス１４１、取得プロセス１４２、変換プロセス１４３として機能するようになる。なお、各プロセス１４１〜１４３は、図１に示した各部３〜５と同等の機能を発揮する。また、各プロセス１４１〜１４３は、実施例２に係る各部と同等の機能を発揮するようにすることも可能である。
【０１０９】
なお、本実施例で説明した正規化プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical Disc）、ＤＶＤ（Digital Versatile Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１１０】
１  正規化処理装置
２  記憶部
３  検索部
４  取得部
５  変換部
１０  正規化処理装置
１１  処理部
１２  異体字グループ生成部
１３  フラグ設定部
１４  正規化処理実行部
１５  異体字辞書記憶部
１６  システム文字記憶部
１７  外字記憶部
１８  正規化辞書記憶部
１９  正規化対象データ記憶部
２０  正規化済データ記憶部
【図１】
2011198302.tif 000003
【図２】
2011198302.tif 000004
【図３】
2011198302.tif 000005
【図４】
2011198302.tif 000006
【図５】
2011198302.tif 000007
【図６】
2011198302.tif 000008
【図７】
2011198302.tif 000009
【図８】
2011198302.tif 000010
【図９】
2011198302.tif 000011
【図１０】
2011198302.tif 000012
【図１１】
2011198302.tif 000013
【図１２】
2011198302.tif 000014
【図１３】
2011198302.tif 000015