(57)【特許請求の範囲】
【請求項１】
コンピュータを制御して、入力データに対する処理結果を出力するプログラムであって、
文字列比較の対象である漢字仮名混じり文字列の入力を受け付ける処理と、
入力された前記漢字仮名混じり文字列のうち予め読み仮名が付加されていないものについて、その読み情報を生成する処理と、
前記漢字仮名混じり文字列のうち予め読み仮名が付加されているものについて当該読み仮名をその読み情報として採用し、複数の前記漢字仮名混じり文字列の少なくとも２つについて複数の読み情報が生成されている場合に、一の前記漢字仮名混じり文字列について生成された複数の読み情報の各々と他の前記漢字仮名混じり文字列について生成された複数の読み情報の各々とを比較し、一つ以上の読み情報についての比較結果が同一である場合に、比較対象である前記漢字仮名混じり文字列が一致すると判断し、判断結果を出力する処理と
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項２】
アプリケーション・ソフトウェアに応じたユーザインターフェイスを提供するデータ処理システムにおいて、
文字列比較の対象である漢字仮名混じり文字列を入力する入力手段と、
入力された前記漢字仮名混じり文字列のうち予め読み仮名が付加されていないものについて、その読み情報を生成する読み情報生成手段と、
入力された前記漢字仮名混じり文字列のうち予め読み仮名が付加されているものについて当該読み仮名をその読み情報として採用し、複数の前記漢字仮名混じり文字列の少なくとも２つについて複数の読み情報が生成されている場合に、一の前記漢字仮名混じり文字列について生成された複数の読み情報の各々と他の前記漢字仮名混じり文字列について生成された複数の読み情報の各々とを比較し、一つ以上の読み情報についての比較結果が同一である場合に、比較対象である前記漢字仮名混じり文字列が一致すると判断し、判断結果を出力する出力手段と
を備えることを特徴とするデータ処理システム。
【請求項３】
コンピュータを制御して、入力データに対する処理結果を出力するプログラムを格納した記憶媒体であって、
前記プログラムは、
文字列比較の対象である漢字仮名混じり文字列の入力を受け付ける処理と、
入力された前記漢字仮名混じり文字列のうち予め読み仮名が付加されていないものについて、その読み情報を生成する処理と、
前記漢字仮名混じり文字列のうち予め読み仮名が付加されているものについて当該読み仮名をその読み情報として採用し、複数の前記漢字仮名混じり文字列の少なくとも２つについて複数の読み情報が生成されている場合に、一の前記漢字仮名混じり文字列について生成された複数の読み情報の各々と他の前記漢字仮名混じり文字列について生成された複数の読み情報の各々とを比較し、一つ以上の読み情報についての比較結果が同一である場合に、比較対象である前記漢字仮名混じり文字列が一致すると判断し、判断結果を出力する処理とを前記コンピュータに実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、処理対象として文字列を入力し、ソート、検索などのデータ処理を行うシステムに関し、特にアプリケーションが要求する処理に対して所定の機能を付加するプログラムインターフェイスに関する。
【０００２】
【従来の技術】
コンピュータを用いて文字列のソートや検索を行う場合、何らかの情報をキーとして文字列を認識し、分類することが必要となる。日本語文字列においては、コードポイントを用いたバイナリソートにより文字列を認識することが一般的である。このバイナリソートには、通常、ＪＩＳコード（シフトＪＩＳ、日本語ＥＵＣを含む、以下、同じ）が用いられる。
【０００３】
また、特殊なデータを扱うデータベースその他のアプリケーション・ソフトウェアにおいては、取り扱うデータの種類などに応じて、書き込み日時、金額や数量などの数字製品コードなどをキー情報としてソートや検索などを行うものもある。
【０００４】
アプリケーション・ユーザは、これらの種々の手法を用いて、文字列やデータのソートを行ったり、文字列やデータベースの中から所望の単語や文を検索したりすることができる。
図１１は、従来のデータ処理システムを用いたデータのソート結果を例示する図である。
図１１を参照すると、「社内ニュース」を蓄積したデータベースの「トップニュース」に分類されるデータが日付順でソートされている。このデータベースでは、さらにニュースの種類（図では「カテゴリ別」と表記）に基づいてデータをソートすることができ、また特に図示しないが、所定の文字または文字列を含むニュースのタイトルを、ＪＩＳコードを用いて検索することもできる。
【０００５】
【発明が解決しようとする課題】
ところで、データの種類によっては、文字列の読みに基づいてソートや検索を行うことが好ましい場合がある。しかし、上述した従来のデータ処理システムでは、通常、文字列の読みに基づくソートや検索を行う機能は用意されていなかった。
【０００６】
ＪＩＳコードは一部が該当文字の代表的な読み（以下、代表読み）に対応しているので、上記のコードポイントを用いたバイナリソートにおいてＪＩＳコードを用いたソートを行えば、文字の読みによるソートと同様の処理がある程度は可能となる。
しかし、コードポイントは文字を単位としているため、単語や文といった単位では正確なソートや検索ができない場合が多い。例えば、「安」の代表読みが“アン”であり、「売」の代表読みが“バイ”である場合、「安売り」は“アンバイリ”として扱われてしまう。このような不都合は、ソートや検索の対象が文のように長くなるとさらに顕著になる。
【０００７】
さらに、日本語の漢字には、複数の読みを持つものが多数ある。これに対し、代表読みを用いたデータ処理は、処理対象の文字における代表読みのみに基づいてソートや検索を行うこととなる。そのため、高い精度を期待できなかった。
【０００８】
また、読みに基づくデータ処理の実現手段として、蓄積されたデータに対して読み（読み仮名）を予め入力しておき、この読み仮名を基準としてソートや検索を行う方法が考えられる。
しかし、予め読み仮名を入力する作業は大きな手間を要し、コストの上昇やデータベース構築の作業時間の増大を招く。
【０００９】
そこで、本発明は、アプリケーションが要求するソートや検索といったデータ処理に対して、処理対象である文字列の読みに基づくデータ処理を行う機能を付加することを目的とする。
【００１０】
また、本発明は、ソートや検索といったデータ処理の対象である文字列が複数の読みを持ち得る場合に、各読みに基づいてこれらのデータ処理を行うインターフェイスを提供することを他の目的とする。
【００１１】
また、本発明は、ソートや検索といったデータ処理の対象である文字列の読みを自動的に取得し、当該読みに基づいてこれらのデータ処理を行うインターフェイスを提供することをさらに他の目的とする。
【００１２】
【課題を解決するための手段】
本発明は、上記の目的を達成する手段として、処理対象である漢字仮名混じり文字列の読みを生成する手段を用意し、アプリケーションが要求するデータのソートや検索を行う際に、動的に生成された文字列の読みを用いて処理を行うアプリケーション・プログラミング・インターフェイス（ＡＰＩ）を提供する。
【００１３】
上記のように、漢字仮名混じり文字列の読みに基づくデータ処理を行うため、本発明は、コンピュータを制御して、入力データに対する処理結果を出力するプログラムであって、処理対象である漢字仮名混じり文字列を要素とするデータ配列の入力または指定を受け付ける処理と、入力または指定されたこのデータ配列の要素である漢字仮名混じり文字列の読み情報を生成する処理と、生成された読み情報に基づいてこの漢字仮名混じり文字列をソートし、ソート結果であるデータ配列を出力する処理とをこのコンピュータに実行させることを特徴とする。
【００１４】
また、このプログラムは、処理対象であるデータ配列に対し、要素である漢字仮名混じり文字列をその読み情報に基づいてソートする処理に加え、またはこの処理の替わりに、生成された前記読み情報のカテゴリに基づいて、前記漢字仮名混じり文字列を分類し、分類結果であるデータ配列を出力する処理をこのコンピュータに実行させる構成とすることができる。
【００１５】
また、本発明のプログラムは、処理対象である漢字仮名混じり文字列の入力を受け付ける処理と、入力された漢字仮名混じり文字列の読み情報を生成する処理と、複数の漢字仮名混じり文字列におけるこの読み情報を比較し、比較結果を出力する処理とをこのコンピュータに実行させることを特徴とする。
【００１６】
さらに、本発明のプログラムは、検索キーである漢字仮名混じり文字列と、検索対象である漢字仮名混じり文字列の入力を受け付ける処理と、入力された漢字仮名混じり文字列の読み情報を生成する処理と、この検索キー及びこの検索対象における読み情報に基づいて、この検索対象からこの検索キーと同一の読みを持つ部分を検索し、検索結果を出力する処理とをこのコンピュータに実行させることを特徴とする。
ここで、この検索処理は、前記検索対象である漢字仮名混じり文字列の形態素ごとに、前記検索キーと読みが同一かどうかを判断する処理を含むことを特徴とする。
【００１７】
上述したプログラムにおけるデータ処理、すなわち、ソート、カテゴリ分類、文字列比較及び文字列検索は、データ処理装置（またはデータ処理装置を制御するソフトウェア）に対して個別に提供するだけでなく、複数の処理を利用できるように組み合わせて提供することができる。
また、上記のプログラムにおける漢字仮名混じり文字列の読み情報を生成する処理は、処理対象である漢字仮名混じり文字列に複数の読みがある場合、対応する複数の読み情報を生成することができる。この場合、ソート、カテゴリ分類、文字列比較及び文字列検索の各処理は、生成された複数の読み情報の各々に関して実行する。文字列の比較や検索においては、複数の読み情報のうちの一つでも同一であれば、文字列の一致、検出といった判断をすることができる。
【００１８】
また、上述したプログラムは、磁気ディスクその他の記憶媒体に格納して配布したり、プログラム伝送装置からネットワークを介して配信したりすることにより提供することができる。
【００１９】
さらにまた、漢字仮名混じり文字列の読みに基づいたデータ処理を行うユーザインターフェイスを実現する本発明は、次のように構成されたことを特徴とするデータ処理システムを提供する。このデータ処理システムは、漢字仮名混じり文字列を要素とするデータ配列を格納した記憶手段と、このデータ配列のソートを指示する命令を受け付ける入力手段と、記憶手段から処理対象であるデータ配列を取得し、このデータ配列の要素である漢字仮名混じり文字列の読み情報を生成する読み情報生成手段と、生成された読み情報に基づいて処理対象である漢字仮名混じり文字列をソートする処理手段と、ソート結果であるデータ配列を出力する出力手段とを備える。
ここで、この読み情報生成手段は、前記入力手段により命令が受け付けられた後に、前記漢字仮名混じり文字列の読み情報を生成する構成とすることができる。すなわち、ソート命令を受け付けてから、処理対象である漢字仮名混じり文字列に対して動的に読み情報を生成し、読みに基づくソートを行う。
【００２０】
また、本発明は、次のように構成されたことを特徴とするデータ処理システムを提供する。このデータ処理システムは、漢字仮名混じり文字列を要素とするデータ配列を格納した記憶手段と、このデータ配列に対する要素の分類を指示する命令を受け付ける入力手段と、記憶手段から処理対象であるデータ配列を取得し、このデータ配列の要素である漢字仮名混じり文字列の読み情報を生成する読み情報生成手段と、生成された読み情報のカテゴリに基づいて、処理対象である漢字仮名混じり文字列を分類する処理手段と、この処理手段による分類結果に基づいて、この漢字仮名混じり文字列をこの読み情報のカテゴリごとに分けて出力する出力手段とを備える。
【００２１】
さらに、本発明は、次のように構成されたことを特徴とするデータ処理システムを提供する。すなわち、アプリケーション・ソフトウェアに応じたユーザインターフェイスを提供するデータ処理システムにおいて、比較対象として複数の漢字仮名混じり文字列を指定して比較入力する入力手段と、比較対象である漢字仮名混じり文字列の読みに基づいてなされた比較結果を、このアプリケーション・ソフトウェアの用途に応じて加工して出力する出力手段とを備える。
【００２２】
さらにまた、本発明は、次のように構成されたことを特徴とするデータ処理システムを提供する。すなわち、アプリケーション・ソフトウェアに応じたユーザインターフェイスを提供するデータ処理システムにおいて、検索キーである漢字仮名混じり文字列と、検索対象である漢字仮名混じり文字列とを入力する入力手段と、この検索キー及びこの検索対象における読み情報に基づいて、この検索対象からこの検索キーと同一の読みを持つ部分を検索した結果を出力する出力手段とを備える。
【００２３】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
図１は、本実施の形態によるインターフェイスを実現するデータ処理システムの構成例を説明する図である。
本実施の形態のデータ処理システムは、パーソナルコンピュータやワークステーションなどのコンピュータ装置、ＰＤＡ（Personal Digital Assistant）、その他の電子情報機器にて実現される。
【００２４】
図１を参照すると、データ処理システムは、キーボードやマウスなどの入力装置１１と、ＣＰＵ及び主メモリを備えた処理装置１２と、ハードディスク装置などの記憶装置１３と、ディスプレイ装置やプリンタなどの出力装置１４とを備える。
入力装置１１は、ユーザにて操作され、データや各種処理の実行命令を入力するために用いられる。
処理装置１２は、プログラム制御により、種々のデータ処理を行う。また、後述するように、文字列の読み情報に基づくソートや検索を行うインターフェイスを提供する。
記憶装置１３は、処理対象である文字列を含むデータを格納する。したがって、処理装置１２は、入力装置１１にて入力された文字列、または入力装置１１から入力された命令により記憶装置１３から読み出した文字列に対して、読み情報に基づくデータ処理を行うこととなる。
出力装置１４は、処理装置１２による処理結果を出力する。
【００２５】
図２は、本実施の形態によるインターフェイス提供部の概略構成を示す図である。
処理装置１２上では、ワードプロセッサやデータベースなどのアプリケーション・ソフトウェアが動作しており、図２に示すインターフェイス提供部２０は、これらのアプリケーション・ソフトウェアの機能として、文字列の読みを用いたデータ処理を実行する。
【００２６】
図２を参照すると、本実施の形態によるインターフェイス提供部２０は、読み情報生成部２１と、データ処理部２２とを備える。
なお、図２に示す読み情報生成部２１及びデータ処理部２２は、コンピュータプログラムにより制御されたＣＰＵにて実現される仮想的なソフトウェアブロックである。ＣＰＵを制御する当該コンピュータプログラムは、ＣＤ−ＲＯＭやフロッピーディスクなどの記憶媒体に格納して配布したり、ネットワークを介して伝送したりすることにより提供される。また、当該コンピュータプログラムは、本実施の形態により提供されるインターフェイスを使用するアプリケーション・ソフトウェアに組み込むプログラムモジュールなどの形態で提供することができる。
【００２７】
読み情報生成部２１は、図１に示した入力装置１１または記憶装置１３から入力した処理対象であるデータ（文字列または文字列を要素とするデータ配列）に対して、必要に応じて読み情報を生成し、付加する。読み情報の生成は、漢字仮名混じり文中の漢字に対して読み仮名（振り仮名）を生成する公知のプログラムを用いて実行することができる。読み情報を生成する手法として、文字列を形態素解析し、形態素ごとに品詞の種類などの情報に基づいて読み情報を生成する手法を用いれば、読み情報の精度を向上させることができる。以下、本実施の形態における処理対象を、漢字仮名混じり文字列またはかかる文字列を要素とするデータ配列として説明する。ただし、漢字のみで構成された文字列や仮名文字のみで構成された文字列も漢字仮名混じり文字列に含まれるものとする。
なお、処理対象である文字列には、予めユーザが入力装置１１を用いて適切な読み仮名を入力し、付加情報として付加しておくことができる。この場合、文字列の読み情報としては、ユーザによって付加された読み仮名を用いるのが最も正確であるので、読み情報生成部２１による読み情報の生成は行う必要はない。以下の説明では、特に区別する必要がない限り、ユーザによって付加された読み仮名を読み情報として説明する。
【００２８】
データ処理部２２は、処理対象である文字列に対して、読み情報生成部２１により生成された、またはユーザにより入力された読み情報に基づいて、所定のデータ処理を実行する。本実施の形態では、読み情報を用いたデータ処理として、データのソート、データのカテゴリ分類、文字列比較、文字列検索の４種類の処理について説明する。具体的な処理の詳細については後述する。
【００２９】
図３は、図２に示したインターフェイス提供部２０にて提供されるデータ処理の流れを説明する図である。
図３に示すように、ユーザは、種々のアプリケーション・ソフトウェアの要求に応じて漢字仮名混じり文を入力し、インターフェイス提供部２０による処理を経て出力された出力結果を取得する。なお、漢字仮名混じり文の入力は、上述したように、入力装置１１から文を直接入力することもできるし、記憶装置１３に格納されている文を処理対象として指定することによって間接的に入力することもできる。
インターフェイス提供部２０は、まず、入力された漢字仮名混じり文に読み仮名が付されていなければ、読み情報を生成して付加する。図示の例では、「大和事業所、週末電源工事」という漢字仮名混じり文に、“ヤマトジギョウショ、シュウマツデンゲンコウジ”という読み情報が付加されている。そして、インターフェイス提供部２０は、この読み情報を用いてデータ処理を行い、処理の結果を出力する。
以上の動作により、本実施の形態によるインターフェイスを用いることで、ユーザは、漢字仮名混じり文に関してその読みを意識することなく入力し、当該漢字仮名混じり文の読みに基づいたデータ処理の結果を得ることが可能となる。
【００３０】
また、図３に示したように、本実施の形態のインターフェイス提供部２０は、ユーザから処理対象である漢字仮名混じり文の入力があった場合に、読み情報生成部２１により、動的に読み情報を生成する。なお、一度生成した読み情報を対応する漢字仮名混じり文に付加情報として付加しておくことにより、次に同じ漢字仮名混じり文を処理する場合に、読み情報生成部２１により改めて読み情報を生成しなくても、付加されている読み情報を用いて処理することができる。
【００３１】
次に、本実施の形態にて提供されるインターフェイスにおけるデータ処理について詳細に説明する。
１．ソート
ソートは、漢字仮名混じり文字列を要素とするデータ配列を受け取り、当該漢字仮名混じり文字列の読みを基準としてソートし、ソート結果である漢字仮名混じり文字列の配列として返すデータ処理である。漢字仮名混じり文字列に対して読み仮名が既に付加されている場合は、当該読み仮名をソートの基準とすることができる。読み仮名が付加されていない場合は、読み情報生成部２１により生成された読み情報をソートの基準とする。
この種のインターフェイスを用いる例としては、住所録、電話帳、名簿などのデータベース・ソフトウェアにおけるソート処理において、データ配列を氏名の読みに基づいてソートする場合、製品一覧を製品名の読みに基づいてソートする場合、データベースに対して条件検索を行った結果をアイウエオ順にソートする場合などが考えられる。
【００３２】
本実施の形態によりデータのソートを行う場合、インターフェイス提供部２０に入力されるのは、漢字仮名混じりの文字列とその読み情報が対になったデータＡを要素としたデータ配列である。ただし、読みは空であっても良い。また、インターフェイス提供部２０には、ソートの種類、すなわち、読みの辞書的順序における昇順にソートするか降順にソートするかを指定する命令が入力される。
【００３３】
これらの入力があると、インターフェイス提供部２０は、入力されたデータＡの配列に対して、読み情報のチェックとデータのソートという２段階の処理を行う。
図４は、インターフェイス提供部２０による処理の流れを説明するフローチャートである。
図４に示すように、インターフェイス提供部２０の読み情報生成部２１は、データ配列が入力されると（ステップ４０１）、まず、データ配列の全ての要素（データＡ）に対して、読み仮名が付されているかを順次チェックする（ステップ４０２〜４０４）。そして、読み仮名が付されていないデータＡが存在する場合、読み情報生成部２１により当該データＡの漢字仮名混じり文字列から読み情報を生成し、付加する（ステップ４０５）。読み情報が生成できれば、次の要素（データＡ）に対して同様の処理を行い（ステップ４０６）、読み情報が生成できなかったならば、エラーコードを出力する（ステップ４０６、４０７）。全ての要素（データＡ）に対してチェックまたは必要な読み情報生成処理を行ったならば、ソート処理へ移行する（ステップ４０２）。
次に、データ処理部２２は、必要に応じて漢字仮名混じり文字列の読み情報が補完されたデータ配列を入力し、その読み情報をキーとして要素（データＡ）のソートを行い（ステップ４０８）、ソート結果を出力する（ステップ４０９）。このとき、ソートを読みの辞書的順序における昇順とするか降順とするかは、入力時におけるユーザによる指定に従う。
【００３４】
以上の処理の後、インターフェイス提供部２０は、インターフェイス提供部２０を使用しているアプリケーション（例えば上述したデータベース・ソフトウェア）へ、ソートにより要素（データＡ）を並べ替えられたデータ配列及びリターンコードを出力する。リターンコードには、例えば、正しく処理が完了したことを示す「成功」、読み情報生成部２１において読み情報の生成に失敗したことを示す「エラー１」、その他のエラーを示す「エラー２」を設定することができる。エラー１の場合、データ配列、リターンコードに加えて、問題の発生した配列要素を特定する情報をさらに出力することができる。
インターフェイス提供部２０を使用しているアプリケーションは、受け取ったデータ配列及びリターンコードに基づいて、ソート結果やメッセージを出力装置１４に出力する。
【００３５】
図５は、本実施の形態によるソート結果の例を示す図である。
図５を参照すると、「社内ニュース」を蓄積したデータベースの「トップニュース」に分類されるデータが、ニュースのタイトルにおける読みの辞書的順序（図では「５０音順」と表記）でソートされている。
【００３６】
２．カテゴリ分類
カテゴリ分類は、漢字仮名混じり文字列を要素とするデータ配列を受け取り、当該漢字仮名混じり文字列の読み情報を基準として、読みが「ア」で始まる文字列や読みが「タ行」で始まる文字列といったカテゴリに分類し、分類ごとの漢字仮名混じり文字列の配列として返すデータ処理である。
この種のインターフェイスを用いる例としては、上述したソートの場合と同様の例が考えられる。かかるソート処理において、要素の数が膨大であり、読みが特定の文字で始まる文字列といった一部のデータのみを取得したい場合などに利用することができる。
【００３７】
本実施の形態によりデータのカテゴリ分類を行う場合、インターフェイス提供部２０に入力されるのは、漢字仮名混じりの文字列とその読み情報が対になったデータＡを要素とした配列である。ただし、読みは空であっても良い。また、インターフェイス提供部２０には、カテゴリ分類のパターンを指定する命令が入力される。ここで、カテゴリ分類のパターンとしては、例えば、読みが、「ア行」で始まる文字列、「カ行」で始まる文字列、といった分類で分けるパターン、読みが、「ア」で始まる文字列、「イ」で始まる文字列、といった分類で分けるパターンなどが考えられる。
【００３８】
これらの入力があると、インターフェイス提供部２０は、入力されたデータＡの配列に対して、読み情報のチェックとデータのカテゴリ分類という２段階の処理を行う。
図６は、インターフェイス提供部２０による処理の流れを説明するフローチャートである。
図６において、ステップ６０１からステップ６０７までの処理は、図４に示したソート処理のフローチャートにおけるステップ４０１からステップ４０７までの処理と同様であるため、説明を省略する。
インターフェイス提供部２０のデータ処理部２２は、読み情報生成部２１により必要に応じて漢字仮名混じり文字列の読み情報が補完されたデータ配列を入力し、その読み情報をキーとして、データ配列の各要素（データＡ）を入力時にユーザにより指定されたカテゴリごとの配列に振り分け（ステップ６０８）、分類結果を出力する（ステップ６０９）。
【００３９】
以上の処理の後、インターフェイス提供部２０は、インターフェイス提供部２０を使用しているアプリケーション（例えば上述したデータベース・ソフトウェア）へ、カテゴリごとに要素（データＡ）を分類し、並べ替えられたデータ配列及びリターンコードを出力する。リターンコードには、例えば、正しく処理が完了したことを示す「成功」、読み情報生成部２１において読み情報の生成に失敗したことを示す「エラー１」、その他のエラーを示す「エラー２」を設定することができる。エラー１の場合、データ配列、リターンコードに加えて、問題の発生した配列要素を特定する情報をさらに出力することができる。
インターフェイス提供部２０を使用しているアプリケーションは、受け取ったデータ配列及びリターンコードに基づいて、カテゴリ分類の結果やメッセージを出力装置１４に出力する。
【００４０】
図７は、本実施の形態によるカテゴリ分類の結果の例を示す図である。
図７を参照すると、「社内ニュース」を蓄積したデータベースの「トップニュース」に分類されるデータが、ニュースのタイトルにおける読み情報に基づいてカテゴリ分類されている（図では「あかさたな」と表記されている）。図７において、タイトルが「ア行」の文字で始まるニュースは、「ア行」の欄に、タイトルが「カ行」の文字で始まるニュースは、「カ行」の欄に、タイトルが「サ行」の文字で始まるニュースは、「サ行」の欄に、それぞれ分類されている。
なお、処理対象であるデータ配列のデータ量が膨大である場合は、本処理のカテゴリ分類を用いて、特定のカテゴリに属するデータのみを出力するように設定することもできる。
【００４１】
３．文字列比較
文字列比較は、二つの漢字仮名混じり文字列を受け取り、両者の読み情報を比較するデータ処理である。
この種のインターフェイスを用いる例としては、各種のデータベース・ソフトウェアにおける検索処理において、所定のリストの中から、同じ読みの名前やタイトルを検索したい場合などが考えられる。具体的には、電話帳のようなリストに対して名字での絞込み検索を行い、同じ読みの名字を取得したい場合、例えば「斎藤」と入力して検索し、同じ読みの「斎藤」、「斉藤」、「齋藤」、「齊藤」、「西藤」、「西東」などの検索結果を取得したい場合が考えられる。同様に、楽曲や映画のタイトルのデータベースに対して、同じ読みのタイトルを取得したい場合にも用いることができる。すなわち、ユーザが、つづり字は明確でないが読みは覚えているという場合の検索に用いることができる。
【００４２】
本実施の形態により文字列比較を行う場合、インターフェイス提供部２０に入力されるのは、漢字仮名混じりの文字列とその読み情報が対になったデータＡと、同じく漢字仮名混じりの文字列とその読み情報が対になったデータＢである。ただし、読みは空であっても良い。また、比較対照となるデータＡ、データＢは、それぞれデータＡ、データＢを要素とするデータ配列（リスト）から選出された要素であっても良いし、検索キーのように特に入力されたデータであっても良い。
【００４３】
これらの入力があると、インターフェイス提供部２０は、入力されたデータＡの配列に対して、読み情報のチェックと読み情報に基づく文字列比較という２段階の処理を行う。
図８は、インターフェイス提供部２０による処理の流れを説明するフローチャートである。
図８に示すように、インターフェイス提供部２０の読み情報生成部２１は、データＡとデータＢとが入力されると（ステップ８０１）、まず、両データＡ、Ｂに対して読み仮名が付されているかを順次チェックする（ステップ８０２〜８０４）。そして、読み仮名が付されていないデータが存在する場合、読み情報生成部２１により当該データの漢字仮名混じり文字列から読み情報を生成し、付加する（ステップ８０５）。読み情報が生成できなかったならば、エラーコードを出力する（ステップ８０６、８０７）。データＡ、データＢの双方をチェックまたは必要な読み情報生成処理を行ったならば、読みに基づく比較処理へ移行する（ステップ８０２）。
次に、データ処理部２２は、データＡ、データＢの読み情報を比較し（ステップ８０８）、比較結果を出力する（ステップ８０９）。
【００４４】
以上の処理の後、インターフェイス提供部２０は、インターフェイス提供部２０を使用しているアプリケーションへ、データＡとデータＢとの比較結果を示す値及びリターンコードを出力する。比較結果としては、データＡとデータＢの読みが一致しているか、一致していない場合は読みの辞書的順序でどちらが先かといった情報が得られる。したがって、比較結果を示す値は、例えば、データＢの読みの辞書的順序を基準（０）とし、データＡがデータＢよりも辞書的順序で先にあるときは０より小さい値、データＡとデータＢとが一致しているときは０、データＡがデータＢよりも辞書的順序で後にあるときは０より大きい値をそれぞれ出力するような設定とすることができる。また、リターンコードには、例えば、正しく処理が完了したことを示す「成功」、読み情報生成部２１において読み情報の生成に失敗したことを示す「エラー１」、その他のエラーを示す「エラー２」を設定することができる。
【００４５】
インターフェイス提供部２０を使用しているアプリケーションは、受け取った比較結果及びリターンコードに基づいて、当該アプリケーションにおける処理の結果を生成し、出力装置１４に出力する。
例えば、この文字列比較を上述した電話帳などのデータベースに対する検索システムの機能として利用すれば、検索キーの文字列と同じ読みを持つ要素（データ）をデータベースのリストの中から検出することができる。また、複数のリストを比較し、同じ読みを持つ要素（データ）を選別して取得したり、リストどうしを照合したりするという利用も考えられる。
【００４６】
４．文字列の読みのあいまい性を吸収した文字列比較
３の文字列比較と同様に、二つの漢字仮名混じり文字列を受け取り、両者の読み情報を比較するデータ処理である。ただし、日本語の漢字は複数の読みを持つものが一般的であることに対応して、処理対象の漢字仮名混じり文字列における読みとして複数の読み情報を生成し、当該複数の読み情報どうしを比較する。なお、この場合であっても、ユーザにより予め漢字仮名混じり文の読み仮名が付加されている場合は、当該付加されている読み仮名に従う。
【００４７】
文字列の読みのあいまい性を許容する文字列比較を行う場合、インターフェイス提供部２０に入力されるのは、３の文字列比較の場合と同様のデータＡ及びデータＢと、データＡ、Ｂの文字列に対して複数の読み情報が得られる場合に、いくつの読み情報を比較に使うかを指定する命令である。
【００４８】
これらの入力があると、インターフェイス提供部２０は、入力されたデータＡの配列に対して、読み情報のチェックと読みに基づく文字列比較という２段階の処理を行う。
図９は、インターフェイス提供部２０による処理の流れを説明するフローチャートである。
図９に示すように、インターフェイス提供部２０の読み情報生成部２１は、データＡとデータＢとが入力されると（ステップ９０１）、まず、両データＡ、Ｂに対して読み仮名が付されているかを順次チェックする（ステップ９０２〜９０４）。そして、読み仮名が付されていないデータが存在する場合、読み情報生成部２１により当該データの漢字仮名混じり文字列から読み情報を生成し、付加する（ステップ９０５）。このとき、読み情報生成部２１は、入力時に指定された数の読み情報を生成する。通常、文字や単語の読みを記憶した辞書データベースは、頻出する読みや代表的な読みから順に並べて記憶しているので、読み情報生成部２１は、指定数ｎにしたがって、ｎ番目までの読みを取得し、読み情報としてデータＡまたはデータＢに付加する。
また、読み情報生成部２１は、読み情報が生成できなかったならば、エラーコードを出力する（ステップ９０６、９０７）。データＡ、データＢの双方をチェックまたは必要な読み情報生成処理を行ったならば、読みに基づく比較処理へ移行する（ステップ９０２）。
【００４９】
次に、データ処理部２２は、データＡ、データＢの読みを比較し（ステップ９０８）、比較結果を出力する（ステップ９０９）。ここで、データＡ、データＢの一方または双方に複数の読み情報が付加されている場合は、当該複数の読み情報の組み合わせを全て調べ、一つでも合致する読み情報があれば、データＡ、データＢの読みが一致すると判断する。
【００５０】
以上の処理の後、インターフェイス提供部２０は、インターフェイス提供部２０を使用しているアプリケーションへ、データＡとデータＢとの比較結果を示す値及びリターンコードを出力する。比較結果を示す値は、例えば、読みが一致する場合（同じ読み情報が一つ以上ある場合）は０、読みが一致しない場合（全ての読み情報が異なる場合）は０以外の値をそれぞれ出力するような設定とすることができる。また、リターンコードには、例えば、正しく処理が完了したことを示す「成功」、読み情報生成部２１において読み情報の生成に失敗したことを示す「エラー１」、その他のエラーを示す「エラー２」を設定することができる。
【００５１】
本処理の場合、３による文字列比較と異なり、一つの文字列から複数の読みが得られる場合に、それぞれの読みに基づいて検索結果を取得することができる。すなわち、漢字などのつづり字は明確に覚えているが読みは明確でない場合に、適切な読みを含むデータ処理を実行することができる。例えば、「上村」と入力して検索した場合、“ウエムラ”、“カミムラ”の二つの読みが得られたならば、文字列「うえむら」と一致するという検索結果を得ることができる。
さらに、３の文字列比較において説明したように、本実施の形態は、検索キーの文字列に対して同じ読みを持つ文字列を検索することができるので、「上村」と入力して“ウエムラ”、“カミムラ”の二つの読みが得られた場合、“ウエムラ”に対して「植村」、“カミムラ”に対して「神村」という検索結果を得ることができる。
【００５２】
５．文字列検索
文字列検索は、二つの漢字仮名混じり文字列を入力とし、一方の文字列の中から他方の文字列と同じ読みの部分を探し、該当部分の出現箇所を返すデータ処理である。この処理においても、４の文字列比較と同様に、処理対象の漢字仮名混じり文字列における読みとして複数の読み情報を生成し、当該複数の読み情報どうしを比較する。この場合も、ユーザにより予め漢字仮名混じり文の読み仮名が付加されている場合は、当該付加されている読みに従う。
この種のインターフェイスを用いる例としては、ワードプロセッサ・ソフトウェアにおける文字列検索処理において、所定の文書中から所望の文字列（単語など）と同じ読みの文字列を検索する場合などが考えられる。
【００５３】
本実施の形態により文字列検索を行う場合、インターフェイス提供部２０に入力されるのは、検索対象である漢字仮名混じりの文字列とその読み情報が対になったデータＡと、検索キーである漢字仮名混じりの文字列とその読み情報が対になったデータＢ、そして、検索キーであるデータＢの文字列に対して複数の読み情報が得られる場合に、いくつの読み情報を比較に使うかを指定する命令である。
【００５４】
これらの入力があると、インターフェイス提供部２０は、入力されたデータＡの配列に対して、読み情報のチェックと読みに基づく文字列検索という２段階の処理を行う。
図１０は、インターフェイス提供部２０による処理の流れを説明するフローチャートである。
図１０に示すように、インターフェイス提供部２０の読み情報生成部２１は、データＡとデータＢとが入力されると（ステップ１００１）、まず、両データＡ、Ｂに対して読み仮名が付されているかを順次チェックする（ステップ１００２〜１００４）。そして、読み仮名が付されていないデータが存在する場合、読み情報生成部２１により当該データの漢字仮名混じり文字列から読み情報を生成し、付加する（ステップ１００５）。このとき、データＢに対しては、入力時に指定された数の読み情報を生成する。通常、文字や単語の読みを記憶した辞書データベースは、頻出する読みや代表的な読みから順に並べて記憶しているので、読み情報生成部２１は、指定数ｎにしたがって、ｎ番目までの読みを取得し、読み情報としてデータＢに付加する。
また、読み情報生成部２１は、読み情報が生成できなかったならば、エラーコードを出力する（ステップ１００６、１００７）。データＡ、データＢの双方をチェックまたは必要な読み情報生成処理を行ったならば、読みに基づく検索処理へ移行する（ステップ１００２）。
【００５５】
次に、データ処理部２２は、データＡ、データＢの読みを比較し（ステップ１００８）、データＡの読みの中にデータＢの読みと同一の部分があるか調べ、その結果を出力する（ステップ１００９）。ここで、データＡ中にデータＢと同じ読みの部分がある場合は、その場所を示す位置情報を出力する。また、データＢと同じ読みの部分が複数箇所ある場合は、例えば、最初に読みが一致した部分を示す位置情報を出力することができる。なお、データＢに複数の読み情報が付加されている場合は、複数の読み情報の全てについて、データＡ中に同じ読みの部分があるかどうかを調べ、その結果を出力する。
【００５６】
以上の処理の後、インターフェイス提供部２０は、インターフェイス提供部２０を使用しているアプリケーションへ、検索結果及びリターンコードを出力する。検索結果は、例えば、データＡ中にデータＢと同じ読みの部分がある場合は、その場所を示す位置情報である。具体的には、出力装置１４に表示されたデータＡ中の該当文字列にポインタを表示したり、反転表示したりする。位置情報を表示は、検出した文字列全体に対して行っても良いし、検出した文字列の先頭の文字や最後の文字など特定の部分のみに対して行っても良い。
また、データＡ中にデータＢと同じ読みの部分がない場合は、例えば、該当部分がないことを示すメッセージを出力する。また、リターンコードには、例えば、正しく処理が完了したことを示す「成功」、読み情報生成部２１において読み情報の生成に失敗したことを示す「エラー１」、その他のエラーを示す「エラー２」を設定することができる。
インターフェイス提供部２０を使用しているアプリケーションは、受け取った比較結果及びリターンコードに基づいて、検索結果やメッセージを出力装置１４に出力する。
【００５７】
本処理は、ある程度の長さのある文章やデータ列を検索対象とし、所望の文字や単語、文などを検索キーとして検索する場合に利用することができる。そして、それぞれの文字列の読みに基づいて検索を行うため、つづり字は明確でないが読みは覚えているという場合でも、適切な検索結果を含む検索を行うことができる。例えば、検索対象「・・・肴はあぶったいかでいい・・・・」に対し、検索キーとして「魚」「サカナ」「さかな」のどれを入力しても「肴」を検出することができる。
また、検索キーについて複数の読みが得られる場合に、それぞれの読みに基づいて検索を行うことができる。例えば、検索キーとして「上村」を入力し、検索対象中に「・・・うえむらさん・・・・」「・・・かみむら先生・・・・」「・・・植村君・・・・」「・・・神村氏・・・・」などの部分があるならば、いずれも検出することができる。
なお、検索対象の文字列から検索キーの文字列に対応する部分を探す際、検索対象の文字列中を形態素単位で移動しながら検索するようにすれば、単語を途中で分割するような不自然な部分で読みが一致し、誤った検出を行ってしまうことを回避することができる。
【００５８】
このように、日本語の文字列を対象としてデータのソート、カテゴリ分類、文字列比較、文字列検索といったデータ処理を行う場合、文字列の読みに基づいて処理することにより、より応用性が高く精度の高いデータ処理を行うことが可能となる。
また、文字列の読みは、読み情報生成部２１により自動的に生成されるので、ユーザは文字列の読みを意識せず（読み仮名を入力することなく）、読みに基づくデータ処理の結果を得ることができる。
【００５９】
さらに、文字列比較や文字列検索においては、文字列の読みに基づいて処理を行うことにより、検索キーや入力文字列のつづり字が誤っている場合でも、正しい検索結果を得ることができる。また、文字列に複数の読みがある場合に、それぞれの読みについて処理を行うことにより、ユーザが読みを誤って認識していた場合でも、正しい検索結果を得ることができる。
なお、上述した実施の形態では、文字列比較及び文字列検索の場合にのみ、複数の読みに対応する処理を説明したが、データのソート及びカテゴリ分類においても複数の読みに対応した処理を行うことができる。この場合、例えば、複数の読みに基づいて、該当する複数の位置にそれぞれデータを挿入するか、またはいずれかの該当位置にデータを挿入し、他の該当位置に当該データへのポインタを挿入する。このようにすれば、ソート結果または分類結果に対して、ユーザがいずれの読みに基づいてデータを探す場合でも、所望のデータを取得することができる。
また、上述した実施の形態では、仮名漢字混じり文字列の読みとして、読み情報を生成し、文字列に付加した。この読み情報は、統一されていれば、平仮名であっても片仮名であっても良い。また、仮名文字の替わりにローマ字を読み情報として用いても良い。
【００６０】
さらにまた、本実施の形態では、データ処理としてデータのソート、データのカテゴリ分類、文字列比較及び文字列検索について説明したが、他のデータ処理として、例えば、漢字仮名混じり文字列における特定の読みを持つ部分を他の文字列に置き換える文字列置換を行うこともできる。
【００６１】
【発明の効果】
以上説明したように、本発明によれば、アプリケーションが要求するソートや検索といったデータ処理に対して、処理対象である文字列の読みに基づくデータ処理を行う機能を付加することができる。
【００６２】
また、本発明によれば、ソートや検索といったデータ処理の対象である文字列が複数の読みを持ち得る場合に、各読みに基づいてかかるデータ処理を行うインターフェイスを提供することができる。
【００６３】
さらに、本発明によれば、ソートや検索といったデータ処理の対象である文字列の読みを自動的に取得し、当該読みに基づいてかかるデータ処理を行うインターフェイスを提供することができる。
【図面の簡単な説明】
【図１】  本実施の形態によるインターフェイスを実現するデータ処理システムの構成例を説明する図である。
【図２】  本実施の形態によるインターフェイス提供部の概略構成を示す図である。
【図３】  本実施の形態によるインターフェイス提供部にて提供されるデータ処理の流れを説明する図である。
【図４】  本実施の形態のインターフェイス提供部による処理の流れを説明するフローチャートであり、データのソートを行う場合の処理を説明する図である。
【図５】  本実施の形態によるソート結果の例を示す図である。
【図６】  本実施の形態のインターフェイス提供部による処理の流れを説明するフローチャートであり、データのカテゴリ分類を行う場合の処理を説明する図である。
【図７】  本実施の形態によるソート結果の他の例を示す図である。
【図８】  本実施の形態のインターフェイス提供部による処理の流れを説明するフローチャートであり、文字列比較を行う場合の処理を説明する図である。
【図９】  本実施の形態のインターフェイス提供部による処理の流れを説明するフローチャートであり、文字列の読みのあいまい性を吸収した文字列比較を行う場合の処理を説明する図である。
【図１０】  本実施の形態のインターフェイス提供部による処理の流れを説明するフローチャートであり、文字列検索を行う場合の処理を説明する図である。
【図１１】  従来のデータ処理システムを用いたデータのソート結果を例示する図である。
【符号の説明】
１１…入力装置、１２…処理装置、１３…記憶装置、１４…出力装置、２０…インターフェイス提供部、２１…読み情報生成部、２２…データ処理部
【図１】
0004195780.tif 000002
【図２】
0004195780.tif 000003
【図３】
0004195780.tif 000004
【図４】
0004195780.tif 000005
【図５】
0004195780.tif 000006
【図６】
0004195780.tif 000007
【図７】
0004195780.tif 000008
【図８】
0004195780.tif 000009
【図９】
0004195780.tif 000010
【図１０】
0004195780.tif 000011
【図１１】
0004195780.tif 000012