(57)【要約】【課題】検索時における異体字の表記ゆれを許容できるようにする。【解決手段】文字列管理装置１は、異体字とこれを代表する見做し文字とを定義した見做し文字定義体２と、データベース３と、登録対象の文字列ｐに異体字があれば、文字列ｐと見做し文字ｍとをセットにした登録文字列ｒを生成する登録文字列生成部４とを備え、さらに、検索用の文字列ｓの異体字を見做し文字ｍで正規化した検索条件ｆ１を生成する検索条件生成部５と、検索時に登録文字列ｒの異体字をその見做し文字ｍで正規化した被検索文字列ｆ２を生成する被検索文字列抽出部６と、検索条件ｆ１と被検索文字列ｆ２とを比較する比較部７と、比較の結果、一致した場合に登録文字列ｒがセットで持つ文字列ｐを返却文字列ｏとして取得し、その返却文字列ｏを検索元へ返却する返却文字列取得部８とを備えている。【選択図】図１
2011154602.tif 000002
【特許請求の範囲】
【請求項１】
データベースの文字列を管理する文字列管理装置において、
複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体と、
登録時に入力された登録対象文字列を前記見做し文字定義体を参照しながら解析し、前記異体字があれば前記異体字と対応する前記見做し文字とをセットにした登録文字列を生成して前記データベースに登録する登録文字列生成部と、
検索時に入力された検索文字列を前記見做し文字定義体を参照しながら解析し、前記異体字があればそれを対応する見做し文字で置き換えた検索条件を生成する検索条件生成部と、
前記データベースから取得した前記登録文字列から前記異体字を対応する見做し文字で置き換えた被検索文字列を抽出する被検索文字列抽出部と、
前記検索条件と前記被検索文字列とを比較する比較部と、
前記検索条件と前記被検索文字列とが一致した場合、前記登録文字列から前記見做し文字を含まない返却文字列を取得して検索元に返却する返却文字列取得部と、
を備えていることを特徴とする文字列管理装置。
【請求項２】
前記登録文字列生成部は、前記登録対象文字列を１文字ずつ前記見做し文字定義体に登録された前記異体字かどうかを判断し、前記異体字である場合には、当該異体字の後にセパレータコードおよび対応する前記見做し文字のセットを挿入することにより前記登録文字列を生成するようにした請求項１記載の文字列管理装置。
【請求項３】
前記検索条件生成部は、前記検索文字列を１文字ずつ前記見做し文字定義体に登録された前記異体字かどうかを判断し、前記異体字である場合には、当該異体字を対応する前記見做し文字に置き換えることにより前記検索条件を生成するようにした請求項２記載の文字列管理装置。
【請求項４】
前記被検索文字列抽出部は、前記データベースから取得した前記登録文字列に前記セパレータコードを含むかどうかを判断し、前記セパレータコードを含む場合には、前記セパレータコードおよび前記異体字を対応する前記見做し文字に置き換えることにより前記被検索文字列を抽出するようにした請求項２記載の文字列管理装置。
【請求項５】
前記返却文字列取得部は、前記データベースから取得した前記登録文字列に前記セパレータコードを含むかどうかを判断し、前記セパレータコードを含む場合には、前記セパレータコードおよび対応する前記見做し文字を除去することにより前記返却文字列を抽出するようにした請求項２記載の文字列管理装置。
【請求項６】
前記登録文字列生成部は、前記登録対象文字列と、前記登録対象文字列を１文字ずつ前記見做し文字定義体に登録された前記異体字かどうかを判断して前記異体字のみ対応する前記見做し文字で置き換えた変換文字列とを含む前記登録文字列を生成するようにした請求項１記載の文字列管理装置。
【請求項７】
前記検索条件生成部は、前記検索文字列を１文字ずつ前記見做し文字定義体に登録された前記異体字かどうかを判断し、前記異体字である場合には、当該異体字を対応する前記見做し文字に置き換えることにより前記検索条件を生成するようにした請求項６記載の文字列管理装置。
【請求項８】
前記被検索文字列抽出部は、前記データベースから取得した前記登録文字列から前記変換文字列を抽出して前記被検索文字列とした請求項６記載の文字列管理装置。
【請求項９】
前記返却文字列取得部は、前記データベースから取得した前記登録文字列から前記登録対象文字列を抽出して前記返却文字列とした請求項６記載の文字列管理装置。
【請求項１０】
データベースに文字列を登録する文字列登録方法において、
入力された登録対象文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、
前記異体字があれば前記異体字とこれに対応する前記見做し文字とをセットにした登録文字列を生成し、
前記登録文字列を前記データベースに登録する、
ことを特徴とする文字列登録方法。
【請求項１１】
データベースに登録された文字列を検索する文字列検索方法において、
入力された検索文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、
前記検索文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた検索条件を生成し、
前記見做し文字定義体を参照しながら前記データベースに登録された登録文字列に前記異体字があるかどうかを判断し、
前記登録文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた被検索文字列を生成し、
前記検索条件と前記被検索文字列とを比較し、
前記検索条件と前記被検索文字列とが一致した場合に前記登録文字列から前記見做し文字を含まない返却文字列を取得する、
ことを特徴とする文字列検索方法。
【請求項１２】
前記被検索文字列は、前記登録文字列に前記異体字とこれに対応する前記見做し文字とを区別するセパレータコードを含むかどうかを判断し、前記セパレータコードを含む場合には、前記セパレータコードおよび前記異体字を対応する前記見做し文字に置き換えることにより生成される請求項１１記載の文字列検索方法。
【請求項１３】
前記返却文字列は、前記登録文字列に前記異体字とこれに対応する前記見做し文字とを区別するセパレータコードを含むかどうかを判断し、前記セパレータコードを含む場合には、前記セパレータコードおよび対応する前記見做し文字を除去することにより生成される請求項１１記載の文字列検索方法。
【請求項１４】
前記被検索文字列は、登録対象文字列と前記登録対象文字列を前記異体字のみ対応する前記見做し文字で置き換えた変換文字列とを含む形で前記データベースに登録された前記登録文字列から前記変換文字列を抽出することにより生成される請求項１１記載の文字列検索方法。
【請求項１５】
前記返却文字列は、登録対象文字列と前記登録対象文字列を前記異体字のみ対応する前記見做し文字で置き換えた変換文字列とを含む形で前記データベースに登録された前記登録文字列から前記登録対象文字列を抽出することにより生成される請求項１１記載の文字列検索方法。
【請求項１６】
データベースの文字列を管理する文字列管理プログラムにおいて、
コンピュータに、
入力された登録対象文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、
前記異体字があれば前記異体字とこれに対応する前記見做し文字とをセットにした登録文字列を生成し、
前記登録文字列を前記データベースに登録し、
入力された検索文字列を、前記見做し文字定義体を参照しながら１文字ずつ解析し、
前記検索文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた検索条件を生成し、
前記見做し文字定義体を参照しながら前記データベースに登録された登録文字列に前記異体字があるかどうかを判断し、
前記登録文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた被検索文字列を生成し、
前記検索条件と前記被検索文字列とを比較し、
前記検索条件と前記被検索文字列とが一致した場合に前記登録文字列から前記見做し文字を含まない返却文字列を取得する、
処理を実行させることを特徴とする文字列管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラムに関し、特に検索文字列に異体字を含むような表記ゆれを許容したデータベースシステムに適用される文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラムに関する。
【背景技術】
【０００２】
顧客管理等を行うシステムにおいては、名前、住所等の文字列を登録し、必要に応じて、登録された文字列を検索し、抽出することが行われている。このような文字列を登録するときには、申し込みの書面等に表記された文字列が正確に入力されて登録される。これに対し、登録されている文字列を検索するときには、異体字を考慮して検索する必要がある。異体字とは、旧字と新字のように、発音や意味は同じであるが、字形が異なる文字のセットまたはそのような文字セットのうち標準的でない方の文字をいう。
【０００３】
このような異体字を含む文字列を検索するときには、異体字の数の分だけ検索を繰り返して実行する必要がある。たとえば、「斉」という文字には、少なくとも「斎」、「齋」および「齊」なる異体字が知られている。したがって、たとえば人名の「齊藤」を検索するときには、当然ながら「斉藤」を検索文字列としてもヒットすることはないので、正確に「齊藤」なる文字を入力する必要がある。
【０００４】
異体字を含む処理の例として、異体字に対応する常用漢字を同一文字として扱う方法が知られている（たとえば、特許文献１参照）。この特許文献１に記載の方法は、異体字を含むテキストを解析して単語を抽出しようとするときに、常用漢字からなる単語を登録した単語辞書を参照しても、異体字を含む単語は、正しく抽出できないことに対してなされたものである。このため、同一意味の単語として異体字の数の分だけ単語辞書に登録すると、単語辞書のサイズが増大するので、テキストを解析するときの前処理として、テキスト中の異体字をそれに対応する常用漢字に置き換えるようにしている。これにより、テキストが単語であるかどうかは、常用漢字の単語同士での比較照合となるので、異体字を含む単語でも、単語として正しく抽出することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２６９０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
異体字を含む文字列を漏れなく検索するには、検索文字列として正確な文字を入力する以外に、異体字のバリエーションの分だけ検索文字列を入力して検索する必要がある。たとえば人名の「齊藤」を検索するときには、「斎藤」、「齋藤」および「齊藤」をも検索する必要がある。しかしながら、実際に入力するオペレータは、異体字のバリエーションをすべて知っている訳ではなく、検索漏れを生じる可能性がある。また、検索文字列は、異体字を含んでいるので、常用漢字の単語登録を前提とした特許文献１に記載の方法を適用することはできないという問題点があった。
【０００７】
本発明はこのような点に鑑みてなされたものであり、検索文字列に異体字を含むような文字列での検索にて異体字の表記ゆれを許容できる文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では上記の課題を解決するために、データベースの文字列を管理する文字列管理装置において、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体と、登録時に入力された登録対象文字列を前記見做し文字定義体を参照しながら解析し、前記異体字があれば前記異体字と対応する前記見做し文字とをセットにした登録文字列を生成して前記データベースに登録する登録文字列生成部と、検索時に入力された検索文字列を前記見做し文字定義体を参照しながら解析し、前記異体字があればそれを対応する見做し文字で置き換えた検索条件を生成する検索条件生成部と、前記データベースから取得した前記登録文字列から前記異体字を対応する見做し文字で置き換えた被検索文字列を抽出する被検索文字列抽出部と、前記検索条件と前記被検索文字列とを比較する比較部と、前記検索条件と前記被検索文字列とが一致した場合、前記登録文字列から前記見做し文字を含まない返却文字列を取得して検索元に返却する返却文字列取得部と、を備えていることを特徴とする文字列管理装置が提供される。
【０００９】
また、本発明では、データベースに文字列を登録する文字列登録方法において、入力された登録対象文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、前記異体字があれば前記異体字とこれに対応する前記見做し文字とをセットにした登録文字列を生成し、前記登録文字列を前記データベースに登録する、ことを特徴とする文字列登録方法が提供される。
【００１０】
また、本発明では、データベースに登録された文字列を検索する文字列検索方法において、入力された検索文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、前記検索文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた検索条件を生成し、前記見做し文字定義体を参照しながら前記データベースに登録された登録文字列に前記異体字があるかどうかを判断し、前記登録文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた被検索文字列を生成し、前記検索条件と前記被検索文字列とを比較し、前記検索条件と前記被検索文字列とが一致した場合に前記登録文字列から前記見做し文字を含まない返却文字列を取得する、ことを特徴とする文字列検索方法が提供される。
【００１１】
さらに、本発明では、データベースの文字列を管理する文字列管理プログラムにおいて、コンピュータに、入力された登録対象文字列を、複数の異体字を含むグループと当該グループを代表する見做し文字とを定義した見做し文字定義体を参照しながら１文字ずつ解析し、前記異体字があれば前記異体字とこれに対応する前記見做し文字とをセットにした登録文字列を生成し、前記登録文字列を前記データベースに登録し、入力された検索文字列を、前記見做し文字定義体を参照しながら１文字ずつ解析し、前記検索文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた検索条件を生成し、前記見做し文字定義体を参照しながら前記データベースに登録された登録文字列に前記異体字があるかどうかを判断し、前記登録文字列に前記異体字があれば前記異体字をこれに対応する前記見做し文字に置き換えた被検索文字列を生成し、前記検索条件と前記被検索文字列とを比較し、前記検索条件と前記被検索文字列とが一致した場合に前記登録文字列から前記見做し文字を含まない返却文字列を取得する、処理を実行させることを特徴とする文字列管理プログラムが提供される。
【００１２】
このような文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラムによれば、検索時における検索文字列と登録文字列とのマッチング処理では、検索文字列を見做し文字で正規化した検索条件と登録文字列を見做し文字で正規化した被検索文字列との比較になる。これにより、検索文字列と登録文字列とに同じ異体字グループ内の異なる異体字が使用されたとしても、異なる異体字が同一視された形でマッチング処理が行われるので、検索文字列における異体字の表記ゆれを許容できることになる。
【発明の効果】
【００１３】
上記の構成によれば、検索時における検索文字列と登録文字列とのマッチング処理で異体字の表記ゆれを許容することができるので、本来、異体字の数の分だけ行わなければならない検索処理を１回で行うことができるという利点がある。
【００１４】
検索時に、同じ異体字グループ内のどの異体字も同一視した処理をしているので、異体字を意識した検索文字列の入力が必要ないことから、検索操作を行うオペレータの作業負担を軽減するとともに、作業効率を大幅に向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】文字列管理装置の概要を示す機能構成図である。
【図２】本発明の実施の形態のシステム構成例を示す図である。
【図３】登録処理の概略の流れを示すフローチャートである。
【図４】見做し文字定義体の一例を示す図である。
【図５】登録処理の一例を示す説明図である。
【図６】検索処理の概略の流れを示すフローチャートである。
【図７】検索処理の一例を示す説明図である。
【図８】登録処理の具体的な流れを示すフローチャートである。
【図９】検索処理の具体的な流れを示すフローチャート（その１）である。
【図１０】検索処理の具体的な流れを示すフローチャート（その２）である。
【図１１】検索処理の具体的な流れを示すフローチャート（その３）である。
【図１２】登録文字列の別の構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。まず、本発明の概要を表した文字列管理装置について説明し、その後、実施の形態の具体的な内容を説明する。
【００１７】
図１は文字列管理装置の概要を示す機能構成図である。
文字列管理装置１は、異体字とその見做し文字とを定義した見做し文字定義体２と、文字列を含む複数のレコードが登録されるデータベース３とを備えている。文字列管理装置１は、また、データベース３に登録される登録文字列ｒを生成するための登録文字列生成部４を備えている。この登録文字列生成部４は、見做し文字定義体２を参照しながら登録用に入力された登録対象の文字列ｐに異体字が含まれるかどうかを判断し、異体字が含まれている場合には、異体字を含む文字列ｐとその異体字を代表する見做し文字ｍとをセットにした登録文字列ｒを生成する。
【００１８】
文字列管理装置１は、さらに、検索時に使用される検索条件生成部５、被検索文字列抽出部６、比較部７および返却文字列取得部８を備えている。検索条件生成部５は、見做し文字定義体２を参照しながら検索用に入力された文字列ｓに異体字が含まれるかどうかを判断し、異体字が含まれている場合には、文字列ｓの異体字を代表する見做し文字ｍで置き換えることにより検索条件ｆ１を生成する。被検索文字列抽出部６は、検索時にデータベース３に登録されているレコードを取得し、そこから登録文字列ｒを抽出し、登録文字列ｒから異体字をその見做し文字ｍで置き換えることにより被検索文字列ｆ２を生成する。比較部７は、検索条件生成部５で生成された検索条件ｆ１と被検索文字列抽出部６で生成された被検索文字列ｆ２とを比較するマッチング処理を行い、一致しているかどうかを判断する。返却文字列取得部８は、比較部７で検索条件ｆ１と被検索文字列ｆ２とが一致していると判断された場合、登録文字列ｒがセットで持つ文字列ｐを返却文字列ｏとして取得し、その返却文字列ｏを検索元へ返却する。
【００１９】
以上の構成により、データベース３への登録時は、文字列ｐを解析してこれに異体字を含む場合は、文字列ｐとその異体字を代表する見做し文字ｍとをセットにした形の登録文字列ｒをデータベース３に登録する。検索時は、検索用の文字列ｓを解析してこれに異体字があれば、その異体字をその見做し文字ｍで置き換えた検索条件ｆ１を生成し、登録文字列ｒの文字列ｐに異体字があれば、それをその見做し文字ｍで置き換えた被検索文字列ｆ２を抽出する。比較部７では、それぞれ異体字をその見做し文字ｍで正規化した文字列同士での比較になるため、検索時に入力された文字列ｓには、見做し文字ｍによって代表されるグループ内のすべての異体字を含んでいることになる。したがって、文字列ｓによる検索は、異体字の数の分の検索を１回で済ませることができる。しかも、検索用の文字列ｓの異体字としては、同一グループ内の任意の異体字が使用されていればよいことになる。
【００２０】
なお、見做し文字定義体２への登録は、たとえば最初に文字列管理装置１を含むシステムを構築した人によって登録され、異体字グループの追加・削除等の更新作業は、たとえばシステム管理者によって行われる。
【００２１】
図２は本発明の実施の形態のシステム構成例を示す図である。
本発明の実施の形態では、図１の文字列管理装置１を構成するサーバコンピュータ１０と、複数のクライアントコンピュータ２０，３０，４０，５０とがネットワーク６０を介して接続されている。
【００２２】
サーバコンピュータ１０は、ＣＰＵ（Central Processing Unit）１０ａによって装置全体が制御されている。ＣＰＵ１０ａには、バス１０ｇを介してＲＡＭ（Random Access Memory）１０ｂ、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０ｃ、グラフィック処理装置１０ｄ、入力インタフェース１０ｅ、および通信インタフェース１０ｆが接続されている。
【００２３】
ＲＡＭ１０ｂには、ＣＰＵ１０ａに実行させるＯＳ（Operating System）のプログラムや文字管理処理に必要なアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０ｂには、ＣＰＵ１０ａによる処理に必要な各種データが格納される。ハードディスクドライブ１０ｃには、ＯＳ、関連業務や文字管理のためのアプリケーションプログラム、見做し文字定義体２、データベース３等が格納されている。なお、ここでは、ハードディスクドライブ１０ｃを１つで示したが、複数で構成して、それらをデータベース３やそのバックアップ等のために使用するように構成することができる。
【００２４】
グラフィック処理装置１０ｄには、モニタ１１が接続されている。グラフィック処理装置１０ｄは、ＣＰＵ１０ａからの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０ｅには、キーボード１２およびマウス１３が接続されている。入力インタフェース１０ｅは、キーボード１２およびマウス１３から送られてくる信号を、バス１０ｇを介してＣＰＵ１０ａに送信する。
【００２５】
通信インタフェース１０ｆは、たとえば社内のネットワーク６０を介して、クライアントコンピュータ２０，３０，４０，５０との間で通信を行うことができる。
クライアントコンピュータ２０，３０，４０，５０も、それぞれ、サーバコンピュータ１０と同様の構成を有している。たとえば、クライアントコンピュータ２０は、サーバコンピュータ１０と同様の内部構成を有し、モニタ２１、キーボード２２およびマウス２３が接続されている。クライアントコンピュータ２０は、キーボード２２等を使って、サーバコンピュータ１０のデータベース３に対して、文字列データの登録、検索および更新の処理を要求することができ、検索結果の返却文字列ｏを受け取ることができる。
【００２６】
図３は登録処理の概略の流れを示すフローチャート、図４は見做し文字定義体の一例を示す図、図５は登録処理の一例を示す説明図、図６は検索処理の概略の流れを示すフローチャート、図７は検索処理の一例を示す説明図である。
【００２７】
まず、登録処理の概略について図３ないし図５を参照して説明する。図４に示す見做し文字定義体２は、見做し文字ｍと異体字とを有するテーブルである。異体字のフィールドには、発音や意味は同じであるが字形が異なる文字のグループが登録されており、これら異体字グループを代表する見做し文字ｍが見做し文字のフィールドに対応付けして登録されている。
【００２８】
データベース３への登録処理は、サーバコンピュータ１０がクライアントコンピュータ２０，３０，４０，５０の１つ、たとえばクライアントコンピュータ２０から登録依頼を受けることによって開始される。まず、サーバコンピュータ１０は、クライアントコンピュータ２０にて入力された登録対象の文字列ｐを受け付ける（ステップＳ１）。図５の例では、登録対象の文字列が「斎藤  沢夫」なる文字列ｐであるとしている。
【００２９】
次に、サーバコンピュータ１０は、図４に示す見做し文字定義体２を参照して文字列ｐに異体字が含まれているかどうかを判断する（ステップＳ２）。文字列ｐに異体字が含まれていれば、その異体字を代表している見做し文字ｍを文字列ｐとセットにした登録文字列ｒを生成する（ステップＳ３）。文字列ｐに異体字が含まれていなければ、ステップＳ３の処理はスキップされる。そして、登録文字列ｒは、データベース３に登録される（ステップＳ４）。図５の例では、文字列ｐの「斎藤  沢夫」については、見做し文字定義体２から、「斎」および「沢」が異体字であるので、各異体字の後にセパレータコードである「［」および「］」によって前後が括られた見做し文字ｍの「斉」および「沢」が挿入された登録文字列ｒが生成され、データベース３に登録されている。なお、この実施の形態では、見做し文字ｍの前後をセパレータコードで区切っているが、このセパレータコードは１つでもよい。たとえば、異体字が見つかれば、その後に、セパレータコードおよび見做し文字ｍだけを順次挿入し、見做し文字ｍの後のセパレータコードは、省略する形にしてもよい。
【００３０】
検索処理は、サーバコンピュータ１０がクライアントコンピュータ２０から検索依頼を受けることによって開始される。まず、サーバコンピュータ１０は、クライアントコンピュータ２０にて入力された検索依頼の文字列ｓを受け付ける（ステップＳ１１）。図７の例では、検索しようとして入力した文字列ｓが「齋藤  澤夫」であるとしている。ここでは、文字列ｓの１番目の文字「齋」および３番目の文字「澤」がデータベース３に登録されている文字「斎」および「沢」と異なった文字で入力されていることに注目すべきである。
【００３１】
次に、サーバコンピュータ１０は、図４に示す見做し文字定義体２を参照して文字列ｓに異体字が含まれているかどうかを判断する（ステップＳ１２）。文字列ｓに異体字が含まれていれば、その異体字をこれを代表する見做し文字ｍに置き換え、生成された文字列を検索条件ｆ１とする（ステップＳ１３）。これにより、図７の例では、検索条件ｆ１は、文字列ｓの「齋藤  澤夫」から「斉藤  沢夫」なる文字列に変換されている。
【００３２】
次に、サーバコンピュータ１０は、データベース３からレコードを読み込む（ステップＳ１４）。このステップＳ１４において、有効なレコードの読み込みが行われたかどうかが判断され（ステップＳ１５）、読み込むレコードがない場合には、この検索処理は終了する。有効なレコードが読み込まれた場合には、そのレコードの登録文字列ｒに異体字が含まれていればその異体字を、セットで登録された見做し文字ｍに変換して被検索文字列ｆ２を抽出する（ステップＳ１６）。これにより、図７の例では、被検索文字列ｆ２は、登録文字列ｒの「斎藤  沢夫」から「斉藤  沢夫」なる文字列に変換されている。
【００３３】
次に、検索条件ｆ１と被検索文字列ｆ２とのマッチング処理が実行され（ステップＳ１７）、このマッチング処理で検索条件ｆ１と被検索文字列ｆ２とが一致したかどうかが判断される（ステップＳ１８）。検索条件ｆ１と被検索文字列ｆ２とが一致しなかった場合には、ステップＳ１４に戻って次のレコードの読み込みに進む。検索条件ｆ１と被検索文字列ｆ２とが一致した場合、登録文字列ｒから見做し文字ｍを含まない返却文字列ｏを取得し、その返却文字列ｏを検索元のクライアントコンピュータ２０に返却し（ステップＳ１９）、ステップＳ１４に戻って次のレコードの読み込みに進む。返却文字列ｏは、図７の例では、登録文字列ｒからセパレータコードの「［」および「］」と見做し文字ｍの「斉」および「沢」とを削除することによって生成している。
【００３４】
次に、図３に示した登録処理および図６に示した検索処理のより具体的な例について説明する。
図８は登録処理の具体的な流れを示すフローチャートである。
【００３５】
登録処理では、まず、サーバコンピュータ１０は、クライアントコンピュータ２０にて入力された登録対象の文字列ｐを受け付ける（ステップＳ２１）。この文字列ｐは、最初の文字がｐ［０］であり、次の文字がｐ［１］、その次の文字がｐ［２］のように表されるものとする。次に、文字カウンタの値ｎを０にリセットし（ステップＳ２２）、一時保存領域Ｐのアドレスの値ｉを０にリセットして（ステップＳ２３）、変数ｎ，ｉを初期化する。
【００３６】
次に、受け付けた文字列ｐからｎ番目の文字ｐ［ｎ］を抽出し、見做し文字定義体２を参照して、その文字ｐ［ｎ］が異体字かどうかを判断する（ステップＳ２４）。このステップＳ２４の判断にて、文字ｐ［ｎ］が異体字である場合、見做し文字定義体２からその異体字に対応する代表的な文字である見做し文字ｍを抽出し（ステップＳ２５）、文字ｐ［ｎ］と前後をセパレータコードで囲った見做し文字ｍとを、一時保存領域Ｐ［ｉ］〜Ｐ［ｉ＋２］に格納する（ステップＳ２６）。次に、一時保存領域Ｐのアドレスの値ｉにｉ＋３を代入して、次に格納する一時保存領域Ｐの先頭のアドレスの値を設定する（ステップＳ２７）。
【００３７】
ステップＳ２４の判断にて、文字ｐ［ｎ］が異体字でない場合には、その文字ｐ［ｎ］をそのまま一時保存領域Ｐ［ｉ］に格納し（ステップＳ２８）、文字を次に格納する一時保存領域Ｐの先頭のアドレスの値ｉを１だけインクリメントする（ステップＳ２９）。
【００３８】
一時保存領域Ｐへの格納が完了すると、文字カウンタの値ｎを１だけインクリメントする（ステップＳ３０）。そして、ｎが文字列ｐの長さと等しいかどうか、すなわち、文字ｐ［ｎ］が文字列ｐの最後の文字であるかが判断され（ステップＳ３１）、最後の文字でない場合は、ステップＳ２４に戻る。
【００３９】
このようにして、文字列ｐを１文字ずつ見做し文字定義体２を参照して異体字であるかどうかをチェックし、異体字である場合には、その異体字に対応する見做し文字を見做し文字定義体２から抽出し、異体字と見做し文字とをセットにした文字列を一時保存領域Ｐに生成する。
【００４０】
最後に、一時保存領域Ｐに格納された文字列を登録文字列ｒとしてデータベースに登録する（ステップＳ３２）。
図９は検索処理の具体的な流れを示すフローチャート（その１）であり、図１０は検索処理の具体的な流れを示すフローチャート（その２）であり、図１１は検索処理の具体的な流れを示すフローチャート（その３）である。
【００４１】
検索処理では、まず、サーバコンピュータ１０は、クライアントコンピュータ２０にて入力された、ｓ［０］で始まる文字列ｓを受け付け（ステップＳ４１）、文字カウンタの値ｎを０にリセットし（ステップＳ４２）、一時保存領域Ｓのアドレスの値ｉを０にリセットする（ステップＳ４３）。
【００４２】
次に、受け付けた文字列ｓからｎ番目の文字ｓ［ｎ］を抽出し、見做し文字定義体２を参照して、その文字ｓ［ｎ］が異体字かどうかを判断する（ステップＳ４４）。このステップＳ４４の判断にて、文字ｓ［ｎ］が異体字である場合、見做し文字定義体２からその異体字に対応する代表的な文字である見做し文字ｍを抽出し（ステップＳ４５）、文字ｓ［ｎ］と前後をセパレータコードで囲った見做し文字ｍとを、一時保存領域Ｓ［ｉ］に格納する（ステップＳ４６）。ステップＳ４４の判断にて、文字ｓ［ｎ］が異体字でない場合には、その文字ｓ［ｎ］をそのまま一時保存領域Ｓ［ｉ］に格納する（ステップＳ４７）。
【００４３】
次に、文字を次に格納する一時保存領域Ｓの先頭のアドレスの値ｉを１だけインクリメントし（ステップＳ４８）、文字カウンタの値ｎを１だけインクリメントする（ステップＳ４９）。そして、ｎが文字列ｓの長さと等しいかどうか、すなわち、文字ｓ［ｎ］が文字列ｓの最後の文字であるかが判断され（ステップＳ５０）、最後の文字でない場合は、ステップＳ４４に戻る。
【００４４】
このようにして、文字列ｓを１文字ずつ見做し文字定義体２を参照して異体字であるかどうかをチェックし、文字が異体字でない場合には、その文字を、異体字である場合には、その異体字に代えてその異体字に対応する見做し文字を、一時保存領域Ｓに順次格納していく。
【００４５】
そして、文字列ｓの１文字ずつのチェックが終わると、一時保存領域Ｓに格納された文字列は、検索条件ｆ１に設定される（ステップＳ５１）。
次に、サーバコンピュータ１０は、データベース３からレコードを読み込み（ステップＳ５２）、そのレコードが有効かどうかを判断し（ステップＳ５３）、データベース３から読み込むレコードがない場合には、この検索処理は終了する。有効なレコードが読み込まれた場合には、そのレコードの登録文字列ｒにセパレータコードが含まれているかどうかが判断される（ステップＳ５４）。もし、登録文字列ｒにセパレータコードが含まれていなければ、その登録文字列ｒが被検索文字列ｆ２として抽出され、検索条件ｆ１と比較され、一致した場合には、その登録文字列ｒが返却文字列ｏとして検索元のクライアントコンピュータ２０に返却され（ステップＳ５５）、ステップＳ５２に戻って、次のレコードの読み込みに進む。もちろん、ステップＳ５５において、検索条件ｆ１と被検索文字列ｆ２とが一致しなかった場合には、検索元へなんら返却することなくステップＳ５２に戻る。
【００４６】
ステップＳ５４の判断において、登録文字列ｒにセパレータコードが含まれている場合には、文字カウンタの値ｎを０にリセットし（ステップＳ５６）、一時保存領域Ｓのアドレスの値ｉを０にリセットする（ステップＳ５７）。
【００４７】
次に、登録文字列ｒのｎ＋１番目の文字ｒ（ｎ＋１）がセパレータコードかどうかが判断される（ステップＳ５８）。文字ｒ（ｎ＋１）がセパレータコードなら、次の文字ｒ（ｎ＋２）が見做し文字ｍであるので、それを一時保存領域Ｃ［ｉ］に格納し（ステップＳ５９）、文字カウンタの値ｎをセパレータコードと見做し文字ｍとの文字数分の３だけ増加させる（ステップＳ６０）。文字ｒ（ｎ＋１）がセパレータコードでなければ、その前の文字ｒ（ｎ）を一時保存領域Ｃ［ｉ］に格納し（ステップＳ６１）、文字カウンタの値ｎを１だけインクリメントする（ステップＳ６２）。ステップＳ６０またはステップＳ６２の後は、一時保存領域Ｃが次に格納するアドレスの値ｉを１だけインクリメントする（ステップＳ６３）。
【００４８】
そして、ｎが登録文字列ｒの長さと等しいかどうかが判断され（ステップＳ６４）、文字ｒ［ｎ］が登録文字列ｒの最後の文字でない場合は、ステップＳ５８に戻る。これにより、一時保存領域Ｃに保存された文字列は、異体字がその見做し文字ｍに置き換えられた文字列となり、これを被検索文字列ｆ２とする。
【００４９】
以上の処理により、検索条件ｆ１と異体字が含まれていた場合の被検索文字列ｆ２とが求められたので、検索条件ｆ１と一時保存領域Ｃの被検索文字列ｆ２とのマッチング処理が実施される（ステップＳ６５）。
【００５０】
次に、ステップＳ６５のマッチング処理にて検索条件ｆ１と被検索文字列ｆ２とが一致するかどうかが判断され（ステップＳ６６）、一致しない場合は、ステップＳ５２に戻り、一致した場合は、検索元へ返却するためのオリジナルの返却文字列ｏを抽出する処理に進む。
【００５１】
まず、返却文字列ｏの文字番号の値ｉを０にリセットし（ステップＳ６７）、文字カウンタの値ｎを０にリセットし（ステップＳ６８）、登録文字列ｒのｎ＋１番目の文字ｒ（ｎ＋１）がセパレータコードかどうかが判断される（ステップＳ６９）。文字ｒ（ｎ＋１）がセパレータコードなら、次の文字ｒ（ｎ＋２）が見做し文字ｍであるので、それを返却文字ｏ［ｉ］に設定し（ステップＳ７０）、文字カウンタの値ｎをセパレータコードと見做し文字ｍとの文字数分の３だけ増加させる（ステップＳ７１）。文字ｒ（ｎ＋１）がセパレータコードでなければ、その前の文字ｒ（ｎ）を返却文字ｏ［ｉ］に設定し（ステップＳ７２）、文字カウンタの値ｎを１だけインクリメントする（ステップＳ７３）。ステップＳ７１またはステップＳ７３の後は、次に設定される返却文字ｏ［ｉ］の位置の値ｉを１だけインクリメントする（ステップＳ７４）。
【００５２】
そして、ｎが登録文字列ｒの長さと等しいかどうかが判断され（ステップＳ７５）、文字ｒ［ｎ］が登録文字列ｒの最後の文字でない場合は、ステップＳ６９に戻る。このようにして、登録文字列ｒからオリジナルの文字列である返却文字列ｏが取得され、その返却文字列ｏは、検索元のクライアントコンピュータ２０に返却される（ステップＳ７６）。その後、ステップＳ５２に戻り、次のレコードの読み込みに進む。
【００５３】
図１２は登録文字列の別の構成例を示す図である。
データベース３のデータは、たとえば「名前」および「変換名」のフィールドを有している。「名前」のフィールドには、登録処理のときに入力された登録対象の文字列ｐがオリジナルのまま書き込まれる。「変換名」のフィールドには、登録処理のときに入力された登録対象の文字列ｐに異体字が含まれていない場合は、その文字列ｐがオリジナルのまま書き込まれ、異体字が含まれている場合は、異体字をその見做し文字で置き換えた文字列が書き込まれる。
【００５４】
検索処理のとき、「変換名」の文字列がそのまま被検索文字列ｆ２となり、「名前」の文字列がそのまま返却文字列ｏとなる。このため、データベース３を探索するときは、「変換名」および「名前」の列の文字列を、異体字の変換処理をすることなく、そのまま取得するだけでよいので、処理時間を短縮することができる。ただし、前述のように、異体字を含む文字列に見做し文字を埋め込む場合に比較してデータベース３のデータ容量が大きくなる。
【００５５】
以上、本発明をその好適な実施の形態について説明したが、本発明はこの特定の実施の形態に限定されるものではなく、本発明の精神を逸脱しない範囲で各種変更が可能である。たとえば、異体字ではない文字を異体字として登録することが可能であり、これによって、検索文字列の入力時に生じる表記ゆれを吸収することができる。たとえば、人名に使われている「夫」、「雄」、「男」等を異体字のグループとし、このグループを代表する見做し文字にこのグループ内のいずれか１つを設定して見做し文字定義体に登録することができる。これにより、オペレータの日本語変換ミス等により同じ異体字グループ内の別の文字が誤って入力された場合でも、検索条件を生成する際に見做し文字によって正規化されるので、そのような表記ゆれを許容することができる。さらに、本発明では、漢字の異体字のみならず、平仮名および片仮名を互に異体字としたり、平仮名および片仮名の新旧文字を異体字としたりすることができる。
【符号の説明】
【００５６】
１  文字列管理装置
２  見做し文字定義体
３  データベース
４  登録文字列生成部
５  検索条件生成部
６  被検索文字列抽出部
７  比較部
８  返却文字列取得部
１０  サーバコンピュータ
１０ａ  ＣＰＵ
１０ｂ  ＲＡＭ
１０ｃ  ハードディスクドライブ
１０ｄ  グラフィック処理装置
１０ｅ  入力インタフェース
１０ｆ  通信インタフェース
１０ｇ  バス
１１  モニタ
１２  キーボード
１３  マウス
２０，３０，４０，５０  クライアントコンピュータ
２１  モニタ
２２  キーボード
２３  マウス
６０  ネットワーク
【図１】
2011154602.tif 000003
【図２】
2011154602.tif 000004
【図３】
2011154602.tif 000005
【図４】
2011154602.tif 000006
【図５】
2011154602.tif 000007
【図６】
2011154602.tif 000008
【図７】
2011154602.tif 000009
【図８】
2011154602.tif 000010
【図９】
2011154602.tif 000011
【図１０】
2011154602.tif 000012
【図１１】
2011154602.tif 000013
【図１２】
2011154602.tif 000014