(57)【要約】【課題】ユーザが所望する文書を容易かつ適切に検索することができるようにする。【解決手段】ユーザによる検索を支援する検索クライアント１０において、ＣＰＵ１１により、ユーザから検索の条件とするユーザ条件を受け付ける受付部と、ユーザによる操作における操作対象データを特定可能な操作ログを収集するログ収集部と、ログ収集部により収集された１以上の操作ログにより特定される操作対象データの内容に基づいて、１以上の候補カテゴリを特定する候補カテゴリ特定部と、候補カテゴリ特定部により特定された１以上の前記候補カテゴリから、検索に使用する１以上の検索使用カテゴリを決定する検索使用カテゴリ決定部と、ユーザ条件と、検索使用カテゴリとを含む検索条件により、検索を実行させる検索制御部と、を構成するようにする。【選択図】図１
2019168787.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによる検索を支援する検索支援装置であって、
前記ユーザによる操作における操作対象データを特定可能な操作ログを収集するログ収集部と、
前記ユーザから検索の条件とするユーザ条件を受け付ける受付部と、
前記ログ収集部により収集された１以上の操作ログにより特定される操作対象データの内容に基づいて、１以上の候補カテゴリを特定する候補カテゴリ特定部と、
前記候補カテゴリ特定部により特定された１以上の前記候補カテゴリから、検索に使用する１以上の検索使用カテゴリを決定する検索使用カテゴリ決定部と、
前記ユーザ条件と、前記検索使用カテゴリとを含む検索条件により、検索を実行させる検索制御部と、
を備える検索支援装置。
【請求項２】
前記候補カテゴリ特定部は、直近の複数の操作ログにより特定される操作対象データの内容に対応する１以上のカテゴリを候補カテゴリとして特定する
請求項１に記載の検索支援装置。
【請求項３】
前記候補カテゴリ特定部は、前記操作対象データが文書データである場合には、前記文書データの内容に基づいて前記候補カテゴリを特定する
請求項１又は請求項２に記載の検索支援装置。
【請求項４】
前記候補カテゴリ特定部は、前記操作対象データがプログラム言語のデータである場合には、前記プログラム言語を前記候補カテゴリに特定する
請求項１から請求項３のいずれか一項に記載の検索支援装置。
【請求項５】
前記候補カテゴリ特定部は、前記操作対象データがサイトのページである場合には、前記サイトのページの内容に基づいて前記候補カテゴリを特定する
請求項１から請求項４のいずれか一項に記載の検索支援装置。
【請求項６】
前記候補カテゴリ特定部は、前記操作対象データが音声データである場合には、前記音声データをテキスト化し、テキスト化された内容に基づいて前記候補カテゴリを特定する
請求項１から請求項５のいずれか一項に記載の検索支援装置。
【請求項７】
検索によって使用されたカテゴリを特定可能な１以上の検索ログを取得する検索ログ取得部をさらに有し、
前記検索使用カテゴリ決定部は、前記候補カテゴリ特定部により特定された１以上の候補カテゴリと、前記検索ログ取得部により取得された１以上の検索ログにより特定されるカテゴリとの中から、前記検索使用カテゴリを決定する
請求項１から請求項６のいずれか一項に記載の検索支援装置。
【請求項８】
ユーザによる検索を支援する検索支援装置による検索支援方法であって、
前記ユーザによる操作における操作対象データを特定可能な操作ログを収集するログ収集ステップと、
前記ユーザから検索の条件とするユーザ条件を受け付ける受付ステップと、
前記ログ収集ステップで収集された１以上の操作ログにより特定される操作対象データの内容に基づいて、１以上の候補カテゴリを特定する候補カテゴリ特定ステップと、
前記候補カテゴリ特定ステップで特定された１以上の前記候補カテゴリから、検索に使用する１以上の検索使用カテゴリを決定する検索使用カテゴリ決定ステップと、
前記ユーザ条件と、前記検索使用カテゴリとを含む検索条件により、検索を実行させる検索ステップと、
を備える検索支援方法。
【請求項９】
ユーザによる検索を支援する検索支援装置を構成するコンピュータに実行させるための検索支援プログラムであって、
前記コンピュータを、
前記ユーザによる操作における操作対象データを特定可能な操作ログを収集するログ収集部と、
前記ユーザから検索の条件とするユーザ条件を受け付ける受付部と、
前記ログ収集部により収集された１以上の操作ログにより特定される操作対象データの内容に基づいて、１以上の候補カテゴリを特定する候補カテゴリ特定部と、
前記候補カテゴリ特定部により特定された１以上の前記候補カテゴリから、検索に使用する１以上の検索使用カテゴリを決定する検索使用カテゴリ決定部と、
前記ユーザ条件と、前記検索使用カテゴリとを含む検索条件により、検索を実行させる検索制御部と、
して機能させる検索支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによる文書の検索を支援する検索支援装置等に関する。
【背景技術】
【０００２】
従来、文書の検索を行うための検索システムが知られている。検索システムにおいては、ユーザが検索クライアントに対して所望する文書に含まれる語句を検索条件として入力すると、検索サーバによって検索条件が含まれる文書が検索され、検索結果が検索クライアントに表示される。
【０００３】
例えば、特許文献１には、ユーザの関心により適合した検索結果を表示する技術として、ユーザ情報を記憶し、ユーザ情報に基づいてウェブページに付加的リンクを設定した検索結果を送信する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１２０４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、検索システムにおいては、ユーザに入力された語句によって検索結果の精度が影響を受けるので、ユーザが所望する文書が検索結果として表示されないことがある。また、ユーザの語句が正しい場合であっても、その語句がユーザの意図している概念以外で使用されるような場合には、ユーザが所望する文書が検索結果として表示されない場合や、検索結果として下位の文書となってしまい、ユーザがその文書にたどり着くことが困難な場合がある。
【０００６】
これに対して、ユーザが所望する文書に適切な語句をできるだけ詳細に検索条件として入力することができれば、所望する文書に到達する可能性が高くなるが、このように、語句を詳細に入力することは、ユーザにとって困難な場合が多く、また、手間がかかるという問題がある。
【０００７】
本発明は、上記事情に鑑みなされたものであり、その目的は、ユーザが所望する文書を容易かつ適切に検索することのできる技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、一観点に係る検索支援装置は、ユーザによる検索を支援する検索支援装置であって、ユーザによる操作における操作対象データを特定可能な操作ログを収集するログ収集部と、ユーザから検索の条件とするユーザ条件を受け付ける受付部と、ログ収集部により収集された１以上の操作ログにより特定される操作対象データの内容に基づいて、１以上の候補カテゴリを特定する候補カテゴリ特定部と、候補カテゴリ特定部により特定された１以上の候補カテゴリから、検索に使用する１以上の検索使用カテゴリを決定する検索使用カテゴリ決定部と、ユーザ条件と、検索使用カテゴリとを含む検索条件により、検索を実行させる検索制御部と、を備える。
【発明の効果】
【０００９】
本発明によれば、ユーザが所望する文書を容易かつ適切に検索することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施形態に係る検索システムの全体構成図である。
【図２】図２は、一実施形態に係る操作ログテーブルの構成図である。
【図３】図３は、一実施形態に係る検索ログテーブルの構成図である。
【図４】図４は、一実施形態に係る学習処理のフローチャートである。
【図５】図５は、一実施形態に係る操作ログ格納処理のフローチャートである。
【図６】図６は、一実施形態に係る検索処理のフローチャートである。
【図７】図７は、一実施形態に係るカテゴリ評価抽出処理のフローチャートである。
【図８】図８は、一実施形態に係る検索使用カテゴリ決定処理のフローチャートである。
【発明を実施するための形態】
【００１１】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
以下の説明では、「ＡＡＡテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ＡＡＡテーブル」を「ＡＡＡ情報」と呼ぶことができる。
【００１３】
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェース装置（例えばポート）を用いながら行うため、処理の主体がプロセッサとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。
【００１４】
図１は、一実施形態に係る検索システムの全体構成図である。
【００１５】
検索システム１は、１以上の検索クライアント１０と、検索サーバ２０と、検索ログサーバ３０とを備える。検索クライアント１０と、検索サーバ２０と、検索ログサーバ３０とは、例えば、ネットワーク４０を介して接続されている。
【００１６】
ネットワーク４０は、例えば、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や無線ＬＡＮなどのネットワークである。
【００１７】
検索クライアント１０は、検索支援装置の一例であり、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）によって構成されている。検索クライアント１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、メモリ１２と、入出力デバイス１３と、通信回路１４と、記憶デバイス１５と、を備えている。
【００１８】
通信回路１４は、例えば、有線ＬＡＮカードや無線ＬＡＮカードなどのインターフェースであり、ネットワーク４０を介して他の装置（例えば、検索サーバ２０、検索ログサーバ３０）と通信する。
【００１９】
ＣＰＵ１１は、メモリ１２及び／又は記憶デバイス１５に格納されているプログラムに従って各種処理を実行する。
【００２０】
メモリ１２は、例えば、ＲＡＭ（ＲＡＮＤＯＭ  ＡＣＣＥＳＳ  ＭＥＭＯＲＹ）であり、ＣＰＵ１１で実行されるプログラムや、必要な情報を記憶する。
【００２１】
記憶デバイス１５は、例えば、ハードディスクドライブやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などであり、ＣＰＵ１１で実行されるプログラムや、ＣＰＵ１１に利用されるデータを記憶する。本実施形態では、記憶デバイス１５は、プログラムとして履歴検索プログラム１５２と、カテゴリ評価プログラム１５３とを記憶し、データとして操作ログテーブル１５１を記憶する。ここで、履歴検索プログラム１５２と、カテゴリ評価プログラム１５３とにより、検索支援プログラムが構成される。
【００２２】
履歴検索プログラム１５２は、操作ログの履歴を管理する処理と、操作ログを用いて検索する処理とを実行するプログラムである。カテゴリ評価プログラム１５３は、文書に対応するカテゴリを評価し、適切なカテゴリを決定する処理を実行するプログラムである。本実施形態では、カテゴリ評価プログラム１５３は、予め作成されたニューラルネットワークモデル（以下単にモデルという）をカテゴリごとに有し、これらモデルに対して文章内の複数の単語を入力することにより、この文章についての各カテゴリの評価を行い、各カテゴリの評価に基づいて文書のカテゴリを特定する処理を行う。なお、本実施形態では、カテゴリ評価プログラム１５３は、カテゴリごとに分類された文書を教師データとして、各カテゴリに対応するモデルを学習する処理を実行する。ここで、ＣＰＵ１１が履歴検索プログラム１５２を実行することにより、ログ収集部と、受付部と、検索使用カテゴリ決定部と、検索制御部と、検索ログ取得部とが構成される。また、ＣＰＵ１１がカテゴリ評価プログラム１５３を実行することにより、候補カテゴリ特定部が構成される。
【００２３】
操作ログテーブル１５１は、検索クライアント１０のユーザ（利用者）による操作によって使用（参照等）したデータを特定可能なログ（操作ログ）の履歴を格納するテーブルである。操作ログテーブル１５１の詳細については後述する。
【００２４】
入出力デバイス１３は、例えば、マウス、キーボード等のユーザによる操作入力を受け付ける入力装置と、ディスプレイ等の各種情報を表示出力する表示装置とを含む。
【００２５】
検索サーバ２０は、例えば、ＰＣによって構成されている。検索サーバ２０は、ＣＰＵ２１と、メモリ２２と、ＤＶＤ−ＲＯＭドライブ２３と、通信回路２４と、記憶デバイス２５と、を備えている。
【００２６】
通信回路２４は、例えば、有線ＬＡＮカードや無線ＬＡＮカードなどのインターフェースであり、ネットワーク４０を介して他の装置（例えば、検索クライアント１０、検索ログサーバ３０）と通信する。
【００２７】
ＣＰＵ２１は、メモリ２２及び／又は記憶デバイス２５に格納されているプログラムに従って各種処理を実行する。
【００２８】
メモリ２２は、例えば、ＲＡＭであり、ＣＰＵ２１で実行されるプログラムや、必要な情報を記憶する。
【００２９】
記憶デバイス２５は、例えば、ハードディスクドライブやＳＳＤなどであり、ＣＰＵ２１で実行されるプログラムや、ＣＰＵ２１に利用されるデータを記憶する。本実施形態では、記憶デバイス２５は、プログラムとしてＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２５１と、検索プログラム２５２とを記憶し、データとして文書データＤＢ（データベース）２５３を記憶する。
【００３０】
検索プログラム２５２は、文書データＤＢ２５３から検索クライアント１０から送信された検索条件に対応する文書データを検索し、検索元の検索クライアント１０に検索結果を送信する。文書データＤＢ２５３は、検索対象の文書データを格納する。
【００３１】
ＤＶＤ−ＲＯＭドライブ２３は、例えば、不揮発性の記録媒体の一例であるＤＶＤ−ＲＯＭに格納されたプログラムやデータを読み込むドライブである。
【００３２】
検索ログサーバ３０は、例えば、ＰＣによって構成されている。検索ログサーバ３０は、ＣＰＵ３１と、メモリ３２と、入出力デバイス３３と、通信回路３４と、記憶デバイス３５と、を備えている。
【００３３】
通信回路３４は、例えば、有線ＬＡＮカードや無線ＬＡＮカードなどのインターフェースであり、ネットワーク４０を介して他の装置（例えば、検索クライアント１０、検索サーバ２０）と通信する。
【００３４】
ＣＰＵ３１は、メモリ３２及び／又は記憶デバイス３５に格納されているプログラムに従って各種処理を実行する。
【００３５】
メモリ３２は、例えば、ＲＡＭであり、ＣＰＵ３１で実行されるプログラムや、必要な情報を記憶する。
【００３６】
記憶デバイス３５は、例えば、ハードディスクドライブやＳＳＤなどであり、ＣＰＵ３１で実行されるプログラムや、ＣＰＵ３１に利用されるデータを記憶する。本実施形態では、記憶デバイス３５は、プログラムとして検索ログプログラム３５２を記憶し、データとして検索ログテーブル３５１を記憶する。
【００３７】
検索ログプログラム３５２は、検索クライアント１０又は検索サーバ２０から送られたユーザによる検索に関するログ（検索ログ）を検索ログテーブル３５１に格納する処理と、検索クライアント１０からの検索ログの要求に対して検索ログテーブル３５１から検索ログを取得して送信する処理とを実行するプログラムである。検索ログテーブル３５１は、複数の検索クライアント１０による検索ログを格納するテーブルである。検索ログテーブル３５１の詳細については後述する。
【００３８】
入出力デバイス３３は、例えば、マウス、キーボード等のユーザによる操作入力を受け付ける入力装置と、ディスプレイ等の各種情報を表示出力する表示装置とを含む。
【００３９】
次に、操作ログテーブル１５１の詳細な構成について説明する。
【００４０】
図２は、一実施形態に係る操作ログテーブルの構成図である。
【００４１】
操作ログテーブル１５１は、ユーザの操作に関するログ（操作ログ）を管理するテーブルである。操作ログテーブル１５１の操作ログ（エントリ）は、日時１５１ａと、種別１５１ｂと、タイトル１５１ｃと、参照先１５１ｄとのフィールドを含む。日時１５１ａには、操作が行われた日時が格納される。種別１５１ｂには、ユーザの操作対象を示す種別が格納される。種別としては、「文書」、「音声」、「プログラム」、「サイト」等がある。「文書」は、例えば、Ｗｏｒｄ（登録商標）のファイル、Ｅｘｃｅｌ（登録商標）のファイル、テキストのファイル等の文書ファイルをユーザが使用（参照）している場合に設定され、「音声」は、ユーザが音声データを参照（視聴）している場合に設定され、「プログラム」は、ユーザがプログラムファイル（例えば、識別子が「．ｊａｖａ」、「．ｃ」、「．ｃｐｐ」）等）を使用（編集等）している場合に設定され、「サイト」は、ユーザがサイト（サイトのウェブページ）を参照している場合に設定される。タイトル１５１ｃには、操作対象のタイトルが格納される。参照先１５１ｄには、操作対象のデータの位置（参照先）が格納される。具体的には、参照先１５１ｄには、操作対象のデータのディレクトリ及びファイル名や、操作対象のサイトのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が格納される。なお、操作ログテーブル１５１には、最新の操作ログから所定の個数の操作ログを格納するようにしてもよく、或いは、最新の所定の時間範囲（例えば、３０分以内）の操作ログを格納するようにしてもよい。
【００４２】
次に、検索ログテーブル３５１の詳細な構成について説明する。
【００４３】
図３は、一実施形態に係る検索ログテーブルの構成図である。
【００４４】
検索ログテーブル３５１は、複数のユーザの検索に関するログ（検索ログ）を管理するテーブルである。検索ログテーブル３５１の検索ログ（エントリ）は、日時３５１ａと、検索カテゴリ３５１ｂとのフィールドを含む。日時３５１ａには、検索が行われた日時が格納される。検索カテゴリ３５１ｂには、検索において検索クライアント１０により追加されて使用されたカテゴリが格納される。なお、検索ログテーブル３５１には、最新の検索ログから所定の個数の検索ログを格納するようにしてもよく、或いは、最新の所定の時間範囲（例えば、３０分以内）の検索ログを格納するようにしてもよい。
【００４５】
次に、検索システム１における処理動作について説明する。
【００４６】
図４は、一実施形態に係る学習処理のフローチャートである。
【００４７】
学習処理は、検索クライアント１０のカテゴリ評価プログラム１５３（正確には、カテゴリ評価プログラム１５３を実行するＣＰＵ１１）が各カテゴリのモデルを学習する処理であり、後述する検索処理が実行される前に実行される。なお、カテゴリ評価プログラム１５３に、学習したモデルをすでに用意している場合には、学習処理を行わなくてもよい。
【００４８】
まず、カテゴリ評価プログラム１５３は、学習用にカテゴリごとに分けられている文書データ（教師データ）を記憶デバイス１５から取り出す（ステップＳ１１）。なお、教師データは、他の装置から取得するようにしてもよい。例えば、「農業」とのカテゴリを評価するモデルを学習させる場合には、「農業」のカテゴリとして評価されるべき、文書「みかんの栽培」等を教師データとして用意しておく。
【００４９】
次いで、カテゴリ評価プログラム１５３は、取り出した文書内容を単語に分割し（ステップＳ１２）、単語をカテゴリごとに仕分ける（ステップＳ１３）。
【００５０】
次いで、カテゴリ評価プログラム１５３は、ループＡの処理（ステップＳ１４）を、各カテゴリを対象に実行する。ここで、処理対象のカテゴリを対象カテゴリということとする。
【００５１】
ループＡにおいては、カテゴリ評価プログラム１５３は、対象カテゴリを評価するためのモデルを、対象カテゴリに分類された単語を用いて学習を行う（ステップＳ１４）。
【００５２】
そして、すべてのカテゴリを対象に、ループＡの処理を終了した場合には、カテゴリ評価プログラム１５３は、ループＡを終了し、ループＡで作成された各カテゴリを評価する各モデルの学習結果（各モデルの重み等の設定値）を記憶デバイス１５に格納し（ステップＳ１５）、学習処理を終了する。
【００５３】
この学習処理によると、記憶デバイス１５には、各カテゴリを評価する複数のモデル（具体的には、モデルの設定値）が格納されることとなり、カテゴリ評価プログラム１５３は、各モデルを使用して、文書の内容がどのカテゴリかを特定することができるようになる。
【００５４】
次に、操作ログ格納処理について説明する。
【００５５】
図５は、一実施形態に係る操作ログ格納処理のフローチャートである。
【００５６】
操作ログ格納処理は、例えば、検索クライアント１０が起動している際に逐次実行される。
【００５７】
検索クライアント１０の履歴検索プログラム１５２は、入出力デバイス１３を介してユーザによる操作を受け付ける（ステップＳ２１）。次いで、履歴検索プログラム１５２は、受け付けた操作の内容に相当する操作ログを作成し、操作ログテーブル１５１に格納し（ステップＳ２２）、操作ログ格納処理を終了する。具体的には、履歴検索プログラム１５２は、操作の日時、操作対象の種別、操作対象のデータのタイトル、及び操作対象のデータの位置を含む操作ログを作成して操作ログテーブル１５１に格納する。
【００５８】
次に、検索処理について説明する。
【００５９】
図６は、一実施形態に係る検索処理のフローチャートである。
【００６０】
検索処理は、検索クライアント１０において、履歴検索プログラム１５２が入出力デバイス１３を介して、ユーザから検索条件（ユーザ条件）の入力を受け付けた場合に実行が開始される。
【００６１】
履歴検索プログラム１５２は、予め設定された処理対象とする操作ログの数（１以上）だけループＢの処理（ステップＳ３１〜Ｓ４３）を繰り返して実行する。
【００６２】
ループＢにおいては、まず、履歴検索プログラム１５２は、処理対象とする操作ログの中の未処理の操作ログ（対象操作ログ）を操作ログテーブル１５１から取得する（ステップＳ３１）。ここで、処理対象とする操作ログとしては、直近の操作ログから所定数としてもよい。次いで、履歴検索プログラム１５２は、対象操作ログの種別１５１ｂの値を参照することで、対象操作ログが示す操作が文書を参照であるか否かを判定する（ステップＳ３２）。
【００６３】
この判定の結果、対象操作ログが示す操作が文書を参照である場合（ステップＳ３２：ＹＥＳ）には、履歴検索プログラム１５２は、対象操作ログの参照先１５１ｄから参照先を特定し、参照先の文書の内容を取得し、取得した文書を対象にカテゴリ評価抽出処理（図７参照）を実行し（ステップＳ３４）、カテゴリ評価抽出処理により抽出されたカテゴリを候補カテゴリと特定してメモリ１２に保存する（ステップＳ４３）。
【００６４】
一方、ステップＳ３２における判定の結果、対象操作ログが示す操作が文書を参照でない場合（ステップＳ３２：ＮＯ）には、履歴検索プログラム１５２は、対象操作ログが示す操作の対象がプログラム系のファイルであるか否かを判定する（ステップＳ３５）。具体的には、履歴検索プログラム１５２は、操作対象のファイルの識別子が、Ｊａｖａ（登録商標）言語のプログラムファイルであることを示す「．ｊａｖａ」、Ｃ言語のプログラムファイルであることを示す「．ｃ」、又は、Ｃ＋＋のプログラムファイルであることを示す「．ｃｐｐ」である場合には、操作対象がプログラム系のファイルであると判定する。
【００６５】
この結果、対象操作ログが示す操作の対象がプログラム系のファイルである場合（ステップＳ３５：ＹＥＳ）には、履歴検索プログラム１５２は、ファイルの識別子に対応するプログラム言語をカテゴリとして決定し（ステップＳ３６）、決定したカテゴリを候補カテゴリとしてメモリ１２に保存する（ステップＳ４３）。履歴検索プログラム１５２は、例えば、識別子が「．ｊａｖａ」の場合には、カテゴリをＪａｖａと決定し、識別子が「．ｃ」の場合には、カテゴリをＣ言語と決定し、識別子が「．ｃｐｐ」の場合には、カテゴリをＣ＋＋と決定する。
【００６６】
一方、ステップＳ３５における判定の結果、対象操作ログが示す操作の対象がプログラム系のファイルでない場合（ステップＳ３５：ＮＯ）には、履歴検索プログラム１５２は、対象操作ログが示す操作の対象が音声系のファイルであるか否かを判定する（ステップＳ３７）。
【００６７】
この結果、対象操作ログが示す操作の対象が音声系のファイルである場合（ステップＳ３７：ＹＥＳ）には、履歴検索プログラム１５２は、対象操作ログの参照先１５１ｄから参照先を特定し、参照先の音声ファイルのデータをテキスト化し（ステップＳ３８）、テキスト化した文書を対象にカテゴリ評価抽出処理（図７参照）を実行し（ステップＳ３９）、カテゴリ評価抽出処理により抽出されたカテゴリを候補カテゴリとしてメモリ１２に保存する（ステップＳ４３）。
【００６８】
一方、ステップＳ３７における判定の結果、対象操作ログが示す操作の対象が音声系のファイルでない場合（ステップＳ３７：ＮＯ）には、履歴検索プログラム１５２は、対象操作ログが示す操作がサイトの閲覧か否かを判定する（ステップＳ４０）。
【００６９】
この結果、対象操作ログが示す操作がサイトの閲覧である場合（ステップＳ４０：ＹＥＳ）には、履歴検索プログラム１５２は、対象操作ログの参照先１５１ｄから参照先を特定し、参照先のサイトの内容（文書）を取得し（ステップＳ４１）、取得した文書を対象にカテゴリ評価抽出処理（図７参照）を実行し（ステップＳ４２）、カテゴリ評価抽出処理により抽出されたカテゴリを候補カテゴリとしてメモリ１２に保存する（ステップＳ４３）。
【００７０】
一方、ステップＳ４０における判定の結果、対象操作ログが示す操作がサイトの閲覧でない場合（ステップＳ４０：ＮＯ）には、履歴検索プログラム１５２は、処理をステップＳ４３に進め、候補カテゴリとしては何も格納しない。
【００７１】
そして、処理対象とした操作ログのすべてを対象としてループＢの処理を終了した場合には、履歴検索プログラム１５２は、ループＢを終了し、検索に使用するカテゴリ（検索使用カテゴリ）を決定する検索使用カテゴリ決定処理（図８参照）を実行し（ステップＳ４４）、検索使用カテゴリ決定処理により決定されたカテゴリをユーザ条件に追加した検索条件により検索を実行し、すなわち、検索条件を検索サーバ２０に送信し（ステップＳ４５）、処理を終了する。この結果、検索サーバ２０から検索条件に対応する検索結果が返送され、履歴検索プログラム１５２は、検索結果を、入出力デバイス１３を介して表示させる。なお、本実施形態では、履歴検索プログラム１５２は、検索サーバ２０に検索条件を送信した場合には、その検索条件に含めた検索使用カテゴリを、検索ログサーバ３０の検索ログプログラム３５２に送信する。
【００７２】
次に、カテゴリ評価抽出処理について説明する。
【００７３】
図７は、一実施形態に係るカテゴリ評価抽出処理のフローチャートである。
【００７４】
カテゴリ評価抽出処理は、図６の検索処理におけるステップＳ３４、Ｓ３９、Ｓ４２に対応する処理である。
【００７５】
まず、カテゴリ評価プログラム１５３は、カテゴリ評価の対象とする文書（対象文書）の内容を単語に分割し（ステップＳ５１）、ループＣの処理（ステップＳ５２）を評価するカテゴリの数分繰り返し実行する。
【００７６】
ループＣにおいては、カテゴリ評価プログラム１５３は、評価するカテゴリの中の１つの処理対象のカテゴリ（対象カテゴリ）の評価に用いる学習済みのモデルに対して、対象文書の単語を入力することにより、対象文書の対象カテゴリに対する評価を行う（ステップＳ５２）。
【００７７】
そして、すべてのカテゴリを対象としてループＣの処理を終了した場合には、カテゴリ評価プログラム１５３は、ループＣを終了し、複数のカテゴリの中で評価が最も高かったカテゴリを抽出し（ステップＳ５３）、カテゴリ評価抽出処理を終了する。
【００７８】
このカテゴリ評価抽出処理によると、対象文書のカテゴリを適切に抽出することができる。
【００７９】
次に、検索使用カテゴリ決定処理について説明する。
【００８０】
図８は、一実施形態に係る検索使用カテゴリ決定処理のフローチャートである。
【００８１】
検索使用カテゴリ決定処理は、図６の検索処理におけるステップＳ４４に対応する処理である。
【００８２】
履歴検索プログラム１５２は、複数の検索クライアント１０において検索で使用されたカテゴリを検索ログサーバ３０から取得する（ステップＳ６１）。ここで、検索ログサーバ３０から取得するカテゴリとしては、最近の所定数（１以上）の検索ログのカテゴリを取得してもよく、所定時間以内で使用された頻度が高い上位のカテゴリとしてもよい。
【００８３】
次いで、履歴検索プログラム１５２は、操作ログに基づいて決定された候補カテゴリ（ステップＳ４３でメモリ１２に保存されているカテゴリ）と、検索ログサーバ３０から取得したカテゴリとに基づいて、検索に使用するカテゴリ（検索使用カテゴリ）を決定する（ステップＳ６２）。ここで、検索使用カテゴリの決定方法としては、任意の方法を用いてもよく、例えば、直近の複数の検索ログから最も利用されているカテゴリ（高頻度利用カテゴリ）を特定し、候補カテゴリ内に、高頻度利用カテゴリと一致するものがあれば、この候補カテゴリを検索使用カテゴリに決定してもよく、また、最近の複数の検索ログのカテゴリと、候補カテゴリとの中で、数が最も多いカテゴリを検索使用カテゴリと決定してもよい。
【００８４】
以上説明したように、本実施形態に係る検索システム１によると、ユーザが入力した検索条件に加えて、ユーザの操作ログに基づいたカテゴリを追加させて検索させることができるので、ユーザに手間をかけさせることなく、より広範かつ適切なカテゴリを検索に使用することができ、ユーザの所望する文書を効果的に検索できる可能性が高くなる。また、他のユーザによる過去に使用されたカテゴリを用いて検索に使用するカテゴリを決定するようにしているので、検索するユーザだけでなく、過去のユーザの検索傾向に応じて適切に検索を行うことができるので、ユーザの所望する文書をより効果的に検索することができる。
【００８５】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【００８６】
例えば、上記実施形態では、モデルを使用して、文書について複数のカテゴリを評価し、その文書に対応するカテゴリを抽出するようにしていたが、文書のカテゴリを抽出する方法は、モデルを使用する方法に限られず、他の任意の方法を用いてもよい。
【００８７】
また、上記実施形態において、検索ログサーバ３０が、検索ログを、その検索をしたユーザに対応付けて管理するようにし、ステップＳ６１において、他のユーザ（検索をしているユーザと異なるユーザ）による検索で使用された検索ログのカテゴリのみを取得するようにしてもよく、検索しているユーザと所定の関係にある他のユーザ（例えば、同じグループ（会社、組織、部署、クラス等）に属する他のユーザ）の検索ログのカテゴリのみを取得するようにしてもよい。このようにすると、ユーザと共通する検索を実行する傾向が高い他のユーザが利用したカテゴリを利用して検索することができるので、ユーザが所望する文書を検索できる可能性がより高くなる。
【符号の説明】
【００８８】
１…検索システム、１０…検索クライアント、１１…ＣＰＵ、１２…メモリ、１３…入出力デバイス、１５…記憶デバイス、２０…検索サーバ、３０…検索ログサーバ、１５１操作ログテーブル、１５２…履歴検索プログラム、１５３…カテゴリ評価プログラム
【図１】
2019168787.tif 000003
【図２】
2019168787.tif 000004
【図３】
2019168787.tif 000005
【図４】
2019168787.tif 000006
【図５】
2019168787.tif 000007
【図６】
2019168787.tif 000008
【図７】
2019168787.tif 000009
【図８】
2019168787.tif 000010