(57)【要約】【課題】所定のデータを修正するためのデータを低負荷かつ高速に抽出することができるデータ処理装置、データ処理プログラムおよびデータ処理方法を提供すること。【解決手段】住所要素記憶部１２２に記憶されている住所要素によって形成されるオートマトンを用いて、かかる住所要素と、処理対象住所データに含まれる住所要素との文字列照合を行うことにより、住所要素記憶部１２２から、処理対象住所データに含まれる住所要素に対応付けて記憶されている住所ＩＤを取得し、取得した住所ＩＤの集合の論理積を演算することにより住所ＩＤを特定する。【選択図】        図２
2010049574.tif 000002
【特許請求の範囲】
【請求項１】
所定の文字列と、前記所定の文字列を識別するための文字列識別子とを記憶する文字列記憶手段と、
前記所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を示す文字列識別子の集合とを記憶する文字列要素記憶手段と、
前記文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出手段と、
前記抽出手段によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定手段と
を備えたことを特徴とするデータ処理装置。
【請求項２】
前記第一の特定手段によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を所定のサイズごとに分割する分割手段と、
前記第一の特定手段によって特定された文字列識別子が示す複数の文字列のうち、前記分割手段によって分割された文字列である分割文字列が最も多く含まれる文字列を前記対応文字列に特定する第二の特定手段とをさらに備えたことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記文字列要素記憶手段は、前記文字列要素と前記文字列識別子の集合とに対応付けて、該文字列要素の重要度をさらに記憶し、
前記第一の特定手段は、前記抽出手段によって抽出された文字列識別子の集合のうち、前記文字列要素記憶手段に記憶されている重要度が高い文字列識別子ほど、前記対応文字列を示す文字列識別子に特定することを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記第一の特定手段によって文字列識別子が一意に特定された場合に、前記処理対象の文字列を、該文字列識別子に対応付けて前記文字列記憶手段に記憶されている文字列に書き換え、前記第一の特定手段によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を、前記第二の特定手段によって特定された対応文字列に書き換える書換手段をさらに備えたことを特徴とする請求項１〜３のいずれか一つに記載のデータ処理装置。
【請求項５】
前記対応文字列と、前記処理対象の文字列と、前記対応文字列と前記処理対象の文字列との差異とを、所定の表示部または所定の記憶部に出力するログ出力手段をさらに備えたことを特徴とする請求項１〜４のいずれか一つに記載のデータ処理装置。
【請求項６】
所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を識別するための文字列識別子の集合とを記憶する文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出手順と、
前記抽出手順によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定手順と
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項７】
前記第一の特定手順によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を所定のサイズごとに分割する分割手順と、
前記第一の特定手順によって特定された文字列識別子が示す複数の文字列のうち、前記分割手順によって分割された文字列である分割文字列が最も多く含まれる文字列を前記対応文字列に特定する第二の特定手順とをさらにコンピュータに実行させることを特徴とする請求項６に記載のデータ処理プログラム。
【請求項８】
データ処理装置が、
所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を識別するための文字列識別子の集合とを記憶する文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出工程と、
前記抽出工程によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定工程と
を含んだことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理プログラムおよびデータ処理方法に関する。
【背景技術】
【０００２】
従来、コンピュータシステムでは、住所や、氏名、組織名などの所定のデータをデータベース等に記憶して管理している。この種のデータは、システム管理者や、利用者などの人間によって入力されることが多いため、入力される文字列の表記が統一されない場合がある。表記が不統一になる例としては、記載の一部省略や、異体字の使用などがある。例えば、同一の住所を入力する場合であっても、入力者Ａは、「東京都千代田区麹町１丁目」と入力するが、入力者Ｂは、「東京都千代田区こうじ町１丁目」と入力することがある。
【０００３】
かかる場合、コンピュータシステムは、本来同一の内容を示すデータを、異なるデータとして管理する状態になる。このことは、コンピュータシステムがデータの照合などを行う場合に、本来同一のデータを異なるデータであると認識してしまうという問題を招く。
【０００４】
そこで、近年では、データを統一するための技術がいくつか提案されている。例えば、所定の住所マスタに登録されている住所と、修正対象の住所とをキーとなる文字列に分解し、分解した各文字列を比較して、所定の条件の下、統一化されたデータを表示する技術が提案されている。また、例えば、修正対象の住所を住所階層に分割し、所定の住所マスタから建物名が一致する住所を抽出し、修正対象の住所を抽出した住所に補正する技術が提案されている。
【０００５】
【特許文献１】特開２００１−１０９７５１号公報
【特許文献２】特開２００８−１５８７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術には、統一されたデータを抽出する処理における負荷が増大し、かかる処理を高速に行えないという問題があった。具体的には、従来技術では、修正対象の住所を、都道府県や市区郡などの階層ごとに分割し、分割した各住所について、所定の住所マスタに登録されている住所と照合する処理を繰り返して行っていた。一般に、住所は、５個以上の階層に分割されることが多いため、従来技術では、照合処理を５回以上行う必要があった。このため、従来技術では、データ修正処理を行う装置にかかる処理負荷が増大し、データを統一するための処理に時間がかかっていた。
【０００７】
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、所定のデータを修正するためのデータを低負荷かつ高速に抽出することができるデータ処理装置、データ処理プログラムおよびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本願に開示するデータ処理装置は、所定の文字列と、前記所定の文字列を識別するための文字列識別子とを記憶する文字列記憶手段と、前記所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を示す文字列識別子の集合とを記憶する文字列要素記憶手段と、前記文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出手段と、前記抽出手段によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定手段とを備えたことを要件とする。
【０００９】
なお、本願に開示するデータ処理装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
【発明の効果】
【００１０】
本願に開示したデータ装置によれば、所定のデータを修正するためのデータを低負荷かつ高速に抽出することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本願に開示するデータ処理装置、データ処理プログラムおよびデータ処理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、本願に開示するデータ処理装置、データ処理プログラムおよびデータ処理方法が、データが統一されていない住所を表す文字列データを、表記が統一されている文字列データに修正（クレンジング）する例について説明する。ただし、本願に開示するデータ処理装置、データ処理プログラムおよびデータ処理方法は、氏名や、組織名、法人名、支店名などの住所以外のデータを、表記が統一されているデータに修正することもできる。特に、本願に開示するデータ処理装置、データ処理プログラムおよびデータ処理方法は、階層構造を持つデータを、表記が統一されているデータに修正することができる。
【実施例１】
【００１２】
まず、実施例１に係るデータ処理装置１００によるデータ修正処理の概要について説明する。データ処理装置１００は、表記が統一されている住所を表す文字列データ（以下、「正規住所データ」という）を所定の記憶部に記憶しておく。そして、データ処理装置１００は、表記が統一されているか否かが不明である所定の住所を表す文字列データ（以下、「処理対象住所データ」という）を受け付けた場合に、所定の記憶部から、処理対象住所データに対応する正規住所データを取得する。そして、データ処理装置１００は、処理対象住所データを、取得した正規住所データに書き換える。
【００１３】
なお、ここでいう「表記が統一されている住所を表す文字列データ」とは、システム管理者等によって予め決められている表記規則に則って表記された住所データを示す。また、「処理対象住所データに対応する正規住所データ」とは、処理対象住所データと一致する正規住所データ、または、処理対象住所データと最も類似する正規住所データを示す。以下では、「処理対象住所データに対応する正規住所データ」を「修正候補住所データ」と呼ぶこととする。
【００１４】
図１を用いて、実施例１に係るデータ処理装置１００によるデータ修正処理の概要について具体的に説明する。図１は、実施例１に係るデータ処理装置１００によるデータ修正処理の概要を説明するための図である。データ処理装置１００は、住所記憶部１２１と、住所要素記憶部１２２とを有する。住所記憶部１２１は、表記が統一されている正規住所データと、かかる正規住所データを識別するための住所ＩＤとを対応付けて記憶する。
【００１５】
住所要素記憶部１２２は、住所データを形成する都道府県、市区郡、政令区町村などの住所データの要素（以下、「住所要素」という）と、かかる住所要素に対応する正規住所データの住所ＩＤとを対応付けて記憶する。例えば、図１に示した例において、住所要素「神奈川県」は、住所記憶部１２１に記憶されている正規住所データのうち、住所ＩＤ「１」〜「４９９」に対応付けて記憶されている正規住所データに含まれる。かかる場合、住所要素記憶部１２２は、住所要素「神奈川県」と、住所ＩＤ「１」〜「４９９」とを対応付けて記憶する。
【００１６】
なお、図１に示した住所記憶部１２１および住所要素記憶部１２２の構造はあくまで一例であって、住所記憶部１２１および住所要素記憶部１２２の詳細な構造については後述する。
【００１７】
そして、データ処理装置１００は、処理対象住所データを受け付けた場合に、住所要素記憶部１２２に記憶されている住所要素によって形成されるオートマトンに対して、処理対象住所データを順次代入する。これにより、データ処理装置１００は、住所要素記憶部１２２に記憶されている住所要素と、処理対象住所データに含まれる住所要素との文字列照合を行う。データ処理装置１００は、かかる文字列照合の結果、住所要素記憶部１２２から、処理対象住所データに含まれる住所要素に対応付けて記憶されている住所ＩＤを取得する。
【００１８】
図１に示した例では、データ処理装置１００は、処理対象住所データとして「神奈川県川崎市中原下小田中１丁目」を受け付けている。かかる場合、データ処理装置１００は、住所要素記憶部１２２に記憶されている住所要素によって形成されるオートマトンに対して、文字列「神」、「奈」、「川」、「県」、「川」、「崎」、「市」、「中」、「原」、「下」、「小」、「田」、「中」、「１」、「丁」、「目」を順次代入して照合する。
【００１９】
そして、データ処理装置１００は、オートマトンに対して、文字列「神」、「奈」、「川」、「県」を順次代入した場合に、住所要素記憶部１２２に記憶されている住所要素「神奈川県」と一致したことを検出する。続いて、データ処理装置１００は、住所要素「神奈川県」に対応付けて住所要素記憶部１２２に記憶されている住所ＩＤ「１−４９９」を取得する。同様にして、データ処理装置１００は、住所要素記憶部１２２から、住所要素「川崎市」に対応する住所ＩＤ「１−１００」と、住所要素「下小田中」に対応する住所ＩＤ「５−９」と、住所要素「１丁目」に対応する住所ＩＤ「１：５：１０１：・・・：５００：・・・」とを取得する。
【００２０】
続いて、データ処理装置１００は、住所要素記憶部１２２から取得した住所ＩＤの論理積を演算することにより、修正候補住所データを示す住所ＩＤを特定する。図１に示した例では、データ処理装置１００は、住所ＩＤの論理積演算の結果、修正候補住所データを示す住所ＩＤとして、住所ＩＤ「５」を特定する。続いて、データ処理装置１００は、住所記憶部１２１から、特定した住所ＩＤ「５」に対応する正規住所データ「神奈川県川崎市中原区下小田中１丁目」を取得する。
【００２１】
続いて、データ処理装置１００は、処理対象住所データ「神奈川県川崎市中原下小田中１丁目」を、取得した正規住所データ「神奈川県川崎市中原区下小田中１丁目」に書き換える。すなわち、処理対象住所データ「神奈川県川崎市中原下小田中１丁目」は、「中原」の後に文字列「区」が抜けていたが、データ処理装置１００によるデータ修正処理により、「神奈川県川崎市中原区下小田中１丁目」に修正される。
【００２２】
このように、実施例１に係るデータ処理装置１００は、住所要素記憶部１２２に記憶されている住所要素によって形成されるオートマトンを用いて、処理対象住所データに含まれる住所要素と、住所要素記憶部１２２に記憶されている住所要素との文字列照合を行う。これにより、データ処理装置１００は、１回の文字列照合処理によって、住所要素記憶部１２２から、処理対象住所データに含まれる住所要素に対応付けて記憶されている住所ＩＤを取得することができる。
【００２３】
また、データ処理装置１００は、住所要素記憶部１２２から取得した住所ＩＤの論理積を演算することにより、住所ＩＤを絞り込むので、１回の演算処理を行うだけで修正候補住所データを示す住所ＩＤを特定することができる。
【００２４】
すなわち、データ処理装置１００は、１回の文字列照合処理と、１回の論理演算処理を行うだけで修正候補住所データを特定することができる。その結果、データ処理装置１００は、低負荷かつ高速に処理対象住所データを修正候補住所データに修正することができる。
【００２５】
なお、図１に示した例では、データ処理装置１００が、住所ＩＤの論理積を演算することにより、修正候補住所データを一意に特定する例を示したが、処理対象住所データによっては、住所ＩＤを一意に特定できずに複数の住所ＩＤを特定する場合がある。かかる場合、データ処理装置１００は、特定した複数の住所ＩＤが示す複数の正規住所データから、修正候補住所データを探索する。かかる探索処理については後述する。
【００２６】
次に、実施例１に係るデータ処理装置１００の構成について説明する。図２は、実施例１に係るデータ処理装置１００の構成を示す図である。図２に示すように、データ処理装置１００は、対象データ入出力部１１０と、記憶部１２０と、制御部１３０とを有する。
【００２７】
対象データ入出力部１１０は、処理対象住所データを所定の処理部へ出力したり、修正候補住所データを所定の処理部から受け付けたりする。例えば、対象データ入出力部１１０は、表記が統一されていない住所データが記憶されている所定の記憶部から住所データを１レコードずつ取得して、受付部１３１へ順次出力する。また、例えば、対象データ入出力部１１０は、ネットワークを介して、他の情報処理装置から表記が統一されていない処理対象住所データを受信して、受信した処理対象住所データを受付部１３１へ出力する。そして、対象データ入出力部１１０は、書換部１３４から、受付部１３１へ出力した処理対象住所データを修正するための修正候補住所データを受け付ける。
【００２８】
記憶部１２０は、各種情報を記憶する記憶デバイスであり、住所記憶部１２１と、住所要素記憶部１２２と、構成情報記憶部１２３と、ログ記憶部１２４とを有する。住所記憶部１２１は、上述したように、主に、正規住所データと、かかる正規住所データを識別するための住所ＩＤとを対応付けて記憶する。
【００２９】
住所記憶部１２１の一例を図３に示す。図３に示すように、住所記憶部１２１は、住所ＩＤ、住所、郵便番号、フリガナといった項目を有する。項目「住所ＩＤ」は、住所を識別するための識別子を記憶する。項目「住所」は、表記が統一されている正規住所データを記憶する。項目「郵便番号」は、対応する項目「住所」に記憶されている正規住所データの郵便番号を記憶する。項目「フリガナ」は、対応する項目「住所」に記憶されている正規住所データのフリガナ（読み仮名）を記憶する。
【００３０】
すなわち、図３に示した住所記憶部１２１の１行目は、住所ＩＤ「１」の正規住所データが「神奈川県川崎市中原区上小田中１丁目」であり、郵便番号が「２１１−００５３」であり、フリガナが「カナガワケンカワサキシナカハラク・・・」であることを示している。また、図３に示した住所記憶部１２１の２行目は、住所ＩＤ「２」の正規住所データが「神奈川県川崎市中原区上小田中２丁目」であり、郵便番号が「２１１−００５３」であり、フリガナが「カナガワケンカワサキシナカハラク・・・」であることを示している。
【００３１】
住所要素記憶部１２２は、上述したように、主に、階層的（都道府県、市区郡等ごと）に分割された住所データの要素である住所要素と、かかる住所要素に対応する正規住所データを示す住所ＩＤとを対応付けて記憶する。
【００３２】
住所要素記憶部１２２の一例を図４に示す。図４に示すように、住所要素記憶部１２２は、住所要素、住所ＩＤ、タイプといった項目を有する。項目「住所要素」は、都道府県や、市区郡、政令区町村、町名字、丁目字などの住所データを形成する要素を記憶する。項目「住所ＩＤ」は、図３に示した住所記憶部１２１が有する項目「住所ＩＤ」に対応し、住所要素に対応する正規住所データを示す住所ＩＤを記憶する。項目「タイプ」は、対応する項目「住所要素」に記憶されている住所要素が、都道府県や、市区郡、政令区町村、町名字、丁目字などのいずれに該当するかを示す情報を記憶する。なお、図４中の住所ＩＤに表記した「Ｎ−Ｍ」は、住所ＩＤ「Ｎ」〜「Ｍ」であることを示す。また、図４中の住所ＩＤに表記した「Ｎ：Ｍ」は、住所ＩＤ「Ｎ」および「Ｍ」であることを示す。
【００３３】
すなわち、図４に示した住所要素記憶部１２２の１行目は、住所要素「神奈川県」に対応する正規住所データは、住所ＩＤが「１」〜「４９９」であり、住所要素「神奈川県」は、タイプが「都道府県」であることを示している。また、図４に示した住所要素記憶部１２２の１２行目は、住所要素「１丁目」に対応する正規住所データは、住所ＩＤが「１」、「５」、「１０１」、・・・、「５００」、・・・であり、住所要素「１丁目」は、タイプが「丁目字」であることを示している。
【００３４】
構成情報記憶部１２３は、主に、住所ＩＤと、かかる住所ＩＤが示す正規住所データを形成する住所要素のタイプとを対応付けて記憶する。構成情報記憶部１２３の一例を図５に示す。図５に示すように、構成情報記憶部１２３は、住所ＩＤ、構成情報といった項目を有する。項目「住所ＩＤ」は、図３に示した住所記憶部１２１が有する項目「住所ＩＤ」に対応する。項目「構成情報」は、対応する住所ＩＤが示す正規住所データが、都道府県や、市区郡、政令区町村、町名字、丁目字などのいずれによって形成されているかを示す情報を記憶する。なお、図５に例示した構成情報記憶部１２３では、都道府県や、市区郡、政令区町村、町名字、丁目字などを「｜」によって区切って項目「構成情報」に記憶する。
【００３５】
すなわち、図５に示した構成情報記憶部１２３の１行目は、住所ＩＤ「１」が示す住所データは、都道府県、市区郡、政令区町村、町名字、丁目字によって形成されていることを示す。また、図５に示した構成情報記憶部１２３の６行目は、住所ＩＤ「５００」が示す住所データは、都道府県、市区郡、政令区町村、丁目字によって形成されていることを示す。
【００３６】
ログ記憶部１２４は、ログ情報を記憶し、例えば、テキストファイルや、データベースである。かかるログ記憶部１２４は、後述する書換部１３４によって、データ修正処理に関する各種ログ情報が記憶される。
【００３７】
ここで、図６を用いて、上述した住所要素記憶部１２２を生成する手法について説明する。図６は、住所要素記憶部１２２を生成する手法を説明するための図である。図６に示すように、データ処理装置１００は、まず、住所記憶部１２１に記憶されている各種情報のように、各住所に住所ＩＤを付与する（ステップＳ１１）。
【００３８】
続いて、データ処理装置１００は、各住所データを住所要素に分解する。そして、データ処理装置１００は、図６に示すように、住所要素が含まれる住所データを示す住所ＩＤの範囲を、住所要素ごとに抽出する（ステップＳ１２）。そして、データ処理装置１００は、各住所要素と、抽出した住所ＩＤとを対応づけることによって、図４に示したような住所要素記憶部１２２を生成する。ここでは、データ処理装置１００が住所要素記憶部１２２を生成するものとして説明したが、外部で作成して、データ処理装置１００に与えてもよい。
【００３９】
制御部１３０は、データ処理装置１００を全体制御し、受付部１３１と、一次探索部１３２と、二次探索部１３３と、書換部１３４とを有する。受付部１３１は、対象データ入出力部１１０から出力された処理対象住所データを受け付ける。
【００４０】
一次探索部１３２は、受付部１３１によって受け付けられた処理対象住所データを修正するための修正候補住所データを探索する。具体的には、一次探索部１３２は、抽出部１３２ａと、一次特定部１３２ｂとを有する。
【００４１】
抽出部１３２ａは、住所要素記憶部１２２に記憶されている住所ＩＤのうち、処理対象住所データに含まれる住所要素に対応付けて記憶されている住所ＩＤを抽出する。具体的には、抽出部１３２ａは、住所要素記憶部１２２に記憶されている住所要素により形成されるオートマトンに対して、処理対象住所データを順次代入することによって文字列照合を行う。そして、抽出部１３２ａは、住所要素記憶部１２２に記憶されている住所要素と、処理対象住所データに含まれる住所要素とが一致する住所ＩＤを住所要素記憶部１２２から抽出する。
【００４２】
例えば、受付部１３１によって受け付けられた処理対象住所データが「神奈川県川崎市中原区下小田中１丁目」であり、住所要素記憶部１２２に記憶されている各種情報が、図４に示した状態であるものとする。かかる場合、抽出部１３２ａは、住所要素記憶部１２２から、処理対象住所データに含まれる「神奈川県」に対応付けて記憶されている住所ＩＤ「１−４９９」を抽出する。同様に、抽出部１３２ａは、住所要素記憶部１２２から、「川崎市」に対応付けて記憶されている住所ＩＤ「１−１００」と、「中原区」に対応付けて記憶されている住所ＩＤ「１−２０」とを抽出する。また、抽出部１３２ａは、住所要素記憶部１２２から、「下小田中」に対応付けて記憶されている住所ＩＤ「５−９」と、「１丁目」に対応付けて記憶されている住所ＩＤ「１：５：１０１：・・・：５００：・・・」とを抽出する。
【００４３】
このように、抽出部１３２ａは、オートマトンを用いて文字列照合処理を行うので、１回の文字列照合処理によって、住所要素記憶部１２２から住所ＩＤを抽出することができる。なお、抽出部１３２ａは、例えば、文字列照合エンジン「ＳＩＧＭＡ」を用いて、上記文字列照合処理を行う。
【００４４】
一次特定部１３２ｂは、処理対象住所データを修正するための修正候補住所データを示す住所ＩＤを特定する。具体的には、一次特定部１３２ｂは、抽出部１３２ａによって抽出された住所ＩＤの集合の論理積を演算することにより住所ＩＤを特定する。言い換えれば、一次特定部１３２ｂは、抽出部１３２ａによって抽出された住所ＩＤの集合に最も多く含まれている住所ＩＤを特定する。そして、一次特定部１３２ｂは、特定した住所ＩＤが１個である場合、かかる住所ＩＤを書換部１３４へ出力する。一方、一次特定部１３２ｂは、特定した住所ＩＤが複数である場合、かかる複数の住所ＩＤを二次探索部１３３へ出力する。
【００４５】
ここで、図７を用いて、一次特定部１３２ｂによる住所ＩＤ特定処理について具体的に説明する。図７は、一次特定部１３２ｂによる住所ＩＤ特定処理を説明するための図である。なお、図７に示した例では、上記例と同様に、受付部１３１によって受け付けられた処理対象住所データが「神奈川県川崎市中原区下小田中１丁目」であるものとする。図７の上段には、抽出部１３２ａによって抽出された住所ＩＤを示す。なお、ここでは、説明の便宜上、住所ＩＤに加えて、住所要素とタイプとを図示する。
【００４６】
図７に示した例において、一次特定部１３２ｂは、抽出部１３２ａによって抽出された住所ＩＤ「１−４９９」、「１−１００」、「１−２０」、「５−９」および「１：５：１０１：・・・：５００：・・・」の論理積を演算する。図７の下段には、各住所要素に対応する住所ＩＤの範囲を、斜線を付した矩形の幅によって示す。図７の下段に示すように、一次特定部１３２ｂは、論理積演算の結果、抽出部１３２ａによって抽出された住所ＩＤの集合に最も多く含まれる住所ＩＤとして、住所ＩＤ「５」を特定する。
【００４７】
二次探索部１３３は、一次特定部１３２ｂから入力された複数の住所ＩＤが示す複数の住所データから、修正候補住所データを探索する。具体的には、二次探索部１３３は、Ｎグラム法（「Ｎ文字インデックス法」とも呼ばれる）により、修正候補住所データを探索し、分割部１３３ａと、二次特定部１３３ｂとを有する。
【００４８】
分割部１３３ａは、処理対象住所データを所定の文字数ごとに分割する。なお、実施例１において、二次探索部１３３は、Ｎグラム法の一種であるバイグラムを用いるものとする。また、分割部１３３ａは、分割後の各文字列が前後の文字列と１文字ずつ重複するように、処理対象住所データを分割するものとする。すなわち、分割部１３３ａは、処理対象住所データを、１文字ずつ重複させながら２文字単位に分割する。
【００４９】
図８を用いて、分割部１３３ａによる処理対象住所データの分割処理について具体的に説明する。図８は、分割部１３３ａによる処理対象住所データの分割処理を説明するための図である。図８に示した例では、処理対象住所データが「神奈川県川崎市中原区下小田１丁目」であるものとする。かかる場合、分割部１３３ａは、図８に示すように、処理対象住所データを、「神奈」、「奈川」、「川県」、・・・、「田１」、「１丁」、「丁目」に分割する。
【００５０】
二次特定部１３３ｂは、一次特定部１３２ｂから入力された複数の住所ＩＤが示す複数の正規住所データから、修正候補住所データを特定する。具体的には、二次特定部１３３ｂは、住所記憶部１２１から、一次特定部１３２ｂから入力された複数の住所ＩＤに対応付けて記憶されている正規住所データを住所ＩＤごとに取得する。続いて、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列により形成されるオートマトンに対して、住所記憶部１２１から取得した正規住所データを順次代入する。これにより、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列と、住所記憶部１２１から取得した正規住所データに含まれる文字列とを順次照合する。
【００５１】
続いて、二次特定部１３３ｂは、住所記憶部１２１から取得した正規住所データのうち、分割部１３３ａによって分割された文字列と一致する文字列の数が最も多い正規住所データを特定する。そして、二次特定部１３３ｂは、かかる照合処理（バイグラム）によって特定した正規住所データに対応する住所ＩＤを書換部１３４へ出力する。
【００５２】
ここで、図９を用いて、二次特定部１３３ｂによる住所データ特定処理について具体的に説明する。図９は、二次特定部１３３ｂによる住所データ特定処理を説明するための図である。図９では、図８に示した例と同様に、分割部１３３ａによって処理対象住所データ「神奈川県川崎市中原区下小田１丁目」が分割されたものとする。また、二次特定部１３３ｂは、一次特定部１３２ｂから住所ＩＤ「１」および「５」を入力されたものとする。すなわち、二次特定部１３３ｂは、住所記憶部１２１から正規住所データ「神奈川県川崎市中原区上小田中１丁目」と、「神奈川県川崎市中原区下小田中１丁目」とを取得する。
【００５３】
かかる場合、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列により形成されるオートマトンに対して、正規住所データ「神奈川県川崎市中原区上小田中１丁目」を順次代入する。これにより、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列と、正規住所データ「神奈川県川崎市中原区上小田中１丁目」に含まれる文字列とを順次照合する。図９に示した例では、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列のうち、１２個の文字列（「神奈」、「奈川」、「川県」、「県川」、「川崎」、「崎市」、「市中」、「中原」、「原区」、「小田」、「１丁」、「丁目」）が、正規住所データ「神奈川県川崎市中原区上小田中１丁目」に含まれる文字列と一致することを検出する。
【００５４】
続いて、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列により形成されるオートマトンに対して、正規住所データ「神奈川県川崎市中原区下小田中１丁目」を順次代入する。これにより、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列と、住所データ「神奈川県川崎市中原区下小田中１丁目」に含まれる文字列とを順次照合する。図９に示した例では、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列のうち、１４個の文字列（「神奈」、「奈川」、「川県」、「県川」、「川崎」、「崎市」、「市中」、「中原」、「原区」、「区下」、「下小」、「小田」、「１丁」、「丁目」）が、正規住所データ「神奈川県川崎市中原区上小田中１丁目」に含まれる文字列と一致することを検出する。
【００５５】
続いて、二次特定部１３３ｂは、正規住所データ「神奈川県川崎市中原区上小田中１丁目」よりも、正規住所データ「神奈川県川崎市中原区下小田中１丁目」の方が、分割部１３３ａによって分割された文字列と一致する文字列の数が多いと判定する。そして、二次特定部１３３ｂは、正規住所データ「神奈川県川崎市中原区下小田中１丁目」を、修正候補住所データに特定して、対応する住所ＩＤ「５」を書換部１３４へ出力する。
【００５６】
このように、二次特定部１３３ｂは、オートマトンを用いて文字列照合処理を行うので、１回の文字列照合処理によって、修正候補住所データを特定することができる。なお、二次特定部１３３ｂは、抽出部１３２ａと同様に、例えば、文字列照合エンジン「ＳＩＧＭＡ」を用いて、上記文字列照合処理を行う。
【００５７】
書換部１３４は、処理対象住所データを、一次特定部１３２ｂまたは二次特定部１３３ｂによって特定された正規住所データに書き換えるとともに、データ修正処理に関する各種ログ情報をログ記憶部１２４に記憶させる。
【００５８】
具体的には、書換部１３４は、一次特定部１３２ｂから住所ＩＤを受け付けた場合に、住所記憶部１２１から、かかる住所ＩＤに対応付けて記憶されている正規住所データを取得する。続いて、書換部１３４は、所定の記憶部に記憶されている処理対象住所データを、住所記憶部１２１から取得した正規住所データ（修正候補住所データ）に書き換える。このとき、書換部１３４は、住所データ書換処理を実行した日時（年月日時分秒）や、処理対象住所データ、修正候補住所データ、処理対象住所データと修正候補住所データとの差分などをログ記憶部１２４に記憶させる。
【００５９】
また、書換部１３４は、二次特定部１３３ｂから住所ＩＤを受け付けた場合に、受け付けた住所ＩＤの数を判定する。二次特定部１３３ｂから１個の住所ＩＤの数を受け付けた場合、書換部１３４は、所定の記憶部に記憶されている処理対象住所データを、二次特定部１３３ｂから受け付けた住所データ（修正候補住所データ）に書き換えるとともに、住所データ書換処理に関する各種ログ情報をログ記憶部１２４に記憶させる。
【００６０】
一方、二次特定部１３３ｂから複数の住所ＩＤを受け付けた場合、書換部１３４は、データ修正処理を行うことなく、住所データ書換処理を実行した日時や、処理対象住所データ、二次特定部１３３ｂによって特定された複数の住所ＩＤなどをログ記憶部１２４に記憶させる。これにより、システム管理者等は、かかるログ情報に基づいて、処理対象住所データを、どの修正候補住所データに修正するかを即座に判断することができる。
【００６１】
なお、書換部１３４は、修正候補住所データを対象データ入出力部１１０へ出力することにより住所データを書き換えてもよい。例えば、処理対象住所データが他の情報処理装置が有する所定の記憶部に記憶されている場合、書換部１３４は、住所データを対象データ入出力部１１０に出力することにより、処理対象住所データを修正候補住所データに書き換えることが可能になる。また、対象データ入出力部１１０はネットワークを介して出力してもよい。
【００６２】
また、書換部１３４は、処理対象住所データと修正候補住所データとの差分が存在する構成情報をログ記憶部１２４に記憶させてもよい。かかる場合、書換部１３４は、構成情報記憶部１２３から、修正候補住所データの構成情報を取得する。そして、書換部１３４は、構成情報記憶部１２３から取得した構成情報と、処理対象住所データを形成する構成情報とを比較することにより、処理対象住所データと修正候補住所データとの差分が存在する構成情報を特定する。なお、書換部１３４は、修正候補住所データの構成情報と、処理対象住所データを形成する構成情報との論理積を演算することにより、双方の構成情報の差異を算出してもよい。
【００６３】
また、書換部１３４は、処理対象住所データと、修正候補住所データとを比較して、双方の住所データが一致しない場合に住所データ書換処理を行ってもよい。これにより、書換部１３４は、双方の住所データが一致する場合に住所データ書換処理を行わないので、より低負荷かつ高速に住所データ書換処理を行うことができる。
【００６４】
また、書換部１３４は、住所データ書換処理を行わずに、処理対象住所データと、修正候補住所データとをログ記憶部１２４に記憶させる処理を行ってもよい。かかる場合、システム管理者等は、ログ記憶部１２４に記憶されているログ情報に基づいて、住所データ書換処理を行うか否かを判断することができる。そして、システム管理者等は、住所データ書換処理を行うと判断した場合に、住所データ書換処理を行うことができる。
【００６５】
また、書換部１３４は、データ修正処理に関する各種ログ情報を所定の表示部に表示制御してもよい。例えば、利用者によって所定の入力フォーム（ブラウザなど）に住所を入力された場合に、対象データ入出力部１１０が入力された住所データを受け付けることにより、制御部１３０は、上述したデータ修正処理を行う。そして、書換部１３４は、利用者によって入力された住所データと修正候補住所データとが異なる場合に、修正候補住所データを表示部に表示制御する。これにより、利用者は、住所を入力する場合に、表記が統一されている住所をリアルタイムに確認することができる。また、データ処理装置１００は、所定の記憶部に記憶されている住所データに対して修正処理を行うことなく、表記が統一されている住所データを記憶部に記憶させることができる。
【００６６】
次に、実施例１に係るデータ処理装置１００によるデータ修正処理の手順について説明する。図１０は、実施例１に係るデータ処理装置１００によるデータ修正処理手順を示すフローチャートである。なお、図１０に示したデータ修正処理手順は、所定の日時かつ所定の時間にバッチ処理として動作したり、データ処理装置１００が他の処理（例えば、Ｗｅｂアプリケーション起動処理）を実行している間にバックグラウンドで動作したりする。
【００６７】
また、図１０では、データ処理装置１００が、１個の処理対象住所データについてデータ修正処理を行う例について説明する。複数の処理対象住所データについてデータ修正処理を行う場合、データ処理装置１００は、図１０に示した処理手順を処理対象住所データの数だけ繰り返して行う。
【００６８】
図１０に示すように、データ処理装置１００の対象データ入出力部１１０は、所定の記憶部から処理対象住所データを取得する（ステップＳ１０１）。なお、対象データ入出力部１１０は、ネットワークを介して他の情報処理装置から処理対象住所データを受信してもよい。続いて、受付部１３１は、対象データ入出力部１１０から処理対象住所データを受け付ける。
【００６９】
続いて、抽出部１３２ａは、住所要素記憶部１２２に記憶されている住所要素により形成されるオートマトンに対して、受付部１３１によって受け付けられた処理対象住所データを順次代入することによって文字列照合を行う（ステップＳ１０２）。そして、抽出部１３２ａは、住所要素記憶部１２２から、処理対象住所データに含まれる住所要素に対応付けて記憶されている住所ＩＤを抽出する（ステップＳ１０３）。
【００７０】
続いて、一次特定部１３２ｂは、抽出部１３２ａによって抽出された住所ＩＤの集合の論理積を演算することにより住所ＩＤを特定する（ステップＳ１０４）。一次特定部１３２ｂによって特定された住所ＩＤが１個である場合（ステップＳ１０５肯定）、書換部１３４は、住所記憶部１２１から、かかる住所ＩＤに対応付けて記憶されている正規住所データを取得する（ステップＳ１０６）。続いて、書換部１３４は、所定の記憶部に記憶されている処理対象住所データを、住所記憶部１２１から取得した正規住所データ（修正候補住所データ）に書き換える（ステップＳ１０７）。
【００７１】
また、書換部１３４は、住所データ書換処理に関する各種ログ情報をログ記憶部１２４に記憶させる（ステップＳ１０８）。なお、データ処理装置１００が、他の情報処理装置からネットワークを介して処理対象住所データを受信した場合、書換部１３４は、ネットワークを介して、処理対象住所データを上記ステップＳ１０６の処理手順において取得された正規住所データに書き換える。
【００７２】
一方、一次特定部１３２ｂによって特定された住所ＩＤが１個でない場合（ステップＳ１０５否定）、分割部１３３ａは、処理対象住所データを所定の文字数ごとに分割する（ステップＳ１０９）。続いて、二次特定部１３３ｂは、住所記憶部１２１から、一次特定部１３２ｂによって特定された複数の住所ＩＤに対応付けて記憶されている正規住所データを住所ＩＤごとに取得する（ステップＳ１１０）。
【００７３】
続いて、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列により形成されるオートマトンに対して、上記ステップＳ１１０において取得された正規住所データを順次代入することによって文字列照合を行う（ステップＳ１１１）。続いて、二次特定部１３３ｂは、上記ステップＳ１１０において取得された正規住所データのうち、分割部１３３ａによって分割された文字列と一致する文字列の数が最も多い正規住所データに対応する住所ＩＤを特定する（ステップＳ１１２）。
【００７４】
続いて、書換部１３４は、二次特定部１３３ｂによって特定された住所ＩＤが１個である場合（ステップＳ１１３肯定）、所定の記憶部に記憶されている処理対象住所データを、二次特定部１３３ｂによって特定された正規住所データに書き換える（ステップＳ１１４）。また、書換部１３４は、住所データ書換処理に関する各種ログ情報をログ記憶部１２４に記憶させる（ステップＳ１０８）。
【００７５】
一方、二次特定部１３３ｂによって特定された住所ＩＤが１個でない場合（ステップＳ１１３否定）、書換部１３４は、住所データ書換処理を実行した日時や、処理対象住所データ、二次特定部１３３ｂによって特定された複数の正規住所データなどをログ記憶部１２４に記憶させる（ステップＳ１１５）。
【００７６】
次に、図１１〜図１３を用いて、データ処理装置１００によるデータ修正処理の一例について説明する。図１１〜図１３は、実施例１に係るデータ処理装置１００によるデータ修正処理の一例を説明するための図である。なお、以下に説明する３つの例において、住所記憶部１２１、住所要素記憶部１２２、構成情報記憶部１２３に記憶されている各種情報は、それぞれ図３、図４、図５に示した状態であるものとする。
【００７７】
まず、図１１を用いて、処理対象住所データが「神奈川県川崎市下小田中１丁目」である場合におけるデータ処理装置１００によるデータ修正処理について説明する。なお、この処理対象住所データ「神奈川県川崎市下小田中１丁目」を修正するための修正候補住所データは、「神奈川県川崎市中原区下小田中１丁目」である。すなわち、処理対象住所データ「神奈川県川崎市下小田中１丁目」は、表記が統一されている修正候補住所データと比較して「中原区」が抜けている。
【００７８】
かかる場合、データ処理装置１００の抽出部１３２ａは、図１１に示すように、オートマトンを用いた文字列照合処理の結果、住所要素記憶部１２２から、住所ＩＤ「１−４９９」、「１−１００」、「５−９」および「１：５：１０１：・・・：５００：・・・」を抽出する。
【００７９】
続いて、一次特定部１３２ｂは、抽出された住所ＩＤの論理積を演算することにより、抽出された住所ＩＤの中から、住所ＩＤ「５」を特定する。続いて、書換部１３４は、一次特定部１３２ｂによって住所ＩＤが１個に特定されたため、住所記憶部１２１から、住所ＩＤ「５」に対応付けて記憶されている住所データ「神奈川県川崎市中原区下小田中１丁目」を取得する。そして、書換部１３４は、処理対象住所データ「神奈川県川崎市下小田中１丁目」を「神奈川県川崎市中原区下小田中１丁目」へ書き換える。
【００８０】
また、書換部１３４は、構成情報記憶部１２３から、住所ＩＤ「５」に対応付けて記憶されている構成情報「都道府県｜市区郡｜政令区町村｜町名字｜丁目字」を取得する。そして、書換部１３４は、取得した構成情報と、処理対象住所データを形成する構成情報とが一致するか否かを判定する。ここでは、書換部１３４は、構成情報「政令区町村」が不一致であると判定する。
【００８１】
そして、書換部１３４は、ログ記憶部１２４にログ情報を記憶させる。このとき、書換部１３４は、例えば、構成情報「政令区町村」を書き換えた旨、または、構成情報「政令区町村」を補完した旨のログ情報をログ記憶部１２４に記憶させる。また、例えば、書換部１３４は、処理対象住所データ「神奈川県川崎市下小田中１丁目」と、修正候補住所データ「神奈川県川崎市中原区下小田中１丁目」との差分をログ記憶部１２４に記憶させる。
【００８２】
このように、データ処理装置１００は、処理対象住所データに構成情報（図１１の例では、政令区町村）が抜けている場合であっても、１回の文字列照合処理と、１回の演算処理によって、修正候補住所データを特定することができる。すなわち、データ処理装置１００は、処理対象住所データに構成情報が抜けている場合であっても、低負荷かつ高速にデータ修正処理を行うことができる。
【００８３】
次に、図１２を用いて、処理対象住所データが「神奈川県横川崎市中原区下小田中１丁目」である場合におけるデータ処理装置１００によるデータ修正処理について説明する。なお、この処理対象住所データ「神奈川県横川崎市中原区下小田中１丁目」を修正するための修正候補住所データは、「神奈川県川崎市中原区下小田中１丁目」である。すなわち、処理対象住所データ「神奈川県横川崎市中原区下小田中１丁目」は、表記が統一されている住所データと比較して、「川崎市」の１文字前の「横」が余分に付与されている。
【００８４】
かかる場合、データ処理装置１００の抽出部１３２ａは、オートマトンを用いた文字列照合処理の結果、住所要素記憶部１２２から、住所ＩＤ「１−４９９」、「８５１−８５５」、「１−１００」、「１−２０」、「５−９」および「１：５：１０１：・・・：５００：・・・」を抽出する。なお、住所ＩＤ「８５１−８５５」は、町名字「横川」を含む住所データの住所ＩＤである。
【００８５】
続いて、一次特定部１３２ｂは、抽出された住所ＩＤの論理積を演算することにより、抽出された住所ＩＤの中から、住所ＩＤ「５」を特定する。続いて、書換部１３４は、住所記憶部１２１から、住所ＩＤ「５」に対応付けて記憶されている住所データ「神奈川県川崎市中原区下小田中１丁目」を取得する。そして、書換部１３４は、処理対象住所データ「神奈川県横川崎市中原区下小田中１丁目」を「神奈川県川崎市中原区下小田中１丁目」へ書き換える。
【００８６】
また、書換部１３４は、構成情報記憶部１２３から、住所ＩＤ「５」に対応付けて記憶されている構成情報「都道府県｜市区郡｜政令区町村｜町名字｜丁目字」を取得する。そして、書換部１３４は、取得した構成情報と、処理対象住所データを形成する構成情報とが一致するか否かを判定する。ここでは、書換部１３４は、構成情報記憶部１２３から取得した構成情報と、処理対象住所データを形成する構成情報とが一致すると判定する。
【００８７】
そして、書換部１３４は、ログ記憶部１２４にログ情報を記憶させる。このとき、書換部１３４は、例えば、処理対象住所データ「神奈川県横川崎市中原区下小田中１丁目」と、修正候補住所データ「神奈川県川崎市中原区下小田中１丁目」との差分をログ記憶部１２４に記憶させる。また、書換部１３４は、かかる差分が存在する構成情報を特定して、特定した構成情報をログ記憶部１２４に記憶させる。
【００８８】
このように、データ処理装置１００は、処理対象住所データに余分な文字列が付与されている場合であっても、１回の文字列照合処理と、１回の演算処理によって、修正候補住所データを特定することができる。すなわち、データ処理装置１００は、処理対象住所データに余分な文字列が付与されている場合であっても、低負荷かつ高速にデータ修正処理を行うことができる。
【００８９】
次に、図１３を用いて、処理対象住所データが「神奈川県川崎市中原区小田中１丁目」である場合におけるデータ処理装置１００によるデータ修正処理について説明する。なお、この処理対象住所データ「神奈川県川崎市中原区小田中１丁目」を修正するための修正候補住所データは、「神奈川県川崎市中原区下小田中１丁目」であるものとする。すなわち、処理対象住所データ「神奈川県川崎市中原区小田中１丁目」は、表記が統一されている住所データと比較して、「小田中」の１文字前の「下」が抜けている。
【００９０】
かかる場合、データ処理装置１００の抽出部１３２ａは、オートマトンを用いた文字列照合処理の結果、住所要素記憶部１２２から、住所ＩＤ「１−４９９」、「１−１００」、「１−２０」および「１：５：１０１：・・・：５００：・・・」を抽出する。
【００９１】
続いて、一次特定部１３２ｂは、抽出された住所ＩＤの論理積を演算することにより、抽出された住所ＩＤの中から、住所ＩＤ「１」および「５」を特定する。これは、抽出部１３２ａによって抽出された住所ＩＤの中で、最も多く含まれている住所ＩＤが「１」と「５」であるからである。
【００９２】
続いて、分割部１３３ａは、処理対象住所データが「神奈川県川崎市中原区小田中１丁目」を１文字ずつ重複させながら２文字単位に分割する。具体的には、分割部１３３ａは、処理対象住所データを「神奈」「奈川」「川県」「県川」「川崎」「崎市」「市中」「中原」「原区」「区小」「小田」「田中」「中１」「１丁」「丁目」に分割する。
【００９３】
続いて、二次特定部１３３ｂは、住所記憶部１２１から、住所ＩＤ「１」に対応付けて記憶されている住所データ「神奈川県川崎市中原区上小田中１丁目」と、住所ＩＤ「５」に対応付けて記憶されている住所データ「神奈川県川崎市中原区下小田中１丁目」とを取得する。続いて、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列により形成されるオートマトンを用いて、住所記憶部１２１から取得した住所データと、分割された文字列との文字列照合を行う。
【００９４】
ここでは、図１３に示すように、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列のうち、１４個の文字列が、住所ＩＤ「１」の住所データ「神奈川県川崎市中原区上小田中１丁目」に含まれる文字列と一致することを検出する。同様に、二次特定部１３３ｂは、分割部１３３ａによって分割された文字列のうち、１４個の文字列が、住所ＩＤ「５」の住所データ「神奈川県川崎市中原区下小田中１丁目」に含まれる文字列と一致することを検出する。
【００９５】
すなわち、図１３に示した例では、住所ＩＤ「１」である住所データと、住所ＩＤ「５」である住所データとは、分割部１３３ａによって分割された文字列と一致する文字列の数が等しい。したがって、書換部１３４は、処理対象住所データを書き換えることなく、住所データ書換処理を実行した日時や、処理対象住所データ、住所ＩＤ「１」である住所データ、住所ＩＤ「５」である住所データなどをログ記憶部１２４に記憶させる。
【００９６】
このように、データ処理装置１００は、修正候補住所データを一意に特定できなかった場合であっても、特定した複数の修正候補住所データをログ記憶部１２４に記憶させる。これにより、システム管理者等は、かかるログ情報に基づいて、処理対象住所データを、どの修正候補住所データに書き換えるかを判断する候補を得ることができる。
【００９７】
なお、データ処理装置１００は、処理対象住所データの市区郡や政令区町村などが入れ代わっている場合、構成情報記憶部１２３に記憶されている各種情報に基づいて、市区郡や政令区町村などの入れ代わりを検出することができる。処理対象住所データが「神奈川県中原区川崎市下小田中１丁目」である場合を例に挙げて説明する。かかる場合、データ処理装置１００は、処理対象住所データを修正するための修正候補住所データの住所ＩＤを「５」に特定する。
【００９８】
このとき、データ処理装置１００は、構成情報記憶部１２３から、住所ＩＤ「５」に対応付けて記憶されている構成情報「都道府県｜市区郡｜政令区町村｜町名字｜丁目字」を取得する。そして、データ処理装置１００は、取得した構成情報と、処理対象住所データの構成情報「都道府県｜政令区町村｜市区郡｜町名字｜丁目字」とを比較する。これにより、データ処理装置１００は、処理対象住所データの市区郡と政令区町村とが入れ代わっていることを検出することができる。データ処理装置１００は、このような市区郡や政令区町村などの入れ代わり情報をログ記憶部１２４に記憶させてもよい。
【００９９】
上述してきたように、実施例１に係るデータ処理装置１００は、住所要素記憶部１２２に記憶されている住所要素によって形成されるオートマトンを用いて、かかる住所要素と、処理対象住所データに含まれる住所要素との文字列照合を行う。そして、データ処理装置１００は、住所要素記憶部１２２から取得した住所ＩＤの論理積を演算することにより住所ＩＤを特定する。これにより、データ処理装置１００は、１回の文字列照合処理と、１回の演算処理を行うことによって、修正候補住所データを特定することができる。その結果、データ処理装置１００は、低負荷かつ高速に修正候補住所データを特定することができ、低負荷かつ高速にデータ修正処理を行うことができる。
【０１００】
また、データ処理装置１００は、論理積演算の結果、複数の住所ＩＤを特定した場合に、Ｎグラム法を用いて、修正対象住所データを特定する。これにより、データ処理装置１００は、２回の文字列照合処理と、１回の演算処理を行うことによって、修正対象住所データを特定することができる。その結果、データ処理装置１００は、低負荷かつ高速に修正対象住所データを特定することができ、低負荷かつ高速にデータ修正処理を行うことができる。
【０１０１】
また、データ処理装置１００は、Ｎグラム法を用いた文字列照合処理の結果、複数の住所データを特定した場合に、特定された複数の住所データをログ記憶部１２４に記憶させる。これにより、システム管理者等は、かかるログ情報に基づいて、処理対象住所データを、どの住所データに書き換えるか判断する候補を得ることができる。
【０１０２】
なお、上記実施例１では、住所要素記憶部１２２が、表記が統一されている住所要素（住所記憶部１２１に記憶されている住所データに含まれる住所要素）を記憶する例を示したが、住所要素記憶部１２２は、表記が統一されていない住所要素を記憶してもよい。例えば、住所要素記憶部１２２に表記が不統一になり易い住所要素を記憶させることにより、データ処理装置１００は、表記が不統一になり易い住所要素を含む住所データを、表記が統一されている住所データへ容易に修正することができる。
【０１０３】
以下に、図１４および図１５を用いて具体的に説明する。図１４は、表記が統一されていない住所要素を記憶する住所要素記憶部１２２の一例を示す図である。図１４に示した例において、タイプに表記した「＋」は、表記が統一されていない住所要素であることを示す。このようなタイプに「＋」が表記されているレコードが追加されるケースは、例えば、表記が不統一になり易い住所要素が存在する場合である。
【０１０４】
具体的には、図１４に示した住所要素記憶部１２２では、表記が統一されている住所要素「麹町」（図１４中の１１行目）の表記が不統一になり易い文字列として、「麹町」の異体字（図１４中の１２行目）が追加されている。同様に、図１４に示した住所要素記憶部１２２では、「麹町」を平仮名で表記した「こうじ町」（図１４中の１３行目）が追加されている。
【０１０５】
続いて、表記が統一されていない住所要素を記憶する住所要素記憶部１２２を用いたデータ処理装置１００によるデータ修正処理の一例について説明する。図１５は、表記が統一されていない住所要素を記憶する住所要素記憶部１２２を用いた場合におけるデータ修正処理の一例を説明するための図である。
【０１０６】
図１５に示した例において、処理対象住所データは、「東京都千代田区こうじ町１丁目」であるものとする。なお、この処理対象住所データ「東京都千代田区こうじ町１丁目」を修正するための修正候補住所データは、「東京都千代田区麹町１丁目」である。すなわち、処理対象住所データ「東京都千代田区こうじ町１丁目」は、表記が統一されている住所データと比較して「麹」の文字列が平仮名で表記されている。
【０１０７】
かかる場合、データ処理装置１００の抽出部１３２ａは、図１５に示すように、オートマトンを用いた文字列照合処理の結果、住所要素記憶部１２２から、住所ＩＤ「５００−１５００」、「５００−５９９」、「５００−５１０」および「１：５：１０１：・・・：５００：・・・」を抽出する。
【０１０８】
続いて、一次特定部１３２ｂは、抽出された住所ＩＤの論理積を演算することにより、抽出された住所ＩＤの中から、住所ＩＤ「５００」を特定する。続いて、書換部１３４は、住所記憶部１２１から、住所ＩＤ「５００」に対応付けて記憶されている住所データ「東京都千代田区麹町１丁目」を取得する。そして、書換部１３４は、処理対象住所データ「東京都千代田区こうじ町１丁目」を「東京都千代田区麹町１丁目」へ書き換える。
【０１０９】
そして、書換部１３４は、ログ記憶部１２４にログ情報を記憶させる。このとき、書換部１３４は、住所要素記憶部１２２から取得した住所要素「こうじ町」に対応するタイプに「＋」が含まれているので、構成情報「政令区町村」を書き換えた旨のログ情報をログ記憶部１２４に記憶させる。
【０１１０】
このように、住所要素記憶部１２２に表記が統一されていない住所要素を記憶しておくことにより、データ処理装置１００は、表記が不統一になり易い住所要素を含む住所データを、表記が統一されている住所データへ容易に修正することができる。
【実施例２】
【０１１１】
ところで、上記実施例１では、データ処理装置１００の一次特定部１３２ｂが、抽出部１３２ａによって抽出された住所ＩＤの集合の論理積を演算することにより住所ＩＤを特定する例を示した。言い換えれば、上記実施例１では、一次特定部１３２ｂが、論理積を演算することにより、抽出部１３２ａによって抽出された住所ＩＤの集合に最も多く含まれる住所ＩＤを特定する例を示した。
【０１１２】
しかし、データ処理装置は、住所要素記憶部に記憶されている住所要素に重要度を付与しておいてもよい。そして、データ処理装置は、処理対象住所データに重要度の高い住所要素が含まれている場合に、かかる住所要素が含まれている住所データを修正候補住所データに特定するようにしてもよい。また、データ処理装置は、重要度の低い住所要素については、論理積演算から除外するようにしてもよい。そこで、実施例２では、住所要素記憶部に記憶されている住所要素に重要度を付与する例について説明する。
【０１１３】
まず、実施例２に係るデータ処理装置２００の構成について説明する。図１６は、実施例２に係るデータ処理装置２００の構成を示す図である。図１６に示すように、データ処理装置２００は、図２に示したデータ処理装置１００と比較して、住所要素記憶部１２２の代わりに住所要素記憶部２２２を有し、一次特定部１３２ｂの代わりに一次特定部２３２ｂを有する。
【０１１４】
住所要素記憶部２２２の一例を図１７に示す。図１７に示すように、住所要素記憶部２２２は、図４に示した住所要素記憶部１２２と比較して、項目「重要度」を新たに有する。項目「重要度」は、対応する「住所要素」に記憶されている情報の重要度を記憶する。
【０１１５】
図１７に示した例において、住所要素記憶部２２２は、タイプが「都道府県」である住所要素「神奈川県」および「東京都」の重要度に「０」を記憶する。ここで、重要度「０」は、重要度が低いことを示すものとする。そして、重要度「０」は、後述する一次特定部２３２ｂにより実行される論理積演算から除外してよいことを示すものとする。
【０１１６】
このような重要度「０」は、住所を特定する上で不要な住所要素に付与される。例えば、図１７に示した例のように、タイプ「都道府県」に重要度「０」を付与する。これは、一般に、都道府県が不明であっても、市区郡、政令区町村、町名字、丁目字が明確であれば、住所を特定できるからである。
【０１１７】
また、図１７に示した例において、住所要素記憶部２２２は、タイプが「特定名称」である住所要素「○○病院」の重要度に「１」を記憶する。ここで、重要度「１」は、重要度が高いことを示すものとする。そして、重要度「１」は、対応する住所要素（図１７の例では、「○○病院」）が処理対象住所データに含まれている場合、後述する一次特定部２３２ｂによって、対応する住所ＩＤ（図１７の例では、「１０１」）に特定されてよいことを示すものとする。
【０１１８】
このような重要度「１」は、住所を一意に特定することができる住所要素（例えば、建物名や、ビル名、施設名）に付与される。例えば、図１７に示した例のように、「○○病院」に重要度「１」を付与する。これは、「○○病院」が明確になれば、住所を一意に特定できるからである。
【０１１９】
一次特定部２３２ｂは、抽出部１３２ａによって抽出された住所ＩＤの集合に対して論理積および論理和を演算することにより住所ＩＤを特定する。このとき、一次特定部２３２ｂは、抽出部１３２ａによって抽出された住所ＩＤのうち、重要度「０」に対応付けて住所要素記憶部２２２に記憶されている住所ＩＤを除外して、論理積を演算する。また、一次特定部２３２ｂは、重要度が設定されていない住所ＩＤの論理積を演算し、かかる論理積演算の結果と、重要度が「１」である住所ＩＤとの論理和を演算する。
【０１２０】
ここで、図１８および図１９を用いて、データ処理装置２００によるデータ修正処理の一例について説明する。図１８および図１９は、実施例２に係るデータ処理装置２００によるデータ修正処理の一例を説明するための図である。なお、以下に説明する２つの例において、住所記憶部１２１、住所要素記憶部２２２に記憶されている各種情報は、それぞれ図３、図１７に示した状態であるものとする。
【０１２１】
まず、図１８を用いて、処理対象住所データが「東京都川崎市中原区下小田中１丁目」である場合におけるデータ処理装置２００によるデータ修正処理について説明する。なお、この処理対象住所データ「東京都川崎市中原区下小田中１丁目」を修正するための修正候補住所データは、「神奈川県川崎市中原区下小田中１丁目」である。すなわち、処理対象住所データ「東京都川崎市中原区下小田中１丁目」は、表記が統一されている住所データと比較して「神奈川県」と「東京都」とが異なる。
【０１２２】
かかる場合、データ処理装置２００の抽出部１３２ａは、図１８に示すように、オートマトンを用いた文字列照合処理の結果、住所要素記憶部２２２から、住所ＩＤ「５００−１５００」、「１−１００」、「１−２０」、「５−９」および「１：５：１０１：・・・：５００：・・・」を抽出する。
【０１２３】
続いて、一次特定部２３２ｂは、抽出された住所ＩＤの論理積を演算する。このとき、一次特定部２３２ｂは、重要度が「０」である住所ＩＤ「５００−１５００」を除外して、論理積を演算する。すなわち、一次特定部２３２ｂは、住所ＩＤ「１−１００」、「１−２０」、「５−９」および「１：５：１０１：・・・：５００：・・・」の論理積を演算する。これにより、一次特定部２３２ｂは、住所ＩＤ「５」を特定する。続いて、書換部１３４は、住所記憶部１２１から、住所ＩＤ「５」に対応付けて記憶されている住所データ「神奈川県川崎市中原区下小田中１丁目」を取得する。そして、書換部１３４は、処理対象住所データ「東京都川崎市中原区下小田中１丁目」を「神奈川県川崎市中原区下小田中１丁目」へ書き換える。
【０１２４】
このように、データ処理装置２００は、重要度が低い住所要素に対応する住所ＩＤを除外して論理積を演算するので、かかる演算処理をより高速に実行することができる。すなわち、データ処理装置２００は、修正対象住所データをより低負荷かつ高速に特定することができる。
【０１２５】
次に、図１９を用いて、処理対象住所データが「神奈川県横浜市○○病院」である場合におけるデータ処理装置２００によるデータ修正処理について説明する。なお、この処理対象住所データ「神奈川県横浜市○○病院」を修正するための修正候補住所データは、「神奈川県横浜市港北区新横浜１丁目○○病院」である。すなわち、処理対象住所データ「神奈川県横浜市○○病院」は、表記が統一されている住所データと比較して「港北区新横浜１丁目」が抜けている。
【０１２６】
かかる場合、データ処理装置２００の抽出部１３２ａは、図１９に示すように、オートマトンを用いた文字列照合処理の結果、住所要素記憶部２２２から、住所ＩＤ「１−４９９」、「１０１−２００」および「１０１」を抽出する。
【０１２７】
続いて、一次特定部２３２ｂは、抽出された住所ＩＤのうち、重要度が設定されていない住所ＩＤについては論理積を演算し、重要度が設定されている住所ＩＤについては論理和を演算する。図１９に示した例では、一次特定部２３２ｂは、（「１−４９９」ＡＮＤ「１０１−２００」）ＯＲ「１０１」を演算する。そして、一次特定部２３２ｂは、かかる演算処理の結果、修正候補住所データの住所ＩＤを、住所ＩＤ「１０１」に特定する。
【０１２８】
続いて、書換部１３４は、住所記憶部１２１から、住所ＩＤ「１０１」に対応付けて記憶されている住所データ「神奈川県横浜市港北区新横浜１丁目○○病院」を取得する。そして、書換部１３４は、処理対象住所データ「神奈川県横浜市○○病院」を「神奈川県横浜市港北区新横浜１丁目○○病院」へ書き換える。
【０１２９】
このように、データ処理装置２００は、重要度が高い住所要素に対応する住所ＩＤを優先的に修正候補住所データに特定する。これにより、データ処理装置２００は、処理対象住所データに重要度が高い住所要素が含まれている場合に、修正候補住所データを高精度に特定することができる。
【０１３０】
なお、上記実施例２では、２個の重要度（「０」または「１」）について説明したが、データ処理装置２００は、住所要素記憶部２２２に３個以上の重要度を付与してもよい。かかる場合、一次特定部２３２ｂは、処理対象住所データに含まれる住所要素の重要度が高いほど、かかる住所要素に対応する住所ＩＤを優先的に修正候補住所データに特定する。例えば、一次特定部２３２ｂは、重要度が所定の閾値よりも低い住所ＩＤを除外するとともに、重要度が所定の閾値よりも高い住所ＩＤについては論理和演算を行う。
【０１３１】
また、図２および図１６に示したデータ処理装置１００および２００の構成は、要旨を逸脱しない範囲で種々に変更することができる。例えば、データ処理装置１００の制御部１３０の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、データ処理装置１００と同等の機能を実現することもできる。以下に、データ処理装置１００の各種処理部の機能をソフトウェアとして実装したデータ処理プログラム１０７１を実行するコンピュータの一例を示す。
【０１３２】
図２０は、データ処理プログラム１０７１を実行するコンピュータ１０００を示す図である。このコンピュータ１０００は、各種演算処理を実行するＣＰＵ（Central  Processing  Unit）１０１０と、ユーザからのデータの入力を受け付ける入力装置１０２０と、各種情報を表示するモニタ１０３０と、記録媒体からプログラム等を読み取る媒体読取り装置１０４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１０５０と、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）１０６０と、ハードディスク装置１０７０とをバス１０８０で接続して構成される。
【０１３３】
そして、ハードディスク装置１０７０には、図２に示した制御部１３０と同様の機能を有するデータ処理プログラム１０７１が記憶される。また、ハードディスク装置１０７０には、図２に示した記憶部１２０に記憶される各種データ（住所記憶部１２１、住所要素記憶部１２２および構成情報記憶部１２３）に対応するデータ処理関連データ１０７２が記憶される。また、ハードディスク装置１０７０には、図２に示したログ記憶部１２４に対応するログファイル１０７３が記憶される。なお、データ処理関連データ１０７２またはログファイル１０７３を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
【０１３４】
そして、ＣＰＵ１０１０がデータ処理プログラム１０７１をハードディスク装置１０７０から読み出してＲＡＭ１０６０に展開することにより、データ処理プログラム１０７１は、データ処理プロセス１０６１として機能するようになる。そして、データ処理プロセス１０６１は、データ処理関連データ１０７２から読み出した情報等を適宜ＲＡＭ１０６０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。そして、データ処理プロセス１０６１は、所定の情報をログファイル１０７３に出力する。
【０１３５】
なお、上記のデータ処理プログラム１０７１は、必ずしもハードディスク装置１０７０に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておき、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１３６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３７】
（付記１）所定の文字列と、前記所定の文字列を識別するための文字列識別子とを記憶する文字列記憶手段と、
前記所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を示す文字列識別子の集合とを記憶する文字列要素記憶手段と、
前記文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出手段と、
前記抽出手段によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定手段と
を備えたことを特徴とするデータ処理装置。
【０１３８】
（付記２）前記第一の特定手段によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を所定のサイズごとに分割する分割手段と、
前記第一の特定手段によって特定された文字列識別子が示す複数の文字列のうち、前記分割手段によって分割された文字列である分割文字列が最も多く含まれる文字列を前記対応文字列に特定する第二の特定手段とをさらに備えたことを特徴とする付記１に記載のデータ処理装置。
【０１３９】
（付記３）前記抽出手段は、前記文字列要素記憶手段に記憶されている文字列要素により形成されるオートマトンを用いて、前記処理対象の文字列に含まれる文字列要素と、前記文字列要素記憶手段に記憶されている文字列要素とを照合することにより、前記文字列要素記憶手段から、前記処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出することを特徴とする付記１または２に記載のデータ処理装置。
【０１４０】
（付記４）前記第一の特定手段は、前記抽出手段によって抽出された文字列識別子の集合の論理積を演算することにより、前記対応文字列を示す文字列識別子を特定することを特徴とする付記１〜３のいずれか一つに記載のデータ処理装置。
【０１４１】
（付記５）前記文字列要素記憶手段は、前記文字列要素と前記文字列識別子の集合とに対応付けて、該文字列要素の重要度をさらに記憶し、
前記第一の特定手段は、前記抽出手段によって抽出された文字列識別子の集合のうち、前記文字列要素記憶手段に記憶されている重要度が高い文字列識別子ほど、前記対応文字列を示す文字列識別子に特定することを特徴とする付記１〜４のいずれか一つに記載のデータ処理装置。
【０１４２】
（付記６）前記第一の特定手段は、前記抽出手段によって抽出された文字列識別子の集合から前記重要度が所定の閾値よりも低い文字列識別子の集合を除外した文字列識別子の集合に最も多く含まれている文字列識別子を、前記対応文字列を示す文字列識別子に特定することを特徴とする付記５に記載のデータ処理装置。
【０１４３】
（付記７）前記第一の特定手段は、前記抽出手段によって抽出された文字列識別子のうち、前記重要度が所定の閾値よりも低い文字列識別子の集合の論理積を演算し、論理積演算の結果と、前記重要度が所定の閾値よりも高い文字列識別子の集合との論理和を演算することにより、前記対応文字列を示す文字列識別子を特定することを特徴とする付記５または６に記載のデータ処理装置。
【０１４４】
（付記８）前記第一の特定手段によって文字列識別子が一意に特定された場合に、前記処理対象の文字列を、該文字列識別子に対応付けて前記文字列記憶手段に記憶されている文字列に書き換え、前記第一の特定手段によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を、前記第二の特定手段によって特定された対応文字列に書き換える書換手段をさらに備えたことを特徴とする付記１〜７のいずれか一つに記載のデータ処理装置。
【０１４５】
（付記９）前記書換手段は、前記処理対象の文字列と前記対応文字列とが異なる場合に、前記処理対象の文字列を前記対応文字列に書き換えることを特徴とする付記８に記載のデータ処理装置。
【０１４６】
（付記１０）前記対応文字列と、前記処理対象の文字列と、前記対応文字列と前記処理対象の文字列との差異とを、所定の表示部または所定の記憶部に出力するログ出力手段をさらに備えたことを特徴とする付記１〜９のいずれか一つに記載のデータ処理装置。
【０１４７】
（付記１１）所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を識別するための文字列識別子の集合とを記憶する文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出手順と、
前記抽出手順によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定手順と
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【０１４８】
（付記１２）前記第一の特定手順によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を所定のサイズごとに分割する分割手順と、
前記第一の特定手順によって特定された文字列識別子が示す複数の文字列のうち、前記分割手順によって分割された文字列である分割文字列が最も多く含まれる文字列を前記対応文字列に特定する第二の特定手順とをさらにコンピュータに実行させることを特徴とする付記１１に記載のデータ処理プログラム。
【０１４９】
（付記１３）前記文字列要素記憶手段は、前記文字列要素と前記文字列識別子の集合とに対応付けて、該文字列要素の重要度をさらに記憶し、
前記第一の特定手順は、前記抽出手順によって抽出された文字列識別子の集合のうち、前記文字列要素記憶手段に記憶されている重要度が高い文字列識別子ほど、前記対応文字列を示す文字列識別子に特定することを特徴とする付記１１または１２に記載のデータ処理プログラム。
【０１５０】
（付記１４）前記第一の特定手順によって文字列識別子が一意に特定された場合に、前記所定の文字列と該所定の文字列の文字列識別子とを記憶する文字列記憶手段から、前記第一の特定手順によって特定された文字列識別子に対応付けて記憶されている文字列を取得し、前記処理対象の文字列を、取得した文字列に書き換え、前記第一の特定手順によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を、前記第二の特定手順によって特定された対応文字列に書き換える書換手順をさらにコンピュータに実行させることを特徴とする付記１１〜１３のいずれか一つに記載のデータ処理プログラム。
【０１５１】
（付記１５）前記対応文字列と、前記処理対象の文字列と、前記対応文字列と前記処理対象の文字列との差異とを、所定の表示部または所定の記憶部に出力するログ出力手順をさらにコンピュータに実行させることを特徴とする付記１１〜１４のいずれか一つに記載のデータ処理プログラム。
【０１５２】
（付記１６）データ処理装置が、
所定の文字列に含まれる文字列である文字列要素と、該文字列要素が含まれる前記所定の文字列を識別するための文字列識別子の集合とを記憶する文字列要素記憶手段から、処理対象の文字列に含まれる文字列要素に対応付けて記憶されている文字列識別子の集合を抽出する抽出工程と、
前記抽出工程によって抽出された文字列識別子の集合に最も多く含まれている文字列識別子を、前記処理対象の文字列と一致または類似する文字列である対応文字列を示す文字列識別子に特定する第一の特定工程と
を含んだことを特徴とするデータ処理方法。
【０１５３】
（付記１７）前記第一の特定工程によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を所定のサイズごとに分割する分割工程と、
前記第一の特定工程によって特定された文字列識別子が示す複数の文字列のうち、前記分割工程によって分割された文字列である分割文字列が最も多く含まれる文字列を前記対応文字列に特定する第二の特定工程とをさらに含んだことを特徴とする付記１６に記載のデータ処理方法。
【０１５４】
（付記１８）前記文字列要素記憶手段は、前記文字列要素と前記文字列識別子の集合とに対応付けて、該文字列要素の重要度をさらに記憶し、
前記第一の特定工程は、前記抽出工程によって抽出された文字列識別子の集合のうち、前記文字列要素記憶手段に記憶されている重要度が高い文字列識別子ほど、前記対応文字列を示す文字列識別子に特定することを特徴とする付記１６または１７に記載のデータ処理方法。
【０１５５】
（付記１９）前記第一の特定工程によって文字列識別子が一意に特定された場合に、前記所定の文字列と該所定の文字列の文字列識別子とを記憶する文字列記憶手段から、前記第一の特定工程によって特定された文字列識別子に対応付けて記憶されている文字列を取得し、前記処理対象の文字列を、取得した文字列に書き換え、前記第一の特定工程によって特定された文字列識別子が複数存在する場合に、前記処理対象の文字列を、前記第二の特定工程によって特定された対応文字列に書き換える書換工程をさらに含んだことを特徴とする付記１６〜１８のいずれか一つに記載のデータ処理方法。
【０１５６】
（付記２０）前記対応文字列と、前記処理対象の文字列と、前記対応文字列と前記処理対象の文字列との差異とを、所定の表示部または所定の記憶部に出力するログ出力工程をさらに含んだことを特徴とする付記１６〜１９のいずれか一つに記載のデータ処理方法。
【図面の簡単な説明】
【０１５７】
【図１】実施例１に係るデータ処理装置によるデータ修正処理の概要を説明するための図である。
【図２】実施例１に係るデータ処理装置の構成を示す図である。
【図３】住所記憶部の一例を示す図である。
【図４】住所要素記憶部の一例を示す図である。
【図５】構成情報記憶部の一例を示す図である。
【図６】住所要素記憶部を生成する手法を説明するための図である。
【図７】一次特定部による住所ＩＤ特定処理を説明するための図である。
【図８】分割部による処理対象住所データの分割処理を説明するための図である。
【図９】二次特定部による住所データ特定処理を説明するための図である。
【図１０】実施例１に係るデータ処理装置によるデータ修正処理手順を示すフローチャートである。
【図１１】実施例１に係るデータ処理装置によるデータ修正処理の一例を説明するための図である。
【図１２】実施例１に係るデータ処理装置によるデータ修正処理の一例を説明するための図である。
【図１３】実施例１に係るデータ処理装置によるデータ修正処理の一例を説明するための図である。
【図１４】表記が統一されていない住所要素を記憶する住所要素記憶部の一例を示す図である。
【図１５】表記が統一されていない住所要素を記憶する住所要素記憶部を用いた場合におけるデータ修正処理の一例を説明するための図である。
【図１６】実施例２に係るデータ処理装置の構成を示す図である。
【図１７】住所要素記憶部の一例を示す図である。
【図１８】実施例２に係るデータ処理装置によるデータ修正処理の一例を説明するための図である。
【図１９】実施例２に係るデータ処理装置によるデータ修正処理の一例を説明するための図である。
【図２０】データ処理プログラムを実行するコンピュータを示す図である。
【符号の説明】
【０１５８】
１００    データ処理装置
１１０    対象データ入出力部
１２０    記憶部
１２１    住所記憶部
１２２    住所要素記憶部
１２３    構成情報記憶部
１２４    ログ記憶部
１３０    制御部
１３１    受付部
１３２    一次探索部
１３２ａ  抽出部
１３２ｂ  一次特定部
１３３    二次探索部
１３３ａ  分割部
１３３ｂ  二次特定部
１３４    書換部
２００    データ処理装置
２２２    住所要素記憶部
２３２ｂ  一次特定部
１０００  コンピュータ
１０１０  ＣＰＵ
１０２０  入力装置
１０３０  モニタ
１０４０  媒体読取り装置
１０５０  ネットワークインターフェース装置
１０６０  ＲＡＭ
１０６１  データ処理プロセス
１０７０  ハードディスク装置
１０７１  データ処理プログラム
１０７２  データ処理関連データ
１０７３  ログファイル
１０８０  バス
【図１】
2010049574.tif 000003
【図２】
2010049574.tif 000004
【図３】
2010049574.tif 000005
【図４】
2010049574.tif 000006
【図５】
2010049574.tif 000007
【図６】
2010049574.tif 000008
【図７】
2010049574.tif 000009
【図８】
2010049574.tif 000010
【図９】
2010049574.tif 000011
【図１０】
2010049574.tif 000012
【図１１】
2010049574.tif 000013
【図１２】
2010049574.tif 000014
【図１３】
2010049574.tif 000015
【図１４】
2010049574.tif 000016
【図１５】
2010049574.tif 000017
【図１６】
2010049574.tif 000018
【図１７】
2010049574.tif 000019
【図１８】
2010049574.tif 000020
【図１９】
2010049574.tif 000021
【図２０】
2010049574.tif 000022