(57)【特許請求の範囲】
【請求項１】
検索ログを取得する検索ログ取得手段と、
取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段と、
セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、
分割された文字列に基づいて検索データベースを検索する第１検索手段と、
検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、
算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段と
を備えたことを特徴とするクエリセグメント位置決定装置。
【請求項２】
請求項１に記載のクエリセグメント位置決定装置において、
前記クエリ分割手段は、形態素解析により検索クエリを複数の文字列に分割する
ことを特徴とするクエリセグメント位置決定装置。
【請求項３】
請求項１に記載のクエリセグメント位置決定装置において、
前記クエリ分割手段は、検索ログから最も分割数の多いパターンを選択することで検索クエリを複数の文字列に分割する
ことを特徴とするクエリセグメント位置決定装置。
【請求項４】
請求項１に記載のクエリセグメント位置決定装置において、
前記クエリ分割手段は、検索ログから文字列の結合モデルを複数生成することで検索クエリを複数の文字列に分割する
ことを特徴とするクエリセグメント位置決定装置。
【請求項５】
検索ログを取得する検索ログ取得手段と、
取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段と、
セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、
分割された文字列に基づいて検索データベースを検索する第１検索手段と、
検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、
算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段と、
決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習手段と、
ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正手段と、
修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段と
を備えたことを特徴とする検索装置。
【請求項６】
ユーザから検索クエリを受け付ける受付手段と、
受け付けた検索クエリからセパレータを削除するセパレータ削除手段と、
セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、
分割された文字列に基づいて検索データベースを検索する第１検索手段と、
検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、
算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段と、
決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正手段と、
修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段と
を備えたことを特徴とする検索装置。
【請求項７】
検索装置の制御部が、検索ログを取得する検索ログ取得工程と、
前記制御部が、取得した検索ログの検索クエリからセパレータを削除するセパレータ削除工程と、
前記制御部が、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割工程と、
前記制御部が、分割された文字列に基づいて検索データベースを検索する第１検索工程と、
前記制御部が、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析工程と、
前記制御部が、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定工程と、
前記制御部が、決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習工程と、
前記制御部が、ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正工程と、
前記制御部が、修正された検索クエリに基づいて前記検索データベースを検索する第２検索工程と
を備えたことを特徴とする検索制御方法。
【請求項８】
検索装置の制御部が、ユーザから検索クエリを受け付ける受付工程と、
前記制御部が、受け付けた検索クエリからセパレータを削除するセパレータ削除工程と、
前記制御部が、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割工程と、
前記制御部が、分割された文字列に基づいて検索データベースを検索する第１検索工程と、
前記制御部が、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析工程と、
前記制御部が、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定工程と、
前記制御部が、決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正工程と、
前記制御部が、修正された検索クエリに基づいて前記検索データベースを検索する第２検索工程と
を備えたことを特徴とする検索制御方法。
【請求項９】
検索装置を構成するコンピュータを、
検索ログを取得する検索ログ取得手段、
取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段、
セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段、
分割された文字列に基づいて検索データベースを検索する第１検索手段、
検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段、
算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段、
決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習手段、
ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正手段、
修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段
として機能させる検索制御プログラム。
【請求項１０】
検索装置を構成するコンピュータを、
ユーザから検索クエリを受け付ける受付手段、
受け付けた検索クエリからセパレータを削除するセパレータ削除手段、
セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段、
分割された文字列に基づいて検索データベースを検索する第１検索手段、
検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段、
算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段、
決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正手段、
修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段
として機能させる検索制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索エンジン等における検索クエリに対する操作技術に関する。
【背景技術】
【０００２】
インターネット上には、膨大な情報の中から所望の情報を探し出すためのツールとして検索エンジンと呼ばれるサイトが設けられている。
【０００３】
検索エンジンには、予め機械的あるいは人的に、検索キーワードと当該検索キーワードが含まれるページとを対応付けた検索ＤＢ（Data Base）が設けられており、ユーザが端末装置から入力した検索クエリに基づいて検索ＤＢを検索し、ヒットしたページのタイトルやスニペット等をＵＲＬ（Uniform Resource Locator）リンクを伴って検索結果として端末装置に表示する。ユーザはタイトルやスニペット等を見た上で実際のページを見てみようと思った場合、タイトル等を選択することでリンクされたページに画面が遷移する。
【０００４】
ところで、検索クエリとしては、一つの単語等を指定する場合のほかに、「まんが□立ち読み」といったように、スペース「□」等をセパレータとして指定する場合が多い。この場合、「まんが」と「立ち読み」の両者を含むページが検索（ＡＮＤ検索）される。検索エンジンは、「まんが」に基づく検索結果と「立ち読み」に基づく検索結果とをＡＮＤ演算し、最終的な検索結果としてユーザに返す。なお、セパレータにより区切ることはセグメンテーションと呼ばれ、検索クエリ上のセパレータの位置はクエリセグメント位置と呼ばれる。
【０００５】
しかし、ユーザが適切な位置にセパレータを入れるとは限らず、セパレータを除けば同じ文字列であっても、クエリセグメント位置の違いによって検索結果が変わってしまい、所望の検索結果が得られない場合がある。例えば、上記の例「まんが□立ち読み」に代えて「まんが立ち□読み」と入力された場合、検索エンジンは「まんが立ち」と「読み」を個別に検索し、それぞれの検索結果のＡＮＤ演算を行うため、「まんが□立ち読み」の最終的な検索結果とは異なってしまう。より現実的な例としては、芸能人の楽曲のタイトル等を検索しようとした場合、楽曲のタイトルが２つ以上の語に分割できる場合に、連続して検索クエリにした場合と途中にセパレータを入れて検索クエリにした場合とで検索結果が異なってしまう。この場合、楽曲のタイトルは分割されずに検索ＤＢに登録される場合が多いため、分割せずに連続して検索クエリにした場合は所望の検索結果が得られるが、分割した場合は一般用語のノイズに紛れて所望の検索結果が見つけられないことが多い。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−３０１１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したようにユーザの入力した検索クエリに基づいて単に検索を行ったのでは検索精度の低下を招くこととなり、検索精度を向上する対策が求められていた。
【０００８】
一方、特許文献１には、テキストデータベースに蓄積されたテキストデータに対してテキストセグメンテーションを行う技術が開示されているが、検索クエリを対象としたものではない。
【０００９】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、ユーザにより入力された検索クエリのクエリセグメント位置を適正な位置に修正することで、検索精度を高めることにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、検索ログを取得する検索ログ取得手段と、取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段と、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、分割された文字列に基づいて検索データベースを検索する第１検索手段と、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段とを備えるクエリセグメント位置決定装置を要旨としている。
【００１１】
また、請求項２に記載されるように、請求項１に記載のクエリセグメント位置決定装置において、前記クエリ分割手段は、形態素解析により検索クエリを複数の文字列に分割するようにすることができる。
【００１２】
また、請求項３に記載されるように、請求項１に記載のクエリセグメント位置決定装置において、前記クエリ分割手段は、検索ログから最も分割数の多いパターンを選択することで検索クエリを複数の文字列に分割するようにすることができる。
【００１３】
また、請求項４に記載されるように、請求項１に記載のクエリセグメント位置決定装置において、前記クエリ分割手段は、検索ログから文字列の結合モデルを複数生成することで検索クエリを複数の文字列に分割するようにすることができる。
【００１４】
また、請求項５に記載されるように、検索ログを取得する検索ログ取得手段と、取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段と、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、分割された文字列に基づいて検索データベースを検索する第１検索手段と、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段と、決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習手段と、ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正手段と、修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段とを備える検索装置として構成することができる。
【００１５】
また、請求項６に記載されるように、ユーザから検索クエリを受け付ける受付手段と、受け付けた検索クエリからセパレータを削除するセパレータ削除手段と、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段と、分割された文字列に基づいて検索データベースを検索する第１検索手段と、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段と、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段と、決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正手段と、修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段とを備える検索装置として構成することができる。
【００１６】
また、請求項７に記載されるように、検索装置の制御部が、検索ログを取得する検索ログ取得工程と、前記制御部が、取得した検索ログの検索クエリからセパレータを削除するセパレータ削除工程と、前記制御部が、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割工程と、前記制御部が、分割された文字列に基づいて検索データベースを検索する第１検索工程と、前記制御部が、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析工程と、前記制御部が、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定工程と、前記制御部が、決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習工程と、前記制御部が、ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正工程と、前記制御部が、修正された検索クエリに基づいて前記検索データベースを検索する第２検索工程とを備える検索制御方法として構成することができる。
【００１７】
また、請求項８に記載されるように、検索装置の制御部が、ユーザから検索クエリを受け付ける受付工程と、前記制御部が、受け付けた検索クエリからセパレータを削除するセパレータ削除工程と、前記制御部が、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割工程と、前記制御部が、分割された文字列に基づいて検索データベースを検索する第１検索工程と、前記制御部が、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析工程と、前記制御部が、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定工程と、前記制御部が、決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正工程と、前記制御部が、修正された検索クエリに基づいて前記検索データベースを検索する第２検索工程とを備える検索制御方法として構成することができる。
【００１８】
また、請求項９に記載されるように、検索装置を構成するコンピュータを、検索ログを取得する検索ログ取得手段、取得した検索ログの検索クエリからセパレータを削除するセパレータ削除手段、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段、分割された文字列に基づいて検索データベースを検索する第１検索手段、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段、決定されたクエリセグメント位置に基づいてパターン認識部の学習を行う学習手段、ユーザから入力された検索クエリを前記パターン認識部によりクエリセグメント位置の適否を判断し、適正なクエリセグメント位置に修正を行うクエリ修正手段、修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段として機能させる検索制御プログラムとして構成することができる。
【００１９】
また、請求項１０に記載されるように、検索装置を構成するコンピュータを、ユーザから検索クエリを受け付ける受付手段、受け付けた検索クエリからセパレータを削除するセパレータ削除手段、セパレータが削除された検索クエリを複数の文字列に分割するクエリ分割手段、分割された文字列に基づいて検索データベースを検索する第１検索手段、検索結果に基づいて、分割された一の文字列が隣接する文字列と連接共起する頻度をスコアとして算出する解析手段、算出されたスコアに基づいてクエリセグメント位置を決定するクエリセグメント位置決定手段、決定されたクエリセグメント位置決定手段に基づいて検索クエリを修正するクエリ修正手段、修正された検索クエリに基づいて前記検索データベースを検索する第２検索手段として機能させる検索制御プログラムとして構成することができる。
【発明の効果】
【００２０】
本発明にあっては、ユーザにより入力された検索クエリのクエリセグメント位置を適正な位置に修正することで、検索精度を高めることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態にかかるシステムの構成例を示す図である。
【図２】検索ログのデータ構造例を示す図である。
【図３】検索ＤＢのデータ構造例を示す図である。
【図４】検索装置のハードウェア構成例を示す図である。
【図５】第１の実施形態の処理例を示すフローチャートである。
【図６】データの遷移の様子を示す図（その１）である。
【図７】学習データの例を示す図である。
【図８】データの遷移の様子を示す図（その２）である。
【図９】本発明の第２の実施形態にかかるシステムの構成例を示す図である。
【図１０】第２の実施形態の処理例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の好適な実施形態につき説明する。
【００２３】
＜第１の実施形態＞
図１は本発明の第１の実施形態にかかるシステムの構成例を示す図である。
【００２４】
図１において、インターネット等のネットワーク１には、ユーザが操作するＰＣ（Personal Computer）、携帯電話、ＰＤＡ（Personal Digital
Assistants）等のユーザ端末２が複数接続されている。ユーザ端末２は、一般的なブラウザ（Ｗｅｂブラウザ）２１を備えている。ブラウザ２１は、インターネットの標準プロトコルであるＨＴＴＰ（Hyper Text Transfer Protocol）等に従い、ＨＴＭＬ（Hyper
Text Markup Language）等の言語で記述されたページデータの要求・取得・表示およびフォームデータの送信等を行う機能を有している。
【００２５】
一方、ネットワーク１には、ユーザの操作するユーザ端末２のブラウザ２１からのアクセスに対してＷｅｂ検索を行って検索結果をユーザ端末２のブラウザ２１に返送する検索装置３が接続されている。
【００２６】
検索装置３は、機能部として、クエリセグメント位置学習部３０１とパターン認識部３０９と検索クエリ受付部３１０と検索クエリ修正部３１１と検索部３１２と検索結果応答部３１３とを備えている。クエリセグメント位置学習部３０１は、検索ログ取得部３０２とセパレータ削除部３０３とクエリ分割部３０４と検索部３０５と検索結果解析部３０６とクエリセグメント位置決定部３０７と学習データ生成・学習要求部３０８とを備えている。
【００２７】
これらの機能部は、検索装置３を構成するコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only
Memory）、ＲＡＭ（Random Access Memory）等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。これらの機能部は、単一のコンピュータ上に配置される必要はなく、必要に応じて分散される形態であってもよい。
【００２８】
また、検索装置３が利用するデータベースとして、検索ログ３１４と検索ＤＢ３１５とが設けられている。これらのデータベースは、検索装置３を構成するコンピュータ内のＨＤＤ（Hard Disk Drive）等の記憶媒体上に所定のデータを体系的に保持するものである。なお、検索ログ３１４と検索ＤＢ３１５は検索装置３内に配置される必要はなく、他の装置上に配置してもよい。
【００２９】
図２は検索ログ３１４のデータ構造例を示す図である。検索ログ３１４は、検索ログ生データと検索ログ集計データとを含んでいる。検索ログ生データは、「検索日時」「検索クエリ」等の項目を含んでいる。「検索日時」は検索が実行された日時である。「検索クエリ」は検索に用いられた検索式である。検索ログ集計データは、「検索クエリ」「検索回数（頻度）」等の項目を含んでいる。「検索クエリ」は、検索に用いられた検索式である。「検索回数（頻度）」は、同じ検索クエリについて検索された回数もしくは頻度である。
【００３０】
図３は検索ＤＢ３１５のデータ構造例を示す図である。検索ＤＢ３１５は、「検索キーワード」「ページＵＲＬ」「タイトル」「要約」等の項目を含んでいる。「検索キーワード」は、検索に用いた文字列である。「ページＵＲＬ」は、検索キーワードが含まれるページのアドレスである。「タイトル」は、ページのタイトルである。「要約」は、ページの内容の一部もしくは全部の文字列である。
【００３１】
図１に戻り、検索装置３のクエリセグメント位置学習部３０１は、バッチ処理として動作し、検索ログ３１４に基づいて検索ＤＢ３１５を検索し、適正なクエリセグメント位置を決定して、ＳＶＭ（Support Vector Machine）等のパターン認識部３０９を学習させる機能を有している。
【００３２】
検索ログ取得部３０２は、検索ログ３１４の検索ログ生データから検索クエリを取得する機能を有している。
【００３３】
セパレータ削除部３０３は、検索ログ取得部３０２の取得した検索クエリからスペース等のセパレータを削除する機能を有している。
【００３４】
クエリ分割部３０４は、セパレータ削除部３０３でセパレータが削除された検索クエリを意味のある範囲で複数の文字列に分割する機能を有している。
【００３５】
検索部３０５は、クエリ分割部３０４で分割された複数の文字列に基づいて検索ＤＢ３１５を検索する機能を有している。
【００３６】
検索結果解析部３０６は、検索部３０５の検索で得られた検索結果を解析し、クエリ分割部３０４で分割された複数の文字列のそれぞれが隣接する文字列と接続された状態でページ上に存在（連接共起）する頻度を表わすスコアを算出する機能を有している。
【００３７】
クエリセグメント位置決定部３０７は、検索結果解析部３０６の算出したスコアに基づいて適正なクエリセグメント位置を決定する機能を有している。
【００３８】
学習データ生成・学習要求部３０８は、クエリセグメント位置決定部３０７で決定されたクエリセグメント位置の特徴を示す学習データを生成し、その学習データに基づいてパターン認識部３０９に学習を行うことを要求する機能を有している。
【００３９】
パターン認識部３０９は、周知のＳＶＭ等のメカニズムを有し、特徴ベクトルおよび教師信号に基づいて学習を行い、パターン認識時には、入力された特徴ベクトルがいずれのクラス（本例では、検索クエリとしてクエリセグメント位置が適正か否か）に属するかを示す認識結果を出力する機能を有している。
【００４０】
検索クエリ受付部３１０は、ユーザ端末２のブラウザ２１からの検索要求時に検索クエリを受け付ける機能を有している。
【００４１】
検索クエリ修正部３１１は、検索クエリ受付部３１０の受け付けた検索クエリのクエリセグメント位置が適正か否かパターン認識部３０９によって、全ての文字列間を順番にクエリセグメント位置をずらすことで検索クエリを修正する機能を有している。
【００４２】
検索部３１２は、検索クエリ修正部３１１を経由した検索クエリ（必要に応じて修正された検索クエリ）に基づいて検索ＤＢ３１５を検索する機能を有している。
【００４３】
検索結果応答部３１３は、検索部３１２の検索結果を要求元のユーザ端末２のブラウザ２１に返送する機能を有している。
【００４４】
図４は検索装置３のハードウェア構成例を示す図である。
【００４５】
図４において、検索装置３は、システムバス３１に接続されたＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、ＮＶＲＡＭ（Non-Volatile Random Access Memory）３５、Ｉ／Ｆ（Interface）３６と、Ｉ／Ｆ３６に接続された、キーボード、マウス、モニタ、ＣＤ／ＤＶＤ（Compact Disk/Digital Versatile Disk）ドライブ等のＩ／Ｏ（Input/Output Device）３７、ＨＤＤ（Hard Disk Drive）３８、ＮＩＣ（Network Interface Card）３９等を備えている。Ｍはプログラムもしくはデータが格納されたＣＤ／ＤＶＤ等のメディア（記録媒体）である。
【００４６】
図５は第１の実施形態の処理例を示すフローチャートである。
【００４７】
図５（ａ）において、処理を開始すると（ステップＳ１０１）、検索装置３のクエリセグメント位置学習部３０１の検索ログ取得部３０２は、検索ログ３１４の検索ログ生データから検索クエリを取得する（ステップＳ１０２）。図６（ａ）は取得した検索クエリの例を示している。
【００４８】
次いで、図５（ａ）に戻り、クエリセグメント位置学習部３０１のセパレータ削除部３０３は、検索ログ取得部３０２の取得した検索クエリからスペース等のセパレータを削除する（ステップＳ１０３）。図６（ｂ）は図６（ａ）の検索クエリからセパレータを削除した状態を示している。
【００４９】
次いで、図５（ａ）に戻り、クエリセグメント位置学習部３０１のクエリ分割部３０４は、セパレータを削除した検索クエリを意味のある範囲で複数の文字列に分割する（ステップＳ１０４）。検索クエリの分割手法としては、例えば、次の３つの手法がある。
【００５０】
（１）形態素解析により分割する手法：この手法では、一定の精度で分割が可能であるメリットがある反面、辞書に登録されていない未知語に弱いというデメリットがある。
【００５１】
（２）検索ログから最も分割数の多いパターンを選択する手法：すなわち、検索ログ３１４からスペース等のセパレータを削除した状態で同一となる検索クエリを全て抽出し、その中で最も分割数の多いものを選択する。また、相対的に検索回数（頻度）の低い検索クエリや、文字列の連接確率モデルより顕著に確率の低い検索クエリは棄却する。この手法では、形態素解析辞書にあまり入っていないようなテレビゲーム名やアイドルグループ名など、具体的な固有名詞についてもデータを有する可能性が高いのでこれらの分割に強いというメリットがある反面、棄却する基準となる頻度が明確でないというデメリットがある。
【００５２】
（３）検索ログから計算した文字列の連接確率モデルで分割する手法：この手法では、未知語にも対応できるメリットがある反面、意味のない文字列が含まれるというデメリットがある。
【００５３】
上記の各手法を採用する選択基準としては、素早く実装し、適当な精度を得たい場合は（１）を、未知語の分割も行ない、更に検索精度も考慮したい場合は（２）か（３）がよい。（２）は最適な分割のパターンを選択するだけなので実装が容易である。（３）は文字列間毎に分割するかどうかを解析する必要がありコストの高い実装である。（２）と（３）は精度で大きな差は少ないが、（３）の方が細かい単位で文字列が分割されるため、より精度改善が期待される。
【００５４】
図６（ｃ）は図６（ｂ）の状態から分割を行った状態を示している。
【００５５】
次いで、図５（ａ）に戻り、クエリセグメント位置学習部３０１の検索部３０５は、クエリ分割部３０４で分割された検索クエリの個々の文字列に基づいて検索ＤＢ３１５を検索する（ステップＳ１０５）。
【００５６】
次いで、クエリセグメント位置学習部３０１の検索結果解析部３０６は、検索部３０５の検索で得られた検索結果を解析し、個々の文字列のヒット件数の他に、検索結果として得られた要約（スニペット）おいて、分割された複数の文字列のそれぞれが隣接する文字列と接続された状態でページ上に存在する連接共起数をカウントし、連接共起頻度を表わすスコアを算出する（ステップＳ１０６）。スコアとしては、シンプソン係数や相互情報量が用いられる。
【００５７】
シンプソン係数によるスコア
＝(word1とword2の連接状態でのヒット数)／min(word1のヒット数，word2のヒット数)
相互情報量によるスコア
＝log(P(word1,word2))/(P(word1)P(word2))
ここで、minは括弧内の数値のうち小さい方を表わす。また、P(word1,word2)はword1とword2の同時分布関数、P(word1)はword1の周辺確率分布関数、P(word2)はword2の周辺確率分布関数である。
【００５８】
なお、検索結果解析部３０６で要約（スニペット）から連接共起数をカウントすることに代え、検索部３０５で隣接する文字列を接続した状態で検索ＤＢ３１５の検索を行ってもよい。
【００５９】
次いで、クエリセグメント位置学習部３０１のクエリセグメント位置決定部３０７は、検索結果解析部３０６の算出したスコアに基づいて適正なクエリセグメント位置を決定する（ステップＳ１０７）。図６（ｄ）では「まんが□立ち」のスコアが、設定した閾値のスコアより低いとすると、図６（ｅ）のように「まんが」と「立ち」の間を適正なクエリセグメント位置と決定する。
【００６０】
次いで、図５（ａ）に戻り、クエリセグメント位置学習部３０１の学習データ生成・学習要求部３０８は、クエリセグメント位置決定部３０７で決定されたクエリセグメント位置の特徴を示す学習データを生成し、その学習データに基づいてパターン認識部３０９に学習を行うことを要求する（ステップＳ１０８）。
【００６１】
図７は「まんが□立ち読み」の学習データの例を示しており、窓幅を「３」とした例である。すなわち、学習データの各行は、「評価値：文字列特徴」という形式をとっている。「1-gram」「2-gram」「3-gram」はN-gramのタイプを表わすとともに、評価値として例えば「１」を示している。「Qcount」は検索クエリの検索回数（頻度）を示し、「Wcount」はＷｅｂ検索のヒット件数を示している。「L_All/」はクエリセグメント位置より左の全文字列を示し、「R_All/」はクエリセグメント位置より右の全文字列を示している。「I*/」は注目しているクエリセグメント位置を跨いでる文字列を示している。
【００６２】
次いで、図５（ａ）に戻り、処理を終了する（ステップＳ１０９）。
【００６３】
次に、上述した学習の行われたパターン認識部３０９を用いた実際の検索処理について説明する。
【００６４】
図５（ｂ）において、処理を開始すると（ステップＳ１１１）、検索装置３の検索クエリ受付部３１０は、ユーザ端末２のブラウザ２１からの検索要求時に検索クエリを受け付ける（ステップＳ１１２）。
【００６５】
次いで、検索装置３の検索クエリ修正部３１１は、検索クエリ受付部３１０の受け付けた検索クエリのクエリセグメント位置が適正か否かパターン認識部３０９によって、全ての文字列間を順番にクエリセグメント位置をずらすことで検索クエリを修正する（ステップＳ１１３）。予めクエリセグメント位置を変えた候補を作成し、いずれが適正かをパターン認識により判断するようにしてもよい。
【００６６】
図８は受け付けた検索クエリからクエリセグメント位置を修正する処理例を示したものであり、受け付けた検索クエリの特徴を示す「1-gram:〜」「2-gram:〜」「3-gram:〜」を各文字列間毎にクエリセグメント位置をずらしながら生成し、パターン認識部３０９に入力する。この場合のクエリセグメント位置は適正でない箇所があるため、適正でない箇所でパターン認識の結果は不適正となる。そして、パターン認識の結果が適正を示す位置にクエリセグメント位置を決定し、検索クエリを修正する。
【００６７】
次いで、図５（ｂ）に戻り、検索装置３の検索部３１２は修正後（適正であるため修正されない場合もある）の検索クエリで検索ＤＢ３１５を検索し（ステップＳ１１４）、検索装置３の検索結果応答部３１３は、検索部３１２の検索結果を要求元のユーザ端末２のブラウザ２１に返送する（ステップＳ１１５）。そして、処理を終了する（ステップＳ１１６）。
【００６８】
＜第２の実施形態＞
図９は本発明の第２の実施形態にかかるシステムの構成例を示す図である。前述した第１の実施形態ではバッチ処理によりクエリセグメント位置の学習を行い、学習結果に基づいて受け付けた検索クエリを修正する場合について説明したが、この第２の実施形態では、受け付けた検索クエリを逐次に修正するようにしている。
【００６９】
図９において、検索装置３は、検索クエリ受付部３１０とセパレータ削除部３０３とクエリ分割部３０４と検索部３０５と検索結果解析部３０６とクエリセグメント位置決定部３０７と検索クエリ修正部３１１と検索部３１２と検索結果応答部３１３と検索ＤＢ３１５とを備えている。図１とは各部の配置が若干異なっているが、同じ名称で同じ符号を付した機能部はほぼ同様の機能を有している。
【００７０】
図１０は第２の実施形態の処理例を示すフローチャートである。
【００７１】
図１０において、処理を開始すると（ステップＳ２０１）、検索装置３の検索クエリ受付部３１０は、ユーザ端末２のブラウザ２１からの検索要求時に検索クエリを受け付ける（ステップＳ２０２）。
【００７２】
次いで、検索装置３のセパレータ削除部３０３は、検索クエリ受付部３１０の受け付けた検索クエリからスペース等のセパレータを削除する（ステップＳ２０３）。
【００７３】
次いで、検索装置３のクエリ分割部３０４は、セパレータを削除した検索クエリを意味のある範囲で複数の文字列に分割する（ステップＳ２０４）。
【００７４】
次いで、検索装置３の検索部３０５は、クエリ分割部３０４で分割された検索クエリの個々の文字列に基づいて検索ＤＢ３１５を検索する（ステップＳ２０５）。
【００７５】
次いで、検索装置３の検索結果解析部３０６は、検索部３０５の検索で得られた検索結果を解析し、個々の文字列のヒット件数の他に、検索結果として得られた要約（スニペット）おいて、分割された複数の文字列のそれぞれが隣接する文字列と接続された状態でページ上に存在する連接共起数をカウントし、連接共起頻度を表わすスコアを算出する（ステップＳ２０６）。なお、検索結果解析部３０６で要約（スニペット）から連接共起数をカウントすることに代え、検索部３０５で隣接する文字列を接続した状態で検索ＤＢ３１５の検索を行ってもよい。
【００７６】
次いで、検索装置３のクエリセグメント位置決定部３０７は、検索結果解析部３０６の算出したスコアに基づいて適正なクエリセグメント位置を決定する（ステップＳ２０７）。
【００７７】
次いで、検索装置３の検索クエリ修正部３１１は、クエリセグメント位置決定部３０７で決定されたクエリセグメント位置に基づいて検索クエリを修正する（ステップＳ２０８）。
【００７８】
次いで、検索装置３の検索部３１２は、修正後（適正であるため修正されない場合もある）の検索クエリで検索ＤＢ３１５を検索し（ステップＳ２０９）、検索結果応答部３１３は、検索部３１２の検索結果を要求元のユーザ端末２のブラウザ２１に返送する（ステップＳ２１０）。そして、処理を終了する（ステップＳ２１１）。
【００７９】
＜総括＞
以上説明したように、本実施形態によれば、ユーザにより入力された検索クエリのクエリセグメント位置を適正な位置に修正することで、検索精度を高めることができる。
【００８０】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００８１】
１          ネットワーク
２          ユーザ端末
２１        ブラウザ
３          検索装置
３０１      クエリセグメント位置学習部
３０２      検索ログ取得部
３０３      セパレータ削除部
３０４      クエリ分割部
３０５      検索部
３０６      検索結果解析部
３０７      クエリセグメント位置決定部
３０８      学習データ生成・学習要求部
３０９      パターン認識部
３１０      検索クエリ受付部
３１１      検索クエリ修正部
３１２      検索部
３１３      検索結果応答部
３１４      検索ログ
３１５      検索ＤＢ
【図１】
0005179564.tif 000002
【図２】
0005179564.tif 000003
【図３】
0005179564.tif 000004
【図４】
0005179564.tif 000005
【図５】
0005179564.tif 000006
【図６】
0005179564.tif 000007
【図７】
0005179564.tif 000008
【図８】
0005179564.tif 000009
【図９】
0005179564.tif 000010
【図１０】
0005179564.tif 000011