以下、本発明が適用された実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
[構成および動作の説明]
図1は、本発明が適用されたコンテンツ提供システム1の構成を表す説明図である。
本実施形態のコンテンツ提供システム1は、インターネット等のWAN(広域ネットワーク)に、各種コンテンツを有するウェブサーバ10、及び、情報検索サーバ装置20等が接続され、そのWANにルータRT等を介して接続されたLAN(ローカルエリアネットワーク)に、パーソナルコンピュータ(以下、「パソコン」と表現する)30、ディジタル電話装置50、及び、情報収集解析装置70、が接続された構成にされている。
(1)情報検索サーバ装置20について
情報検索サーバ装置20は、CPU、ROM、RAM等(図示せず)を備え、各種演算処理を行う制御部21と、ハードディスク装置等で構成される記憶部23と、WANに接続された他の通信装置と通信を行うための通信部25と、を有し、ウェブサーバ10が有する各種コンテンツのリンク情報(URL情報)群からなるデータベースと、各種検索プログラムとを記憶部23に有する。
検索プログラムは、情報検索サーバ装置20が有するウェブサーバソフトウェアの配下にあり、外部の通信装置からアクセスがあると、制御部21により実行される。即ち、情報検索サーバ装置20は、検索プログラムに対するクエリを受信すると、そのクエリが含む検索式に従って、検索式に対応するコンテンツを、検索プログラムを用いて検索し、検索結果として、そのコンテンツのリンク情報(URL情報)を、クエリの送信先に返信する。
(2)パソコン30について
パソコン30は、CPU、ROM、RAM等(図示せず)を備え、各種演算処理を行う制御部31と、ハードディスク装置等で構成される記憶部33と、監視部35と、WANやLANに接続された他の通信装置と通信を行うための通信部37と、ユーザの操作情報を制御部31に伝達し、制御部31の演算結果を、ユーザに伝達するユーザインタフェース40と、を備える。また、パソコン30は、ユーザインタフェース40として、キーボードやポインティングデバイス等からなるユーザが操作可能な入力部41と、各種情報をユーザに向けて表示する表示部43と、を備える。
記憶部33には、ユーザが入力部41を通じて文書を作成したり、表示部43を通じて文書を閲覧したりするためのソフトウェア(アプリケーションソフトウェア)がインストールされており、制御部31は、このソフトウェアを実行することによって、入力部41から入力されるデータに従い、文書ファイル(データファイル)を作成・更新すると共に、その文書ファイルが有するテキストデータ(文字情報)を、表示部43に表示させる。また、入力部41から、文書ファイルの読出指令が入力されると、その文書ファイルが有するテキストデータ(文字情報)を、表示部43に表示させる。
その他、監視部35は、制御部31が実行するソフトウェアを監視し、ソフトウェアが表示部43に出力するデータであって、表示部43がユーザに向けて出力するテキストデータ(表示対象データ)を、上記ソフトウェアから収集し、これを情報収集解析装置70へ通信部37を通じて送信する。図2は、パソコン30の監視部35が実行するパソコン監視処理を表すフローチャートである。
監視部35は、パソコン監視処理を実行すると、S110にて、予め定められたデータ収集対象のソフトウェアの中に、未収集の表示対象データを保持するソフトウェアが存在するか否かを判断し、未収集の表示対象データを保持するソフトウェアが存在しないと判断すると(S110でNo)、未収集の表示対象データが発生するまで待機し、未収集の表示対象データを保持するソフトウェアが存在すると判断すると(S110でYes)、タイマーをリセットする(S120)。
S120での処理を終えると、監視部35は、未収集の表示対象データを有するソフトウェアが、文書作成モード、及び、文書閲覧モードのいずれのモードにあるか否かを判断し(S130)、文書作成モードであると判断すると(S130でYes)、「文書作成」を意味する装置利用情報を生成し(S140)、文書作成モードではない(即ち、文書閲覧モードである)と判断すると(S130でNo)、「文書閲覧」を意味する装置利用情報を生成する(S145)。
尚、ここでいう文書作成モードとは、上記ソフトウェアが、ユーザから入力されたデータに基づいて文書ファイル及び表示内容を逐次更新している状態であることを示し、文書閲覧モードとは、ユーザに向けて、ユーザから指定された文書ファイルが有するテキストデータ(文字情報)を表示している状態であることを示す。本実施形態では、データ収集対象のソフトウェアが、文書作成モード、及び、文書閲覧モードのいずれかの動作モードを、監視部35に通知する構成にされていることとする。
S140又はS145で装置利用情報を生成すると、監視部35は、上記ソフトウェアが、表示対象データとして表示部43に向けて出力するテキストデータであって、上記ソフトウェアから未収集のテキストデータを、そのソフトウェアから取得し、これを送信対象ファイルに書き込む(S150)。尚、この際、監視部35は、単位時間T1(例えば1分)の間に、制御部31が、表示部43に向けて出力する表示対象データであって、未収集のテキストデータを、逐次、送信対象ファイルに書き込むことにより、単位時間T1分のテキストデータを、送信対象ファイルに格納する。
そして、単位時間T1が経過すると(S160でYes)、現在時刻を記したソース生成時刻情報を生成し(S170)、その後、上記生成した単位時間T1分のテキストデータを有する送信対象ファイルと、S170で生成したソース生成時刻情報と、「パソコン」を意味する入力元情報と、S140又はS145で生成した装置利用情報と、を関連付けて、これらを情報収集解析装置70に送信する(S180)。
S180での処理を終えると、監視部35は、制御部31等から終了指令が入力されているか否かを判断し(S190)、終了指令が入力されていないと判断すると(S190でNo)、S110に移行して、次の未収集データが発生するまで待機し、終了指令が入力されていると判断すると(S190でYes)、当該パソコン監視処理を終了する。
(3)ディジタル電話装置50について
説明を図1に戻し、ディジタル電話装置50は、CPU、ROM、RAM等(図示せず)を備え、各種演算処理を行う制御部51と、設定情報等を記憶する記憶部53と、監視部55と、WANやLANに接続された他の通信装置と通信を行うための通信部57と、ユーザの入力を内部装置(制御部51や通信部57)に伝達し、内部装置(制御部51や通信部57)の出力を、ユーザに伝達するユーザインタフェース60と、を備える。
通信部57は、WANを介して外部の電話装置と通信可能な構成(例えばIP(インターネットプロトコル)電話機能を有する構成)にされており、当該ディジタル電話装置50は、ユーザインタフェース60として、ユーザから発せられる声を、音声データに変換して集音するマイクロフォン等からなる音入力部61と、通信部57が外部の電話装置から受信した音声データを再生するスピーカ等からなる音出力部63と、を備える。
また、監視部55は、音入力部61から制御部51を介して通信部57へ入力される音声データ、通信部57から制御部51を介して音出力部63へ入力される音声データを取得し、これらを、単位時間T2分(例えば10秒分)の音声データ毎に、テキストデータに変換して、送信対象ファイルを生成し、これを情報収集解析装置70に送信する構成にされている。図3は、ディジタル電話装置50の監視部55が繰返し実行する電話監視処理を表すフローチャートである。
電話監視処理を実行すると、監視部55は、当該ディジタル電話装置50と他の電話装置との接続がなされるまで待機し、当該ディジタル電話装置50と他の電話装置との接続がなされると(S210でYes)、その接続が、当該ディジタル電話装置50の発呼を原因とするものであるか否かを判断し(S220)、ディジタル電話装置50の発呼を原因とするものであると判断すると、「発呼」を意味する装置利用情報を生成し(S230)、上記接続が、他の電話装置の発呼(ディジタル電話装置50の着呼)を原因とするものであると判断すると、「着呼」を意味する装置利用情報を生成する(S235)。その後、S240に移行する。
S240に移行すると、監視部55は、単位時間T2分の音声データを取得し、取得した音声データをテキストデータに変換して、これを格納した送信対象ファイルを生成する。更に、現在時刻を記したソース生成時刻情報を生成し(S250)、その後、上記生成した送信対象ファイルと、S250で生成したソース生成時刻情報と、「ディジタル電話装置」を意味する入力元情報と、S230又はS235で生成した装置利用情報と、を関連付けて、これらを、情報収集解析装置70に送信する(S260)。
S260での処理を終えると、監視部55は、上記接続が断たれたか否かを判断し、上記接続が断たれていないと判断すると(S270でNo)、S240に移行して、次の時間T2分の音声データをテキストデータに変換し、これを情報収集解析装置70に送信する。また、上記接続が断たれたと判断すると(S270でYes)、当該電話監視処理を一旦終了する。そして、次の接続がなされるまで待機する(S210)。
(4)情報収集解析装置70について
説明を図1に戻し、本実施形態のコンテンツ提供システム1を構成する情報収集解析装置70は、CPU、ROM、RAM等(図示せず)を備え、各種演算処理を行う制御部71と、ハードディスク装置等で構成される記憶部73と、WANやLANに接続された他の通信装置と通信を行うための通信部75と、ウェブサーバ10等から取得したコンテンツをユーザに向けて表示するための表示部77と、コンテンツが、音声データを含む場合に、その音声データを再生して出力する音出力部79と、を備える。
この情報収集解析装置70は、記憶部73に、制御部71が実行する各種プログラムや、そのプログラム実行時に用いられる各種テーブルを備え、各種プログラムを実行することによって、情報検索サーバ装置20にクエリを送信し、クエリに設定した検索キーに対応するWAN上のウェブサーバ10が有するコンテンツを特定する情報(例えばURL)を、情報検索サーバ装置20から検索結果として取得する。また、その検索結果に基づいてウェブサーバ10にアクセスし、ウェブサーバ10が提供するコンテンツを取得して、これを表示・再生する。
図4は、表示部77が表示するコンテンツ提供画面の構成を表す説明図である。コンテンツ提供画面は、テキスト及び画像を表示するための領域であって、新しい情報を、スクロール表示する構成にされたテキスト・画像領域と、動画ファイルの再生結果を表示するための動画再生領域と、用語検索結果を表示するための用語表示領域と、を備える。
情報収集解析装置70は、パソコン30やディジタル電話装置50から受信したファイル(上記送信対象ファイル)に含まれるテキストデータに基づき、クエリを発行し、このコンテンツ提供画面に表示すべきコンテンツを、ウェブサーバ10から取得する。そして、これらを、表示・音出力の形態でユーザに提供する。
以下には、このコンテンツ提供サービスを実現するために、制御部71が実行する各種処理と、その処理実行時に用いられるテーブルの構成について説明する。
(4−1)ソース情報登録処理について
図5は、制御部71が繰返し実行するソース情報登録処理を表すフローチャートである。
ソース情報登録処理を実行すると、制御部71は、パソコン30から、S180(図2参照)で送信されるデータを受信するか、ディジタル電話装置50から、S260(図3参照)で送信されるデータを受信するまで待機し(S310)、受信すると(S310でYes)、その受信データに含まれるファイル(上記送信対象ファイル)を、記憶部73に保存する(S320)。更に、このファイルと共に受信したソース生成時刻情報、入力元情報、及び、装置利用情報と、上記ファイルの名称と、からなるソース情報を生成し、これをソース管理テーブルに登録する(S330)。その後、当該ソース情報登録処理を一旦終了し、次のデータを受信するまで待機する(S310)。
図6に示すように、ソース管理テーブルは、ソース生成時刻情報、入力元情報、装置利用情報、及び、ファイル名称、からなるソース情報を、複数記憶可能な構成になっており、制御部71は、このソース管理テーブルに登録されたソース情報に基づき、受信ファイル(上記送信対象ファイル)を、記憶部73から読み出し、受信ファイルの内容を解析する。
(4−2)キーワード抽出処理について(関心ベクトル算出処理を含む)
図7は、制御部71が、ソース情報登録処理と並列に実行するキーワード抽出処理を表すフローチャートである。
キーワード抽出処理を実行すると、制御部71は、S415の処理について未処理のソース情報がソース管理テーブルに存在するか否かを判断する(S410)。ここで、未処理のソース情報がソース管理テーブルに存在しないと判断すると(S410でNo)、未処理のソース情報がソース情報登録処理によって生成されるまで待機し、未処理のソース情報がソース管理テーブルに存在すると判断すると(S410でYes)、未処理のソース情報に関連付けられたファイルのテキストデータを解析(形態素解析)して、テキストデータ内の名詞を抽出し、更に、予め定められた特定名詞以外の名詞をキーワードとして抽出する(S415)。尚、本実施形態では、コンテンツの検索時にキーワードとして機能しない一般的な名詞が、特定名詞として、記憶部73に記憶されているものとする。
S415での処理を終えると、制御部71は、S420に移行し、関心ベクトル算出処理を実行する。図8は、制御部71が実行する関心ベクトル算出処理を表すフローチャートである。尚、本実施形態では、ユーザの関心事をベクトル表現し、これを用いて、ユーザに提供するコンテンツの出力の優先度を決定する。詳細は、必要に応じて適宜に説明するが、本実施形態でいう「関心ベクトル」とは、ユーザの関心事を数値化したベクトルのことである。具体的に、関心ベクトルVは、予め定められた関心の種類毎に、対応する要素を持つ1行n列のベクトルで表現される。
V=(v1,v2,…vn)
関心ベクトル算出処理を実行すると、制御部71は、まず初めに、関心ベクトルVを、ゼロにリセットし(S510)、S415(図7参照)で抽出したキーワード群の中から、S530以降の処理について未処理のキーワードを、一つ処理対象に選択し(S520)、選択した処理対象のキーワードを記憶部73が記憶する関心事推定テーブル内で検索する(S530)。尚、図9は、関心事推定テーブルの構成を表す説明図である。
関心事推定テーブルは、予め定められた関心の種類毎に、その関心の種類に属するキーワードと、関心ベクトルの算出時に行う重み付けについての定義情報(重み付け定義情報)と、を有する。
図8に説明を戻し、制御部71は、処理対象のキーワードが、関心事推定テーブルに登録されているキーワードの中に存在する場合、S540にてYesと判断し、関心事推定テーブルに基づいて、処理対象のキーワードが属する関心の種類を判別する(S550)。そして、処理対象のキーワードが属する関心の種類i(i=1,2,…,n)に対応する関心ベクトルVの要素viの値を、1加算する(S560)。その後、S570に移行する。一方、処理対象のキーワードが、関心事推定テーブルに登録されたキーワードではない場合、制御部71は、S540でNo(検索対象なし)と判断し、S570に移行する。
S570に移行すると、制御部71は、S530以降の処理を実行していない未処理のキーワードが、S530で抽出したキーワード群の中に存在するか否かを判断し、未処理のキーワードが存在すると判断すると(S570でYes)、S520に移行し、未処理のキーワードの中から、一つのキーワードを処理対象に選択し、S530以降の処理を実行する。
尚、本実施形態では、S530で抽出したキーワード群の中に、同一のキーワードが複数ある場合において、一のキーワードについてS530以降の処理を実行した場合であっても、他のキーワード(同一のキーワード)を処理済とせず、各キーワード(同一のキーワードの夫々)について、S530以降の処理を実行する。
そして、未処理のキーワードが存在しないと判断すると(S570でNo)、関心事推定テーブルの重み付け定義情報に従い、関心ベクトルVの各要素viの値を、重み付けする(S580)。
関心事推定テーブルの重み付け定義情報は、二種類の定義情報に分類され、第一種の重み付け定義情報は、装置利用情報と、重み付け係数Wとの組合せからなる。これに対し、第二種の重み付け定義情報は、時刻情報と、重み付け係数Wとの組合せからなる。
制御部71は、第一種の重み付け定義情報が設定された関心の種類に対応する関心ベクトルの要素viに対し、S415(図7参照)でキーワードを抽出したファイルに対応するソース情報の装置利用情報と、重み付け定義情報が示す装置利用情報とが一致する場合にのみ、重み付け定義情報に従って、重み付けを行う。
即ち、S580において、制御部71は、S415(図7参照)でキーワードを抽出したファイルに対応するソース情報の装置利用情報と一致する第一種の重み付け定義情報が設定された関心の種類に対応する関心ベクトルの要素viを、重み付けの対象とし、重み付け対象の要素viを、重み付け係数W倍にする。
vi←vi×W
また、制御部71は、第二種の重み付け定義情報が設定された関心の種類に対応する関心ベクトルの要素viに対し、現在時刻が、その重み付け定義情報の時刻情報が示す範囲内にある場合にのみ、重み付け定義情報に従って、重み付けを行う。
即ち、S580において、制御部71は、時刻情報が示す範囲内に現在時刻がある第二種の重み付け定義情報が設定された関心の種類に対応する関心ベクトルの要素viを、重み付けの対象とし、重み付け対象の要素viを、重み付け係数W倍にする。
S580にて、各要素についての重み付けが終了すると、制御部71は、関心ベクトルVの算出を完了して、これを返値として出力し、当該関心ベクトル算出処理を終了する。
説明を図7に戻し、S420で、上述の関心ベクトル算出処理を終了すると、制御部71は、S425に移行し、関心ベクトルVにおいて、最大値をとる要素(即ち、他の要素よりも値の大きい要素)に対応する関心の種類を判別する(S425)。
S425での処理を終えると、記憶部73が記憶する検索情報管理テーブルにおいて、個別検索情報の新規書込領域を確保し(S430)、その領域に、S415でキーワードを抽出したソース情報が有するソース生成時刻情報を書込み(S435)、更に、S420で算出した関心ベクトルを書込み(S440)、更に、S415で抽出したキーワードを検索キーとして書込み(S445)、その検索キーの数を書き込む(S450)。
図10は、検索情報管理テーブルの構成を表す説明図である。図10に示すように、各個別検索情報は、ソース生成時刻情報と、関心ベクトルの値と、検索キーの情報と、検索キーの数の情報と、からなる。
即ち、制御部71は、S430〜S450の処理を実行することによって、検索情報管理テーブルに、S415でキーワードを抽出したソース情報に対応する個別検索情報を登録する。そして、S450の処理を終えると、S455に移行して、終了指令が入力されているか否かを判断し、終了指令が入力されていないと判断すると(S455でNo)、S410に移行して、未処理のソース情報が生成されるまで待機し、終了指令が入力されていると判断すると(S455でYes)、当該キーワード抽出処理を終了する。
(4−3)検索制御処理について
次に、制御部71が、キーワード抽出処理と並列に実行する検索制御処理について説明する。図11は、制御部71が実行する検索制御処理を表すフローチャートである。
検索制御処理を実行すると、まずS660において、S665以降の処理について未処理の個別検索情報が、検索情報管理テーブル内に存在するか否かを判断し、未処理の個別検索情報が存在すると判断すると(S660でYes)、S665に移行し、未処理の個別検索情報が存在しないと判断すると(S660でNo)、S660に移行して、未処理の個別検索情報が生成されるまで待機する。
S665に移行すると、制御部71は、未処理の個別検索情報であって、ソース生成時刻が最新の個別検索情報を処理対象にする。そして、S670に移行して、S665において処理対象の個別検索情報が複数存在する場合は、その中で検索キー数が最大の個別検索情報を処理対象として選択する。
S670での処理を終えると、制御部71は、検索プログラム管理テーブルから、クエリ未発行の検索プログラム情報を一つ選択する(S675)。そして、S670で選択した個別検索情報を処理対象に指定して、上記選択した検索プログラム情報についての検索プロセスを起動する(S680)。
尚、図12は、記憶部73が記憶する検索プログラム管理テーブルの構成を表す説明図である。図12に示すように、検索プログラム管理テーブルは、実行対象の検索プログラム毎に、検索プログラムを有する情報検索サーバ装置20のアドレス情報(URL情報)と、クエリの生成方法(検索式の生成方法を含む)を示すクエリ生成情報と、検索プログラムが検索するコンテンツの種類を表すカテゴリ情報と、からなる検索プログラム情報を有する。
つまり、S675において、制御部71は、この検索プログラム管理テーブルが有する検索プログラム情報の内、クエリをアドレス情報に従うURL先の情報検索サーバ装置20に送信していない検索プログラム情報(クエリ未発行の検索プログラム情報)を、処理対象に一つ選択し、S680において、検索プロセスを起動する。尚、起動された検索プロセスは、スケジューラにより管理されて、他のプロセスと並列に実行され、指定された検索プログラム情報が示すクエリ生成情報に基づいてクエリを生成し、これを、検索プログラム情報のアドレス情報が示すURL先の情報検索サーバ装置20に送信する。
S680での処理を終えると、制御部71は、クエリ未発行の検索プログラム情報が、検索プログラム管理テーブルに存在するか否かを判断し(S685)、クエリ未発行の検索プログラム情報が存在すると判断すると(S685でYes)、S675に移行し、クエリ未発行の検索プログラム情報の中から、処理対象の検索プログラム情報を一つ選択し、S680以降の処理を実行する。
一方、クエリ未発行の検索プログラム情報が、検索プログラム管理テーブルに存在しないと判断すると(S685でNo)、終了指令が入力されているか否かを判断し(S690)、終了指令が入力されていないと判断すると(S690でNo)、S660に移行する。一方、終了指令が入力されていると判断すると(S690でYes)、当該検索制御処理を終了する。
(4ー4)検索処理について
次に、制御部71が並列に実行する各検索プロセスにて、実現される検索処理について説明する。図13は、検索処理を表すフローチャートである。
検索処理を実行すると、制御部71は、まず、検索プログラム管理テーブルから、選択された検索プログラム情報を読み出し(S805)、読み出した検索プログラム情報が有するクエリ生成情報と、指定された処理対象の個別検索情報が有する検索キーの一群と、に基づいて、その個別検索情報が有する検索キーを、検索キーに設定した検索式を生成し、これを格納した情報検索サーバ装置20への問合せ信号であるクエリを生成する(S810)。
そして、生成したクエリを、検索プログラム情報が示すURL先に送信して、情報検索サーバ装置20が有する上記URL先の検索プログラムを、情報検索サーバ装置20に実行させる(S815)。この際、情報検索サーバ装置20は、受信したクエリが含む検索式に従って、上記個別検索情報が有する検索キーに対応するコンテンツを検索し、検索結果として、そのコンテンツのリンク情報(URL情報)を格納した応答信号を、情報収集解析装置70に返信する。
制御部71は、S815にてクエリを送信した後、応答信号を情報検索サーバ装置20から受信したか否かを判断し(S820)、応答信号を受信していないと判断すると(S820でNo)、応答信号を受信するまで待機する。
一方、S820で、応答信号を受信したと判断すると(S820でYes)、S825に移行して、応答信号が検索結果であるか、それとも、検索を中断した旨の応答信号であるかを判断し、応答信号が検索結果ではない(検索を中断した旨の応答信号である)と判断すると(S825でNo)、当該検索処理(検索プロセス)を終了する。
一方、応答信号が検索結果であると判断すると(S825でYes)、制御部71は、指定された検索プログラム情報のカテゴリ情報が「用語検索」であるか否かを判断し(S830)、「用語検索」ではなく「一般検索」であると判断すると(S830でNo)、応答信号として受信したリンク情報の一群からなる検索結果から、一般検索であることに基づいて予め定められた件数分(例えば5件分)のリンク情報(URL情報)を抽出し、リンク情報毎に、対応するリンク情報を記した個別結果情報を生成し(S835)、生成したリンク情報毎の個別結果情報を、記憶部73が記憶する検索結果管理テーブルに登録する(S840)。個別結果情報は、ソース生成時刻情報と、検索結果を出力した検索プログラムの種類を表すカテゴリ情報と、リンク情報(URL情報)を記したコンテンツ記憶先アドレス情報と、取得有無情報と、取得完了時刻と、出力有無情報と、評価値と、からなる
図14は、記憶部73が記憶する検索結果管理テーブルの構成を表す説明図である。検索結果管理テーブルは、一つ又は複数の個別結果情報からなる。
制御部71は、S835にて、抽出したリンク情報毎に、「NO」に設定された取得有無情報と、「NULL」に設定された取得完了時刻と、「NO」に設定された出力有無情報と、「NULL」に設定された評価値と、を備える個別結果情報を生成し、各個別結果情報を検索結果管理テーブルに登録する(S840)。S840での処理を終えると、当該検索処理(検索プロセス)を終了する。
一方、S830にて、上記指定された検索プログラム情報のカテゴリ情報が「用語検索」であると判断すると(S830でYes)、制御部71は、応答信号として受信したリンク情報の一群からなる検索結果から、用語検索であることに基づいて定められた件数分(例えば1件分)のリンク情報(URL情報)を抽出し、そのリンク情報を記した個別結果情報(上述したものと同様のもの)を生成し(S845)、生成した個別結果情報を、記憶部73が記憶する検索結果管理テーブルに登録する(S850)。そして、S850での処理を終えると、当該検索処理(検索プロセス)を終了する。
(4−5)検索結果評価処理について(読み出し処理およびカレント関心テーブル更新処理を含む)
次に、制御部71が、検索制御処理と並列に実行する検索結果評価処理について説明する。図15は、制御部71が実行する検索結果評価処理を表すフローチャートである。
検索結果評価処理を実行すると、制御部71は、まず、S720以降の処理について、未処理の個別結果情報が、検索結果管理テーブル内に存在するか否かを判断し(S710)、未処理の個別結果情報が存在すると判断すると(S710でYes)、S720に移行し、未処理の個別結果情報が存在しないと判断すると(S710でNo)、未処理の個別結果情報が、検索結果管理テーブル内に登録されるまで待機する。
S720に移行すると、制御部71は、未処理の個別結果情報を処理対象に選択し、S720での処理を終えるとS730に移行し、読出処理を実行する。図16は、制御部71が実行する読出処理を表すフローチャートである。
読出処理を実行すると、制御部71は、まず、タイマーをリセットする(S905)。その後、検索結果管理テーブルから、指定された処理対象の個別結果情報が有するコンテンツ記憶先アドレス情報を読み出し(S810)、読み出したコンテンツ記憶先アドレス情報が示すURL先に、コンテンツの要求信号を送信する(S915)。
制御部71は、S915にて要求信号を送信した後、タイマーの値に基づき処理制限時間が経過したか否かを判断し(S920)、処理制限時間が経過していないと判断すると(S920でNo)、S930に移行する。一方、処理制限時間が経過していると判断すると(S920でYes)、S925にてセッションを閉じ(通信を終了し)、当該読出処理(読出プロセス)を終了する。
S930に移行すると、制御部71は、S915で送信した要求信号に対する応答信号を受信したか否かを判断し、応答信号を受信していないと判断すると(S930でNo)、S920に移行する。一方、S930で応答信号を受信したと判断すると(S930でYes)、制御部71は、応答信号が要求したコンテンツであるか、それとも、エラー情報であるのかを判断し(S940)、応答信号がコンテンツではない(エラー情報である)と判断すると(S940でNo)、当該読出処理(読出プロセス)を終了する。
一方、応答信号がコンテンツであると判断すると(S940でYes)、そのコンテンツを、記憶部73に保存し(S945)、その後、処理対象の個別結果情報が有するコンテンツ記憶先アドレス情報を、コンテンツの保存先を表すURL情報に変更して、検索結果管理テーブル(個別結果情報)を更新する(S950)。そして、当該読出処理(読出プロセス)を終了する。
説明を図15に戻し、読出処理を終えるとS740に移行し、S730における読出処理において、正常にコンテンツを読み出すことができたか否かを判断する。この判断は、S950(図16参照)を経て読出処理を終えたか否かで判断する(S950を経て読出処理を終えた場合は正常にコンテンツを読み出すことができたと判断し、S950を経ずに読出処理を終えた場合は正常にコンテンツを読み出すことができなかったと判断する)。
S740において、S730における読出処理において正常にコンテンツを読み出すことができたと判断すると(S740でYes)、S745に移行する。一方、S730における読出処理において正常にコンテンツを読み出すことができなかったと判断すると(S740でNo)、終了指令が入力されているか否かを判断し(S780)、終了指令が入力されていないと判断すると(S780でNo)、S710に移行する。一方、終了指令が入力されていると判断すると(S780でYes)、当該検索評価処理を終了する。
また、S745に移行すると、制御部71は、S730における読出処理において正常に読み出すことができたコンテンツに対応する個別結果情報の取得有無情報を「YES」に更新すると共に取得完了時刻情報の領域に現在時刻を書き込み、その後、S750に移行して、制御部71はカレント関心テーブル更新処理を実行する。図17は、制御部71が実行するカレント関心テーブル更新処理を表すフローチャートである。
カレント関心テーブル更新処理を実行すると、制御部71は、検索情報管理テーブルにおいてソース生成時刻が最も新しい個別検索情報の関心ベクトルを読み出し(S610)、読み出した関心ベクトルをカレント関心テーブルの関心ベクトルの領域へ書き込む(S620)。
S620での処理を終えると、現在の時刻をカレントテーブルの更新時刻情報の領域へ書き込み(S630)、当該カレント関心テーブル更新処理を終える。
尚、図18は、カレント関心テーブルの構成を表す説明図である。カレント関心テーブルは、1レコードのみから構成されるテーブルであり、当該レコードは、レコードの更新時刻を示す更新時刻情報と、現在のユーザに関心事を示す関心ベクトルと、を有する。
説明を図15に戻し、カレント関心テーブル更新処理を終えると、S760に移行し、S720で選択した個別結果情報に対応する個別検索情報に含まれる関心ベクトルVと、カレント関心テーブルの関心ベクトルVcとの内積を計算し、検索結果管理テーブルにおけるS720で選択した個別結果情報の評価値の領域に書き込む。尚、この内積計算は、以下のようにして行う。
まず関心ベクトルVを、関心ベクトルVのノルム||V||で除算することにより、関心ベクトルVについての正規ベクトルEを算出する。
E=V/||V||
また、カレント関心ベクトルVcを、カレント関心ベクトルVのノルム||Vc||で除算することにより、カレント関心ベクトルVcについての正規ベクトルEcを算出する。
Ec=Vc/||Vc||
その後、関心ベクトルVについての正規ベクトルEと、カレント関心ベクトルVcについての正規ベクトルEcとの内積Rを算出する。
R=E・Ec
これによって内積を計算し、検索情報管理テーブルにおける上記処理対象の個別検索情報を更新する。
S760での処理を終えると、S770に移行し、S760で書き込んだ評価値が閾値未満であったものについてのみ、再度、当該個別結果情報の評価値の領域に0を書き込む。ここで言う閾値というのは、実験やユーザの好み等によって定められるべきものであり、この閾値を調整することにより、コンテンツの出力有無の判断具合を調整することができる。
そして、S770での処理を終えると、終了指令が入力されているか否かを判断し(S780)、終了指令が入力されていないと判断すると(S780でNo)、S710に移行する。一方、終了指令が入力されていると判断すると(S780でYes)、当該検索評価処理を終了する。
(4−6)出力処理について(表示制御処理を含む)
次に、制御部71が検索結果評価処理等と並列に実行する出力処理について説明する。図19は、制御部71が実行する出力処理を表すフローチャートである。
出力処理を実行すると、制御部71は、記憶部73に保存されたコンテンツの内、未出力のコンテンツが存在するか否かを判断する(S1010)。記憶部73に未出力のコンテンツが存在するか否かの判断は、検索結果管理テーブルにおける取得有無情報と出力有無情報と、に基づいて行う。具体的には、取得有無情報が「YES」であり、かつ、出力有無情報が「NO」である個別結果情報が検索結果管理テーブルに登録されている場合、この個別結果情報に対応するコンテンツを未出力のコンテンツと判断し、未出力のコンテンツが記憶部73に存在すると判断する。
このようにして判断した結果、未出力のコンテンツが記憶部73に存在しないと判断すると(S1010でNo)、制御部71は、未出力のコンテンツが発生するまで待機し、未出力のコンテンツが存在すると判断すると(S1010でYes)、未出力のコンテンツのうち対応する個別結果情報の評価値が最高値であるコンテンツを一つ、処理対象として選択する(S1015)。しかし、その最高値が0より大きくない場合には(S1020でNo)、その選択したコンテンツに対応する個別結果情報の出力有無情報を「YES」に更新してS1010に移行する。一方、最高値が0より大きい場合には(S1020でYes)、そのコンテンツに対応する個別結果情報に基づき、処理対象のコンテンツが用語検索結果であるか否かを判断する(S1025)。
具体的には、例えば、コンテンツに対応する個別結果情報が示すカテゴリ情報が「用語検索」であるか否かを判断することにより、処理対象のコンテンツが、用語検索結果であるか否かを判断する。その他、コンテンツを解析して、処理対象のコンテンツが用語検索結果であるか否かを判断してもよい。
S1025で、コンテンツが用語検索結果であると判断すると(S1025でYes)、制御部71は、コンテンツを、表示部77のコンテンツ提供画面における用語表示領域に表示し(S1030)、その後S1060に移行する。一方、S1025で、コンテンツが用語検索結果ではないと判断すると、S1035に移行して、処理対象のコンテンツが動画ファイルであるか否かを判断し、処理対象のコンテンツが動画ファイルであると判断すると(S1035でYes)、処理対象のコンテンツと、コンテンツを取得する元となったソース情報が示すソース生成時刻情報と、を関連付けて動画再生データキューへ登録する。その後、S1060に移行する。
尚、本実施形態の情報収集解析装置70では、制御部71が、動画再生データキューとしての機能と、動画再生データキューに登録されたコンテンツ(動画ファイル)を再生する機能と、を有する。図21(a)は、制御部71にて実現される動画再生データキューと、制御部71にて実行される動画再生領域表示制御プロセスと、を示した説明図である。
動画再生領域表示制御プロセスは、動画再生データキューに登録されたコンテンツを、登録された順に再生処理して、コンテンツ提供画面における動画再生領域に動画を出力し、音声を音出力部79に出力する。
説明を図19に戻し、S1035で、処理対象のコンテンツが動画ファイルではないと判断すると(S1035でNo)、S1045に移行し、処理対象のコンテンツが、音声ファイルであるか否かを判断する。そして、音声ファイルであると判断すると(S1045でYes)、そのコンテンツ(音声ファイル)を再生処理し、音出力部79に、コンテンツを音出力させる(S1050)。その後、S1060に移行する。
尚、S1050の実行時に、過去に再生を開始した音声ファイルの再生処理が継続中である場合には、その音声ファイルの再生処理を中断して、上記処理対象のコンテンツ(音声ファイル)を再生処理する。その他、動画再生領域表示制御プロセスにより、音声を伴う動画が再生されている場合には、その音出力に代えて、当該コンテンツ(音声ファイル)の音出力を、音出力部79に実行させる。
また、処理対象のコンテンツが音声ファイルではないと判断すると(S1045でNo)、S1055に移行して、制御部71は表示制御処理を実行する。図20は、制御部71が実行する表示制御処理を表すフローチャートである。
表示制御処理を実行すると、制御部71は、現在、テキスト・画像領域の表示データキューに入っているコンテンツの評価値の合計に占める、現在処理対象としているコンテンツ(図19のS1015で選択したコンテンツ)の評価値の割合を求め、その割合を重みとする(S1110)。
S1110での処理を終えると、現在処理対象としているコンテンツの表示文字の大きさを20pt*重みとし(S1115)、テキスト・画像領域に占める当該コンテンツの表示領域の縦サイズを200mm*重みとし(S1120)、当該コンテンツの表示文字の濃度を、標準文字*(0.5+重み)というように計算して決定する(S1125)。
そして、S1130に移行すると、重みが0.5より大きいか否かを判断し、重みが0.5より大きいと判断すると(S1130でYes)、当該コンテンツの表示インデントを表示領域の左端から0mmとし(S1135)、表示文字も太文字とする(S1140)。そして、S1165に移行する。
一方、重みが0.5より大きくないと判断すると(S1130でNo)、重みが0.2より小さいか否かを判断し(S1145)、重みが0.2より小さいと判断すると(S1145でYes)、当該コンテンツの表示インデントを表示領域の左端から20mmとし(S1135)、表示文字も太文字とする(S1140)。そして、S1165に移行する。
また、重みが0.2より小さくないと判断すると(S1145でNo)、当該コンテンツの表示インデントを表示領域の左端から10mmとし(S1150)、S1165に移行する。
S1165に移行すると、制御部71は、表示データキューに、処理対象のコンテンツと、コンテンツを取得する元となったソース情報が示すソース生成時刻情報と、を関連付けて登録する。その後、当該表示制御処理を終了する。
尚、本実施形態の情報収集解析装置70では、制御部71が、表示データキューとしての機能と、表示データキューに登録されたコンテンツ(ウェブページ等の文字・画像情報)を表示する機能と、を有する。
図21(b)は、制御部71にて実現される表示データキューと、制御部71にて実行されるテキスト・画像領域表示制御プロセスと、を示した説明図である。テキスト・画像領域表示制御プロセスは、表示データキューに登録されたコンテンツを、登録された順に、表示処理して、コンテンツ提供画面におけるテキスト・画像領域に表示する。
説明を図19に戻し、S1055における表示制御処理を終えるとS1060に移行し、制御部71は、処理対象のコンテンツに対応する個別結果情報の出力有無情報を、「YES」に更新し、その後、S1065に移行して、ソース生成時刻と現在時刻との差分が、所定時間を超過しているコンテンツを、動画再生データキュー及び表示データキューから削除する。
その後、終了指令が入力されているか否かを判断し(S1070)、終了指令が入力されていないと判断すると(S1070でNo)、S1010に移行し、終了指令が入力されていると判断すると(S1070でYes)、当該出力処理を終了する。
[実施形態の効果]
このようなコンテンツ提供システム1によれば、コンテンツを取得した後にそのコンテンツに対する現時点のユーザの関心度合いを評価し(上記検索結果評価処理)、コンテンツの出力を制御するようになっているため(上記出力処理)、ユーザの関心毎と一致しないコンテンツがユーザに提供されることをできるだけ防止できると共にユーザが関心を持っているコンテンツを適切なタイミングで提供することができる。
また、コンテンツを出力する際に、上記評価の結果が優れたコンテンツから順に出力するようになっているため(出力処理におけるS1010〜S1055)、ユーザが欲している可能性の高いコンテンツをいち早くユーザに提供することができる。
また、コンテンツを出力する際、上記評価結果が0以下のものは出力しないようになっているため(出力処理におけるS1020でNo)、出力されるコンテンツがユーザの関心に比較的合致したもの(つまり価値が高いもの)のみとなり、ユーザにとって価値の低いコンテンツが出力されることを防止できる。
また、ユーザの現在の関心事は、ソース管理テーブルに直前に記憶されたソース情報に基づいて推定されるようになっているが(カレント関心テーブル更新処理)、直前のソース情報は最も直近のユーザの関心事と関連していると考えられる。このため、ソース管理テーブルに直前に記憶されたソース情報に基づいて推定されるようになっていれば、推定される関心事は実際のユーザの関心事に敏感に連動したものとなり、現在のユーザの関心に合致した適したコンテンツが提供されやすくなる。
[他の実施形態]
(1)カレント関心テーブル更新処理2について
上述したカレント関心テーブル更新処理(図17参照)の代わりに、図22のフローチャートによって表されるカレント関心テーブル更新処理2を制御部71が実行してもよい。以下、このカレント関心テーブル更新処理2について図22のフローチャートを用いて説明する。
カレント関心テーブル更新処理2を実行すると、制御部71は、現在時刻とカレント関心テーブル2に記憶されている終了時刻とを比較し、終了時刻が現在時刻に達しているか否かを判断する(S1210)。尚、図23は、カレント関心テーブル2の構成を表す説明図である。カレント関心テーブル2は、1レコードのみから構成されるテーブルであり、当該レコードは、レコードの更新時刻を示す更新時刻情報と、関心ベクトルの有効終了時刻を示す終了時刻情報と、現在のユーザに関心事を示す関心ベクトルと、を有する。
図22に説明を戻し、カレント関心テーブル2に記憶されている終了時刻が現在時刻に達していないと判断すると(S1210でNo)、当該カレント更新テーブル更新処理2を終える。
一方、カレント関心テーブル2に記憶されている終了時刻が現在時刻に達している(又は超えている)と判断すると(S1210でYes)、検索情報管理テーブルにおいてソース生成時刻が最も新しい個別検索情報を読み出す(S1220)。そして、その個別検索情報に含まれる関心ベクトルを、カレント関心テーブル2の関心ベクトル情報の領域へ書き込む(S1230)。
そして、個別検索情報に含まれる関心ベクトルに対応する関心持続時間を関心持続時間テーブルを参照して算出し、現在の時刻に加算してカレント関心テーブル2の終了時刻情報の領域へ書き込む(S1240)。尚、図24は、関心持続時間テーブルの構成を表す説明図である。関心持続時間テーブルは、予め定められた関心の種類と、その関心が持続すると推定される時間(関心持続時間)を表す情報と、が対応づけられたレコードが記憶されている。
また、S1240における関心持続時間の算出方法は、関心ベクトルを構成する各要素のうち、最大値をとる要素(関心の種類)に対応する関心持続時間を関心持続時間テーブルから読み出し、その値を関心持続時間とすることによって算出してもよい。また、正規化した関心ベクトルを構成する各要素に対応させて関心持続時間テーブルを参照し、線形結合した値を関心持続時間としてもよい(例:正規化された関心ベクトルV(v1,v2,v3)=(0.7,0.2,0.1)であり、それぞれの関心の種類に対応する関心持続時間が、(10秒,20秒,5秒)であった場合、関心持続時間=(10秒*0.7)+(20秒*0.2)+(5秒*0.1)=11.5秒と計算する)。
説明を図22に戻し、S1240での処理を終えると、現在の時刻をカレントテーブル2の更新時刻情報の領域へセットし(S1250)、当該カレント関心テーブル更新処理2を終える。
一般的に、ユーザの思考状況によっては、ユーザの関心事は一定時間持続する場合もある。そのような場合には、その一定時間内に多数回、現在のユーザの関心事を評価する意味は薄く、逆に、ノイズと言えるような情報を拾って誤った関心事を評価するケースも考えられる。したがって、このようなカレント関心テーブル更新処理2をカレント関心テーブル更新処理の代わりに制御部71が実行するようになっていれば、「一旦設定された関心(関心ベクトル)はその終了時刻経過前であれば一定時間持続される」とみなすことととなり、都度カレント関心テーブルの更新処理を行わない(S1210でYes)。そのため、制御部71の処理負担が減るとともに、ノイズ情報に左右されにくく適切なコンテンツが提供されやすくなる。
(2)検索結果評価処理2について
上述した検索結果評価処理(図15参照)の代わりに、図25のフローチャートによって表される検索結果評価処理2を制御部71が実行してもよい。以下、この検索結果評価処理2について図25のフローチャートを用いて説明する。
検索結果評価処理2を実行すると、制御部71は、まず、S1320以降の処理について未処理の個別結果情報が、検索結果管理テーブル内に存在するか否かを判断し(S1310)、未処理の個別結果情報が存在すると判断すると(S1310でYes)、S1320に移行し、未処理の個別結果情報が存在しないと判断すると(S1310でNo)、未処理の個別結果情報が、検索結果管理テーブル内に登録されるまで待機する。
S1320に移行すると、制御部71は、未処理の個別結果情報を処理対象に選択し、S1320での処理を終えるとS1330に移行し、上述した読出処理(図16参照)を実行する。
S1330での読出処理を終えるとS1340に移行し、S1330における読出処理において、正常にコンテンツを読み出すことができたか否かを判断する。この判断は、S950(図16参照)を経て読出処理を終えたか否かで判断する(S950を経て読出処理を終えた場合は正常にコンテンツを読み出すことができたと判断し、S950を経ずに読出処理を終えた場合は正常にコンテンツを読み出すことができなかったと判断する)。
S1340において、S1330における読出処理において正常にコンテンツを読み出すことができたと判断すると(S1340でYes)、S1350に移行する。一方、S1330における読出処理において正常にコンテンツを読み出すことができなかったと判断すると(S1340でNo)、終了指令が入力されているか否かを判断し(S1390)、終了指令が入力されていないと判断すると(S1390でNo)、S1310に移行する。一方、終了指令が入力されていると判断すると(S1390でYes)、当該検索評価処理2を終了する。
また、S1350に移行すると、制御部71は、S1330における読出処理において正常に読み出すことができたコンテンツに対応する個別結果情報の取得有無情報を「YES」に更新すると共に取得完了時刻の領域に現在時刻を書き込み、その後、S1360に移行する。そして、個別結果情報に対応する個別検索情報を読み出し、その個別検索情報に含まれる関心ベクトルに対応する関心持続時間を関心持続時間テーブルを参照して算出する。
なお、この関心持続時間の算出方法は、関心ベクトルを構成する各要素のうち、最大値をとる要素(関心の種類)に対応する関心持続時間を関心持続時間テーブルから読み出し、その値を関心持続時間とすることによって算出してもよい。また、正規化した関心ベクトルを構成する各要素に対応させて関心持続時間テーブルを参照し、線形結合した値を関心持続時間としてもよい(例:正規化された関心ベクトルV(v1,v2,v3)=(0.7,0.2,0.1)であり、それぞれの関心の種類に対応する関心持続時間が、(10秒,20秒,5秒)であった場合、関心持続時間=(10秒*0.7)+(20秒*0.2)+(5秒*0.1)=11.5秒と計算する。)。
S1360での処理を終えるとS1370に移行し、個別結果情報のソース生成時刻と取得完了時刻との時間差を算出する。そして、S1380に移行し、S1360で算出した関心持続時間からS1370で算出した時間差を引き、その値を個別結果情報の評価値の領域に書き込む(S1380)。
S1380での処理を終えると、終了指令が入力されているか否かを判断し(S1390)、終了指令が入力されていないと判断すると(S1390でNo)、S1310に移行する。一方、終了指令が入力されていると判断すると(S1390でYes)、当該検索評価処理2を終了する。
このように、上述した検索結果評価処理(図15参照)の代わりに、検索結果評価処理2を制御部71が実行し、ユーザの関心の種類を考慮しつつ、短時間で取得できたコンテンツを優先して出力するようになっていても、ユーザの関心の推移とは一致しないコンテンツがユーザに提供されるといった問題を解決することができる。
(3)その他
上記実施形態のコンテンツ提供システム1では、情報収集解析装置70が単体の装置として存在するようになっているが、このような構成はあくまでも説明を容易にするための構成例にすぎず、これ以外にも様々な構成をとることが可能である。例えば、パソコン30と情報収集解析装置70とが一体となった構成でもよい。
なお、コンテンツ提供システム1が前述のコンテンツ出力システムに相当し、パソコン30およびディジタル電話装置50が情報処理装置に相当する。
また、情報収集解析装置70における通信部75が前述のデータ取得手段およびコンテンツ取得手段に相当し、情報収集解析装置70における制御部71が第一の関心事推定手段,第二の関心事推定手段,類似性評価手段、出力制御手段に相当する。
また、情報収集解析装置70における表示部77および音出力部79が前述の出力手段に相当する。
また、検索結果評価処理2のS1370において算出した「時間差」が前述の「経過時間」に相当し、検索結果評価処理2のS1380において、S1360で算出した関心持続時間からS1370で算出した時間差を引いたものが、「残り有効時間」に相当する。