(57)【要約】【課題】曖昧に記憶された文字列と関連する文字列を検索することが可能な文字列検索プログラム、文字列検索方法及び文字列検索装置を提供することを目的とする。【解決手段】第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、処理をコンピュータに実行させる。【選択図】図８
2015072630.tif 000002
【特許請求の範囲】
【請求項１】
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、
処理をコンピュータに実行させる文字列検索プログラム。
【請求項２】
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定し、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、
処理をコンピュータに実行させる文字列検索プログラム。
【請求項３】
前記ベクトルは、
前記配列における第一の文字と第二の文字との間の距離を示す値と、前記第一の文字に対する前記第二の文字の角度を示す値との組みであり、
前記所定の類似関係を満たすベクトルの列は、
前記第一の文字列に含まれる各文字から得られたベクトルの前記距離を示す値と前記角度の値との差分が所定の範囲内のベクトルの列である請求項２記載の文字列検索プログラム。
【請求項４】
前記五十音表に基づく文字の配列は、清音と濁音とを含む請求項２又は３記載の文字列検索プログラム。
【請求項５】
コンピュータによる文字列検索方法であって、該コンピュータが、
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する文字列検索方法。
【請求項６】
コンピュータによる文字列検索方法であって、該コンピュータが、
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定し、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する文字列検索方法。
【請求項７】
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定する第一特定部と、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定する第二特定部と、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する制御部と、を有する文字列検索装置。
【請求項８】
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定する第一特定部と、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定する第二特定部と、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する制御部と、を有する文字列検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列を検索する文字列検索プログラム、文字列検索方法及び文字列検索装置に関する。
【背景技術】
【０００２】
従来の検索システムでは、検索により目的の文字列を取得する際に、例えば目的の文字列の一部を入力して検索を行う前方一致検索や後方一致検索等が知られている。さらに従来では、例えば表記が揺らいでいる場合でも、統一した表記の文字列を出力する検索システムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５９３８９号公報
【特許文献２】特開平５−１０８００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の検索システムにおいて目的の文字列を検索するためには、少なくとも目的の文字列の一部を正確に入力する必要がある。したがって、例えば目的の文字列の記憶が曖昧なために目的の文字列の一部を正確に入力できない場合等には、検索を行うことが困難であった。
【０００５】
１つの側面では、曖昧に記憶された文字列と関連する文字列を検索することが可能な文字列検索プログラム、文字列検索方法及び文字列検索装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
開示の技術は、第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、処理をコンピュータに実行させる。
【０００７】
上記各処理は、上記各処理を実現する機能部、上記各処理を手順としてンピュータにより実行させる方法、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【０００８】
あいまいに記憶された文字列と関連する文字列を検索することができる。
【図面の簡単な説明】
【０００９】
【図１】文字列検索装置のハードウェア構成の一例を示す図である。
【図２】文字列検索装置の機能構成を説明する図である。
【図３】文字座標列表の一例を示す図である。
【図４】文字座標列表における座標の保持の仕方の一例を示す図である。
【図５】距離方向算出部の処理を説明する図である。
【図６】母集団の登録の処理を説明するフローチャートである。
【図７】母集団データベースの一例を示す図である。
【図８】文字列検索装置における検索の処理を説明するフローチャートである。
【図９】検索キーとなる文字列に含まれる文字間の方向と距離の一例を示す図である。
【図１０】検索キーの入力画面の一例を示す図である。
【図１１】検索結果が表示された出力画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して本実施例について説明する。図１は、文字列検索装置のハードウェア構成の一例の示す図である。
【００１１】
文字列検索装置１００は、それぞれバスＢで相互に接続されている入力装置１１，出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６及びインターフェース装置１７を含む。
【００１２】
入力装置１１はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置等を含み、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム，ＬＡＮカード等を含み、ネットワークＮに接続する為に用いられる。
【００１３】
文字列検索プログラムは、文字列検索装置１００を制御する各種プログラムの少なくとも一部である。文字列検索プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。文字列検索プログラムを記録した記録媒体２８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１４】
また、文字列検索プログラムは、文字列検索プログラムを記録した記録媒体１８がドライブ装置１３にセットされるとは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた文字列検索プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００１５】
補助記憶装置１４は、インストールされた文字列検索プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から文字列検索プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された文字列検索プログラムに従って、後述するような各種処理を実現している。
【００１６】
本実施例の文字列検索装置１００は、例えばタブレット型のコンピュータであっても良い。また本実施例の文字列検索装置１００は、例えばスマートフォンを含む多機能の携帯電話あっても良い。
【００１７】
次に図２を参照して、本実施例の文字列検索装置１００の機能について説明する。図２は、文字列検索装置の機能構成を説明する図である。
【００１８】
本実施例の文字列検索装置１００は、入力受付部１１０、距離方向算出部１２０、母集団登録部１３０、許容範囲設定部１４０、検索部１５０、文字列抽出部１６０、出力部１７０を有する。後述する各部の機能は、演算処理装置１６が文字列検索プログラムを実行することで実現される。
【００１９】
また本実施例の文字列検索装置１００は、文字座標列表２１０、母集団データベース２２０を有する。文字座標列表２１０と母集団データベース２２０とは、例えば補助記憶装置１４等の所定の記憶領域に格納されていても良い。
【００２０】
本実施例の文字列検索装置１００は、検索キーとなる文字列（以下、単に検索キーと呼ぶ。）が入力されると、文字列に含まれる各文字について、文字座標列表２１０における文字同士の距離と方向を算出する。そして文字列検索装置１００は、算出した距離と方向とを用いて母集団データベース２２０を検索し、抽出された文字列を検索キーと関連する文字列として出力する。文字座標列表２１０と母集団データベース２２０の詳細は後述する。
【００２１】
本実施例の文字列検索装置１００の入力受付部１１０は、入力装置１１から入力されたデータを受け付ける。本実施例において、入力装置１１から入力されるデータは、例えば検索キーや、後述する許容範囲に関するパラメータ等である。
【００２２】
距離方向算出部１２０は、文字列に含まれる文字のうち、隣り合う文字同士の文字座標列表２１０における距離と方向とを算出する。距離方向算出部１２０の詳細は後述する。
【００２３】
母集団登録部１３０は、母集団データベース２２０の登録を行う。本実施例では、母集団データベース２２０に格納する文字列群が入力されると、各文字列において隣り合う文字同士の距離と方向を算出し、文字列と対応付けた１つのレコードとして母集団データベース２２０へ登録する。尚、隣り合う文字同士の距離と方向は、距離方向算出部１２０により算出される。
【００２４】
許容範囲設定部１４０は、距離方向算出部１２０により算出された距離と方向を所定範囲の値とするためのパラメータを設定する。本実施例のパラメータは、具体的には距離を所定の範囲の値とする距離パラメータと、方向を所定の範囲の値とする方向パラメータとを含む。本実施例のパラメータは、例えば予めメモリ装置２５等に複数種類格納されていても良い。許容範囲設定部１４０は、メモリ装置２５から母集団データベース２２０に対応したパラメータを取得して設定しても良い。パラメータの詳細は後述する。
【００２５】
検索部１５０は、入力受付部１１０が受け付けた検索キーについて、距離方向算出部１２０が算出した距離と方向及び設定されたパラメータに基づき母集団データベース２２０を検索する。検索部１５０の処理の詳細は後述する。
【００２６】
文字列抽出部１６０は、検索部１５０による検索の結果として該当する文字列を母集団データベース２２０から抽出する。出力部１７０は、抽出された文字列を検索キーと関連する関連文字列として出力装置１２等により出力する。
【００２７】
尚、本実施例の文字列検索装置１００は、例えば端末装置とネットワークを介して接続されていても良い。この場合文字列検索装置１００は、例えば端末装置において入力された検索キーを検索要求と共に受け付け、検索キーに基づく検索を行い、その結果を端末装置へ出力しても良い。
【００２８】
以下に図３を参照して本実施例の文字座標列表２１０について説明する。図３は、文字座標列表の一例を示す図である。
【００２９】
本実施例の文字座標列表２１０は、五十音表に基づき文字を配列した表である。
【００３０】
五十音表は、日本語の仮名文字（平仮名、片仮名）を母音に基づき縦に五字、子音に基づき横に十字ずつ並べたものであり、言語音に関する物理的特性を扱うとされている音声学に基づき配列されている。言語音とは、いわゆる音のうち言語に用いられるものを示し、子音と母音に分けられる。
【００３１】
母音は、口腔内で呼気の流れがあまり妨げられないで発せれられる言語音であり、子音は、口腔内で呼気の流れがある程度妨げられて発せれられる言語音である。
【００３２】
子音は、調音点及び調音法に基づいて分類されている。より具体的には、子音は、調音法より、調音点において呼気がどのように流れるか、あるいは流れないかにより分類される。
【００３３】
調音点とは、肺から唇までの発声器官の中で、音の区別に大きく係る部分を指す。調音法とは、喉頭以上の調音器官の形や動きによって発声器官内の空気の流れを制御したり、発声器官内で発生する音声の共鳴の仕方を変化させたり、新たな音を発生あるいは追加したりして、さまざまな母音や子音を発生させる方法である。
【００３４】
この調音点と調音法に基づいて主要な子音を配置した表に発音記号を配置すると、五十音表の「あかさたな・・・」の順序は、調音点の喉の奥から口の前の方という並びになると考えられている。すなわち五十音表における文字の配列は、音声学的な観点で定められた配列であると言える（参考：「言語学の基礎／アカサタナの謎：音声学の基礎」http://culture.cc.hirosaki-u.ac.jp/english/utsumi/linguistics/lingusitics_c2_ja.html）。
【００３５】
そこで本願の発明者は、記憶があいまいな文字列は、文字の情報ではなく音声の情報として記憶される可能性がある点に着目し、五十音表に基づく文字座標列表２１０における文字と文字の位置関係を検索に用いることを考えた。本実施例における文字と文字の位置関係とは、距離方向算出部１２０により算出される、文字座標列表２１０における文字と文字の間の距離と方向により示される。
【００３６】
本実施例の文字座標列表２１０では、Ｘ軸方向に子音を並べ、Ｙ軸方向に母音を配列した。すなわち本実施例では、文字座標列表２１０におけるＹ軸方向の座標の変化は、母音の遷移を示し、文字座標列表２１０におけるＸ軸方向の座標の変化は、子音の遷移を示す。また本実施例の文字座標列表２１０では、子音の次に濁音を配置した。
【００３７】
本実施例の文字座標列表２１０は、例えば図４に示すように各文字の座標の値を保持していても良い。図４は、文字座標列表における座標の保持の仕方の一例を示す図である。
【００３８】
本実施例では、図４に示すように、文字と、文字のＸ座標とＹ座標とを対応付けて格納したデータベースを文字座標列表２１０として保持しても良い。
【００３９】
また本実施例の文字座標列表２１０は、母集団データベース２２０と対応して設けられていても良い。
【００４０】
次に図５を参照して本実施例の距離方向算出部１２０の処理について説明する。図５は、距離方向算出部の処理を説明する図である。
【００４１】
図５では、例えば入力受付部１１０が「デイデイコ」という文字列を検索キーとして受け付けた場合について説明する。
【００４２】
本実施例の距離方向算出部１２０は、文字座標列表２１０における文字列「デイデイコ」に含まれる各文字の座標を取得する。
【００４３】
文字座標列表２１０において、文字列「デイデイコ」に含まれる最初の文字「デ」の座標（Ｘ１，Ｙ１）は、（１３，４）である。文字「イ」の座標（Ｘ２，Ｙ２）は、（１，２）である。文字「コ」の座標（Ｘ３，Ｙ３）は、（２，５）である。
【００４４】
本実施例の距離方向算出部１２０は、各文字の座標を用い文字間の距離と方向を算出する。始めに、距離方向算出部１２０による文字間の距離の算出について説明する。
【００４５】
本実施例において、座標（Ｘ１，Ｙ１）の文字「デ」と、座標（Ｘ２，Ｙ２）の文字「イ」との間の距離Ｌは、以下の式（１）で算出される。
【００４６】
Ｌ＝√｛（Ｘ１−Ｘ２）２＋（Ｙ１−Ｙ２）２｝          式（１）
したがって「デ」と文字「イ」との間の距離Ｌ＝√｛（１３−１）２＋（４−２）２｝＝１２．１６（小数点第３位以下切り捨て）となる。
【００４７】
本実施例の距離方向算出部１２０は、以上のようにして各文字間の距離を算出する。
【００４８】
次に、距離方向算出部１２０による文字間の方向の算出について説明する。本実施例では、先に入力された文字に対する次に入力された文字の文字座標列表２１０における角度を文字間の方向とする。
【００４９】
以下に文字「デ」に対する文字「イ」の方向について説明する。文字列「デイデイコ」において、文字「デ」の次に入力された文字が「イ」である。よって本実施例の距離方向算出部１２０は、文字座標列表２１０における文字「デ」に対する文字「イ」の角度を文字「デ」に対する文字「イ」の方向を示す値として算出する。以下の説明では、方向を示す値を単に方向と呼ぶ。
【００５０】
文字座標列表２１０における文字「デ」に対する文字「イ」の角度θは、各文字の座標を用いて以下の式（２）で算出される。
【００５１】
θ＝ｔａｎ−１｛（Ｙ１−Ｙ２）／（Ｘ１−Ｘ２）｝×１８０／π      式（２）
したがって文字「デ」に対する文字「イ」の方向θ＝ｔａｎ−１｛（４−２）／（１３−１）｝＝９．４６（小数点第３位以下切り捨て）となる。
【００５２】
本実施例では、以上のようにして算出した文字「デ」と文字「イ」の間の距離と、文字「デ」に対する文字「イ」の向きを、文字座標列表２１０における文字「デ」と文字「イ」の位置関係を示すベクトルとする。
【００５３】
次に、本実施例の母集団データベース２２０について説明する。
【００５４】
本実施例の母集団登録部１３０は、例えば管理者により母集団となる文字列群が入力されると、上述した手法により各文字列において隣り合う文字と文字の位置関係を示すベクトルを算出し、文字列とベクトルと対応付けて母集団データベース２２０に登録する。
【００５５】
以下に図６を参照して、本実施例の母集団の登録の処理について説明する。図６は、母集団の登録の処理を説明するフローチャートである。
【００５６】
本実施例の文字列検索装置１００は、検索対象となる母集団である文字列群の入力を受け付けると（ステップＳ６０１）、母集団登録部１３０は、文字列群のうち最初に入力された文字列を取得する（ステップＳ６０２）。
【００５７】
続いて距離方向算出部１２０は、変数ｎ＝０とする（ステップＳ６０３）。続いて距離方向算出部１２０は、ｎ＝ｎ＋１とし、ステップＳ６０２で取得した文字列から、ｎ番目の文字を取得する（ステップＳ６０４）。続いて距離方向算出部１２０は、ｎ番目の文字が文字列における最後の文字か否かを判断する（ステップＳ６０５）。
【００５８】
ステップＳ６０５において最後の文字であった場合、後述するステップＳ６０８へ進む。ステップＳ６０５において最後の文字でない場合、距離方向算出部１２０は、文字座標列表２１０におけるｎ番目の文字とｎ＋１番目の文字の座標を取得し、ｎ番目の文字とｎ＋１番目の文字の位置関係を示すベクトルを算出する（ステップＳ６０６）。具体的には距離方向算出部１２０は、ｎ番目の文字とｎ＋１番目の文字の間の距離と、ｎ番目の文字に対するｎ＋１番目の文字の文字座標列表２１０における方向と、を算出する。算出の方法は、上述した通りである。
【００５９】
続いて母集団登録部１３０は、ステップＳ６０２で取得した文字列と、ｎ番目の文字とｎ＋１番目の文字のベクトルとを対応付けて母集団データベース２２０に格納し（ステップＳ６０７）、ステップＳ６０４へ戻る。
【００６０】
本実施例の母集団登録部１３０は、ステップＳ６０４〜ステップＳ６０７の処理を繰り返すことで、文字列に含まれる全ての文字について、文字と文字との位置関係を示すベクトルを取得することができる。
【００６１】
ステップＳ６０５において、ｎ＋１番目の文字が文字列における最後の文字であった場合、母集団登録部１３０は、ステップＳ６０１で入力された全ての文字列に対して、ステップＳ６０４からステップＳ６０７の処理を実行したか否かを判断する（ステップＳ６０８）。ステップＳ６０８において、全ての文字列について処理を実行していない場合、母集団登録部１３０はステップＳ６０２へ戻る。ステップＳ６０８において全ての文字列について処理を実行した場合、母集団登録部１３０は、母集団の登録の処理を終了する。
【００６２】
図７は、母集団データベースの一例を示す図である。
【００６３】
図７に示す母集団データベース２２０は、文字列と、文字列に含まれる文字と文字の位置関係を示すベクトルとが対応付けられて格納されている。図７に示す母集団データベース２２０は、母集団として入力された文字列群が例えば星座の名前であった場合を示している。
【００６４】
図７に示す母集団データベース２２０は、情報の項目として、星座名を示す文字列、星座の英語名を示す文字列、英語名の発音を示す文字列、英語名の発音を示す文字列に含まれる各文字、各文字の文字座標列表２１０における座標を含む。また母集団データベース２２０は、情報の項目として、英語名の発音を示す文字列の文字間の距離と方向、すなわち文字と文字の位置関係を示すベクトルを含む。
【００６５】
具体的には、項目「距離１」は文字列に含まれる１番目の文字と２番目の文字との間の距離を示し、項目「方向１」は文字列に含まれる１番目の文字に対する２番目の文字の方向を示す。したがって、１番目の文字と２番目の文字の位置関係は、ベクトル（距離１，方向１）と表すことができる。
【００６６】
同様に項目「距離２」は、文字列に含まれる２番目の文字と３番目の文字との間の距離を示し、項目「方向２」は文字列に含まれる２番目の文字に対する３番目の文字の方向を示す。したがって、２番目の文字と３番目の文字の位置関係は、ベクトル（距離２，方向２）と表すことができる。
【００６７】
具体的には例えば、文字列「バランス」において、文字「バ」と文字「ラ」の関係は、ベクトル（５．００，０．００）で示すことができる。また文字「ラ」と文字「ン」の関係は、ベクトル（９．００，０．００）で示すことができる。また文字「ン」と文字「ス」の関係は、ベクトル（１５．１３，−７．５９）で示すことができる。よって文字列「バランス」に含まれる各文字間の関係は、ベクトルの列（５．００，０．００），（９．００，０．００），（１５．１３，−７．５９）で示すことができる。すなわち本実施例のベクトルの列は、文字列「バランス」に含まれる各文字の文字座標列表２１０における遷移の方向を順に示している。言い換えれば、本実施例のベクトルの列は、文字列「バランス」に含まれる各文字の文字座標列表２１０における遷移パターンを特定する値の組みの列である。
【００６８】
本実施例の母集団データベース２２０において、文字列から算出されたベクトルの列は、文字列と対応付けられた１つのレコードとして格納される。
【００６９】
尚図７に示す母集団データベース２２０は、星座の名前が格納されたものとしたが、これに限定されない。母集団データベース２２０は、様々なカテゴリ毎に設けられていても良い。例えば本実施例の文字列検索装置１００は、薬品名が格納された母集団データベースや、キャラクタの名前が格納された母集団データベース等を有していても良い。
【００７０】
次に、図８を参照して本実施例の文字列検索装置１００における検索について説明する。図８は、文字列検索装置における検索の処理を説明するフローチャートである。
【００７１】
本実施例の文字列検索装置１００において、入力受付部１１０が検索キーとなる文字列の入力を受け付けると（ステップＳ８０１）、距離方向算出部１２０は、変数ｎ＝０とする（ステップＳ８０２）。
【００７２】
図８のステップＳ８０３からステップＳ８０５までの処理は、図６のステップＳ６０４からステップＳ６０６までの処理と同様であるから、説明を省略する。
【００７３】
ステップＳ８０３からステップＳ８０５までの処理により、検索キーにおける文字と文字の位置関係を示すベクトルの列が算出される。
【００７４】
本実施例の文字列検索装置１００において許容範囲設定部１４０は、ベクトルの列に含まれる各ベクトルから方向の値を取得し、各方向の値に予め決められた方向パラメータを設定する（ステップＳ８０６）。ステップＳ８０６では、ベクトルの列から方向の値の列が取得され、各方向の値に方向パラメータが設定される。したがってステップＳ８０６では、所定範囲の方向の値の列が取得される。
【００７５】
続いて検索部１５０は、母集団データベース２２０を、ステップＳ８０６で取得した所定範囲の方向の値の列で検索する（ステップＳ８０７）。
【００７６】
ステップＳ８０７の検索の結果、方向の値の列が、所定範囲の方向の値の列に含まれる文字列が存在しない場合（ステップＳ８０８）、文字列検索装置１００は、後述するステップＳ８１４へ進む。ステップＳ８０７の検索の結果、該当する文字列が存在する場合、文字列抽出部１６０は、該当する文字列を抽出する（ステップＳ８０９）。
【００７７】
続いて検索部１５０は、ベクトルの列に含まれる各ベクトルから距離の値を取得し、各距離の値に予め決められた距離パラメータを設定する（ステップＳ８１０）。ステップＳ８１０は、各ベクトルから取得され距離の値の列が取得され、各距離の値に距離パラメータが設定される。したがってステップＳ８１０では、所定範囲の距離の値の列が取得される。
【００７８】
続いて検索部１５０は、ステップＳ８０９で抽出した文字列を、ステップＳ８１０で取得した所定範囲の距離の値の列で検索する（ステップＳ８１１）。
【００７９】
ステップＳ８１１の検索の結果、ステップＳ８０９で抽出された文字列において、距離の値の列が所定範囲の距離の値の列に含まれる文字列が存在しない場合（ステップＳ８１２）、文字列検索装置１００は、後述するステップＳ８１４へ進む。ステップＳ８１１の検索の結果、該当する文字列が存在する場合、文字列抽出部１６０は、該当する文字列を抽出し、出力部１７０は、抽出された文字列を検索結果として出力装置１２に表示させる（ステップＳ８１３）。ステップＳ８１３で出力される文字列は、検索キーと関連した文字列である。
【００８０】
続いて文字列検索装置１００は、入力受付部１１０において、パラメータの調整を受け付けたか否かを判断する（ステップＳ８１４）。
【００８１】
ステップＳ８１４においてパラメータが調整された場合、文字列検索装置１００はステップＳ８０６の処理へ戻る。ステップＳ８１４においてパラメータが調整されない場合、文字列検索装置１００は処理を終了する。
【００８２】
本実施例では、ステップＳ８１３で出力された検索キーと関連する文字列に、取得すべき目的の文字列が含まれている場合には、検索の処理を終了しても良い。また検索キーと関連する文字列に、目的の文字列の一部が含まれている場合には、目的の文字列の一部を検索キーとして再度検索を行っても良い。
【００８３】
以下に図８で説明した検索の処理について具体的に説明する。図９は、検索キーとなる文字列に含まれる文字間の方向と距離の一例を示す図である。
【００８４】
図９では、検索キーとして「ヤンス」という文字列が入力された場合について説明する。本実施例の距離方向算出部１２０は、文字座標列表２１０を参照し、文字「ヤ」と文字「ン」の位置関係を示すベクトルを算出する。
【００８５】
図９の例では、文字「ヤ」と文字「ン」の距離は１０．００であり、文字「ヤ」に対する文字「ン」の方向を示す値は０．００である。よって文字座標列表２１０における文字「ヤ」と文字「ン」の位置関係は、ベクトル（１０．００，０．００）で示される。同様に文字「ン」と文字「ス」の距離は１５．１３であり、文字「ン」に対する文字「ス」の方向を示す値は−７．５９である。よって文字座標列表２１０における文字「ン」と文字「ス」の位置関係は、ベクトル（１５．１３，−７．５９）で示される。
【００８６】
したがって、検索キー「ヤンス」に含まれる各文字と文字の位置関係は、ベクトルの列（１０．００，０．００）、（１５．１３，−７．５９）により示される。本実施例では、図８のステップＳ８０５までの処理で、検索キーの含まれる各文字と文字の位置関係を示すベクトルの列が得られる。
【００８７】
次にステップＳ８０６の処理を具体的に説明する。
【００８８】
本実施例の許容範囲設定部１４０は、ベクトルの列（１０．００，０．００）、（１５．１３，−７．５９）から、方向の値の列を取得する。各ベクトルにおける方向の値は、０．００，−７．５９であるから、ここで取得される方向の値の列は、０．００，−７．５９である。
【００８９】
つぎに本実施例の許容範囲設定部１４０は、それぞれの方向の値に方向パラメータを設定する。本実施例では、例えば方向パラメータを±２．００とした。許容範囲設定部１４０は、それぞれの方向に値に、方向パラメータを±２．００を設定することで、方向の値を所定範囲の方向の値とする。
【００９０】
方向の値０．００は、方向パラメータ±２．００が設定されると、範囲−２．００〜２．００の方向の値となる。方向の値−７．５９は、方向パラメータ±２．００が設定されると、範囲−９．５９〜−５．５９の方向の値となる。
【００９１】
したがって方向の値の列は、（−２．００〜２．００），（−９．５９〜−５．５９）という所定範囲の方向の値の列となる。ステップＳ８０６では、この所定範囲の方向の値の列が取得される。
【００９２】
次に検索部１５０は、母集団データベース２２０から、所定範囲の方向の値の列（−２．００〜２．００），（−９．５９〜−５．５９）に方向の列の値が含まれる文字列を検索する。
【００９３】
本実施例の母集団データベース２２０において、英語名の発音を示す文字列「バランス」から得られるベクトルの列は、（５．００，０．００），（９．００，０．００），（１５．１３，−７．５９）てである。またこのベクトルの列から取得される方向の値の列は、０．００，０．００，−７．５９である。
【００９４】
この方向の値の列に含まれる列０．００，−７．５９は、所定範囲の方向の値の列（−２．００〜２．００），（−９．５９〜−５．５９）に含まれる。よってステップＳ８０９では、文字列抽出部１６０により文字列「バランス」が抽出される。
【００９５】
以上のように本実施例では、検索キーに含まれる文字と文字から得たベクトルを所定範囲の値の組みとすることで、文字座標列表２１０において検索キーに含まれる各文字の位置関係と所定の類似関係にある文字列を抽出できる。
【００９６】
ここで、母集団データベース２２０に該当する文字列が存在しなかった場合について考える。本実施例では、この場合に所定範囲を広げるように、方向パラメータを調整（変更）することができる。
【００９７】
具体的には例えば、方向パラメータを±２．００から±３．００とすれば、文字座標列表２１０における文字間の角度がより広い範囲である文字列を該当文字列として抽出することができる。よって母集団データベース２２０からより多くの候補となる文字列を抽出することができる。
【００９８】
ステップＳ８０７で文字列「バランス」が抽出されると、次に検索部１５０は、ベクトルの列（１０．００，０．００）、（１５．１３，−７．５９）から、距離の値の列を取得する。各ベクトルにおける距離の値は、１０．００，１５．１３であるから、ここで取得される方向の値の列は、１０．００，１５．１３である。
【００９９】
つぎに本実施例の許容範囲設定部１４０は、それぞれの距離の値に距離パラメータを設定する。本実施例では、例えば距離パラメータを±１．００とした。許容範囲設定部１４０は、それぞれの距離の値に、距離パラメータを±１．００を設定することで、距離の値を所定範囲の距離の値とする。
【０１００】
距離の値１０．００は、距離パラメータ±１．００が設定されると、範囲９．００〜１１．００の距離の値となる。距離の値１５．１３は、距離パラメータ±１．００が設定されると、範囲１４．１３〜１６．１３の距離の値となる。
【０１０１】
したがって距離の値の列は、（９．００〜１１．００），（１４．１３〜１６．１３）という所定範囲の距離の値の列となる。ステップＳ８１０では、この所定範囲の距離の値の列が取得される。
【０１０２】
次に検索部１５０は、ステップＳ８０９で抽出された文字列から、所定範囲の距離の値の列（９．００〜１１．００），（１４．１３〜１６．１３）に距離の値の列が含まれる文字列を検索する。
【０１０３】
ステップＳ８０９で抽出された文字列は、「バランス」である。「バランス」の距離の値の列は、１０．００，１５．１３であり、所定範囲の距離の値の列（９．００〜１１．００），（１４．１３〜１６．１３）に含まれる。
【０１０４】
よって出力部１７０は、検索キー「ヤンス」と関連する文字列として、「バランス」を出力装置１２に表示させる。
【０１０５】
ここで、ステップＳ８０９で抽出された文字列に該当する文字列が存在しなかった場合について考える。本実施例では、この場合に所定範囲を広げるように、距離パラメータを調整（変更）しても良い。距離パラメータの範囲を広げれば、文字座標列表２１０におけるける文字間の距離がより広い範囲である文字列を該当文字列として抽出できる。
【０１０６】
また本実施例では、方向パラメータの範囲と距離パラメータの範囲とを狭くするように調整することもできる。
【０１０７】
本実施例において、例えば検索キーと関連する文字列として、複数の文字列が抽出された場合、ステップＳ８１４において方向パラメータの範囲と距離パラメータの範囲を狭くすれば、文字と文字の位置関係がより検索キーと類似した文字列を抽出することができる。
【０１０８】
また本実施例では、方向パラメータと距離パラメータとを設定してから検索部１５０による検索を行うものとしたが、これに限定されない。
【０１０９】
例えば文字列検索装置１００は、最初に検索キーから得られたベクトルの列を用いて母集団データベース２２０を検索しても良い。この検索により抽出される文字列は、検索キーと同じ文字列を含む文字列となる。また文字列検索装置１００は、検索キーから得られたベクトルの列を用いた検索において、該当する文字列が存在しなかった場合に、方向パラメータと距離パラメータを設定し、再度検索を行っても良い。また設定するパラメータは、方向パラメータ又は距離パラメータの何れか一方であっても良い。
【０１１０】
また本実施例では、母集団データベース２２０は、検索対象となる文字列群のベクトルの列が母集団登録部１３０により予め登録されているものとして説明したが、これに限定されない。文字列検索装置１００は、例えばる文字列群のみが予め母集団データベース２２０に格納されており、検索の処理と並行して文字列群に含まれる各文字列のベクトルの列を算出しても良い。
【０１１１】
以下に図１０、図１１を参照し、本実施例における検索キーの入力画面と、検索結果の出力画面について説明する。
【０１１２】
図１０は、検索キーの入力画面の一例を示す図である。図１０に示す入力画面１０１は、検索キーとなる文字列の入力欄１０２と、パラメータの範囲を設定する設定バー１０３と、検索の実行を指示する指示ボタン１０４、１０５とが表示されている。
【０１１３】
本実施例では、例えば設定バー１０３上のスライダ１０３ａを上下させることで、パラメータの値が調整されても良い。尚図１０の例では、パラメータを設定する設定バー１０３は１つのみ表示されるものとしたが、設定バー１０３は、方向パラメータと距離パラメータのそれぞれと対応して２つ表示されても良い。または図１０に示す設定バー１０３により設定された範囲が、方向パラメータと距離パラメータの両方に設定されても良い。
【０１１４】
また本実施例の文字列検索装置１００は、入力画面１０１において指示ボタン１０４が操作された際は、パラメータを設定せずに検索を行っても良い。また本実施例の文字列検索装置１００は、入力画面１０１において指示ボタン１０５が操作された際は、設定バー１０３で設定されたパラメータを用いて検索を行っても良い。
【０１１５】
図１１は、検索結果が表示された出力画面の一例を示す図である。
【０１１６】
本実施例の出力画面１１１には、検索キーと関連する文字列が表示される表示欄１１２と、検索の結果抽出された文字列の数を表示するメッセージ１１３とが表示される。また本実施例の出力画面１１１には、再検索の実行を指示する指示ボタン１０６が表示される。本実施例の文字列検索装置１００は、例えば設定バー１０３でパラメータの範囲が調整された後に指示ボタン１０６が操作されたとき、再検索を実行しても良い。また本実施例の文字列検索装置１００は、例えば入力欄１０２に新たな検索キーが入力された後に指示ボタン１０６が操作されたとき、検索を実行しても良い。
【０１１７】
以上のように本実施例の文字列検索装置１００は、検索対象となる文字列群について、文字座標列表２１０に基づき、各文字列における文字と文字の位置関係を示すベクトルを予め算出し、母集団データベース２２０に登録する。
【０１１８】
また本実施例の文字列検索装置１００は、検索キーが入力されると、検索対象となる文字列群を母集団データベース２２０に登録する際に用いた文字座標列表２１０に基づき、検索キーに含まれる文字と文字の位置関係を示すベクトルを算出する。
【０１１９】
そして本実施例の文字列検索装置１００は、検索キーから得られたベクトルを用いて、母集団データベース２２０を検索する。
【０１２０】
すなわち本実施例では、五十音表に基づく文字座標列表２１０における文字と文字の位置関係を検索に用いることで、検索キーが検索により得られる目的の文字列と一致していなくても、検索キーと関連する文字列を検索することができる。したがって本実施例では、目的の文字列の一部を正確に入力できない場合でも、検索を行うことができる。
【０１２１】
本実施例の文字列検索装置１００は、例えば図書館における蔵書の検索や、薬品名や外国の地名等のカタカナ文字で類似した名称が多い文字列群（データベース）における所望の文字列の検索等に用いることができる。これらの検索に本実施例の文字列検索装置１００を用いることで、蔵書の名称や薬品の名称、地名等を正確に記憶していなくても、正しい名称や地名の候補を検索キーと関連する文字列とてして抽出することができる。
【０１２２】
また本実施例の文字列検索装置１００は、例えば母集団データベースを教材に関する情報が格納されたデータベースとしても良い。この場合、問いを検索キーとして入力させ、検索結果として出力された検索キーと関連する文字列を問いに対するヒントとして提供しても良い。
【０１２３】
開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、
処理をコンピュータに実行させる文字列検索プログラム。
（付記２）
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定し、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する、
処理をコンピュータに実行させる文字列検索プログラム。
（付記３）
前記ベクトルは、
前記配列における第一の文字と第二の文字との間の距離を示す値と、前記第一の文字に対する前記第二の文字の角度を示す値との組みであり、
前記所定の類似関係を満たすベクトルの列は、
前記第一の文字列に含まれる各文字から得られたベクトルの前記距離を示す値と前記角度の値との差分が所定の範囲内のベクトルの列である付記２記載の文字列検索プログラム。
（付記４）
前記五十音表に基づく文字の配列は、清音と濁音とを含む付記２又は３記載の文字列検索プログラム。
（付記５）
前記第二の文字列を特定する処理は、
文字列群の文字列毎に、前記文字列に含まれる各文字から得られた前記配列におけるベクトルの列が格納された記憶部において、前記第一の文字列から特定されたベクトルの列と前記所定の類似関係を満たすベクトルの列と対応する文字列を第二の文字列に特定する付記２乃至４の何れか一項に記載の文字列検索プログラム。
（付記６）
入力された前記文字列群の文字列毎に、前記文字列に含まれる各文字の前記配列におけるベクトルの列を算出し、
前記文字列と前記ベクトルの列とを対応させて前記記憶部に格納する処理をコンピュータに実行させる付記５記載の文字列検索プログラム。
（付記７）
コンピュータによる文字列検索方法であって、該コンピュータが、
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定し、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する文字列検索方法。
（付記８）
コンピュータによる文字列検索方法であって、該コンピュータが、
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定し、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定し、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する文字列検索方法。
（付記９）
第一の文字列に含まれる各文字の母音成分の遷移パターンを特定する第一特定部と、
特定した前記遷移パターンと所定の類似関係を満たす遷移パターンで各文字の母音成分が遷移する第二の文字列を特定する第二特定部と、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する制御部と、を有する文字列検索装置。
（付記１０）
第一の文字列に含まれる各文字の五十音表に基づく文字の配列における遷移の方向と順を示すベクトルの列を特定する第一特定部と、
前記ベクトルの列と所定の類似関係を満たすベクトルの列によって前記配列における遷移の方向と順が示される第二の文字列を特定する第二特定部と、
前記第二の文字列を前記第一の文字列の関連文字列として出力するか、又は前記第二の文字列を検索キーとした検索を実行する制御部と、を有する文字列検索装置。
【０１２４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から
逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１２５】
１００  文字列検索装置
１１０  入力受付部
１２０  距離方向算出部
１３０  母集団登録部
１４０  許容範囲設定部
１５０  検索部
１６０  文字列抽出部
１７０  出力部
２１０  文字座標列表
２２０  母集団データベース
【図１】
2015072630.tif 000003
【図２】
2015072630.tif 000004
【図３】
2015072630.tif 000005
【図４】
2015072630.tif 000006
【図５】
2015072630.tif 000007
【図６】
2015072630.tif 000008
【図７】
2015072630.tif 000009
【図８】
2015072630.tif 000010
【図９】
2015072630.tif 000011
【図１０】
2015072630.tif 000012
【図１１】
2015072630.tif 000013