サーバ装置及びコンピュータプログラム
【課題】ウェブサイト内検索を行う際に、ウェブサイト内で実際に使用されている検索語を候補として提示するための技術を提供することを目的とする。
【解決手段】ウェブサイト内のウェブページから予め抽出した単語を検索を行う際の検索語候補としてユーザに提示する。ユーザが複数の単語を検索語として入力しようとする場合、ウェブサイト内のページで実際に関連性を有する単語の組合せを候補として提示する。
【解決手段】ウェブサイト内のウェブページから予め抽出した単語を検索を行う際の検索語候補としてユーザに提示する。ユーザが複数の単語を検索語として入力しようとする場合、ウェブサイト内のページで実際に関連性を有する単語の組合せを候補として提示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年はインターネットが急速に普及し、膨大な情報がインターネットを介して入手可能となっている。そのような膨大な情報量を効率的に扱うための手段として最も有効なのが、検索エンジンである。
【0003】
検索エンジンには、不特定多数のインターネット上の情報を検索検索語を頼りに探索するものや、特定のウェブサイト内の情報を同様に検索検索語に従って検索するものがある。
【0004】
また、検索検索語には、異なるユーザであっても共通性が見出せるため、検索サイトが検索語候補を提示して、ユーザーの入力負担を軽減するサジェスト機能と呼ばれる技術も近年は提供されている(特許文献1を参照。)
【特許文献1】特開2002−324077号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記のサジェスト機能では、ユーザ自身が過去に入力した検索語や、検索サイトで過去に使用された検索語を提示したり、内部辞書に基づいて検索語候補を提示したりするものが多く、特定のウェブサイト内で特有に使われる単語や、同一ページ内に登場する関連性の高い単語の組合せを必ずしも的確に提示することができない。
【0006】
そこで、本発明は、ウェブサイト内検索を行う際に、ウェブサイト内で実際に使用されている検索語を候補として提示するための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明は、
インターネットに公開されたウェブサイトにアクセスするクライアント装置からの検索指示に応じて、該ウェブサイト内の検索を行うサーバ装置であって、
ウェブサイトを構成するウェブページの情報の全文検索を行うための第1のデータベースと、
前記ウェブページ内に含まれる単語を登録した第2のデータベースと、
前記クライアント装置において前記ウェブサイト内の検索を行うため入力された入力語を、新たな文字入力の度に受信する受信手段と、
受信した入力語と前方一致する単語を前記第2のデータベースにおいて探索し、検索語候補を決定する探索手段と、
前記探索手段が決定した検索語候補を、検索語として前記クライアントに送信する送信手段と、
前記クライアント装置から受信した前記検索語に基づき、前記第1のデータベースを利用して全文検索を行う検索手段と
を備え、
前記受信手段が受信した入力語に、区切り文字が含まれる場合に、
前記探索手段は、
前記区切り文字の直前の第1の入力語と前方一致する第1の単語を前記第2のデータベースにおいて探索し、
探索した前記第1の単語を含む第1のウェブページを前記第1のデータベースを用いて探索し、
探索した前記第1のウェブページにおいて前記第1の単語の周辺に存在する第1の周辺単語を抽出し、
前記第1の単語と前記第1の周辺単語とを、前記探索語候補に決定することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ウェブサイト内検索を行う際に、サイト内で実際に使用されている検索語を候補として提示するための技術を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下に、添付する図面を参照して本発明の実施形態を説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0010】
<システム構成>
図1は、本実施形態に対応するウェブサイト内の検索システムの全体構成を示すブロック図である。ユーザが操作してウェブサイト内の検索を行うクライアント101a、101b、101c(以下、これらを総称して「クライアント101」という。)、ウェブサイト情報を提供すると共に、ウェブサイト内検索を行うサーバ103が、それぞれインターネット102に接続されている。また、サーバ103には、サイト情報データベース104、全文検索データベース105、検索語データベース106が接続されている。
【0011】
クライアント101は、ユーザが操作して、サーバ103がインターネット上で公開するウェブサイト情報を閲覧可能な情報処理装置であり、ノートパソコン、デスクトップパソコン、携帯情報端末、携帯電話等を含む。クライアント101には、所謂インターネット・ブラウザのソフトウェアがインストールされているものとする。
【0012】
クライアント101は、イーサネット(登録商標)等のネットワークケーブルを含むアクセス手段であるLANによってインターネット102に接続されている。尚、ネットワーク102へのアクセス手段はイーサネット(登録商標)ケーブルに限定されるものではなく、無線LAN等の無線通信手段によって構成されていてもよい。後述するサーバ103も同様のアクセス手段を備えているものとする。
【0013】
インターネット102は、世界中のネットワークが互いに接続されたネットワークであるが、例えば、イントラネットのように特定の組織内においてのみ接続可能なネットワークであってもよい。
【0014】
サーバ103は、クライアント101のユーザーに対して、特定の企業、店舗或いは個人に関する情報を提供するウェブサイトをインターネット上に公開すると同時に、該ウェブサイト内のウェブページの検索サービスを提供する情報処理装置である。本実施形態では、説明の簡単のために、サーバ103でサイトの公開とサイト内検索との両方を実行する場合を記載したが、サーバ103の構成はこれに限定されるものではない。即ち、サイト公開のためのサーバと、サイト内検索のためのサーバを別個独立に設けることもできる。なお、ウェブサイトとは、ひとまとまりに公開されているウェブページ群のことを言う。ウェブサイトには、例えば、法人や個人のホームページ等がある。
【0015】
サーバ103は、サイト情報データベース104、全文検索データベース105、検索語データベース106に格納されている情報を管理している。サーバ103は、例えば、LANによって、サイト情報データベース104、全文検索データベース105、検索語データベース106に接続される。
【0016】
サイト情報データベース104、全文検索データベース105、検索語データベース106は、それぞれ所定のデータベース・ソフトウェアがインストールされた情報処理装置であり、各種データの管理を行う。
【0017】
サイト情報データベース104は、ウェブサイトをインターネット102に公開するためのウェブページの情報を管理する。該ウェブページには、ウェブサイトのオーナー及びオーナーが提供する商品などに関する情報が含まれる。例えば、ウェブサイトが法人のホームページの場合、会社概要や投資家向け情報等の他に、法人が製造・販売している製品の情報や、その他法人が提供するあらゆるサービスに関する情報が含まれる。
【0018】
全文検索データベース105は、サイト情報データベース104に格納されたウェブページに基づき、単語とページのメタ情報(URL,タイトル,検索順位等)を紐付けたデータベースである。サーバ103は、クライアント101から受信したユーザ指定の検索語を用いて、全文検索データベース105を利用して検索を行う。
【0019】
検索語データベース106は、全文検索データベース105に格納されている検索用の情報から、サイトを構成するウェブページに含まれる単語を抽出してテーブル化して管理し、サーバ103がクライアント101から入力語を受信した場合に、テーブルの登録内容に従って、検索語候補を提供する。
【0020】
尚、本明細書では、便宜上、サーバ103、サイト情報データベース104、全文検索データベース105、及び、検索語データベース106は、それぞれ物理的に独立した情報処理装置によって実現されるものとして説明するが、本発明の実施形態はこれに限られるものではない。例えば、これらが単一の情報処理装置によって実現されてもよい。その一方で、サーバ103等の各装置が複数台の情報処理装置により冗長構成、或いは分散構成されても良い。また、サイト情報データベース104、全文検索データベース105及び検索語データベース106は、サーバ103とLAN等によって接続されているものとして説明するが、例えば、インターネット102や非図示のイントラネット経由でサーバ103と通信可能な形態をとってもよい。
【0021】
<情報処理装置の構成>
次に、本実施形態に対応するウェブサイト内検索システムを構成する情報処理装置の概略について説明する。図2は、クライアント101のハードウェア構成の一例を示すブロック図である。上述した情報処理装置としてのサイト情報データベース104、全文検索データベース105及び検索語データベース106も、同様或いは同等のハードウェア構成として構成しても良い。
【0022】
図2において、CPU200は、ハードディスク装置(以下、HDと呼ぶ)205に格納されているアプリケーションプログラム、オペレーティングシステム(OS)や制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0023】
ROM201は、内部に基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。RAM202は各種データを一時記憶し、CPU200の主メモリ、ワークエリア等として機能する。
【0024】
外部記憶ドライブ203は、記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア(記録媒体)204に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア204は、例えば、フロッピー(登録商標)ディスク(FD)、CD−ROM、CD−R、CD−RW、PCカード、DVD、Blu−ray、ICメモリカード、MO、メモリスティック等を利用することができる。
【0025】
外部記憶装置205は、本実施形態では大容量メモリとして機能するHD(ハードディスク)を用いている。HD205には、アプリケーションプログラム、OS、制御プログラム、関連プログラム等が格納される。なお、ハードディスクの代わりに、フラッシュ(登録商標)メモリ等の不揮発性記憶装置を用いても良い。
【0026】
指示入力装置206は、キーボードやポインティングデバイス(マウス等)、タッチパネル等がこれに相当する。指示入力装置206を用いて、ユーザは、クライアント101に対して、装置を制御するコマンド等を入力指示する。ディスプレイ207は、指示入力装置206から入力したコマンドや、それに対するクライアント101の応答出力等を表示したりするものである。システムバス209は、情報処理装置内のデータの流れを司る。インターフェイス(以下、I/Fという)208は、外部装置とのデータのやり取りを仲介する役割を果たす。
【0027】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【0028】
本実施形態では、メディア204から本実施形態に係るプログラム及び関連データを直接RAM202にロードして実行させる例を示すが、これ以外にも、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているHD205からRAM202にロードするようにしてもよい。また、本実施形態に係るプログラムをROM201に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU200で実行することも可能である。
【0029】
図3は、サーバ103の機器構成を示すブロック図である。CPU200、ROM201、RAM202、外部記憶ドライブ203、メディア204、HD205、指示入力装置206、ディスプレイ207、I/F208、システムバス209の機能及び用途、更には、これらの関係は、図2を用いて説明したものと同様或いは同等である。図3では、データベース310がシステムバス209に接続されていることに留意する。ここで、データベース310は、サイト情報データベース104、全文検索データベース105及び検索語データベース106を総称するものである。
【0030】
次に、発明の実施形態に対応する検索語データベース106に格納される検索語テーブルを説明する。本実施形態では、検索語テーブルとして、単語テーブル、仮名変換テーブル及びローマ字変換テーブルを備える。
【0031】
単語テーブルは、検索語候補となりえる単語を候補語として登録する。本実施形態において候補語として登録される単語は、漢字、平仮名、片仮名、アルファベット、記号、数字、合成語を用いて表記可能となっている。記号は、"!"、"%"、"¥"等の特定の意味が付されたマークをいう。記号にはまた、"+"、"−"、"×"、"÷"と言った算術記号も含まれる。数字は、1〜9の算用数字の他に、ローマ数字等が含まれる。よって、数字と記号の組合せにより構成される数式を単語として登録することもできる。また、合成語は、特定の文字の組合せ、或いは文字に、該文字が有する読みや意味とは異なる他の読み、意味が与えられたものである。例えば、不等号の"<"に平仮名の"く"の読みを与えたり、片仮名の"レナ"に、平仮名の"け"の読みを与えたり、漢字の"王見"に"現"の意味を与えたりする。
【0032】
図4は、単語テーブルの一例を示す図である。図4において、単語テーブル400には候補語401とポイント402とが含まれる。候補語401には、ウェブサイト内検索を行う際に検索語となり得る単語が登録される。候補語401として登録される単語は、サイト情報データベース104に登録されているウェブページに含まれる語のみである。ポイント402は、候補語401に与えられるポイントを登録する。該ポイントは、ウェブサイト内での出現数や出現位置、表示サイズに応じて各単語に与えられる。また、ウェブページ内での分布を考慮し、分布率が高い単語についてはポイントを減じてもよい。ポイントが高い単語ほど、ウェブサイト内での重要性の高い単語となる。
【0033】
次に、仮名変換テーブルとは、単語テーブル400の候補語401の仮名表記を登録するテーブルである。本実施形態に対応する仮名変換テーブルは、単語テーブル400に登録されている単語(特に、漢字、片仮名、アルファベット、記号、数字、合成語)の平仮名表記を登録することができる。図5は、仮名変換テーブルの一例を示す図である。図5において、仮名変換テーブル500には、候補語501と仮名候補502とが登録される。候補語501には、単語テーブル400に登録されている候補語が登録される。仮名候補502には、候補語501の各候補の仮名表記が登録される。例えば、「販売」という候補に対応する仮名候補には「はんばい」が登録される。
【0034】
次に、ローマ字変換テーブルは、仮名変換テーブルに登録されている仮名候補のローマ字表記を登録するテーブルである。図6は、ローマ字変換テーブルの一例を示す図である。図6においてローマ字変換テーブル600には、仮名候補601と、ローマ字候補602とが登録されている。仮名候補601は、仮名変換テーブル500に登録されている仮名候補が登録される。ローマ字候補602には、仮名候補601の各候補のローマ字表記が登録される。たとえば、「おぷそん」については「opuson」が、「はんばい」については「hanbai」が登録される。
【0035】
なお、発明の実施形態は、単語テーブル400の他に、仮名変換テーブル500とローマ字変換テーブル600をそれぞれ有する構成に限定されず、仮名変換テーブル500のみ有していても良い。また、ローマ字変換テーブル600に単語テーブル400に登録された単語のローマ字表記を登録して、該ローマ字変換テーブル600のみ有する構成としても良い。
【0036】
次に、図1乃至図6に示した構成に基づいて、本発明のウェブサイト内検索システムで実行されるウェブサイト内検索処理の詳細を説明する。
【0037】
図7aから図7gは、発明の実施形態に対応するウェブサイト内検索処理の一例をSDL(Specification and Description Language) の記述法に従って示す状態遷移図である。図7aから図7gに対応する処理は、クライアント101とサーバ103とがそれぞれ保持する処理プログラムを各々が実行することにより実現される。また、クライアント101とサーバ103との間の通信は、クライアント101において実行されるウェブブラウザの通信機能、或いは、ウェブブラウザのプラグイン(拡張プログラム)の通信機能を利用して実現することができる。例えばJava(登録商標)Scriptを用いたHTTPプロトコルに従って実現することができる。その他に、Flash等を使ってもよいし、HTTPではない別のプロトコルに従って通信でもよい。
【0038】
まず、図7aは、クライアント101とサーバ103の状態遷移を示す図である。図7aにおいて、クライアント101は、ステップS710からステップS760までの状態を取り、それぞれの状態において図7b乃至図7fに示す処理が行われる。また、サーバ103はクライアント101からの要求待ち状態にあり、クライアント101から受信した要求に応じて、後述する図7gに示すような処理を実行する。
【0039】
まず、クライアント101は、ステップS710において初期状態にある。この初期状態では、クライアント101のディスプレイ207には検索画面が表示されておらず、図7bに示すように、ステップS711においてサーバ103に対して検索画面表示要求を送信する。その後、ステップS720の検索画面表示待ち状態に移行する。
【0040】
ステップS720の検索画面表示状態では、図7cに示すように、クライアント101は、ステップS721においてサーバ103から検索画面情報を受信し、ステップS722においてディスプレイ207に検索画面を表示し、ステップS730における検索画面表示状態に移行する。
【0041】
検索画面の一例は図9に示す通りである。図9において検索画面900には、検索語入力領域901と、検索実行ボタン902が含まれる。検索語入力領域901に検索語を構成する文字が漢字、平仮名、片仮名、アルファベット、記号、数字、或いは、合成語により入力されると、以下に説明する手順に従い検索語候補表示領域903に、検索語候補が表示される。ユーザは検索語候補表示領域903内の検索語候補の中から適当な検索語を選択して、検索語入力を行うことができる。
【0042】
ステップS730の検索画面表示状態では、図7dに示すように、ユーザからの入力内容に応じて3種類のイベントが実行される。
【0043】
一つ目は、ステップS731における文字入力イベントであり、図9の検索語入力領域901に対して、漢字、平仮名、片仮名、アルファベット、記号、数字、或いは、合成語の入力が行われる。このイベントが発生すると、ステップS732において入力語がクライアント101からサーバ103に送信される。その後、ステップS740におけるサーバ103からの検索語候補の受信待ち状態に移行する。
【0044】
なお、文字入力を検出してサーバ103に送信する処理を行うための文字入力検出プログラムは、ステップS721においてサーバ103から受信する検索画面情報に含まれており、クライアント101は検索画面情報を受信する度に文字入力検出プログラムを取得することができる。この文字入力検出プログラムは、例えばJava(登録商標)Script, Flashにより構成することができる。
【0045】
次に、2つ目は、ステップS733における検索語候補選択イベントであり、図9の検索語候補表示領域903に表示された検索語候補から、所望の検索語候補が選択される。選択操作は、例えばマウスクリック、或いは、Enterキー操作による。検索語候補が選択されると、ステップS734において該検索語に区切り文字を付加して入力語として、クライアント101からサーバ103へ送信する。その後、ステップS740におけるサーバ103からの検索語候補の受信待ち状態に移行する。なお、区切り文字には、スペース(空白)、AND記号(+)等が含まれるが、ここに例示したものに限らず、2つの単語を切り分けるために用いられる記号や文字であれば何でも良い。
【0046】
さらに、3つ目は、ステップS735における検索実行イベントであり、所定の操作に基づくユーザからの検索実行指示を受け付ける。検索実行指示は、例えば、指示入力装置206のマウスを利用した検索ボタン902のクリック操作に基づいて受け付けることができる。その他にも、キーボードのEnterキーの操作に基づいても良いし、Java(登録商標)Script等を使って任意の操作入力に基づくこともできる。続くステップS736では、クライアント101からサーバ103に対して、検索語を指定した検索実行指示を送信する。その後、ステップS750の検索結果受信待ち状態に移行する。
【0047】
ステップS740の検索語候補受信待ち状態では、図7eに示すように、ステップS741において検索語候補をサーバ103から受信する。続いて、ステップS742において受信した検索語候補を図9の検索画面900の検索語候補表示領域903に表示し、ステップS730の検索画面表示状態に移行する。
【0048】
ステップS750の検索語結果受信待ち状態では、図7fに示すように、ステップS751において検索結果をサーバ103から受信する。続いて、ステップS752において受信した検索結果をディスプレイ207に表示して、ステップS760の検索結果表示状態に移行する。ステップS760の検索結果表示状態では、検索結果に基づきユーザからアクセスするページの指定を受け付けることができる。
【0049】
次に、サーバ103側の処理を説明する。図7gのステップS770において、サーバ103は当初要求待ち状態に置かれている。この要求待ち状態においてサーバ103は、クライアント101からステップS711で送信された検索画面表示要求、ステップS732又はS734で送信された入力語、及び、ステップS736で送信された検索実行指示のいずれかを受信する。
【0050】
ステップS771において検索画面表示要求を受信すると、ステップS772において検索画面情報をクライアント101へ送信する。その後、ステップS770の要求待ち状態に戻る。
【0051】
次に、ステップS773において入力語を受信すると、ステップS774に移行して検索語候補の探索を行い、ステップS775では、探索した検索語候補をクライアント101へ送信する。その後、ステップS770の要求待ち状態へ戻る。なお、検索語候補の探索処理については、図8のフローチャートを参照して後述する。
【0052】
さらに、ステップS776において検索実行指示を受信すると、ステップS777に移行して検索処理を実行する。この検索処理は、検索実行指示に含まれる検索語に基づき、全文検索データベース105を用いて行われる。続くステップS778では検索結果をクライアント101へ送信して、ステップS770の要求待ち状態に戻る。
【0053】
次に、ステップS774における検索語候補の探索処理の詳細について、図8を参照して説明する。
【0054】
ステップS801では、ステップS705で受信した入力語に、区切り文字が含まれるか否かを判定する。なお、スペース等の後ろに文字が入力されていなくても良い。
【0055】
もし、区切り文字を含まない場合には(ステップS801において「NO」)、ステップS803に移行する。一方、区切り文字を含む場合には(ステップS801において「YES」)、ステップS802に移行する。
【0056】
ステップS802では、区切り文字の直前の文字列を処理対象の入力語として選択してステップS803に移行する。ステップS803では、入力語に基づき単語テーブル400を検索し、前方一致する候補語を探索する。例えば、「オプ」が入力語の場合には、「オプソン」、「オプソンプリンタ」、「オプソンダイレクト」、「オプソンスクエア」、「オプソンサービス」などが探索される。
【0057】
次に、ステップS804では、入力語が平仮名又はアルファベットである構成されているか否かを判定する。なお、検索語データベース106に仮名変換テーブル500と、ローマ字変換テーブル600とのいずれか一方のみしか存在しない場合には、対応するテーブルに従い平仮名であるか、又は、アルファベットであるかのみを判定する。もし、平仮名又はアルファベットで構成されている場合(ステップS804において「YES」)、ステップS805に移行する。もし、平仮名又はアルファベット以外の要素で構成されている場合には(ステップS804において「NO」)、ステップS806に移行する。
【0058】
ステップS805では、入力語が平仮名の場合には、仮名変換テーブル500を用いて、前方一致する候補語を探索する。例えば、「はん」が入力語の場合、「販売」、「販売株式会社」、「販売当時」、「販売中」、「範囲」等が探索される。また、入力語がアルファベットの場合には、ローマ字変換テーブル600を用いて、前方一致する仮名候補を探索する。例えば、「op」が入力語の場合は、「おぷそん」、「おぷそんぷりんた」、「おぷそんだいれくと」、「おぷそんすくえあ」、「おぷそんさーびす」などが探索される。探索された仮名候補は、仮名変換テーブル500を用いて候補語に変換する。その後、ステップS806に移行する。なお、検索語データベース106内に仮名変換テーブル500が存在せず、ローマ字変換テーブル600のみの場合は、ローマ字表記から候補語に直接変換する。
【0059】
ステップS806では、検索語候補を決定する。具体的には、ステップS803、ステップS805で探索された候補語の中から、ポイントの高い候補語を所定数選択し、検索語候補と決定することができる。
【0060】
次に、ステップS807では、ステップS801の判定において入力語に区切り文字が含まれていたか否かを判定する。もし、区切り文字が含まれていた場合には(ステップS807において「YES」)、ステップS808に移行する。一方、区切り文字が含まれていなかった場合には(ステップS807において「NO」)、検索語の決定処理を終了し、図7のステップS707に移行する。
【0061】
ステップS808では、ステップS806で決定された検索語候補(以下、「第1検索語候補」という)を含むウェブページを、全文検索データベース105を用いて検索する。続くステップS809では、ステップS808での検索により検出されたウェブページ内で、該第1検索語候補の周辺に位置する単語(周辺単語)を抽出する。「周辺に位置する」とは、例えば以下のように定義することができる。第1検索語候補を含む文と同一の文、或いは更にその前後の文に含まれる単語、或いは、第1検索語候補の前後に位置し、かつ第1検索語候補から所定文字数以内に位置する単語、である。
【0062】
続くステップS810では、ステップS809で抽出した周辺単語のうち、区切り文字の直後の文字列と前方一致する単語を選択して、周辺単語の絞り込みを行う。なお、当該直後の文字列が存在しない場合、即ち、空白のみが入力された場合には、本ステップを省略して、ステップS809において得られた全周辺単語について以降の処理を行うことができる。
【0063】
続くステップS811では、上記工程を経て得られた周辺単語のそれぞれと、第1検索語候補との距離Dwを算出する。当該距離Dwは、例えば、第1検索語候補を含む文と同一文、前後の文のいずれに含まれるか、周辺単語と第1検索語候補との間に位置する文字数等に基づいて決定できる。
【0064】
続くステップS812では、各周辺単語の出現頻度Fwを算出する。該出現頻度Fwは、例えば、同一の周辺単語が同一ページ内で登場する頻度(回数)に基づくことができる。この頻度が高い周辺単語ほど、該ページ内で第1検索語候補と関連する可能性が高い単語と考えることができる。但し、同一ページ内での登場頻度の高い単語であっても、サイトに一般的な単語である場合も考えられる。そこで、ステップS808で検出された第1検索語候補を含む全ページ(総ページ数をPal)内での周辺単語の出現数の合計Awを、総ページ数で割った値(Aw/Pal)を求める。この値が所定の閾値より大きい場合には、第1検索語候補とペアになった周辺単語は特定のページに特徴的な単語でない可能性があるため、Fwのポイントを一定量下げるか、或いは、周辺単語の候補から除外しても良い。
【0065】
次に、ステップS813では、ステップS811で算出した距離Dwと、ステップS812で算出した出現頻度Fwとに基づいて、周辺単語毎にポイントを算出する。ポイントの算出法は特に限定されるものではないが、例えばDwとFwとの和や積でもよいし、重み付けを行ってから演算しても良い。また、DwとFwのいずれか一方のみを利用しても良い。
【0066】
なお、ステップS813では、距離と出現頻度に基づいてポイントを計算したが、更に、第1検索語候補の品詞解析および係受けを考慮した計算を行うこともできる。また、第1検索語候補と周辺単語の各組合せについて、過去に選択された選択頻度や、予め与えられた順位(ユーザの指定によっても良い)を更に考慮したり、これらの要素に基づいてポイントを算出することもできる。具体的に、過去に選択された頻度の高い組合せや、与えられた順位の高い組合せに高いポイントを与えることができる。選択頻度や順位の情報は、検索語データベース106内に格納しておくことができる。
【0067】
次に、ステップS814では、算出されたポイントが所定値以上の周辺単語を決定する。なお、このステップは省略してステップS813でポイントを算出した周辺単語を全て選択しても良い。続くステップS815では、決定した周辺単語と、第1検索語候補とを新たな検索語候補(第2検索語候補)に決定する。即ち、ステップS806における第1検索語候補とステップS814における周辺単語との組合せが、第2検索語候補となる。その際、第2検索語候補のポイントは、ステップS813で求めたポイントとなる。その後、検索語候補の決定処理を終了し、図7のステップS707に移行する。
【0068】
なお、入力語に3語以上含まれる場合、即ち、区切り文字が2つ以上含まれる場合には、ステップS808以降の処理を、各区切り文字の直後の文字列について繰り返すことにより、さらに絞り込みをかけた第3、第4の検索語候補を決定することができる。
【0069】
以上のように、本実施形態によれば、ウェブサイト内のウェブページから予め抽出した単語を検索を行う際の検索語候補としてユーザに提示することができるので、ユーザはウェブサイト内に確実に存在する単語を検索語として検索を行うことができる。
【0070】
また、ユーザが複数の単語を検索語として入力しようとする場合、ウェブサイト内のページで実際に関連性を有する単語の組合せを候補として提示することができるので、より精度の高い検索が可能となる。
【0071】
特に本発明では、2語目以降の検索語候補を決定する場合に、予めテーブルを用意せずにリアルタイム計算により候補を決定している。これにより、組合せの候補をデータベース内に予め登録しておく場合と比べて、データベースの容量コストを大幅に削減することができる。
【0072】
また、2語目以降の検索語候補は入力せずとも、1語目を入力した後にスペース等の区切り文字を入れるだけで、1語目と関連性の高い検索語の候補が提示される。よって、ユーザは2語目について自ら考えなくても、自分が探しているページに該当するであろう検索語を、提示候補の中から選択して効率的に検索を行うことができる。この際、本願発明では、履歴に基づき過去に組合せで入力された単語のペアを候補として提示するのではなく、サイト内の実際のページにおいて関連性が認められる単語のペアを提示する点に特に特徴を有する。この特徴により、ユーザはウェブページと真に関連する単語のペアを検索語として選択することができる。
【0073】
さらに、本発明によれば、単語を組み合わせて検索語候補を提示する場合に、リアルタイムに計算して候補を決定するので、検索履歴が蓄積されていないサイトオープン当初の段階からでも、的中率の高い検索語の組合せを確実に提示することができる。
【0074】
また、以上の処理(例えば上記図7a乃至図7gや図8に示したフローチャートに従った処理等)をコンピュータプログラムとしてCD−R、ROMやDVD−ROM、MO等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませる(インストール、もしくはコピーさせる)ことで、このコンピュータは以上の処理を行うことができる。よって、コンピュータプログラム及び記憶媒体も本発明の範疇にあることは明白である。
【図面の簡単な説明】
【0075】
【図1】発明の実施形態に対応するウェブサイト内検索システムの全体構成の一例を示すブロック図である。
【図2】発明の実施形態に対応するクライアント101のハードウェア構成の一例を示すブロック図である。
【図3】発明の実施形態に対応するサーバ103のハードウェア構成の一例を示すブロック図である。
【図4】発明の実施形態に対応する単語テーブルの一例を示す図である。
【図5】発明の実施形態に対応する仮名変換テーブルの一例を示す図である。
【図6】発明の実施形態に対応するローマ字変換テーブルの一例を示す図である。
【図7a】発明の実施形態に対応する、サイト内検索処理の一例を示す状態遷移図である。
【図7b】発明の実施形態に対応する、初期状態でのクライアント101の処理例を示す状態遷移図である。
【図7c】発明の実施形態に対応する、検索画面表示待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7d】発明の実施形態に対応する、検索画面表示状態でのクライアント101の処理例を示す状態遷移図である。
【図7e】発明の実施形態に対応する、検索語候補受信待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7f】発明の実施形態に対応する、検索結果受信待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7g】発明の実施形態に対応する、要求待ち状態でのサーバ103の処理例を示す状態遷移図である。
【図8】図7gの検索語候補探索処理の一例を示すフローチャートである。
【図9】検索画面の一例を示す図である。
【技術分野】
【0001】
本発明は、サーバ装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年はインターネットが急速に普及し、膨大な情報がインターネットを介して入手可能となっている。そのような膨大な情報量を効率的に扱うための手段として最も有効なのが、検索エンジンである。
【0003】
検索エンジンには、不特定多数のインターネット上の情報を検索検索語を頼りに探索するものや、特定のウェブサイト内の情報を同様に検索検索語に従って検索するものがある。
【0004】
また、検索検索語には、異なるユーザであっても共通性が見出せるため、検索サイトが検索語候補を提示して、ユーザーの入力負担を軽減するサジェスト機能と呼ばれる技術も近年は提供されている(特許文献1を参照。)
【特許文献1】特開2002−324077号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記のサジェスト機能では、ユーザ自身が過去に入力した検索語や、検索サイトで過去に使用された検索語を提示したり、内部辞書に基づいて検索語候補を提示したりするものが多く、特定のウェブサイト内で特有に使われる単語や、同一ページ内に登場する関連性の高い単語の組合せを必ずしも的確に提示することができない。
【0006】
そこで、本発明は、ウェブサイト内検索を行う際に、ウェブサイト内で実際に使用されている検索語を候補として提示するための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明は、
インターネットに公開されたウェブサイトにアクセスするクライアント装置からの検索指示に応じて、該ウェブサイト内の検索を行うサーバ装置であって、
ウェブサイトを構成するウェブページの情報の全文検索を行うための第1のデータベースと、
前記ウェブページ内に含まれる単語を登録した第2のデータベースと、
前記クライアント装置において前記ウェブサイト内の検索を行うため入力された入力語を、新たな文字入力の度に受信する受信手段と、
受信した入力語と前方一致する単語を前記第2のデータベースにおいて探索し、検索語候補を決定する探索手段と、
前記探索手段が決定した検索語候補を、検索語として前記クライアントに送信する送信手段と、
前記クライアント装置から受信した前記検索語に基づき、前記第1のデータベースを利用して全文検索を行う検索手段と
を備え、
前記受信手段が受信した入力語に、区切り文字が含まれる場合に、
前記探索手段は、
前記区切り文字の直前の第1の入力語と前方一致する第1の単語を前記第2のデータベースにおいて探索し、
探索した前記第1の単語を含む第1のウェブページを前記第1のデータベースを用いて探索し、
探索した前記第1のウェブページにおいて前記第1の単語の周辺に存在する第1の周辺単語を抽出し、
前記第1の単語と前記第1の周辺単語とを、前記探索語候補に決定することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ウェブサイト内検索を行う際に、サイト内で実際に使用されている検索語を候補として提示するための技術を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下に、添付する図面を参照して本発明の実施形態を説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0010】
<システム構成>
図1は、本実施形態に対応するウェブサイト内の検索システムの全体構成を示すブロック図である。ユーザが操作してウェブサイト内の検索を行うクライアント101a、101b、101c(以下、これらを総称して「クライアント101」という。)、ウェブサイト情報を提供すると共に、ウェブサイト内検索を行うサーバ103が、それぞれインターネット102に接続されている。また、サーバ103には、サイト情報データベース104、全文検索データベース105、検索語データベース106が接続されている。
【0011】
クライアント101は、ユーザが操作して、サーバ103がインターネット上で公開するウェブサイト情報を閲覧可能な情報処理装置であり、ノートパソコン、デスクトップパソコン、携帯情報端末、携帯電話等を含む。クライアント101には、所謂インターネット・ブラウザのソフトウェアがインストールされているものとする。
【0012】
クライアント101は、イーサネット(登録商標)等のネットワークケーブルを含むアクセス手段であるLANによってインターネット102に接続されている。尚、ネットワーク102へのアクセス手段はイーサネット(登録商標)ケーブルに限定されるものではなく、無線LAN等の無線通信手段によって構成されていてもよい。後述するサーバ103も同様のアクセス手段を備えているものとする。
【0013】
インターネット102は、世界中のネットワークが互いに接続されたネットワークであるが、例えば、イントラネットのように特定の組織内においてのみ接続可能なネットワークであってもよい。
【0014】
サーバ103は、クライアント101のユーザーに対して、特定の企業、店舗或いは個人に関する情報を提供するウェブサイトをインターネット上に公開すると同時に、該ウェブサイト内のウェブページの検索サービスを提供する情報処理装置である。本実施形態では、説明の簡単のために、サーバ103でサイトの公開とサイト内検索との両方を実行する場合を記載したが、サーバ103の構成はこれに限定されるものではない。即ち、サイト公開のためのサーバと、サイト内検索のためのサーバを別個独立に設けることもできる。なお、ウェブサイトとは、ひとまとまりに公開されているウェブページ群のことを言う。ウェブサイトには、例えば、法人や個人のホームページ等がある。
【0015】
サーバ103は、サイト情報データベース104、全文検索データベース105、検索語データベース106に格納されている情報を管理している。サーバ103は、例えば、LANによって、サイト情報データベース104、全文検索データベース105、検索語データベース106に接続される。
【0016】
サイト情報データベース104、全文検索データベース105、検索語データベース106は、それぞれ所定のデータベース・ソフトウェアがインストールされた情報処理装置であり、各種データの管理を行う。
【0017】
サイト情報データベース104は、ウェブサイトをインターネット102に公開するためのウェブページの情報を管理する。該ウェブページには、ウェブサイトのオーナー及びオーナーが提供する商品などに関する情報が含まれる。例えば、ウェブサイトが法人のホームページの場合、会社概要や投資家向け情報等の他に、法人が製造・販売している製品の情報や、その他法人が提供するあらゆるサービスに関する情報が含まれる。
【0018】
全文検索データベース105は、サイト情報データベース104に格納されたウェブページに基づき、単語とページのメタ情報(URL,タイトル,検索順位等)を紐付けたデータベースである。サーバ103は、クライアント101から受信したユーザ指定の検索語を用いて、全文検索データベース105を利用して検索を行う。
【0019】
検索語データベース106は、全文検索データベース105に格納されている検索用の情報から、サイトを構成するウェブページに含まれる単語を抽出してテーブル化して管理し、サーバ103がクライアント101から入力語を受信した場合に、テーブルの登録内容に従って、検索語候補を提供する。
【0020】
尚、本明細書では、便宜上、サーバ103、サイト情報データベース104、全文検索データベース105、及び、検索語データベース106は、それぞれ物理的に独立した情報処理装置によって実現されるものとして説明するが、本発明の実施形態はこれに限られるものではない。例えば、これらが単一の情報処理装置によって実現されてもよい。その一方で、サーバ103等の各装置が複数台の情報処理装置により冗長構成、或いは分散構成されても良い。また、サイト情報データベース104、全文検索データベース105及び検索語データベース106は、サーバ103とLAN等によって接続されているものとして説明するが、例えば、インターネット102や非図示のイントラネット経由でサーバ103と通信可能な形態をとってもよい。
【0021】
<情報処理装置の構成>
次に、本実施形態に対応するウェブサイト内検索システムを構成する情報処理装置の概略について説明する。図2は、クライアント101のハードウェア構成の一例を示すブロック図である。上述した情報処理装置としてのサイト情報データベース104、全文検索データベース105及び検索語データベース106も、同様或いは同等のハードウェア構成として構成しても良い。
【0022】
図2において、CPU200は、ハードディスク装置(以下、HDと呼ぶ)205に格納されているアプリケーションプログラム、オペレーティングシステム(OS)や制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0023】
ROM201は、内部に基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。RAM202は各種データを一時記憶し、CPU200の主メモリ、ワークエリア等として機能する。
【0024】
外部記憶ドライブ203は、記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア(記録媒体)204に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア204は、例えば、フロッピー(登録商標)ディスク(FD)、CD−ROM、CD−R、CD−RW、PCカード、DVD、Blu−ray、ICメモリカード、MO、メモリスティック等を利用することができる。
【0025】
外部記憶装置205は、本実施形態では大容量メモリとして機能するHD(ハードディスク)を用いている。HD205には、アプリケーションプログラム、OS、制御プログラム、関連プログラム等が格納される。なお、ハードディスクの代わりに、フラッシュ(登録商標)メモリ等の不揮発性記憶装置を用いても良い。
【0026】
指示入力装置206は、キーボードやポインティングデバイス(マウス等)、タッチパネル等がこれに相当する。指示入力装置206を用いて、ユーザは、クライアント101に対して、装置を制御するコマンド等を入力指示する。ディスプレイ207は、指示入力装置206から入力したコマンドや、それに対するクライアント101の応答出力等を表示したりするものである。システムバス209は、情報処理装置内のデータの流れを司る。インターフェイス(以下、I/Fという)208は、外部装置とのデータのやり取りを仲介する役割を果たす。
【0027】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【0028】
本実施形態では、メディア204から本実施形態に係るプログラム及び関連データを直接RAM202にロードして実行させる例を示すが、これ以外にも、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているHD205からRAM202にロードするようにしてもよい。また、本実施形態に係るプログラムをROM201に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU200で実行することも可能である。
【0029】
図3は、サーバ103の機器構成を示すブロック図である。CPU200、ROM201、RAM202、外部記憶ドライブ203、メディア204、HD205、指示入力装置206、ディスプレイ207、I/F208、システムバス209の機能及び用途、更には、これらの関係は、図2を用いて説明したものと同様或いは同等である。図3では、データベース310がシステムバス209に接続されていることに留意する。ここで、データベース310は、サイト情報データベース104、全文検索データベース105及び検索語データベース106を総称するものである。
【0030】
次に、発明の実施形態に対応する検索語データベース106に格納される検索語テーブルを説明する。本実施形態では、検索語テーブルとして、単語テーブル、仮名変換テーブル及びローマ字変換テーブルを備える。
【0031】
単語テーブルは、検索語候補となりえる単語を候補語として登録する。本実施形態において候補語として登録される単語は、漢字、平仮名、片仮名、アルファベット、記号、数字、合成語を用いて表記可能となっている。記号は、"!"、"%"、"¥"等の特定の意味が付されたマークをいう。記号にはまた、"+"、"−"、"×"、"÷"と言った算術記号も含まれる。数字は、1〜9の算用数字の他に、ローマ数字等が含まれる。よって、数字と記号の組合せにより構成される数式を単語として登録することもできる。また、合成語は、特定の文字の組合せ、或いは文字に、該文字が有する読みや意味とは異なる他の読み、意味が与えられたものである。例えば、不等号の"<"に平仮名の"く"の読みを与えたり、片仮名の"レナ"に、平仮名の"け"の読みを与えたり、漢字の"王見"に"現"の意味を与えたりする。
【0032】
図4は、単語テーブルの一例を示す図である。図4において、単語テーブル400には候補語401とポイント402とが含まれる。候補語401には、ウェブサイト内検索を行う際に検索語となり得る単語が登録される。候補語401として登録される単語は、サイト情報データベース104に登録されているウェブページに含まれる語のみである。ポイント402は、候補語401に与えられるポイントを登録する。該ポイントは、ウェブサイト内での出現数や出現位置、表示サイズに応じて各単語に与えられる。また、ウェブページ内での分布を考慮し、分布率が高い単語についてはポイントを減じてもよい。ポイントが高い単語ほど、ウェブサイト内での重要性の高い単語となる。
【0033】
次に、仮名変換テーブルとは、単語テーブル400の候補語401の仮名表記を登録するテーブルである。本実施形態に対応する仮名変換テーブルは、単語テーブル400に登録されている単語(特に、漢字、片仮名、アルファベット、記号、数字、合成語)の平仮名表記を登録することができる。図5は、仮名変換テーブルの一例を示す図である。図5において、仮名変換テーブル500には、候補語501と仮名候補502とが登録される。候補語501には、単語テーブル400に登録されている候補語が登録される。仮名候補502には、候補語501の各候補の仮名表記が登録される。例えば、「販売」という候補に対応する仮名候補には「はんばい」が登録される。
【0034】
次に、ローマ字変換テーブルは、仮名変換テーブルに登録されている仮名候補のローマ字表記を登録するテーブルである。図6は、ローマ字変換テーブルの一例を示す図である。図6においてローマ字変換テーブル600には、仮名候補601と、ローマ字候補602とが登録されている。仮名候補601は、仮名変換テーブル500に登録されている仮名候補が登録される。ローマ字候補602には、仮名候補601の各候補のローマ字表記が登録される。たとえば、「おぷそん」については「opuson」が、「はんばい」については「hanbai」が登録される。
【0035】
なお、発明の実施形態は、単語テーブル400の他に、仮名変換テーブル500とローマ字変換テーブル600をそれぞれ有する構成に限定されず、仮名変換テーブル500のみ有していても良い。また、ローマ字変換テーブル600に単語テーブル400に登録された単語のローマ字表記を登録して、該ローマ字変換テーブル600のみ有する構成としても良い。
【0036】
次に、図1乃至図6に示した構成に基づいて、本発明のウェブサイト内検索システムで実行されるウェブサイト内検索処理の詳細を説明する。
【0037】
図7aから図7gは、発明の実施形態に対応するウェブサイト内検索処理の一例をSDL(Specification and Description Language) の記述法に従って示す状態遷移図である。図7aから図7gに対応する処理は、クライアント101とサーバ103とがそれぞれ保持する処理プログラムを各々が実行することにより実現される。また、クライアント101とサーバ103との間の通信は、クライアント101において実行されるウェブブラウザの通信機能、或いは、ウェブブラウザのプラグイン(拡張プログラム)の通信機能を利用して実現することができる。例えばJava(登録商標)Scriptを用いたHTTPプロトコルに従って実現することができる。その他に、Flash等を使ってもよいし、HTTPではない別のプロトコルに従って通信でもよい。
【0038】
まず、図7aは、クライアント101とサーバ103の状態遷移を示す図である。図7aにおいて、クライアント101は、ステップS710からステップS760までの状態を取り、それぞれの状態において図7b乃至図7fに示す処理が行われる。また、サーバ103はクライアント101からの要求待ち状態にあり、クライアント101から受信した要求に応じて、後述する図7gに示すような処理を実行する。
【0039】
まず、クライアント101は、ステップS710において初期状態にある。この初期状態では、クライアント101のディスプレイ207には検索画面が表示されておらず、図7bに示すように、ステップS711においてサーバ103に対して検索画面表示要求を送信する。その後、ステップS720の検索画面表示待ち状態に移行する。
【0040】
ステップS720の検索画面表示状態では、図7cに示すように、クライアント101は、ステップS721においてサーバ103から検索画面情報を受信し、ステップS722においてディスプレイ207に検索画面を表示し、ステップS730における検索画面表示状態に移行する。
【0041】
検索画面の一例は図9に示す通りである。図9において検索画面900には、検索語入力領域901と、検索実行ボタン902が含まれる。検索語入力領域901に検索語を構成する文字が漢字、平仮名、片仮名、アルファベット、記号、数字、或いは、合成語により入力されると、以下に説明する手順に従い検索語候補表示領域903に、検索語候補が表示される。ユーザは検索語候補表示領域903内の検索語候補の中から適当な検索語を選択して、検索語入力を行うことができる。
【0042】
ステップS730の検索画面表示状態では、図7dに示すように、ユーザからの入力内容に応じて3種類のイベントが実行される。
【0043】
一つ目は、ステップS731における文字入力イベントであり、図9の検索語入力領域901に対して、漢字、平仮名、片仮名、アルファベット、記号、数字、或いは、合成語の入力が行われる。このイベントが発生すると、ステップS732において入力語がクライアント101からサーバ103に送信される。その後、ステップS740におけるサーバ103からの検索語候補の受信待ち状態に移行する。
【0044】
なお、文字入力を検出してサーバ103に送信する処理を行うための文字入力検出プログラムは、ステップS721においてサーバ103から受信する検索画面情報に含まれており、クライアント101は検索画面情報を受信する度に文字入力検出プログラムを取得することができる。この文字入力検出プログラムは、例えばJava(登録商標)Script, Flashにより構成することができる。
【0045】
次に、2つ目は、ステップS733における検索語候補選択イベントであり、図9の検索語候補表示領域903に表示された検索語候補から、所望の検索語候補が選択される。選択操作は、例えばマウスクリック、或いは、Enterキー操作による。検索語候補が選択されると、ステップS734において該検索語に区切り文字を付加して入力語として、クライアント101からサーバ103へ送信する。その後、ステップS740におけるサーバ103からの検索語候補の受信待ち状態に移行する。なお、区切り文字には、スペース(空白)、AND記号(+)等が含まれるが、ここに例示したものに限らず、2つの単語を切り分けるために用いられる記号や文字であれば何でも良い。
【0046】
さらに、3つ目は、ステップS735における検索実行イベントであり、所定の操作に基づくユーザからの検索実行指示を受け付ける。検索実行指示は、例えば、指示入力装置206のマウスを利用した検索ボタン902のクリック操作に基づいて受け付けることができる。その他にも、キーボードのEnterキーの操作に基づいても良いし、Java(登録商標)Script等を使って任意の操作入力に基づくこともできる。続くステップS736では、クライアント101からサーバ103に対して、検索語を指定した検索実行指示を送信する。その後、ステップS750の検索結果受信待ち状態に移行する。
【0047】
ステップS740の検索語候補受信待ち状態では、図7eに示すように、ステップS741において検索語候補をサーバ103から受信する。続いて、ステップS742において受信した検索語候補を図9の検索画面900の検索語候補表示領域903に表示し、ステップS730の検索画面表示状態に移行する。
【0048】
ステップS750の検索語結果受信待ち状態では、図7fに示すように、ステップS751において検索結果をサーバ103から受信する。続いて、ステップS752において受信した検索結果をディスプレイ207に表示して、ステップS760の検索結果表示状態に移行する。ステップS760の検索結果表示状態では、検索結果に基づきユーザからアクセスするページの指定を受け付けることができる。
【0049】
次に、サーバ103側の処理を説明する。図7gのステップS770において、サーバ103は当初要求待ち状態に置かれている。この要求待ち状態においてサーバ103は、クライアント101からステップS711で送信された検索画面表示要求、ステップS732又はS734で送信された入力語、及び、ステップS736で送信された検索実行指示のいずれかを受信する。
【0050】
ステップS771において検索画面表示要求を受信すると、ステップS772において検索画面情報をクライアント101へ送信する。その後、ステップS770の要求待ち状態に戻る。
【0051】
次に、ステップS773において入力語を受信すると、ステップS774に移行して検索語候補の探索を行い、ステップS775では、探索した検索語候補をクライアント101へ送信する。その後、ステップS770の要求待ち状態へ戻る。なお、検索語候補の探索処理については、図8のフローチャートを参照して後述する。
【0052】
さらに、ステップS776において検索実行指示を受信すると、ステップS777に移行して検索処理を実行する。この検索処理は、検索実行指示に含まれる検索語に基づき、全文検索データベース105を用いて行われる。続くステップS778では検索結果をクライアント101へ送信して、ステップS770の要求待ち状態に戻る。
【0053】
次に、ステップS774における検索語候補の探索処理の詳細について、図8を参照して説明する。
【0054】
ステップS801では、ステップS705で受信した入力語に、区切り文字が含まれるか否かを判定する。なお、スペース等の後ろに文字が入力されていなくても良い。
【0055】
もし、区切り文字を含まない場合には(ステップS801において「NO」)、ステップS803に移行する。一方、区切り文字を含む場合には(ステップS801において「YES」)、ステップS802に移行する。
【0056】
ステップS802では、区切り文字の直前の文字列を処理対象の入力語として選択してステップS803に移行する。ステップS803では、入力語に基づき単語テーブル400を検索し、前方一致する候補語を探索する。例えば、「オプ」が入力語の場合には、「オプソン」、「オプソンプリンタ」、「オプソンダイレクト」、「オプソンスクエア」、「オプソンサービス」などが探索される。
【0057】
次に、ステップS804では、入力語が平仮名又はアルファベットである構成されているか否かを判定する。なお、検索語データベース106に仮名変換テーブル500と、ローマ字変換テーブル600とのいずれか一方のみしか存在しない場合には、対応するテーブルに従い平仮名であるか、又は、アルファベットであるかのみを判定する。もし、平仮名又はアルファベットで構成されている場合(ステップS804において「YES」)、ステップS805に移行する。もし、平仮名又はアルファベット以外の要素で構成されている場合には(ステップS804において「NO」)、ステップS806に移行する。
【0058】
ステップS805では、入力語が平仮名の場合には、仮名変換テーブル500を用いて、前方一致する候補語を探索する。例えば、「はん」が入力語の場合、「販売」、「販売株式会社」、「販売当時」、「販売中」、「範囲」等が探索される。また、入力語がアルファベットの場合には、ローマ字変換テーブル600を用いて、前方一致する仮名候補を探索する。例えば、「op」が入力語の場合は、「おぷそん」、「おぷそんぷりんた」、「おぷそんだいれくと」、「おぷそんすくえあ」、「おぷそんさーびす」などが探索される。探索された仮名候補は、仮名変換テーブル500を用いて候補語に変換する。その後、ステップS806に移行する。なお、検索語データベース106内に仮名変換テーブル500が存在せず、ローマ字変換テーブル600のみの場合は、ローマ字表記から候補語に直接変換する。
【0059】
ステップS806では、検索語候補を決定する。具体的には、ステップS803、ステップS805で探索された候補語の中から、ポイントの高い候補語を所定数選択し、検索語候補と決定することができる。
【0060】
次に、ステップS807では、ステップS801の判定において入力語に区切り文字が含まれていたか否かを判定する。もし、区切り文字が含まれていた場合には(ステップS807において「YES」)、ステップS808に移行する。一方、区切り文字が含まれていなかった場合には(ステップS807において「NO」)、検索語の決定処理を終了し、図7のステップS707に移行する。
【0061】
ステップS808では、ステップS806で決定された検索語候補(以下、「第1検索語候補」という)を含むウェブページを、全文検索データベース105を用いて検索する。続くステップS809では、ステップS808での検索により検出されたウェブページ内で、該第1検索語候補の周辺に位置する単語(周辺単語)を抽出する。「周辺に位置する」とは、例えば以下のように定義することができる。第1検索語候補を含む文と同一の文、或いは更にその前後の文に含まれる単語、或いは、第1検索語候補の前後に位置し、かつ第1検索語候補から所定文字数以内に位置する単語、である。
【0062】
続くステップS810では、ステップS809で抽出した周辺単語のうち、区切り文字の直後の文字列と前方一致する単語を選択して、周辺単語の絞り込みを行う。なお、当該直後の文字列が存在しない場合、即ち、空白のみが入力された場合には、本ステップを省略して、ステップS809において得られた全周辺単語について以降の処理を行うことができる。
【0063】
続くステップS811では、上記工程を経て得られた周辺単語のそれぞれと、第1検索語候補との距離Dwを算出する。当該距離Dwは、例えば、第1検索語候補を含む文と同一文、前後の文のいずれに含まれるか、周辺単語と第1検索語候補との間に位置する文字数等に基づいて決定できる。
【0064】
続くステップS812では、各周辺単語の出現頻度Fwを算出する。該出現頻度Fwは、例えば、同一の周辺単語が同一ページ内で登場する頻度(回数)に基づくことができる。この頻度が高い周辺単語ほど、該ページ内で第1検索語候補と関連する可能性が高い単語と考えることができる。但し、同一ページ内での登場頻度の高い単語であっても、サイトに一般的な単語である場合も考えられる。そこで、ステップS808で検出された第1検索語候補を含む全ページ(総ページ数をPal)内での周辺単語の出現数の合計Awを、総ページ数で割った値(Aw/Pal)を求める。この値が所定の閾値より大きい場合には、第1検索語候補とペアになった周辺単語は特定のページに特徴的な単語でない可能性があるため、Fwのポイントを一定量下げるか、或いは、周辺単語の候補から除外しても良い。
【0065】
次に、ステップS813では、ステップS811で算出した距離Dwと、ステップS812で算出した出現頻度Fwとに基づいて、周辺単語毎にポイントを算出する。ポイントの算出法は特に限定されるものではないが、例えばDwとFwとの和や積でもよいし、重み付けを行ってから演算しても良い。また、DwとFwのいずれか一方のみを利用しても良い。
【0066】
なお、ステップS813では、距離と出現頻度に基づいてポイントを計算したが、更に、第1検索語候補の品詞解析および係受けを考慮した計算を行うこともできる。また、第1検索語候補と周辺単語の各組合せについて、過去に選択された選択頻度や、予め与えられた順位(ユーザの指定によっても良い)を更に考慮したり、これらの要素に基づいてポイントを算出することもできる。具体的に、過去に選択された頻度の高い組合せや、与えられた順位の高い組合せに高いポイントを与えることができる。選択頻度や順位の情報は、検索語データベース106内に格納しておくことができる。
【0067】
次に、ステップS814では、算出されたポイントが所定値以上の周辺単語を決定する。なお、このステップは省略してステップS813でポイントを算出した周辺単語を全て選択しても良い。続くステップS815では、決定した周辺単語と、第1検索語候補とを新たな検索語候補(第2検索語候補)に決定する。即ち、ステップS806における第1検索語候補とステップS814における周辺単語との組合せが、第2検索語候補となる。その際、第2検索語候補のポイントは、ステップS813で求めたポイントとなる。その後、検索語候補の決定処理を終了し、図7のステップS707に移行する。
【0068】
なお、入力語に3語以上含まれる場合、即ち、区切り文字が2つ以上含まれる場合には、ステップS808以降の処理を、各区切り文字の直後の文字列について繰り返すことにより、さらに絞り込みをかけた第3、第4の検索語候補を決定することができる。
【0069】
以上のように、本実施形態によれば、ウェブサイト内のウェブページから予め抽出した単語を検索を行う際の検索語候補としてユーザに提示することができるので、ユーザはウェブサイト内に確実に存在する単語を検索語として検索を行うことができる。
【0070】
また、ユーザが複数の単語を検索語として入力しようとする場合、ウェブサイト内のページで実際に関連性を有する単語の組合せを候補として提示することができるので、より精度の高い検索が可能となる。
【0071】
特に本発明では、2語目以降の検索語候補を決定する場合に、予めテーブルを用意せずにリアルタイム計算により候補を決定している。これにより、組合せの候補をデータベース内に予め登録しておく場合と比べて、データベースの容量コストを大幅に削減することができる。
【0072】
また、2語目以降の検索語候補は入力せずとも、1語目を入力した後にスペース等の区切り文字を入れるだけで、1語目と関連性の高い検索語の候補が提示される。よって、ユーザは2語目について自ら考えなくても、自分が探しているページに該当するであろう検索語を、提示候補の中から選択して効率的に検索を行うことができる。この際、本願発明では、履歴に基づき過去に組合せで入力された単語のペアを候補として提示するのではなく、サイト内の実際のページにおいて関連性が認められる単語のペアを提示する点に特に特徴を有する。この特徴により、ユーザはウェブページと真に関連する単語のペアを検索語として選択することができる。
【0073】
さらに、本発明によれば、単語を組み合わせて検索語候補を提示する場合に、リアルタイムに計算して候補を決定するので、検索履歴が蓄積されていないサイトオープン当初の段階からでも、的中率の高い検索語の組合せを確実に提示することができる。
【0074】
また、以上の処理(例えば上記図7a乃至図7gや図8に示したフローチャートに従った処理等)をコンピュータプログラムとしてCD−R、ROMやDVD−ROM、MO等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませる(インストール、もしくはコピーさせる)ことで、このコンピュータは以上の処理を行うことができる。よって、コンピュータプログラム及び記憶媒体も本発明の範疇にあることは明白である。
【図面の簡単な説明】
【0075】
【図1】発明の実施形態に対応するウェブサイト内検索システムの全体構成の一例を示すブロック図である。
【図2】発明の実施形態に対応するクライアント101のハードウェア構成の一例を示すブロック図である。
【図3】発明の実施形態に対応するサーバ103のハードウェア構成の一例を示すブロック図である。
【図4】発明の実施形態に対応する単語テーブルの一例を示す図である。
【図5】発明の実施形態に対応する仮名変換テーブルの一例を示す図である。
【図6】発明の実施形態に対応するローマ字変換テーブルの一例を示す図である。
【図7a】発明の実施形態に対応する、サイト内検索処理の一例を示す状態遷移図である。
【図7b】発明の実施形態に対応する、初期状態でのクライアント101の処理例を示す状態遷移図である。
【図7c】発明の実施形態に対応する、検索画面表示待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7d】発明の実施形態に対応する、検索画面表示状態でのクライアント101の処理例を示す状態遷移図である。
【図7e】発明の実施形態に対応する、検索語候補受信待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7f】発明の実施形態に対応する、検索結果受信待ち状態でのクライアント101の処理例を示す状態遷移図である。
【図7g】発明の実施形態に対応する、要求待ち状態でのサーバ103の処理例を示す状態遷移図である。
【図8】図7gの検索語候補探索処理の一例を示すフローチャートである。
【図9】検索画面の一例を示す図である。
【特許請求の範囲】
【請求項1】
インターネットに公開されたウェブサイトにアクセスするクライアント装置からの検索指示に応じて、該ウェブサイト内の検索を行うサーバ装置であって、
ウェブサイトを構成するウェブページの情報の全文検索を行うための第1のデータベースと、
前記ウェブページ内に含まれる単語を登録した第2のデータベースと、
前記クライアント装置において前記ウェブサイト内の検索を行うため入力された入力語を、新たな文字入力の度に受信する受信手段と、
受信した入力語と前方一致する単語を前記第2のデータベースにおいて探索し、検索語候補を決定する探索手段と、
前記探索手段が決定した検索語候補を、検索語として前記クライアントに送信する送信手段と、
前記クライアント装置から受信した前記検索語に基づき、前記第1のデータベースを利用して全文検索を行う検索手段と
を備え、
前記受信手段が受信した入力語に、区切り文字が含まれる場合に、
前記探索手段は、
前記区切り文字の直前の第1の入力語と前方一致する第1の単語を前記第2のデータベースにおいて探索し、
探索した前記第1の単語を含む第1のウェブページを前記第1のデータベースを用いて探索し、
探索した前記第1のウェブページにおいて前記第1の単語の周辺に存在する第1の周辺単語を抽出し、
前記第1の単語と前記第1の周辺単語とを、前記探索語候補に決定する
ことを特徴とするサーバ装置。
【請求項2】
前記探索手段は、さらに、
前記第1の単語と前記第1の周辺単語との前記第1のウェブページ内での距離、前記第1の周辺単語の前記第1のウェブページ内での出現頻度、前記第1の単語と前記第1の周辺単語との組合せが過去に選択された選択頻度、及び、前記組合せに与えられた順位の少なくともいずれかに基づいて、前記第1の単語と前記第1の周辺単語との組合せに与えられる第1のポイントを算出し、
前記送信手段は、前記第1のポイントを前記検索語候補と共に、クライアント装置に送信することを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記区切り文字の直後に第2の入力語が含まれる場合に、
前記探索手段は、さらに、
前記第1の周辺単語のうち、前記第2の入力語と前方一致する第2の周辺単語を選択し、
前記第1の単語と前記第2の周辺単語とを、前記探索語候補に決定する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記第2のデータベースは、
前記単語と、該単語の前記ウェブサイトにおける出現数に少なくとも基づいて与えられる第2のポイントとを関連づけて登録する単語テーブルと、
前記単語の平仮名表記、または、ローマ字表記を登録する変換テーブルと
を備え、
前記探索手段は、前記単語テーブルと、前記変換テーブルとを用いて、前記第1の単語を探索し、
前記単語は、漢字、平仮名、片仮名、アルファベット、記号、数字、合成語の少なくともいずれかの組合せからなることを特徴とする請求項1乃至3のいずれか1項に記載のサーバ装置。
【請求項5】
コンピュータを、請求項1乃至4のいずれか1項に記載のサーバ装置として機能させるためのコンピュータプログラム。
【請求項1】
インターネットに公開されたウェブサイトにアクセスするクライアント装置からの検索指示に応じて、該ウェブサイト内の検索を行うサーバ装置であって、
ウェブサイトを構成するウェブページの情報の全文検索を行うための第1のデータベースと、
前記ウェブページ内に含まれる単語を登録した第2のデータベースと、
前記クライアント装置において前記ウェブサイト内の検索を行うため入力された入力語を、新たな文字入力の度に受信する受信手段と、
受信した入力語と前方一致する単語を前記第2のデータベースにおいて探索し、検索語候補を決定する探索手段と、
前記探索手段が決定した検索語候補を、検索語として前記クライアントに送信する送信手段と、
前記クライアント装置から受信した前記検索語に基づき、前記第1のデータベースを利用して全文検索を行う検索手段と
を備え、
前記受信手段が受信した入力語に、区切り文字が含まれる場合に、
前記探索手段は、
前記区切り文字の直前の第1の入力語と前方一致する第1の単語を前記第2のデータベースにおいて探索し、
探索した前記第1の単語を含む第1のウェブページを前記第1のデータベースを用いて探索し、
探索した前記第1のウェブページにおいて前記第1の単語の周辺に存在する第1の周辺単語を抽出し、
前記第1の単語と前記第1の周辺単語とを、前記探索語候補に決定する
ことを特徴とするサーバ装置。
【請求項2】
前記探索手段は、さらに、
前記第1の単語と前記第1の周辺単語との前記第1のウェブページ内での距離、前記第1の周辺単語の前記第1のウェブページ内での出現頻度、前記第1の単語と前記第1の周辺単語との組合せが過去に選択された選択頻度、及び、前記組合せに与えられた順位の少なくともいずれかに基づいて、前記第1の単語と前記第1の周辺単語との組合せに与えられる第1のポイントを算出し、
前記送信手段は、前記第1のポイントを前記検索語候補と共に、クライアント装置に送信することを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記区切り文字の直後に第2の入力語が含まれる場合に、
前記探索手段は、さらに、
前記第1の周辺単語のうち、前記第2の入力語と前方一致する第2の周辺単語を選択し、
前記第1の単語と前記第2の周辺単語とを、前記探索語候補に決定する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記第2のデータベースは、
前記単語と、該単語の前記ウェブサイトにおける出現数に少なくとも基づいて与えられる第2のポイントとを関連づけて登録する単語テーブルと、
前記単語の平仮名表記、または、ローマ字表記を登録する変換テーブルと
を備え、
前記探索手段は、前記単語テーブルと、前記変換テーブルとを用いて、前記第1の単語を探索し、
前記単語は、漢字、平仮名、片仮名、アルファベット、記号、数字、合成語の少なくともいずれかの組合せからなることを特徴とする請求項1乃至3のいずれか1項に記載のサーバ装置。
【請求項5】
コンピュータを、請求項1乃至4のいずれか1項に記載のサーバ装置として機能させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7a】
【図7b】
【図7c】
【図7d】
【図7e】
【図7f】
【図7g】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7a】
【図7b】
【図7c】
【図7d】
【図7e】
【図7f】
【図7g】
【図8】
【図9】
【公開番号】特開2009−86744(P2009−86744A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−252252(P2007−252252)
【出願日】平成19年9月27日(2007.9.27)
【出願人】(599176539)株式会社マーズフラッグ (5)
【Fターム(参考)】
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願日】平成19年9月27日(2007.9.27)
【出願人】(599176539)株式会社マーズフラッグ (5)
【Fターム(参考)】
[ Back to top ]