(57)【要約】【課題】  漢字を含む検索文字列から、意味のある正しい索引キーを切り出して、検索キーを作成すること。【解決手段】  漢字を含む検索文字列と、当該検索文字列に対応し複数の分書カナに分節された読みカナとを読み込むステップと、検索文字列を、一または複数の文字を含む文字列に分割して当該文字列に読みを設定する文字列分割ステップと、前記分割された文字列を、前記分書カナに対応付ける対応付ステップと、前記検索文字列を、前記読みカナの分節と、前記文字列と分書カナとの対応付けにより、分節して索引キーを作成する検索キー作成ステップとを含み、前記対応付けステップでは、前記文字列の読みに基づいて前記分書カナに対応付けを行い、当該対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う。【選択図】図１
2015222504.tif 000002
【特許請求の範囲】
【請求項１】
漢字を含む検索文字列と、当該検索文字列に対応し複数の分書カナに分節された読みカナとを読み込む読込ステップと、
前記検索文字列を、一または複数の文字を含む文字列に分割して当該文字列に読みを設定する文字列分割ステップと、
前記分割された文字列を、前記分書カナに対応付ける対応付ステップと、
前記検索文字列を、前記読みカナの分節と、前記文字列と分書カナとの対応付けにより、分節して索引キーを作成する検索キー作成ステップとを含み、
前記対応付けステップでは、前記文字列の読みに基づいて前記分書カナに対応付けを行う読み対応付ステップと、当該対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う順番対応付ステップとを含むことを特徴とする検索キー作成方法。
【請求項２】
請求項１に記載の検索キー作成方法において、
前記文字列分割ステップでは、複数通りに文字列分割可能であるとともに、一つの文字列に複数通りの読みを設定可能であり、
前記対応付ステップでは、一つの分書カナに対して複数の文字列を対応付け可能であるとともに一つの文字列には複数の分書カナを跨いで対応付けできず、前記文字列の読みが単一の前記分書カナの全部または一部と一致したときに対応付けすることを特徴とすることを特徴とする検索キー作成方法。
【請求項３】
請求項１または２に記載の検索キー作成方法において、
前記文字列分割ステップは、前記検索文字列を単語に分割する第一の文字列分割ステップと、複数の漢字を含む前記単語を単漢字に分割する第二の文字列分割ステップと、を含み、
前記読み対応付ステップは、前記単語をその読みに基づいて前記分書カナに対応付ける第一の読み対応付ステップと、前記単漢字をその読みに基づいて前記分書カナに対応付ける第二の読み対応付ステップと、を含むことを特徴とする検索キー作成方法。
【請求項４】
請求項３に記載の検索キー作成方法において、
前記順番対応付ステップは、前記第一の読み対応付ステップの後であり前記第二の読み対応付けステップの前に、前記単語について行う第一の順番対応付ステップと、前記第二の読み対応付ステップの後に、前記単漢字について行う第二の順番対応付ステップと、を含むことを特徴とする検索キー作成方法。
【請求項５】
漢字を含む検索文字列と、当該検索文字列に対応し複数の分書カナに分節された読みカナとを読み込む読込部と、
前記検索文字列を、一または複数の文字を含む文字列に分割して当該文字列に読みを設定する文字列分割部と、
前記分割された文字列を、前記分書カナに対応付ける対応付部と、
前記検索文字列を、前記読みカナの分節と、前記文字列と分書カナとの対応付けにより、分節して索引キーを作成する検索キー作成部とを含み、
前記対応付部は、前記文字列の読みに基づいて前記分書カナに対応付けを行う読み対応付けと、当該対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う順番対応付けとを含むことを特徴とする検索キー作成装置。
【請求項６】
請求項５に記載の検索キー作成装置において、
前記文字列分割部では、複数通りに文字列分割可能であるとともに、一つの文字列に複数通りの読みを設定可能であり、
前記対応付部では、一つの分書カナに対して複数の文字列を対応付け可能であるとともに一つの文字列には複数の分書カナを跨いで対応付けできず、前記文字列の読みが単一の前記分書カナの全部または一部と一致したときに対応付けすることを特徴とすることを特徴とする検索キー作成装置。
【請求項７】
請求項５または６に記載の検索キー作成装置において、
前記文字列分割部は、前記検索文字列を単語に分割する第一の文字列分割部と、複数の漢字を含む前記単語を単漢字に分割する第二の文字列分割部と、を含み、
前記読み対応付部は、前記単語をその読みに基づいて前記分書カナに対応付ける第一の読み対応付部と、前記単漢字をその読みに基づいて前記分書カナに対応付ける第二の読み対応付部と、を含むことを特徴とする検索キー作成装置。
【請求項８】
請求項７に記載の検索キー作成装置において、
前記順番対応付部は、前記第一の読み対応付部の後であり前記第二の読み対応付け部の前に、前記単語について行う第一の順番対応付部と、前記第二の読み対応付部の後に、前記単漢字について行う第二の順番対応付部と、を含むことを特徴とする検索キー作成装置。
【請求項９】
コンピュータを
漢字を含む検索文字列と、当該検索文字列に対応し複数の分書カナに分節された読みカナとを読み込む読込機能と、
前記検索文字列を、一または複数の文字を含む文字列に分割して当該文字列に読みを設定する文字列分割機能と、
前記分割された文字列を、前記分書カナに対応付ける対応付機能と、
前記検索文字列を、前記読みカナの分節と、前記文字列と分書カナとの対応付けにより、分節して索引キーを作成する検索キー作成機能として機能させ、
前記対応付機能は、前記文字列の読みに基づいて前記分書カナに対応付けを行う読み対応付けと、当該対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う順番対応付けとを含むことを特徴とする検索キー作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、漢字を含む検索文字列から索引キーを切り出して、検索キーを作成する検索キー作成方法及びその装置に関するものである。
【背景技術】
【０００２】
大学内に設置されている図書館には、書誌を検索する検索システムがある。学生や教員、図書館職員はこの検索システムを用いて目的の書誌を検索する。検索方法は書誌のタイトルや著者名、出版社、ISBN（International  Standard  Book  Numbering：国際標準図書番号）／ISSN（International  Standard  Serial  Number：国際標準逐次刊行物番号）等の書誌情報があり、これらを基に検索が行われている。
【０００３】
書誌情報を検索する際、各書誌には予め索引キーとなるキーワードを登録しておく必要がある。特に漢字文字列は索引キーとして登録されることが多い。例えば「日本の歴史」という書誌の場合、索引キーは「日本」、「歴史」のようになる。検索時には利用者が入力したキーワードと各書誌の索引キーを比較し、そのキーワードが含まれている書誌を検索結果として表示する。例えば書誌名を検索する際、「日本」というキーワードを入力して検索すれば、「日本」を索引キーとする書誌（「日本の歴史」や「世界から見た日本」等）が検索結果として出力される。このことから、利用者が所望している書誌に索引キーが適切に設定されていなければ、いくら利用者が様々なキーワードを入力しても、所望の書誌を探すことはできない。つまり、適切な索引キーの設定は書誌を検索する際に必要不可欠な要素であると言える。
【０００４】
従来、このような索引キーを切り出す方法として特許文献１に示す技術が提案されている。
【０００５】
特許文献１は電子化された教材を用いて学習を行うＷＥＢベースの学習システムにおいて、学習者の質問内容からその教材の学習に最適な情報、すなわち質問に対する回答を得るための情報を検索可能にする情報検索装置、情報検索方法およびそのプログラムに関する。入力された質問文を形態素解析し、検索するためのキーワードを生成する。これにより、教材の学習内容に沿った学習者が真に必要とする最適な情報を自動的に検索することが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2013-178808号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
大学図書館システムでは通常、書誌情報をNACSIS-CAT（国立情報学研究所が提供する大学図書館等の総合目録データベース）からダウンロードして登録処理を行う。ダウンロードされる書誌情報の中に、書誌名（書誌の表記形）と分かちの規則に基づいて切り出されたカナ文字がある。このカナ文字と書誌の表記形を紐付けて索引キーとする。このように紐付ける意図としては、利用者がキーワードを入力して検索すると、キーワードの読み仮名とカナ文字を比較して、一致したときのカナ文字に紐付く書誌の表記形（索引キー）を出力するためである。例えば、「日本の歴史」という表記形の書誌に対して、分かちの規則に基づいて切り出されたカナ文字が「ニホン△ノ△レキシ」のようになっていたとする（△は空白を意味する）。このとき、「日本」はカナ文字「ニホン」と、「歴史」はカナ文字「レキシ」と紐付けることで、「日本」と「歴史」は索引キーとして登録できる。これにより、「日本」または「歴史」というキーワードで利用者が検索を行えば、索引キーのカナ文字「ニホン」または「レキシ」と紐付くので、「日本の歴史」という書誌が検索されることになる。
【０００８】
このように、書誌情報には書誌の表記形と、分かちの規則に基づいて切り出されたカナ文字があり、このカナ文字と書誌の表記形を紐付けて索引キーとする。しかし、書誌の表記形はカナ文字のように空白で区切られておらず、カナ文字に合わせて書誌の表記形を切り出す必要がある。この切り出す仕組みが適切な索引キーを設定するための重要な方法となる。切り出す仕組みが不十分な場合、索引キーが登録されないために検索結果が芳しくなく、膨大な書誌の中から思うように書誌を見つけることができない。また、意味のある漢字文字列で検索できるよう索引キーを登録しなければならない。例えば「東京五輪」という書誌に対しては「東京」または「五輪」という索引キーを登録しても、「京五」のような索引キーは登録しない。そのため、このようなキーワードで検索をしても結果が出力されないようにしなければならない。このことから、索引キーは無闇に登録するものではなく、意味のある文字列ごとに登録をしなければならない。図書館にとって所望の書誌を検索するために、適切な索引キーを切り出す仕組みが取り込まれているシステムの登場が期待されているところである。
【０００９】
しかしながら、特許文献１で用いている方法は、形態素解析辞書を用いてキーワードの取出・選択をしているが、例えば取り出したキーワードを利用者が求めているキーワードとマッチしているかというような判断まで実施していない。
【００１０】
本発明の目的は、漢字を含む検索文字列から、意味のある正しい索引キーを切り出して、検索キーを作成することができる検索キー作成方法及びその装置を提供することにある。
【課題を解決するための手段】
【００１１】
前記課題を解決するために、本発明は、漢字を含む検索文字列と、当該検索文字列に対応し複数の分書カナに分節された読みカナとを読み込む読込ステップと、前記検索文字列を、一または複数の文字を含む文字列に分割して当該文字列に読みを設定する文字列分割ステップと、前記分割された文字列を、前記分書カナに対応付ける対応付ステップと、前記検索文字列を、前記読みカナの分節と、前記文字列と分書カナとの対応付けにより、分節して索引キーを作成する検索キー作成ステップとを含み、前記対応付けステップでは、前記文字列の読みに基づいて前記分書カナに対応付けを行う読み対応付ステップと、当該対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う順番対応付ステップとを含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、漢字を含む検索文字列から、意味のある正しい索引キーを切り出して、検索キーを作成することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る図書検索支援システムの一実施例を示す全体構成図である。
【図２】本発明に係る検索キー作成装置の全体の処理を説明するためのフローチャートである。
【図３】本発明に係る検索キー作成装置のマッチング処理を説明するためのフローチャートである。
【図４】本発明の第一実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。
【図５】本発明の第二実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。
【図６】本発明の第三実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。
【図７】本発明の第四実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。
【図８】本発明の第五実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための一実施例について、図面を用いて詳細に説明する。本実施例は、例えば、図書館における図書検索支援システムにおいて、分かち書きのカナ文字を有する書誌表記の漢字文字列として具現化したものであるが、本発明は、このような実施例に限定されるものではない。
【００１５】
まず、本実施例の全体構成について説明する。図１は、本発明に係る図書検索支援システムの一実施例を示す全体構成図である。図１において、図書検索支援システムは、端末１０と、通信ネットワーク１１と、データベース１２と、システムサーバ１３を有し、端末１０と、データベース１２、及びシステムサーバ１１が互いに通信可能に接続されている。
【００１６】
端末１０は、ＣＰＵ（Central  Processing  Unit）、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置で構成される。データベース１２は、例えば、メモリおよびＨＤＤ（Hard  Disk  Drive）等の記憶装置で構成される。このデータベース１２は、処理前のデータ格納領域と処理後のデータ格納領域を有し、処理前のデータ格納領域には、端末１０から転送されたデータであって、書誌の表記形（タイトル）と分かちされたカナ文字（タイトル）のデータが格納され、処理後のデータ格納領域には、システムサーバ１３の処理後のデータとして、索引キーのデータが格納される。
【００１７】
システムサーバ１３は、ハードウェア資源と、ソフトウェア資源を有するコンピュータ装置で構成され、ハードウェア資源は、例えば、ＣＰＵ１４、記憶部１５で構成される。ＣＰＵ１４は、記憶部１５に格納された各種プログラム、例えば、読込部１６と、文字列分割部１７と、対応付部１８及び検索キー作成部１９として機能するプログラムの処理を実行する検索キー作成装置として構成される。記憶部１５には、各種プログラムの他に、日本語漢字辞書に関するデータが格納される。
【００１８】
読込部１６は、漢字を含む検索文字列と、この検索文字列に対応し複数の分書カナに分節された読みカナとを読み込む。文字列分割部１７は、漢字を含む検索文字列を、一または複数の文字を含む文字列に分割し、分割された文字列に読みを設定する。対応付部１８は、文字列分割部１７により分割された文字列を、分書カナに対応付ける。検索キー作成部１９は、漢字を含む検索文字列を、読みカナの分節と、文字列と分書カナとの対応付けにより、分節して索引キーを作成する。この際、対応付部１８は、文字列の読みに基づいて分書カナに対応付けを行う読み対応付ステップと、この読み対応付ステップで対応付けした文字列及び分書カナとの順番に基づいて、他の文字列と他の分書カナとの対応付けを行う順番対応付ステップとを実行する。
【００１９】
また、分節（文字列）を跨いで検索キーを作成できないことを規定するために、文字列分割部１７では、複数通りに文字列を分割可能であるとともに、一つの文字列に複数通りの読みを設定可能である。また、対応付部１８では、一つの分書カナに対して複数の文字列を対応付け可能であるとともに、一つの文字列には複数の分書カナを跨いで対応付けできず、文字列の読みが、単一の分書カナの全部または一部と一致したときに対応付けすることができる。
【００２０】
また、単語を分割した後、さらに単漢字に分割するために、文字列分割部１７は、検索文字列を単語に分割する第一の文字列分割ステップと、複数の漢字を含む単語を単漢字に分割する第二の文字列分割ステップとを実行する。対応付部１８における読み対応付ステップは、単語をその読みに基づいて分書カナに対応付ける第一の読み対応付ステップと、単漢字をその読みに基づいて分書カナに対応付ける第二の読み対応付ステップから構成される。
【００２１】
さらに、順番による対応付けを二回行うために、対応付部１８は、第一の読み対応付ステップの後であり第二の読み対応付ステップの前に、単語について行う第一の順番対応付ステップと、第二の読み対応付ステップの後に、単漢字について行う第二の順番対応付ステップを実行する。
【００２２】
図２は、本発明に係る検索キー作成装置の全体の処理を説明するためのフローチャートである。
【００２３】
まず、ＣＰＵ１４は、データベース１２から、処理前のデータとして、タイトルを示す表記形のデータとタイトルを示すカナのデータを取得し、取得した表記形のデータを複数の語句（トークン）に分割し、分割された各トークンに複数の読みを付与する形態素解析を行う（Ｓ１１）。具体的には、ＣＰＵ１４は、漢字を含む検索文字列のデータ（タイトルを示す表記形のデータ）と、この検索文字列に対応し複数の分書カナに分節された読みカナのデータ（タイトルを示すカナのデータ）とをデータベース１２から読み込み、読み込んだ漢字を含む検索文字列のデータを、一または複数の文字を含む文字列のデータに分割し、分割された文字列のデータに一以上の読みを設定する。この際、ＣＰＵ１４は、記憶部１５に格納された日本語漢字辞書のデータを検索して、分割された文字列のデータに読みを設定する。また、ＣＰＵ１４は、検索文字列のデータを、一または複数の文字を含む文字列のデータに分割する際には、各トークンの品詞も判断する。
【００２４】
分割されたトークンXは、１〜ｎまで存在するので、ＣＰＵ１４は、形態素解析の後、Ｘを１に設定し（Ｓ１２）、その後、トークンXと分かちされたカナ文字とを比較して、両者がマッチするか否かを判定する（Ｓ１３）。例えば、ＣＰＵ１４は、トークンXと分かちしたカナ文字がマッチするか、或いは分かちしたカナ文字の中にトークンXが含まれているか否かを判定する。
【００２５】
ステップＳ１３で肯定の判定結果を得た場合、即ち、トークンXと分かちされたカナ文字がマッチした場合、ＣＰＵ１４は、トークンXの前にマッチしていないトークンがあるか否かを判定する（Ｓ１４）。ＣＰＵ１４は、ステップＳ１４で肯定の判定結果を得た場合、即ち、トークンXの前にマッチしていないトークンがある場合、マッチング処理を実行し（Ｓ１５）、その後、ステップＳ１７の処理に移行し、ステップＳ１４で否定の判定結果を得た場合、即ち、トークンXの前にマッチしていないトークンが存在しない場合、トークンXを索引キーとして、データベース１２に登録し（Ｓ１６）、その後、ステップＳ１７の処理に移行する。
【００２６】
一方、ステップＳ１３で否定の判定結果を得た場合、即ち、トークンXと分かちされたカナ文字がマッチしていない場合、ＣＰＵ１４は、全てのトークンを調べたか否かを判定し（Ｓ１７）、ステップＳ１７で否定の判定結果を得た場合には、トークンXを１つ増加し（Ｓ１８）、ステップＳ１３に戻り、ステップＳ１３〜ステップＳ１７の処理を繰り返す。
【００２７】
ステップＳ１７で肯定の判定結果を得た場合、即ち、全てのトークンを調べた場合、ＣＰＵ１４は、マッチしていないトークンがあるか否かを判定し(Ｓ１９)、このステップＳ１９で肯定の判定結果を得た場合、マッチング処理を実行し（Ｓ２０）、このルーチンでの処理を終了し、ステップ１９で否定の判定結果を得た場合、このルーチンでの処理を終了する。
【００２８】
図３は、本発明に係る検索キー作成装置のマッチング処理を説明するためのフローチャートである。この処理は、図２のステップＳ１５とステップＳ２０の具体的内容である。
【００２９】
図３において、ＣＰＵ１４は、マッチしていないトークンが２つ以上あるか否かを判定し（Ｓ２１）、ステップＳ２１で肯定の判定結果を得た場合、即ち、マッチしていないトークンが２つ以上ある場合、マッチしていないトークンを１文字ずつに細分化して、細分化された読みと分かちされたカナ文字がマッチするかを調べ、細分化された読みと分かちされたカナ文字がマッチする場合、細分化されたトークンを索引キーとして切り出し、切り出された索引キーをデータベース１２に登録し（Ｓ２２）、このルーチンでの処理を終了する。
【００３０】
一方、ステップＳ２１で否定の判定結果を得た場合、即ち、マッチしていないトークンが１つである場合、ＣＰＵ１４は、マッチしていないトークンと分かちされたカナ文字とを紐付け、分かちされたカナ文字と紐付けされたトークンを、索引キーとして切り出し、切り出された検索キーをデータベース１２に登録し（Ｓ２３）、このルーチンでの処理を終了する。
【００３１】
図４は、本発明の第一実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。この切り出し方法では、表記形と分かち書きのカナ文字が全て一致する場合の処理として、読込処理１００と、形態素解析処理２００と、マッチング処理３００と、登録処理４００が実行される。
【００３２】
図４において、ＣＰＵ１４は、データベース１２の処理前のデータ格納領域から、タイトル（書誌の表記形）が、「鏡の国の妖精達」である表記形のデータ（漢字を含む検索文字列のデータ）と、分かちされたカナ文字が「カガミ△ノ△クニ△ノ△ヨウセイタチ」（△は空白とする）であるカナ文字のデータ（複数の分書カナに分節された読みカナのデータ）を読込み、読込んだ表記形のデータを一または複数の文字を含む文字列、例えば、複数の語句（トークン）に分割し、分割された各トークンに複数の読みを設定する形態素解析を行う（Ｓ１１）。なお、分かちされたカナ文字は便宜上、分かちカナ１、分かちカナ２、…と表記する。この場合、「カガミ△ノ△クニ△ノ△ヨウセイタチ」を分かちの規則で切り出すと、分かちカナ１「カガミ」、分かちカナ２「ノ」、分かちカナ３「クニ」、分かちカナ４「ノ」、分かちカナ５「ヨウセイタチ」となる。
【００３３】
ＣＰＵ１４が、「鏡の国の妖精達」のデータについて形態素解析を行うと、「鏡の国の妖精達」は、トークン１〜トークン６に分割され、トークン１〜トークン６には、日本語漢字辞書を参照して得られたカナ文字の読みが付与される。この場合、トークン１「鏡（読み：カガミ、またはキョウ）」、トークン２「の（読み：ノ）」、トークン３「国（読み：クニ、またはコク）」、トークン４「の（読み：ノ）」、トークン５「妖精（読み：ヨウセイ）」、トークン６「達（読み：タチ）」となる。
【００３４】
次に、ＣＰＵ１４は、各トークンの読みと、分かちされたカナ文字（分かちカナ１〜５）とを対応付けると共に、両者を比較し、両者がマッチしたトークンを索引キーとして登録する。
【００３５】
まず、ＣＰＵ４は、トークン１を選択し（Ｓ１２）、トークン１「鏡」の読み方「カガミ」が、分かちされたカナ文字１とマッチするかを調べる（Ｓ１３）。トークン１「鏡」の読み方「カガミ」が、分かちカナ１「カガミ」とマッチしていると判定した場合、ＣＰＵ１４は、次に、このトークン１「鏡」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。ステップＳ１４で否定の判定結果を得た場合、即ち、トークン１「鏡」の前に、マッチしてないトークンが存在しないと判定した場合、ＣＰＵ１４は、トークン１「鏡」を「カガミ」という読み方として索引キーに登録する（Ｓ１６）。
【００３６】
次に、ＣＰＵ１４は、まだ全てのトークンについて調べていないと判定した場合（Ｓ１７）、次に調べるトークンをトークン２とし（Ｓ１８）、トークン２「の」の読み方「ノ」が、分かちされたカナ文字２とマッチするかを調べ（Ｓ１３）、ステップＳ１３〜ステップＳ１８の処理を繰り返す。ステップＳ１３〜ステップＳ１８の処理を繰り返す過程で、ＣＰＵ１４は、トークン２「の」は分かちカナ２「ノ」とマッチすると判定するが、分かちカナと紐付くトークンが「の」や「と」のような助詞については、索引キーの登録は行わない。
【００３７】
ステップＳ１３〜ステップＳ１８の処理を繰り返す過程で、ＣＰＵ１４は、トークン３「国」は読み方「クニ」が、分かちカナ３「クニ」とマッチすると判定し、トークン４「の」は分かちカナ4「ノ」とマッチと判定し、トークン５「妖精」は読み方「ヨウセイ」が、分かちカナ５「ヨウセイタチ」の中の「ヨウセイ」とマッチすると判定し、さらに、トークン６「達」は読み方「タチ」が、分かちカナ文字５「ヨウセイタチ」の中の「タチ」とマッチすると判定する。この後、全てのトークンを調べ終わったと判定した場合（Ｓ１７）、ＣＰＵ１４は、最後にまだマッチしていないトークンがあるかを調べる（Ｓ１９）。ＣＰＵ１４が、全てのトークンを調べ終わった時点で、索引キーとして、それぞれ文字列「鏡＝カガミ」、「国＝クニ」、「妖精＋達＝ヨウセイタチ」が、データベース１２の処理後のデータ格納領域に登録される。
【００３８】
以上のように、ＣＰＵ１４は、形態素解析とマッチング処理を行うに際して、各トークンの読みに基づいて、分かちされたカナ文字（分かちカナ１〜５）に対応付を行う読み対応付処理と、この読み対応付処理で対応付けしたトークン（文字列）及び分かちされたカナ文字（文書カナ）との順番に基づいて、他のトークン（文字列）と他の分かちされたカナ文字（文書カナ）との対応付けを行う順番対応付処理を実行する。この後、ＣＰＵ１４は、「鏡の国の妖精達」（検索文字列）を、カナ文字の読み（読みカナの分節）と、各トークンの読みと分かちされたカナ文字（分かちカナ１〜５）との対応付けより、分節して検索キーを作成し、作成した検索キーをデータベース１２に登録する。
【００３９】
本実施例によれば、漢字を含む検索文字列から、意味のある正しい索引キーを切り出して、検索キーを作成することができ、結果として、個々のトークンに対してトークンの読みとカナ文字とを比較してマッチングを取ることで、索引キーを引き当てる精度を向上させることができる。
【００４０】
また、本実施例によれば、漢字を含む文字列から切り出された３個の索引キーのうち、「妖精達」をデータベース１２に登録するに際して、「妖精」と「達」に分けることなく、「妖精達」のように、２つの単語を１つの意味のある単語として登録することができる。このため、データベース１２に登録された索引キーを検索する場合、意図しない漢字が検索されるのを抑制することができる。例えば、「妖精達」が索引キーとして登録されたデータベース１２を検索する際に、キーワードとして、「妖精」や「達」が用いられても、書誌名に「妖精達」を含む書誌が検索されるのを抑制することができる。
【００４１】
図５は、本発明の第二実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。この切り出し方法では、表記形と分かち書きのカナ文字が一致しない場合の処理として、読込処理１００と、形態素解析処理２００と、マッチング処理３００と、登録処理４００が実行される。
【００４２】
図５において、ＣＰＵ１４は、データベース１２の処理前のデータ格納領域から、タイトル（書誌の表記形）が、「古代文書論△玉翰集」である表記形のデータと、分かちされたカナ文字が「コダイ△モンジョロン△ギョッカンシュウ」であるカナ文字のデータを取得し、取得した表記形のデータを複数の語句（トークン）に分割し、分割された各トークンに複数の読みを付与する形態素解析を行う（Ｓ１１）。なお、分かちされたカナ文字は便宜上、分かちカナ１、分かちカナ２、…と表記する。この場合、「コダイ△モンジョロン△ギョッカンシュウ」を分かちの規則で切り出すと、分かちされたカナ文字は、分かちカナ１「コダイ」、分かちカナ２「モンジョロン」、分かちカナ３「ギョッカンシュウ」となる。
【００４３】
ＣＰＵ１４が、「古代文書論  玉翰集」のデータについて形態素解析を行うと、「古代文書論  玉翰集」は、トークン１〜トークン５に分割され、トークン１〜トークン５には、日本語漢字辞書を参照して得られたカナ文字の読みが付与される。この場合、トークン１「古代（読み：コダイ）」、トークン２「文書（読み：ブンショ）」、トークン３「論（読み：ロン）」、トークン４「玉翰（読み：ギョクカン）」、トークン５「集（読み：シュウ）」となる。
【００４４】
次に、ＣＰＵ１４は、各トークンの読みと、分かちされたカナ文字（分かちカナ１〜３）とを比較して、両者がマッチしたトークンを索引キーとして登録する。まず、ＣＰＵ４は、トークン１を選択し（Ｓ１２）、トークン１「古代」の読み方「コダイ」が、分かちされたカナ文字１とマッチするかを調べる（Ｓ１３）。トークン1「古代」の読み方「コダイ」が、分かちカナ1「コダイ」とマッチすると判定した場合、ＣＰＵ１４は、次に、このトークン１「古代」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。
【００４５】
ステップＳ１４で否定の判定結果を得た場合、即ち、トークン１「古代」の前に、マッチしてないトークンが存在しないと判定した場合、ＣＰＵ１４は、トークン１「古代」を「コダイ」という読み方として、索引キーに登録する（Ｓ１６）。
【００４６】
次に、ＣＰＵ１４は、まだ全てのトークンについて調べていないと判定した場合（Ｓ１７）、次に調べるトークンをトークン２とし（Ｓ１８）、トークン２「文書」の読み方「ブンショ」が、分かちされたカナ文字２とマッチするかを調べる（Ｓ１３）。トークン２「文書」は、読み方が「ブンショ」であるが、分かちされたカナ文字の中に「ブンショ」という読みは存在せず、分かちされたカナ文字２「モンジョロン」と対応しない。この場合、ＣＰＵ１４は、トークン２と、分かちされたカナ文字２とがマッチしないと判定する。
【００４７】
このようにマッチしないトークンが現れた場合、ＣＰＵ１４は、全てのトークンを調べたかを確認し(Ｓ１７）、まだ全てのトークンを調べていないと判定した場合、次のトークンをトークン３とし（Ｓ１８）、トークン３「論」の読み方「ロン」が、分かちされたカナ文字２とマッチするかを調べる（Ｓ１３）。トークン３「論」の読み方「ロン」が、分かちカナ２「モンジョロン」の中の「ロン」とマッチすると判定した場合、ＣＰＵ１４は、次に、このトークン３「論」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。
【００４８】
この場合、ＣＰＵ１４は、トークン３「論」の前に、まだマッチしてないトークンとして、トークン２「文書」が存在すると判定し、マッチング処理を行う（Ｓ１５）。このマッチング処理では、ＣＰＵ１４は、マッチしなかったトークン２について、再度形態素解析を行う。この際、ＣＰＵ１４は、トークン３まで調べた時点で、マッチしていないトークンはトークン２「文書」のみであると判定し（Ｓ２１）、マッチしていないトークン２とカナ文字とを紐付ける処理を実行する（Ｓ２３）。
【００４９】
具体的には、トークン１「古代」は、分かちカナ１「コダイ」と紐付き、トークン３「論」は、分かちカナ２「モンジョロン」の中の「ロン」と紐付いている。この時点で、分かちされたカナ文字１、２「コダイ△モンジョロン」の内、トークン１とトークン３で紐付いていないカナ文字「モンジョ」がある。そこで、ＣＰＵ１４は、トークン１とトークン３に挟まれた部分のトークン２「文書」は、カナ文字の「コダイ」と「ロン」に挟まれた部分の「モンジョ」と紐付くのではないかと予測し、この予測結果から、トークン２の読みを、ここでは「モンジョ」として紐付ける。
【００５０】
これにより、ＣＰＵ１４は、「モンジョロン」を構成するトークン２「文書」とトークン３「論」の「文書論」を「モンジョロン」という読み方として、索引キーに登録する（Ｓ２３）。これが対応しないトークンが1つのときのマッチング処理である。
【００５１】
この後、まだ全てのトークンについて調べていないと判定した場合（Ｓ１７）、ＣＰＵ１４は、次に調べるトークンをトークン４とし（Ｓ１８）、トークン４「玉翰」の読み方「ギョクカン」が、分かちされたカナ文字とマッチするかを調べる（Ｓ１３）。トークン４「玉翰」は、読み方「ギョクカン」であるが、分かちされたカナ文字の中に「ギョクカン」という読みは存在せず、トークン４「玉翰」は分かちされたカナ文字と対応しない。この場合、ＣＰＵ１４は、トークン４と、分かちされたカナ文字３とがマッチしないと判定する。
【００５２】
このようにマッチしないトークンが現れた場合、ＣＰＵ１４は、全てのトークンを調べたかを確認し(Ｓ１７）、まだ全てのトークンを調べていないと判定した場合、次のトークンをトークン５とし（Ｓ１８）、トークン５「集」の読み方「シュウ」が、分かちされたカナ文字とマッチするかを調べる（Ｓ１３）。トークン５「集」は、読み方「シュウ」が、分かちカナ３「ギョッカンシュウ」の中の「シュウ」とマッチする。この場合、ＣＰＵ１４は、トークン５「集」の読み方「シュウ」が、分かちされたカナ文字とマッチすると判定し、次に、このトークン５「集」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。この場合、トークン５「集」の前に、まだマッチしてないトークンとして、トークン４「玉翰」が存在するので、ＣＰＵ１４は、先ほどと同様にマッチング処理を行う（Ｓ１５）。
【００５３】
このマッチング処理では、ＣＰＵ１４は、マッチしなかったトークン４について、再度形態素解析を行う。この際、ＣＰＵ１４は、トークン５まで調べた時点で、マッチしていないトークンはトークン４「玉翰」のみであると判定し（Ｓ２１）、マッチしていないトークン４とカナ文字とを紐付ける処理を実行する（Ｓ２３）。
【００５４】
具体的には、トークン３「論」は、分かちカナ２「モンジョロン」の中の「ロン」と紐付き、トークン５「集」は、分かちカナ３「ギョッカンシュウ」の中の「シュウ」と紐付いている。よって、ＣＰＵ１４は、トークン３「論」とトークン５「集」に挟まれたトークン４「玉翰」は、カナ文字の「ロン」と「シュウ」に挟まれた部分のカナ文字「ギョッカン」と紐付くと予測し、この予測結果を基に、トークン４「玉翰」とカナ文字「ギョッカン」とを紐付ける。
【００５５】
これにより、ＣＰＵ１４は、「ギョッカンシュウ」を構成するトークン４「玉翰」とトークン５「集」の「玉翰集」を「ギョッカンシュウ」という読み方として、索引キーに登録する（Ｓ２３）。
【００５６】
全てのトークンを調べ終わった場合、索引キーとして、文字列「古代＝コダイ」、「文書＋論＝モンジョロン」、「玉翰＋集＝ギョッカンシュウ」が、データベース１２の処理後のデータ格納領域に登録される。
【００５７】
本実施例において、トークンXが、分かちされたカナ文字と一致しない場合は次のトークンYを調べ、そのトークンYがカナ文字とマッチすれば、トークンYと紐付いたカナ文字より前のカナ文字のうち、まだ紐付いていないカナ文字とトークンXを紐付けることで、索引キーを生成することができる。
【００５８】
本実施例によれば、第一実施例と同様の効果を奏することができると共に、トークンXが、分かちされたカナ文字と一致しない場合でも、次のトークンYと紐付いたカナ文字より前のカナ文字のうち、まだ紐付いていないカナ文字とトークンXを紐付けることで、索引キーを生成することができる。
【００５９】
図６は、本発明の第三実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。この切り出し方法では、表記形と分かち書きのカナ文字が一致しない場合（対応しないトークンが先頭にあるとき）の処理として、読込処理１００と、形態素解析処理２００と、マッチング処理３００と、登録処理４００が実行される。
【００６０】
図６において、ＣＰＵ１４は、データベース１２の処理前のデータ格納領域から、タイトル（書誌の表記形）が、「針魚を見つける」である表記形のデータと、分かちされたカナ文字が「サヨリ△ヲ△ミツケル」であるカナ文字のデータを取得し、取得した表記形のデータを複数の語句（トークン）に分割し、分割された各トークンに複数の読みを付与する形態素解析を行う（Ｓ１１）。この場合、「サヨリ△ヲ△ミツケル」を分かちの規則で切り出すと、分かちされたカナ文字は、分かちカナ１「サヨリ」、分かちカナ２「ヲ」、分かちカナ３「ミツケル」となる。
【００６１】
ＣＰＵ１４が、「針魚を見つける」のデータについて形態素解析を行うと、「針魚を見つける」は、トークン１〜トークン３に分割され、トークン１〜トークン３には、日本語漢字辞書を参照して得られたカナ文字の読みが付与される。この場合、トークン１「針魚（読み：ハリヨ）」、トークン２「を（読み：ヲ）」、トークン３「見つける（読み：ミツケル）」となる。
【００６２】
次に、ＣＰＵ１４は、各トークンの読みと、分かちされたカナ文字（分かちカナ１〜３）とを比較して、両者がマッチしたトークンを索引キーとして登録する。まず、ＣＰＵ４は、トークン１を選択し（Ｓ１２）、トークン１「針魚」の読み方「ハリヨ」が、分かちされたカナ文字１とマッチするかを調べる（Ｓ１３）。トークン１「針魚」は、読み方が「ハリヨ」であるが、分かちされたカナ文字の中に「ハリヨ」という読みは存在せず、分かちされたカナ文字と対応しない。すなわち、ＣＰＵ１４は、トークン１「針魚」の読み方「ハリヨ」が、分かちされたカナ文字１「サヨリ」とマッチしていないと判定し、この後、全てのトークンを調べたか否かを判定する（Ｓ１７）。
【００６３】
まだ全てのトークンを調べていないと判定した場合、ＣＰＵ１４は、次のトークンをトークン２とし（Ｓ１８）、トークン２「を」の読み方「ヲ」が分かちされたカナ文字とマッチするかを調べる（Ｓ１３）。この場合、ＣＰＵ１４は、トークン２「を」は、分かちカナ２「ヲ」とマッチすると判定し、この後、このトークン２「を」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。この場合、このトークン２「を」の前に、まだマッチしてないトークンとして、トークン１「針魚」が存在するので、ＣＰＵ１４は、この後、マッチング処理を行う（Ｓ１５）。
【００６４】
まずマッチング処理として、ＣＰＵ１４は、マッチしなかったトークン１「針魚」について再度形態素解析を行う。この際、ＣＰＵ１４は、トークン２まで調べた時点で、マッチしていないトークンはトークン１「針魚」のみであると判定し（Ｓ２１）、まだ、紐付いていないトークンとカナ文字とを紐付ける処理を実行する。
【００６５】
この際、先頭のトークンがマッチしていない場合、トークンとトークンの間にあるカナ文字を調べることはできない。そこで、ＣＰＵ１４は、トークン２の読みが、分かちカナ２と紐付いていることから、トークン２と紐付いた分かちカナ２より前のカナ文字が、トークン１「針魚」のカナ文字になると予測する。すなわち、ＣＰＵ１４は、トークン２「を」と紐付いた分かちカナ２「ヲ」より前のカナ文字である分かちカナ１「サヨリ」が、トークン１「針魚」の読みになると予測し、これを紐付ける。
【００６６】
これにより、ＣＰＵ１４は、トークン１「針魚」を「サヨリ」という読み方として、索引キーに登録する（Ｓ２３）。この後、ＣＰＵ１４は、この後、全てのトークンを調べたか否かを判定する（Ｓ１７）。
【００６７】
まだ全てのトークンを調べていないと判定した場合、ＣＰＵ１４は、次のトークンをトークン３とし（Ｓ１８）、トークン３「見つける」の読み方「ミツケル」が、分かちされたカナ文字とマッチするかを調べる（Ｓ１３）。この場合、ＣＰＵ１４は、トークン３「見つける」は、読み方「ミツケル」が分かちカナ３「ミツケル」とマッチすると判定し、次に、このトークン３「見つける」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。この場合、マッチしてないトークンは存在しないので、ＣＰＵ１４は、トークン３「見つける」を「ミツケル」という読み方として、索引キーに登録する（Ｓ１６）。
【００６８】
この後、ＣＰＵ１４は、全てのトークンを調べたか否かを判定し（Ｓ１７）、全てのトークンを調べた場合、次に、まだマッチしていないトークンがあるかを調べ（Ｓ１９）、全てのトークンがマッチしていると判定した場合、処理を終了する。以上の処理により、データベース１２の処理後のデータ格納領域には、索引キーとして、文字列「針魚＝サヨリ」、「見つける＝ミツケル」が登録される。
【００６９】
本実施例によれば、第一実施例と同様の効果を奏することができると共に、表記形と分かち書きのカナ文字が一致しないトークンが先頭にある場合には、２番目のトークンがカナ文字と紐付いたことを条件に、それより前のカナ文字が先頭のトークンのカナ文字として紐付けることができる。
【００７０】
図７は、本発明の第四実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。この切り出し方法では、表記形と分かち書きのカナ文字が一致しない場合（対応しないトークンが最後にあるとき）の処理として、読込処理１００と、形態素解析処理２００と、マッチング処理３００と、登録処理４００が実行される。
【００７１】
図７において、ＣＰＵ１４は、データベース１２の処理前のデータ格納領域から、タイトル（書誌の表記形）が、「空に浮かぶ秋桜」である表記形のデータと、分かちされたカナ文字が「ソラ△ニ△ウカブ△コスモス」であるカナ文字のデータを取得し、取得した表記形のデータを複数の語句（トークン）に分割し、分割された各トークンに複数の読みを付与する形態素解析を行う（Ｓ１１）。この場合、「ソラ△ニ△ウカブ△コスモス」を分かちの規則で切り出すと、分かちされたカナ文字は、分かちカナ１「ソラ」、分かちカナ２「ニ」、分かちカナ３「ウカブ」、分かちカナ４「コスモス」となる。
【００７２】
ＣＰＵ１４が、「空に浮かぶ秋桜」のデータについて形態素解析を行うと、「空に浮かぶ秋桜」は、トークン１〜トークン４に分割され、トークン１〜トークン４には、日本語漢字辞書を参照して得られたカナ文字の読みが付与される。この場合、トークン１「空（読み：ソラ、またはクウ）」、トークン２「に（読み：ニ）」、トークン３「浮かぶ（読み：ウカブ）」、トークン４「秋桜（読み：アキザクラ）」となる。
【００７３】
次に、ＣＰＵ１４は、各トークンの読みと、分かちされたカナ文字（分かちカナ１〜４）とを比較して、両者がマッチしたトークンを索引キーとして登録する。まず、ＣＰＵ４は、トークン１を選択し（Ｓ１２）、トークン１「空」の読み方「ソラ」が、分かちされたカナ文字１とマッチするかを調べる（Ｓ１３）。トークン１「空」の読み方「ソラ」が、分かちされたカナ文字１とマッチすると判定した場合、ＣＰＵ１４は、次に、トークン１「空」の前に、マッチしていないトークンがあるか否かを判定する（Ｓ１４）。
【００７４】
この場合、トークン１「空」の前に、マッチしていないトークンが存在しないので、ＣＰＵ１４は、トークン１「空」を、読み方が「ソラ」であるとして索引キーに登録し（Ｓ１６）、この後、全てのトークンを調べたか否かを判定し（Ｓ１７）、まだ全てのトークンを調べていない場合、次のトークンをトークン２とし、トークン２「に」が、分かちカナ２「ニ」とマッチするかを調べる（Ｓ１３）。トークン２「に」が、分かちカナ２「ニ」とマッチすると判定した場合、ＣＰＵ１４は、トークン２「に」の前に、マッチしていないトークンがあるか否かを判定する（Ｓ１４）。
【００７５】
この場合、トークン２「に」の前に、マッチしていないトークンが存在しないので、ＣＰＵ１４は、全てのトークンを調べたか否かを判定し（Ｓ１７）、まだ全てのトークンを調べていない場合、次のトークンをトークン３とし、同様の処理を繰り返す。この過程で、トークン３「浮かぶ」は、読み方「ウカブ」が分かちカナ３「ウカブ」とマッチすると判定され、トークン３「浮かぶ」は、読み方が「ウカブ」として索引キーに登録される。
【００７６】
しかし、トークン４「秋桜」は、読み方が「アキザクラ」であるが、分かちされたカナ文字の中には「アキザクラ」という読みは存在せず、分かちされたカナ文字と対応しない。すなわち、ＣＰＵ１４は、トークン４については分かちされたカナ文字とマッチしないと判定し（Ｓ１３）、次に、全てのトークンを調べたかを確認する(Ｓ１７）。この場合、全てのトークンを調べたため、ＣＰＵ１４は、続けてマッチしていないトークンがあるかを確認する（Ｓ１９）。この場合、トークン４は、まだ、分かちされたカナ文字とマッチしていないため、ＣＰＵ１４は、マッチング処理を行う（Ｓ２０）。
【００７７】
まずマッチング処理として、ＣＰＵ１４は、マッチしなかったトークン４４「秋桜」について再度形態素解析を行う。この際、ＣＰＵ１４は、まだマッチしていないトークンはトークン４「秋桜」のみであると判定し（Ｓ２１）、まだ紐付いていないトークン４「秋桜」と、分かちされたカナ文字とを紐付ける処理を実行する。この場合、いまマッチしていないトークン４を除き、全てのトークン１〜３が、分かちされたカナ文字とマッチしているので、ＣＰＵ１４は、最後のトークン４は、まだ紐付いてないカナ文字が読みになると予測する。すなわち、トークン３「浮かぶ」と紐付いたカナ文字「ウカブ」より後ろのカナ文字である「コスモス」が、トークン４「秋桜」の読みとなるので、これを紐付ける。これにより、ＣＰＵ１４は、トークン４「秋桜」を「コスモス」という読み方として、索引キーに登録する（Ｓ２３）。
【００７８】
以上の処理で、データベース１２の処理後のデータ格納領域には、索引キーとして、文字列「空＝ソラ」、「浮かぶ＝ウカブ」、「秋桜＝コスモス」が登録される。
【００７９】
本実施例によれば、第一実施例と同様の効果を奏することができると共に、表記形と分かち書きのカナ文字が一致しないトークンが最後にある場合には、最後のトークンを、１つ前までに紐付いたカナ文字より後ろのカナ文字と紐付けることができる。
【００８０】
図８は、本発明の第五実施例であって、漢字を含む検索文字列から索引キーを切り出す方法を説明するための説明図である。この切り出し方法では、表記形と分かち書きのカナ文字が一致しない場合（対応しないトークンが複数個連続するとき）の処理として、読込処理１００と、形態素解析処理２００と、マッチング処理３００と、登録処理４００が実行される。
【００８１】
図８において、ＣＰＵ１４は、データベース１２の処理前のデータ格納領域から、タイトル（書誌の表記形）が、「古文書覆刻に向けて」である表記形のデータと、分かちされたカナ文字が「コモンジョ△フクコク△ニ△ムケテ」であるカナ文字のデータを取得し、取得した表記形のデータを複数の語句（トークン）に分割し、分割された各トークンに複数の読みを付与する形態素解析を行う（Ｓ１１）。この場合、「コモンジョ△フクコク△ニ△ムケテ」を分かちの規則で切り出すと、分かちされたカナ文字は、分かちカナ１「コモンジョ」、分かちカナ２「フクコク」、分かちカナ３「ニ」、分かちカナ４「ムケテ」となる。
【００８２】
ＣＰＵ１４が、「古文書覆刻に向けて」のデータについて形態素解析を行うと、「古文書覆刻に向けて」は、トークン１〜トークン４に分割され、トークン１〜トークン４には、日本語漢字辞書を参照して得られたカナ文字の読みが付与される。この場合、トークン１「古文書（読み：コブンショ）」、トークン２「覆刻（読み：フッコク）」、トークン３「に（読み：ニ）」、トークン４「向けて（読み：ムケテ）」となる。
【００８３】
次に、ＣＰＵ１４は、各トークンの読みと、分かちされたカナ文字（分かちカナ１〜４）とを比較して、両者がマッチしたトークンを索引キーとして登録する。まず、ＣＰＵ４は、トークン１を選択し（Ｓ１２）、トークン１「古文書」の読み方「コブンショ」が、分かちされたカナ文字１とマッチするかを調べる（Ｓ１３）。
【００８４】
トークン１「古文書」は読み方が「コブンショ」であるが、分かちされたカナ文字の中に「コブンショ」という読みは存在せず、分かちされたカナ文字１と対応しない。すなわち、ＣＰＵ１４は、トークン１「古文書」と分かちされたカナ文字１がマッチしないと判定し、この後、全てのトークンを調べたかを確認する(Ｓ１７）。まだ全てのトークンを調べていないため、ＣＰＵ１４は、次のトークンをトークン２とし（Ｓ１８）、トークン２「覆刻」の読み方「フッコク」が、分かちされたカナ文字２とマッチするかを調べる（Ｓ１３）。
【００８５】
しかし、トークン２「覆刻」は、読み方が「フッコク」であるが、分かちされたカナ文字２の中に「フッコク」という読みは存在せず、分かちされたカナ文字２と対応しない。よって、ＣＰＵ１４は、トークン２「覆刻」と分かちされたカナ文字２がマッチしないと判定し、この後、同様に全てのトークンを調べたかを確認する(Ｓ１７）。まだ全てのトークンを調べていないため、ＣＰＵ１４は、次のトークンをトークン３とし（Ｓ１８）、トークン３「に」の読み方「ニ」が、分かちされたカナ文字３とマッチするかを調べる（Ｓ１３）。トークン３「に」は、分かちカナ３「ニ」とマッチするので、ＣＰＵ１４は、このトークン３「に」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。この場合、トークン１「古文書」とトークン２「覆刻」が、まだマッチしていないトークンとして存在するため、ＣＰＵ１４は、トークン１「古文書」とトークン２「覆刻」についてマッチング処理を行う（Ｓ１５）。
【００８６】
まずマッチング処理として、ＣＰＵ１４は、マッチしなかったトークン１、２について再度形態素解析を行う。トークン３まで調べた時点で、ＣＰＵ１４は、マッチしていないトークンとして、トークン１「古文書」とトークン２「文書」の２つあると判定し（Ｓ２１）、まだ紐付いていないトークン１、２を細分化し、細分化したトークンで再マッチングを行う。これは、図４〜図６の具体例と違い、マッチしていないトークンが複数ある場合、各トークンと紐付くカナ文字を予測することができないためである。すなわち「古文書」の紐付くカナ文字が、「コモンジョ△フクコク」のうち、どこからどこまでなのかが分からないため、正確に索引キーを登録することができない。
【００８７】
そこで、本実施例では、マッチしていないトークンが連続して複数個ある場合は、各トークンの文字列を細分化し、細分化された文字列の１文字ずつに読み方を与え、それぞれの文字ごとに再マッチングを行うという方法を採用している。
【００８８】
まず、ＣＰＵ１４は、トークン１「古文書」のデータとトークン２「覆刻」のデータについて再度形態素解析を実行し、トークン１、２をそれぞれ複数のトークンに細分化し、細分化されたトークン１−１、１−２、１−３、２−１、２−２に、日本語漢字辞書を参照して得られたカナ文字の読みを付与する。この場合、トークン１−１「古（読み：コ、ゴ、またはフル）」、トークン１−２「文（読み：フミ、ブン、またはモン）」、トークン１−３「書（読み：ショ、またはジョ）」、トークン２−１「覆（読み：フツ、フッ、またはオオウ）」、トークン２−２「刻（読み：コク）」となる。
【００８９】
次に、ＣＰＵ１４は、各細分化されたトークンの読みと、分かちされたカナ文字（分かちカナ１〜２）とを比較して、両者がマッチしたトークンを索引キーとして登録する。まず、ＣＰＵ４は、細分化されたトークン１−１を選択し（Ｓ１２）、細分化されたトークン１−１〜１−３と分かちカナ１とがマッチするかを調べる（Ｓ１３）。
【００９０】
この場合、トークン１−１「古」は、読み方「コ」が、分かちカナ１「コモンジョ」の中の「コ」とマッチする。トークン１−２「文」は、読み方「モン」が、分かちカナ１「コモンジョ」の中の「モン」とマッチする。トークン１−３「書」は、読み方「ジョ」が、分かちカナ１「コモンジョ」の中の「ジョ」とマッチする。よって、ＣＰＵ１４は、細分化されたトークン１−１〜１−３と分かちカナ１とがマッチすると判定する。即ち、トークン１は、トークン１−１〜１−３に細分化することにより、文字列「古文書」は、「古（コ）」＋「文（モン）」＋「書（ジョ）」であって、分かちカナ１「コモンジョ」として紐付けることができる。これにより、ＣＰＵ１４は、「コモンジョ」を構成するトークン１−１「古」とトークン１−２「文」とトークン１−３「書」の「古文書」を「コモンジョ」という読み方として、索引キーに登録する。
【００９１】
次に、ＣＰＵ１４は、同様にトークン２を細分化した各トークン２−１、２−２に対しても再度マッチング処理を行う。この場合、細分化されたトークン２−１「覆」は、読み方「フク」が、分かちカナ２「フクコク」の中の「フク」とマッチする。細分化されたトークン２−２「刻」は、読み方「コク」が、分かちカナ２「フクコク」の中の「コク」とマッチする。よって、ＣＰＵ１４は、細分化されたトークン２−１〜２−２と分かちカナ２とがマッチすると判定する。即ち、トークン２は、トークン２−１〜２−２に細分化することにより、文字列「覆刻」は、「覆（フク）」＋「刻（コク）」であって、分かちカナ２「フクコク」として紐付けることができる。これにより、ＣＰＵ１４は、「フッコク」を構成するトークン２−１「覆」とトークン２−２「刻」の「覆刻」を、「フッコク」という読み方として、索引キーに登録する（Ｓ２２）。
【００９２】
この後、ＣＰＵ１４は、まだ全てのトークンを調べていないため（Ｓ１７）、次のトークンをトークン４とし（Ｓ１８）、トークン４「向けて」の読み方「ムケテ」が、分かちされたカナ文字４とマッチするかを調べる（Ｓ１３）。
【００９３】
この場合、トークン４「向けて」は、読み方「ムケテ」が、分かちカナ４「ムケテ」とマッチするので、ＣＰＵ１４は、次に、このトークン４「向けて」の前に、まだマッチしてないトークンがあるかを調べる（Ｓ１４）。この場合、マッチしてないトークンは存在しないので、ＣＰＵ１４は、トークン４「向けて」を、「ムケテ」という読み方として、索引キーに登録する（Ｓ１６）。
【００９４】
次に、ＣＰＵ１４は、全てのトークンを調べ終わったと判定した場合（Ｓ１７）、次に、まだマッチしていないトークンがあるかを調べる（Ｓ１９）。この場合、全てのトークンがマッチしているため、ＣＰＵ１４は、処理を終了する。
【００９５】
以上の処理により、データベース１２の処理後のデータ格納領域には、索引キーとして、文字列「古＋文＋書＝コモンジョ」、「覆＋刻＝フクコク」、「向けて＝ムケテ」が登録される。
【００９６】
本実施例において、連続するトークンX1、トークンX2、…が、分かちされたカナ文字と一致しない場合は、トークンを１文字ずつに細分化（トークンX1-1、トークンX1-2、…、トークンX2-1、トークンX2-2、…）して読みを与え、再マッチングを行う。これにより、複数個ある未知のトークンも分かちされたカナ文字とマッチングされ、索引キーを生成することができる。
【００９７】
本実施例によれば、第一実施例と同様の効果を奏することができると共に、表記形と分かち書きのカナ文字が一致しないトークンが複数個連続する場合には、トークンを１文字ずつに細分化して読みを与え、再マッチングを行うことで、索引キーを生成することができる。
【００９８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９９】
また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid  State  Drive）等の記録装置、または、ＩＣ（Integrated  Circuit）カード、ＳＤ（Secure  Digital）メモリカード、ＤＶＤ（Digital  Versatile  Disc）等の記録媒体に記録して置くことができる。
【符号の説明】
【０１００】
１０  端末、１１  通信ネットワーク、１２  データベース、１３  システムサーバ、１４  ＣＰＵ、１５  記憶部、１６  読込部、１７  文字列分割部、１８  対応付部、１９  検索キー作成部。
【図１】
2015222504.tif 000003
【図２】
2015222504.tif 000004
【図３】
2015222504.tif 000005
【図４】
2015222504.tif 000006
【図５】
2015222504.tif 000007
【図６】
2015222504.tif 000008
【図７】
2015222504.tif 000009
【図８】
2015222504.tif 000010