(57)【特許請求の範囲】
【請求項１】
検索対象文字群の中から検索文字列に一致または類似する文字列を検索する方法において、前記検索文字列及び前記検索対象文字群に文字コードと文字パターンとが混在している場合に、混在している文字コードを文字パターン生成部にて文字パターンに変換し、文字パターンに統一して文字列を検索することを特徴とする文字列検索方法。
【請求項２】
前記文字パターンは手書き文字であることを特徴とする請求項１記載の文字列検索方法。
【請求項３】
文字コードと文字パターンとが混在している検索対象文字群の中から、文字コードと文字パターンとが混在している検索文字列に一致または類似する文字列を検索する装置において、前記検索文字列及び前記検索対象文字群の中で混在している文字コードを文字パターンに変換する手段と、変換した文字パターン同士のパターンマッチングにより一致または類似する文字列を検索する手段とを備えることを特徴とする文字列検索装置。
【請求項４】
文字コード及び文字パターンを含む検索対象文字群の中から、文字コード及び文字パターンを含む検索文字列に一致または類似する文字列を検索する装置において、前記検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと前記検索対象文字群の文字パターンとのパターンマッチングにより一致または類似する文字列を検索する第１検索手段と、変換前の前記検索文字列の文字コードと前記検索対象文字群の文字コードとのコードマッチングにより一致または類似する文字列を検索する第２検索手段と、前記第１検索手段でのパターンマッチングによる検索が失敗した場合に前記第２検索手段でのコードマッチングによる検索を行うように、前記第１検索手段及び前記第２検索手段におけるマッチング処理の切り換えを制御する手段とを備えることを特徴とする文字列検索装置。
【請求項５】
検索対象文字群の中から検索文字列に一致または類似する文字列を検索する方法において、前記検索文字列及び／または前記検索対象文字群に含まれる文字コードを文字パターンに変換することとして、その変換の際に文字パターンの位置合わせのための情報を文字パターン中に含めるようにしておき、前記情報を用いた文字パターン同士によるパターンマッチングにより文字列を検索することを特徴とする文字列検索方法。
【請求項６】
文字パターンからなる検索対象文字群の中から、文字コードを含む検索文字列に一致または類似する文字列を検索する装置において、前記検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと前記検索対象文字群の文字パターンとのパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、前記パターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする文字列検索装置。
【請求項７】
文字コードを含む検索対象文字群の中から、文字パターンからなる検索文字列に一致または類似する文字列を検索する装置において、前記検索対象文字群の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと前記検索文字列の文字パターンとのパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、前記パターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする文字列検索装置。
【請求項８】
文字コードを含む検索対象文字群の中から、文字コードを含む検索文字列に一致または類似する文字列を検索する装置において、前記検索文字列及び前記検索対象文字群の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターン同士のパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、前記パターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする文字列検索装置。
【請求項９】
文字コード及び文字パターンを含む検索対象文字群の中から、文字コード及び文字パターンを含む検索文字列に一致または類似する文字列を検索する装置において、前記検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと前記検索対象文字群の文字パターンとのパターンマッチングにより一致または類似する文字列を検索する第１検索手段と、変換前の前記検索文字列の文字コードと前記検索対象文字群の文字コードとのコードマッチングにより一致または類似する文字列を検索する第２検索手段と、前記第１検索手段及び前記第２検索手段におけるマッチング処理の切り換えを制御する手段とを備えており、文字コードを文字パターンに変換する際に、前記パターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする文字列検索装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、検索文字列と一致または類似する文字列を検索対象データの中から検索する方法及び装置に関する。
【０００２】
【従来の技術】
図15に示す従来の文字列検索装置の構成図を用いて従来例について説明する。従来の文字列検索装置においては、検索したい文字列も検索対象となる文字群も共に文字コードのみで構成されており、例えば英語のデータであれば、ASCII コードの例であることが多い。「文字列検索」とは、検索したい文字列と一致するか、または、よく似ている部分文字列を、検索対象文字群の中から捜し出すことを言う。文字列検索部11は、検索したい文字列（検索文字列）と検索対象文字群（検索対象データ）とを文字コードの形で入力し、検索文字列に一致するか、または、よく似ている部分文字列を検索対象データの中から検索して、その検索結果を出力する。ここで、検索文字列及び検索対象データは何れも文字コードの列であるため、一致する部分の検索は容易であり、簡単に実現できる。
【０００３】
例えば、検索文字列の先頭文字に着目し、同じ文字コードを検索対象データ中から捜し出す。その文字コードが見つかったら、検索文字列の第２番目の文字が次に続いているかどうかをチェックする。同様に検索文字列の中の文字コードを順に調べ、全てが一致した場合、それが検索結果の一つとなる。検索結果としては、検索対象データの中の位置情報 (例えば、検索対象データの最初から何文字目か等）を出力すれば良い。従来例をＣ言語のプログラムで実現した例を図16に示す。
【０００４】
【発明が解決しようとする課題】
最近、スタイラスペンなどによる手書き入力機能を持ったコンピュータ，電子ファイルが市場に見られるようになってきた。このような手書き入力が可能な情報処理機器（以下、手書き入力機器という）は、キーボード，マウス等が不要であり、画面を直接操作できるため、携帯型情報機器としても脚光を浴びている。上述した従来の検索方法の場合には文字コード同士で検索を行うので、このような手書き入力機器で文字列検索機能を使う場合、手書きで入力した検索文字列の文字パターンを文字コードに変換する必要がある。そのために、手書き文字認識機能が手書き入力機器には必須である。しかし、手書き文字認識機能はまだまだ欠陥が多く、完璧な認識性能にはほど遠い。そのため、認識誤りが起きやすく、手書き文字入力の際には認識誤り訂正などの作業が必要である。以上のように、従来方式では手書き入力文字を一旦文字コードに認識させなければならない点が煩わしいという問題がある。
【０００５】
また、手書き入力機器は手書きでいろいろなデータを入力でき、例えば手書きメモなどを電子機器で実現できる。入力時に文字認識を行う操作が煩わしいので、後で人間が読めばいいような手書きのメモは手書きパターンのまま (文字認識せずに）保存しておけば良い。しかしながら、手書きパターンそのものを保存した場合、後で必要なデータを探したいときに検索機能が使えないという欠点がある。従来の方法であればメモは文字コードで保存されていたため検索機能が使え、後で必要な情報を探す場合または情報の整理をしたい場合などに便利であった。一方、文字コードで保存するためにはキーボード入力，手書き文字認識が必要であり、上述したような煩わしさが残る。
【０００６】
更に、手書き入力機器で扱うデータは、ユーザが手書きで入力する情報だけではなく、各種の文書などを光学的読み取り装置 (スキャナ) で読みとった文字パターンデータもある。このように文書が文字パターンのイメージで保存されている場合には、通常の文字列検索は行えない。また、スキャナで読み込んだデータを文字コードに変換するためにも文字認識処理は必要である。これはＯＣＲと呼ばれる認識技術で可能だが、やはり認識誤りの問題が多く、一般ユーザには使用時の負担が大きい。
【０００７】
以上のように、検索文字列または検索対象データの中に手書き文字等の文字パターンが含まれている場合に、従来例のような文字列検索を行うことはできない。また、従来の文字列検索の技術を使用するために全てを文字コードに変換する際に文字認識技術を使う必要があり、その操作性はユーザには煩わしいものである。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、検索文字列及び／または検索対象データに文字コードと文字パターンとが混在している場合に、検索文字列に一致または類似する文字列を検索対象データの中からユーザが容易に検索できる文字列検索方法及び装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本願の第１発明に係る文字列検索方法は、検索文字列及び検索対象データに文字コードと文字パターンとが混在している場合に、混在している文字コードを文字パターン生成部にて文字パターンに変換し、文字パターンに統一して文字列を検索することを特徴とする。
【００１０】
本願の第２発明に係る文字列検索方法は、第１発明において、文字パターンが手書き文字であることを特徴とする。
【００１５】
本願の第３発明に係る文字列検索装置は、検索文字列及び検索対象データの中で混在している文字コードを文字パターンに変換する手段と、変換した文字パターン同士のパターンマッチングにより一致または類似する文字列を検索する手段とを備えることを特徴とする。
【００１６】
本願の第４発明に係る文字列検索装置は、検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと検索対象データの文字パターンとのパターンマッチングにより一致または類似する文字列を検索する第１検索手段と、変換前の検索文字列の文字コードと検索対象データの文字コードとのコードマッチングにより一致または類似する文字列を検索する第２検索手段と、第１検索手段でのパターンマッチングによる検索が失敗した場合に第２検索手段でのコードマッチングによる検索を行うように、第１検索手段及び第２検索手段におけるマッチング処理の切り換えを制御する手段とを備えることを特徴とする。
【００１７】
本願の第５発明に係る文字列検索方法は、検索文字列及び／または検索対象データに含まれる文字コードを文字パターンに変換することとして、その変換の際に文字パターンの位置合わせのための情報を文字パターン中に含めるようにしておき、その情報を用いた文字パターン同士によるパターンマッチングにより文字列を検索することを特徴とする。
本願の第６発明に係る文字列検索装置は、検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと検索対象データの文字パターンとのパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、そのパターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする。
本願の第７発明に係る文字列検索装置は、検索対象データの中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと検索文字列の文字パターンとのパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、そのパターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする。
本願の第８発明に係る文字列検索装置は、検索文字列及び検索対象データの中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターン同士のパターンマッチングにより一致または類似する文字列を検索する手段とを備えており、文字コードを文字パターンに変換する際に、そのパターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする。
本願の第９発明に係る文字列検索装置は、検索文字列の中で文字コードの並びにより表現された部分を文字パターンに変換する手段と、変換した文字パターンと検索対象データの文字パターンとのパターンマッチングにより一致または類似する文字列を検索する第１検索手段と、変換前の検索文字列の文字コードと検索対象データの文字コードとのコードマッチングにより一致または類似する文字列を検索する第２検索手段と、第１検索手段及び第２検索手段におけるマッチング処理の切り換えを制御する手段とを備えており、文字コードを文字パターンに変換する際に、そのパターンマッチングにおける文字パターンの位置合わせに使用する情報を文字パターン中に含めるように構成したことを特徴とする。
【００１８】
【作用】
従来例の問題点は、手書き文字等の文字パターンを文字コードに変換する処理を伴わざるを得ないことから生じている。従って、文字パターンをそのまま検索に使うことが望ましい。検索文字列及び／または検索対象データの中に文字コード列が含まれている場合、文字パターン同士のパターンマッチングだけでは検索はできないので、本発明では、検索文字列及び／または検索対象データの中で文字コードの並びにより表現された部分を文字パターンに変換し、パターンマッチング技術を用いて文字パターン同士の比較を行って、一致または類似する文字列を検索する。このようにすると、パターンマッチングだけで目的とする文字列検索が可能となる。パターンマッチングで対象となる文字パターンを探す場合、完全に同じパターンが見つかるとは限らないため、よく似たパターンを探すこととなる。これは文字認識と同様である。しかし、文字認識の場合には必ず正解文字を得なければ正しい検索は行われないが、パターンマッチングの場合には似たパターンを検索できるので、その中からユーザが求める部分を探し出すことが可能となる。
【００１９】
検索文字列及び検索対象データにおいて、文字コードと文字パターンとが混在している場合には、本発明による文字パターン変換後のパターンマッチングと、従来から行われているコードマッチングとを併用すれば、より効率良く文字列の検索を行える。
【００２０】
【実施例】
以下、本発明をその実施例を示す図面に基づいて具体的に説明する。
【００２１】
（実施例１）
まず、本発明の実施例１の文字列検索装置について説明する。実施例１では、検索文字列が文字コードを含んでおり、検索対象データが文字パターンのみである場合を想定している。図１に実施例１の構成を示す。図１において、１は入力された検索文字列に含まれている文字コードを、予め用意された文字パターン辞書を参照して、文字パターンに変換する文字パターン生成部であり、文字パターン生成部１は、生成した文字パターンをパターンマッチング部２へ出力する。パターンマッチング部２は、文字パターン生成部１からの文字パターンと入力される検索対象データの文字パターンとのパターンマッチングを行って、一致するかよく似たパターンを検索結果として出力する。
【００２２】
次に、動作について説明する。図２は、実施例１の処理動作の手順を示すフローチャートである。検索文字列を文字コード列として文字パターン生成部１に入力し（ステップＳ１）、文字パターン生成部１にて文字パターンの列に変換する（ステップＳ２）。この変換の際には、各文字コードに対応した文字パターン（例えば文字フォントデータ）が必要であるので、予め用意した文字パターン辞書を参照する。文字パターンに変換された検索文字列を、パターンマッチング部２に入力し（ステップＳ３）、文字パターン同士のパターンマッチングにより検索対象データの中からよく似たパターンを検索する（ステップＳ４）。最終的に、検索対象データの中から予め決めた基準よりも似たパターンが存在する位置を検索結果として出力する（ステップＳ５）。
【００２３】
（実施例２）
次に、本発明の実施例２の文字列検索装置について説明する。実施例２では、検索対象データが文字コードを含んでおり、検索文字列が文字パターン（例えば手書きパターン）のみである場合を想定している。図３に実施例２の構成を示す。図１において、文字パターン生成部１は入力された検索対象データに含まれている文字コードを、予め用意された文字パターン辞書を参照して、文字パターンに変換し、生成した文字パターンをパターンマッチング部２へ出力する。パターンマッチング部２は、文字パターン生成部１からの文字パターンと入力される検索文字列の文字パターンとのパターンマッチングを行って、一致するかよく似たパターンを検索結果として出力する。
【００２４】
次に、動作について説明する。図４は、実施例２の処理動作の手順を示すフローチャートである。まず、検索文字列を文字パターンの形でパターンマッチング部２に入力する（ステップＳ11）。検索文字列としては、例えばスタイラスペンで書かれた手書きパターン等が考えられる。一方、検索対象データの中に存在する文字コードを、文字パターン生成部１にて文字パターンに変換する（ステップＳ12）。この変換の際には、文字パターン辞書に格納されているパターンを用いる。変換後に得られる検索対象データには、文字コードは含まれていない。文字パターンに変換された検索対象データを、パターンマッチング部２に入力し（ステップＳ13）、文字パターン同士のパターンマッチングにより検索対象データの中から検索文字列によく似たパターンを検索する（ステップＳ14）。最終的に、検索対象データの中から予め決めた基準よりも似たパターンが存在する位置を検索結果として出力する（ステップＳ15）。
【００２５】
以下、上述した実施例１，２で使用する文字パターン生成部１，文字パターン辞書及びパターンマッチング部２の詳細について説明する。
【００２６】
まず、文字パターン生成部１について述べる。文字パターン生成部１は、入力された文字列の中に含まれている文字コードの部分を文字パターンに変換し、文字列のパターンを生成するものであり、その処理動作の手順を図５のフローチャートに示す。まず、文字列を入力し（ステップＳ21）、その文字列の最初の文字をバッファに入力する（ステップＳ22）。入力した文字が文字コードであるか否かを判断し（ステップＳ23）、文字コードである場合にはその文字コードを文字パターンに置換して（ステップＳ24）ステップＳ25に進み、文字コードでない場合にはそのままステップＳ25に進む。バッファに入力していない文字が残存するか否かを判断し（ステップＳ25）、残存する場合には次の文字をバッファに入力して（ステップＳ26）ステップＳ23に戻り、残存しない場合には処理を終了する。そして、入力した文字列の中の文字一つずつに関して、文字コードであればそれを文字パターンに置換する。
【００２７】
文字コードを文字パターンに置換するには、その文字コードに対応する文字パターンを文字パターン辞書から読み出して、文字コードが存在する位置へ挿入すれば良い。更に具体的な実現方法については、検索文字列及び検索対象データの格納フォーマットが決まらなければ説明できないので、後述する。
【００２８】
文字パターン辞書は、通常の情報記憶装置 (例えば磁気ディスク) 上で実現できる。文字コードに対応した文字パターンの読み出しは、データ中の対応する項目を読み出すという動作であり、ソフトウェアで実現する。文字パターン辞書は、例えば図６のような構造体で実現できる。変数dict［］が文字パターン辞書を示す。ここでは、文字パターンは座標点の列で表されている。ここで、例えば座標点の値がOxfffe、0xffff (16進数のＣ言語での表現) には絶対にならないと仮定し、0xfffeが文字のストロークの終端点、0xffffが文字パターンの終端点だとすれば、座標点の列で、文字パターンを表現することができる。
【００２９】
パターンマッチング部２は、検索対象データの中から検索文字列に一致する (またはよく似ている) 部分をパターンマッチングによって捜し出す。もし、似た部分が見つからない場合には何も出力しない。
【００３０】
図７にＣ言語の構造体を使って示したのが、検索文字列，検索対象データを格納するための内部形式の例である。string［］はデータが格納されている変数の配列を示す。通常、文字コードのみで表されたデータは単純なバイト列 (例：char string ［］; ) で表されるが、ここでは文字コードが多国語コードである可能性を考え、構造体のメンバーcodeは short型になっている。また、その文字が文字コードではなく文字パターンである可能性があるため、struct POINT型のメンバーを持っている。ここで、codeが０であればpattern が参照され、文字パターンが得られる。逆にpattern が０であればcodeが参照される。両方０であればその文字は空である。通常、空の文字は文字列の終端を表す。ここでも、空データが現れるまでを一つの文字列とする。仮にcodeとpattern との両方が０でない場合には、その文字が両方のデータを持っていると考えられる。例えば、文字コードで表された文字列が文字パターン生成部１に入力されると、それまで０であったpattern フィールドに変換後の文字パターンが格納される (実際には、どこか他の場所に文字パターン格納用記憶領域が取られ、pattern にはその領域へのポインタが格納される) 。その際にcodeフィールドの値をクリアしなければ、同じ文字の文字コードと文字パターンとの両方を得ることができる。
【００３１】
パターンマッチング部２では、検索文字列中のpattern フィールドと検索対象データのpattern フィールドとのマッチングを行う。文字パターン同士のマッチング方法は、従来より普通に使われているマッチングアルゴリズムなら何でも良い。パターンマッチング部２をプログラムで実現した例を図８に示す。ここで、buf1に検索文字列、buf2に検索対象データが格納されている。ｍ，ｎは、それぞのデータ長である。内部で呼ばれている関数match pattern は、二つの文字のpattern フィールドに格納されている文字パターンを比較して、一致またはよく似ていると判断できればTRUEを返し、そうでなければFALSE を返す。関数match 自体は、検索文字列を検索対象データの中で探し、見つけたらその位置 (検索対象データの何番目の文字か) を返し、見つからなければ−１を返す。
【００３２】
（実施例３）
次に、本発明の実施例３の文字列検索装置について説明する。実施例３は、実施例１と実施例２とを組み合わせた構成となっており、検索文字列と検索対象データとの何れもが文字コード及び文字パターンが混在したものである場合を想定している。この実施例３の構成は、文字列の種類（文字コード・文字パターン）が任意であるため、より柔軟な構成であると言える。
【００３３】
図９に実施例３の構成を示す。第１の文字パターン生成部1aは、入力された検索文字列に含まれている文字コードを、予め用意された文字パターン辞書を参照して、文字パターンに変換し、生成した文字パターンをパターンマッチング部２へ出力する。第２の文字パターン生成部1bは入力された検索対象データに含まれている文字コードを、文字パターン辞書を参照して、文字パターンに変換し、生成した文字パターンをパターンマッチング部２へ出力する。パターンマッチング部２は、第１の文字パターン生成部1aからの文字パターンと第２の文字パターン生成部1bからの文字パターンとのパターンマッチングを行って、一致するかよく似たパターンを検索結果として出力する。
【００３４】
次に、動作について説明する。図10は、実施例３の処理動作の手順を示すフローチャートである。まず、検索文字列を第１の文字パターン生成部1aに入力し（ステップＳ31）、検索文字列の中に文字コード列が含まれていればそれを文字パターンに変換する（ステップＳ32）。仮に文字コードが含まれていなければ変換しないでそのまま出力すれば良い。一方、検索対象データに含まれる文字コード列を、第２の文字パターン生成部1bで文字パターンに変換する（ステップＳ33）。そして、文字コード列が文字パターンに変換された検索文字列及び検索対象データをパターンマッチング部２に入力して（ステップＳ34）、よく似た部分を検索する（ステップＳ35）。その結果、検索対象データの中で検索文字列に似た部分を検索結果として出力する（ステップＳ36）。第１，第２の２つの文字パターン生成部1a，1bは、何れも同じ文字パターン辞書を参照して文字パターンを生成する。従って、同じ文字コードは同じ文字パターンに変換されるので、パターンマッチングの際に、同じ文字コードから生成された文字パターン同士は確実に一致する。
【００３５】
実施例３では、文字パターン生成部が第１の文字パターン生成部1aと第２の文字パターン生成部1bとに分かれているが、これらは全く同じ動作を行い、いずれも実施例１，２で示されたものと同様と考えて良い。
【００３６】
（実施例４）
次に、本発明の実施例４の文字列検索装置について説明する。実施例４では、検索文字列と検索対象データとのマッチングを、文字パターンによって行うか、文字コードで行うかを切り替える構成としている。
【００３７】
図11に実施例４の構成を示す。文字パターン生成部１は、入力された検索文字列に含まれている文字コードを、予め用意された文字パターン辞書を参照して、文字パターンに変換し、生成した文字パターンを文字列検索制御部３へ出力する。文字列検索制御部３は、パターンマッチング部２を起動させて、文字パターン生成部１からの文字パターンと検索対象データの文字パターンとのパターンマッチングを行うか、または、文字コードマッチング部４を起動させて、変換前の検索文字列と検索対象データとの文字コードマッチングを行い、一致するかよく似たパターンを検索結果として出力する。文字列検索制御部３における２種類のマッチング処理はダイナミックに切り替えられる。
【００３８】
次に、動作について説明する。図12は、実施例４の処理動作の手順を示すフローチャートである。検索文字列を、実施例１と同様に、文字パターン生成部１に入力して（ステップＳ41）、文字コード列の部分を文字パターンに変換する（ステップＳ42）。変換結果を文字列検索制御部３に入力するが、同時に、変換される前の検索文字列 (文字コード列を含んでいる可能性あり）も文字列検索制御部３に入力する（ステップＳ43）。文字列検索制御部３では、検索対象データと文字パターンに変換された検索文字列とのマッチングを文字パターンによって行う（ステップＳ44）。この際の文字パターンマッチングは、パターンマッチング部２を呼び出すことで実現する。そして、このマッチングが成功したか否かを判断し（ステップＳ45）、成功すればステップＳ48に進み、成功しなければステップＳ46に進む。検索対象データの中に文字コードが現れると文字パターン同士のマッチングは失敗するが、その場合には入力された検索文字列そのものについてマッチングに失敗した部分が文字コードであったか否かを調べる（ステップＳ46）。そして、検索文字列そのものと検索対象データとのマッチングを文字コードによって行う（ステップＳ47）。この際の文字コードマッチングは、文字コードマッチング部４を呼び出すことで実現する。最後に、検索対象データの中で検索文字列に似た部分を検索結果として出力する（ステップＳ48）。以上のように本実施例４では、文字パターンマッチングに失敗しても、もし文字コードが一致すれば、そこまでのマッチングは成功したことになり、それ以降のマッチングを継続する。
【００３９】
実施例４では、文字列のマッチングを行う際に、比較する文字が文字コードか文字パターンかを判断し、マッチング機能を切り替えなければならない。これは、既に説明したパターンマッチング部の実施例 (図８参照）を拡張することによって実現できる。図13に、実施例４の実現例をＣ言語のプログラムで示す。ここで、match codeという関数は、２つの文字のcodeフィールドを比較し、一致すればTUREを、一致しなければFALSE を返す。
【００４０】
文字パターン生成部１では、入力された検索文字列の中の文字コードは文字パターンに変換されるが、元となった文字コードは消さずに残してある。これは、図11の構成図で検索文字列そのものが文字列検索制御部３に入力される経路を実現している。そして、文字列検索制御部３では、比較する文字が文字コードか文字パターンかでマッチング機能を切り替えるが、これは図13のプログラム中で、関数match pattern とmatch codeとを切り替えている (変数funcに代入している) 部分が実現している。
【００４１】
（実施例５）
次に、本発明の実施例５の文字列検索装置について説明する。実施例５は、上述した実施例１〜４において、パターンマッチングを容易に行うための工夫を示した実施例である。
【００４２】
文字パターン生成部では、文字パターン辞書に格納されているパターンを用いて文字コードから文字パターンへの変換を行うが、ある特殊なパターン、例えば図14に示すような文字パターンの周囲に文字を囲む四角の枠を重ねるようなパターンを生成することができる。一つの実現方法としては、重ね合わせるための特殊なパターン (ここでは四角の枠) を文字パターン生成部中に記憶しておき、文字パターンを生成する際に、その特殊なパターンを本来の文字パターン上に埋め込むという方法がある。また、他の実現方法として、文字パターン辞書の中に特殊なパターンが埋め込まれたものを登録しておくという方法も考えられる。何れの方法でもソフトウェアで実現可能である。
【００４３】
このような特殊なパターンは、通常の文書中の文字パターンには現れないため、文字パターン生成部を用いて生成された文字パターンのみにマッチすると考えられる。そこで、内部の文字パターン自体のマッチングを行えば、文字の位置合わせは完全である。このような特殊なパターンを重ねておけば、位置が若干ずれればマッチング距離が非常に大きくなるため、簡単な処理で文字の位置合わせを行える。これにより、文字コード列を文字パターンに変換したことによって起きるマッチングミス及び計算時間の増大を小さく抑えることができる。
【００４４】
【発明の効果】
以上詳述したように本発明では、検索文字列及び／または検索対象データの中で文字コードの並びにより表現された部分を文字パターンに変換し、パターンマッチング技術を用いて一致または類似する文字列を検索するので、検索文字列及び／または検索対象データに文字コードと文字パターンとが混在している場合に、検索したい文字列を検索対象データの中からユーザが容易に検索できる。
【００４５】
このように、検索文字列を検索対象データの中から捜し出す文字列検索を、文字コード・文字パターンの何れを含む場合でも行うことができる。この結果、検索対象データを自由に選べるため、様々なデータを検索対象とすることが可能となる。また、検索文字列のデータ形式も任意に選べるので、例えば手書き文字によって文字列を検索する場合の操作性も向上することができる。
【図面の簡単な説明】
【図１】本発明の実施例１の文字列検索装置の構成図である。
【図２】実施例１の文字列検索装置の処理手順を示すフローチャートである。
【図３】本発明の実施例２の文字列検索装置の構成図である。
【図４】実施例２の文字列検索装置の処理手順を示すフローチャートである。
【図５】本発明の文字列検索装置における文字パターン生成部の処理手順を示すフローチャートである。
【図６】本発明の文字列検索装置における文字パターン辞書の構成例を示す図である。
【図７】本発明の文字列検索装置における検索文字列及び検索対象データの内部形式図である。
【図８】本発明の文字列検索装置におけるパターンマッチング部の実現例を示す図である。
【図９】本発明の実施例３の文字列検索装置の構成図である。
【図１０】実施例３の文字列検索装置の処理手順を示すフローチャートである。
【図１１】本発明の実施例４の文字列検索装置の構成図である。
【図１２】実施例４の文字列検索装置の処理手順を示すフローチャートである。
【図１３】本発明の文字列検索装置におけるパターンマッチング部の他の実現例を示す図である。
【図１４】本発明の実施例５の文字列検索装置における動作例を示す図である。
【図１５】従来の文字列検索装置の構成図である。
【図１６】従来の文字列検索装置におけるプログラム例を示す図である。
【符号の説明】
１  文字パターン生成部
1a  第１の文字パターン生成部
1b  第２の文字パターン生成部
２  パターンマッチング部
３  文字列検索制御部
４  文字コードマッチング部
【図１】
0003986098.tif 000002
【図２】
0003986098.tif 000003
【図３】
0003986098.tif 000004
【図４】
0003986098.tif 000005
【図５】
0003986098.tif 000006
【図６】
0003986098.tif 000007
【図７】
0003986098.tif 000008
【図８】
0003986098.tif 000009
【図９】
0003986098.tif 000010
【図１０】
0003986098.tif 000011
【図１１】
0003986098.tif 000012
【図１２】
0003986098.tif 000013
【図１３】
0003986098.tif 000014
【図１４】
0003986098.tif 000015
【図１５】
0003986098.tif 000016
【図１６】
0003986098.tif 000017