図1は、文書管理システム1SYの全体的な構成の例を示す図である。図2は、プロファイル管理サーバ1のハードウェア構成の例を示す図である。図3は、プロファイル管理サーバ1の機能的構成の例を示す図である。図4は、端末装置2のハードウェア構成の例を示す図である。図5は、端末装置2の機能的構成の例を示す図である。
文書管理システム1SYは、図1に示すように、プロファイル管理サーバ1、端末装置2、ドキュメントサーバ3、画像形成装置4、および通信回線5などによって構成される。
文書管理システム1SYは、種々の情報、特に文書を管理しユーザに提供するためのシステムである。文書管理システム1SYは、企業、役所、または学校などの組織に設置され、組織のメンバーによって用いられる。以下、ある企業において文書管理システム1SYが用いられる場合を例に説明する。したがって、この企業の従業員が文書管理システム1SYのユーザである。各ユーザには、ユニークなID(identification)であるユーザコードが1つずつ与えられている。
プロファイル管理サーバ1、端末装置2、ドキュメントサーバ3、および画像形成装置4は、通信回線5を介して通信を行うことができる。通信回線5として、固定電話回線、携帯電話網、PHS(Personal Handy-phone System)回線、専用線、インターネット、またはいわゆるLAN(Local Area Network)回線などが用いられる。LAN回線の全部または一部として、無線LANの回線を用いることができる。
プロファイル管理サーバ1は、ユーザごとのプロファイルを管理する。プロファイルとして、特に、ユーザに関連する単語を管理する。また、ユーザに関連する単語をキーワードとして用いて文書の検索を支援する。これらについては、後に詳細に説明する。
プロファイル管理サーバ1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、ハードディスク10d、およびNIC(Network Interface Card)10eなどによって構成される。
NIC10eは、端末装置2、ドキュメントサーバ3、および画像形成装置4のほか、インターネット上のウェブサーバなどと通信を行うための装置である。
ROM10cまたはハードディスク10dには、図3に示す操作状況データ取得部101、アクションデータ取得部102、作業文書データ取得部103、カレントケース切換部104、単語抽出部105、重要度算出部106、関連度算出部107、プロファイルデータ生成部108、取得トリガアクション記憶部121、カレントケースデータ記憶部122、プロファイルデータ記憶部123、情報検索部131、および学習処理部132などの機能を実現するためのプログラムが記憶されている。このプログラムは、プロファイルの管理および情報の検索のためのものである。このプログラムは、必要に応じてRAM10bにロードされ、CPU10aによって実行される。
図1に戻って、端末装置2は、文書(ドキュメント)の作成および編集を行ったり、プロファイル管理サーバ1、ドキュメントサーバ3、および画像形成装置4などが提供する種々のサービスを受けたりするための装置である。端末装置2として、パーソナルコンピュータ、タブレットコンピュータ(タブレットPC)、携帯電話端末、またはスマートフォンなどが用いられる。以下、端末装置2としてタブレットコンピュータが用いられる場合を例に説明する。
端末装置2は、図4に示すように、CPU20a、RAM20b、フラッシュメモリ20c、タッチパネルディスプレイ20d、操作ボタン群20e、無線LAN通信装置20f、近距離無線通信装置20g、携帯電話通信装置20h、マイクロフォン20i、スピーカ20j、デジタルカメラ20k、およびジャイロセンサ20mなどによって構成される。
タッチパネルディスプレイ20dは、ユーザに対してメッセージを与えるための画面、処理の結果を示す画面、またはユーザが指示を入力するための画面などを表示する。また、タッチパネルディスプレイ20dは、タッチされた位置を検知し、CPU20aにその位置を通知する。
操作ボタン群20eは、いわゆるホーム画面に戻るためのボタン、音量を調整するためのボタン、および電源のオン/オフを切り換えるためのボタンなどによって構成される。
無線LAN通信装置20f、近距離無線通信装置20g、および携帯電話通信装置20hは、いずれも、無線によって他の装置と通信を行うための装置である。ただし、それぞれ、通信の方式などが異なる。
無線LAN通信装置20fは、無線LANの規格、つまり、IEEE(Institute of Electrical and Electronics Engineers)802.11の規格に基づいて通信を行う。
近距離無線通信装置20gは、近距離無線通信の規格に基づいて通信を行う。例えば、Bluetooth(登録商標)またはZigBeeなどの規格に基づいて通信を行う。また、ワイヤレスキーボード、ワイヤレスマウス、エアペン(Air Pen)、視線追従型ヘッドマウントディスプレイ、およびジェスチャコントローラなどを、近距離無線通信装置20gを介して端末装置2に接続することもできる。なお、ジェスチャコントローラは、深度センサまたはジャイロセンサなどを有し、ユーザがジェスチャによって本体(本例では、端末装置2)をコントロールするための入力装置である。ジェスチャコントローラとして、マイクロソフト社のKinectまたはリープモーション社のLEAPなどが用いられる。
携帯電話通信装置20hは、CDMA(Code Division Multiple Access)2000またはW−CDMA(Wideband-CDMA)などの規格に基づいて通信を行う。
マイクロフォン20iは、集音し音声データを生成する。スピーカ20jは、音声データに基づいて音声を出力する。デジタルカメラ20kは、画像を撮影し画像データを生成する。動画像を撮影し動画像の画像データを生成することも、できる。ジャイロセンサ20mは、端末装置2の姿勢を検知する。
フラッシュメモリ20cには、文書(ドキュメント)の作成用のアプリケーション(例えば、ワープロソフト)がインストールされている。そのほか、メーラ、ウェブブラウザ、スケジューラ、メッセンジャ、IP電話アプリケーション、および声紋判別アプリケーションなどのアプリケーションがインストールされている。
さらに、フラッシュメモリ20cには、図5に示す文書操作検知部201、作業文書データ判別部202、操作状況通知部203、アクション検知部204、アクション通知部205、作業文書データ送信部206、情報検索クライアント207、切換要求部211、およびケース通知部212などの機能を実現するためのプログラムが記憶されている。
これらのプログラムは、必要に応じてRAM20bにロードされ、CPU20aによって実行される。
図1に戻って、ドキュメントサーバ3は、文書のデータを管理する。ドキュメントサーバ3として、複数台のサーバが設けられている。特に、ドキュメントサーバ31は、ファイルサーバであって、ワープロソフトなどのアプリケーションによって作成された文書のデータをファイル単位で管理する。ドキュメントサーバ32は、ウェブサーバであって、文書のデータをウェブページの単位で管理する。
画像形成装置4は、コピー、PCプリント、ファックス、およびスキャナなどの機能を集約した装置である。一般に、「複合機」または「MFP(Multi Function Peripherals)」などと呼ばれることがある。
「PCプリント」は、端末装置2から受信した画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
次に、図3に示すプロファイル管理サーバ1の各部および図5に示す端末装置2の各部について、説明する。
〔概要〕
端末装置2は、作業の対象である文書を検知し、プロファイル管理サーバ1へ通知する。さらに、端末装置2は、ユーザが行った操作(アクション)を検知し、プロファイル管理サーバ1へ通知する。
プロファイル管理サーバ1は、端末装置2から通知された情報に基づいて、作業の対象である文書のデータ(以下、「文書データ6DC」と記載する。)を取得する。そして、この文書から単語を検出し、単語ごとの重要性の度合い(重要度)を算出する。さらに、単語同士の関連性の度合い(関連度)を算出する。また、既に重要度および関連度を算出したことがある場合は、重要度および関連度を調整する。
プロファイル管理サーバ1は、算出しまたは調整した重要度または関連度に基づいてプロファイルを生成する。そして、ユーザが検索のキーワードを入力した場合に、プロファイルに基づいてキーワードを補足し、検索の処理を行う。
そのほか、プロファイル管理サーバ1には、アクションの検知のためのデータベースを最適化するための学習機能が備わっている。
〔ユーザによる操作等の検知〕
図6は、ディレクトリ構造におけるデータの検索の方法の例を示す図である。
端末装置2の文書操作検知部201(図5参照)は、ユーザによる文書に関する操作を検知する。検知の処理は、例えば、次の方法によって行うことができる。
一般に、文書に関する操作として、文書の作成、編集、保存、管理、閲覧(オープン)、破棄、印刷、および検索などが挙げられる。
これらの操作の検知は、キーロガーによって実現することができる。なお、キーロガーは、キーボード、マウス、またはタッチパネルディスプレイによる入力を随時、監視するエージェントである。これにより、アプリケーションでの作業の操作のほかアプリケーションの起動などのプログラムタスクをも監視し記録することができる。
文書操作検知部201は、所定のコマンドに対応するキーが押されたことをキーロガーで監視することによって、操作を検知することができる。
例えば、文書の作成は、新規作成のコマンドに対応するキーの押下を監視することによって検知することができる。保存、閲覧、破棄、印刷、および検索も、それぞれのコマンドに対応するキーの押下を監視することによって検知することができる。編集は、コピーまたはペーストのコマンドに対応するキーの押下を監視することによって検知することができる。管理は、文書のファイルの移動(保存場所の変更)または文書名の変更に対応するキーの押下を監視することによって検知することができる。マーキングは、アンダーラインの付加または手書きのコメントの付加に対応するキーの押下を監視することによって検知することができる。
作業文書データ判別部202は、文書操作検知部201によって検知された操作(閲覧、作成、または印刷など)の対象である文書データ6DCを判別する。判別の処理は、例えば、次の方法によって行うことができる。
ワープロソフトなどの文書の作成用のアプリケーションが使用されている場合は、作業文書データ判別部202は、キーロガーの技術を用いて操作を監視することによって、操作を判別することができる。文書のデータがファイル単位で管理されている場合は、ファイルが文書データ6DCであると判別される。文書のデータがデータベース上で管理されている場合は、このデータベースにおける単位のデータが文書データ6DCであると判別される。
作業文書データ判別部202は、操作の直接の対象である文書データ6DCだけでなく、これと同じ階層(フォルダ、ディレクトリ)つまりカレントの階層または下位の階層(サブフォルダ、サブディレクトリ)に保存されているデータも、文書データ6DCであると判別してもよい。この場合は、公知の検索エンジンの技術、例えば、クローラ(Crawler)を用いればよい。クローラによると、図6に示すように、カレントの階層および所定の深さ以内の下位の階層のそれぞれに保存されているデータを検索することができる。作業文書データ判別部202は、カレントの階層のURI(Uniform Resource Identifier)が与えられると、カレントの階層をルートとみなして、上述の各階層からデータを検索する。そして、検索したデータのうち、文書のデータを文書データ6DCであると判別する。なお、図6において、1〜7の数字は、検索順を意味する。
または、ウェブブラウザが使用されている場合は、作業文書データ判別部202は、現在表示されているウェブページが文書データ6DCであると判別する。この場合も、クローラの技術を用いて、ハイパーリンクを順に辿ることによってリンク先のウェブページを検索し、これらのウェブページも文書データ6DCであると判別してもよい。
操作状況通知部203は、端末装置2におけるユーザによる操作の状況をプロファイル管理サーバ1へ通知する。具体的には、文書操作検知部201によって検知された操作、作業文書データ判別部202によって判別された文書データ6DCの識別子(例えば、パス)、および操作を行ったユーザのユーザコードを示す操作状況データ7Aを生成する。そして、操作状況データ7Aをプロファイル管理サーバ1へ送信する。
アクション検知部204は、ユーザのアクションを検知する。アクションは、端末装置2に対するものに限られない。アクションは、例えば次の方法によって検知することができる。
アクション検知部204は、文書の作成、編集、保存、管理、閲覧、破棄、印刷、および検索などの、文書に関する操作は、文書操作検知部201と同様、キーロガーの技術を用いて検知する。なお、アクション検知部204が文書操作検知部201を兼ねてもよい。また、電子メールの送受信およびアプリケーションの切換え(あるアプリケーションを終了し別のアプリケーションを起動すること)などのアクションも、キーロガーの技術を用いて検知する。
さらに、アクション検知部204は、文書の中の、ユーザが注目している箇所を、アクションの属性情報として検知する。
一般に、ユーザが文書のマーキングを行っている箇所は、ユーザが注目している箇所の1つである。そこで、アクション検知部204は、キーロガーによって、ユーザが下線を引きまたは手書きのコメントを加えている箇所を、属性情報として検知する。エアペンが指す場所を検知することによって、この箇所を検知してもよい。
または、アクション検知部204は、デジタルカメラ20kまたは視線追従型ヘッドマウントディスプレイが検知する、ユーザの瞳(視線)の方向に基づいて、文書の閲覧の箇所を検知する。つまり、視線に対応する箇所を属性情報として検知する。公知の技術によると、閲覧の箇所は、単語の単位で検知することができる。
<参考>
http://www.toshiba.co.jp/tech/review/2005/11/60_11pdf/rd01.pdf
http://www.murata.co.jp/zaidan/annual/pdf/k03/2011/a04106.pdf
画像形成装置4と連携したジョブを実行させている場合は、アクション検知部204は、画像形成装置4からログを取得し、このログを解析することによって、アクションを判別する。
または、アクション検知部204は、会議での発言および電話での会話をアクションとして検知する。これらのアクションも、キーロガーによって検知することができる。または、マイクロフォン20iへの音声の入力を監視することによって、これらのアクションを検知してもよい。さらに、この音声を音声認識技術によってテキスト化し、このテキストを属性情報として用いてもよい。音声認識技術として、例えば名古屋工業大学の徳田・李・南角研究室および京都大学の河原研究室のJuliusが用いられる。端末装置2に標準に備わっている音声認識ソフトを用いてもよい。
または、アクション検知部204は、ジャイロセンサ20mまたはジェスチャコントローラによってユーザが行ったジェスチャ(モーション)に対応するアクションを検知する。さらに、アクションが文書に関する操作である場合は、ユーザが指した箇所をアクションの属性情報として検知する。
または、アクション検知部204は、特定のイベント(例えば、会議、営業、昼食など特定の目的のイベント)の開始をアクションとして検知することもできる。例えば、スケジューラに登録されている特定のイベントの日時が訪れたら、特定のイベントが開始したと、検知する。
さらに、アクション検知部204は、スケジューラに基づいて、特定の場所への到着をアクションとして検知することもできるし、ある場所から別の場所への移動をアクションとして検知することもできる。または、これらのアクションを、端末装置2の無線LANまたは携帯電話網を用いたGPS(Global Positioning System)機能を用いて検知することもできる。入退室管理システムのほか、監視カメラによって人の動線を監視するシステムによって検知することもできる。
例えば、13時から社外で会議があるとスケジューラに示されており、現在の時刻が10時であり、かつ、現在地が家でも職場でもない、という場合に、アクション検知部204は、社外会議のための移動をアクションとして検知する。
特定の人から電話が掛かってきたこと、特定の人からメッセンジャでメッセージを受信したこと、特定の人から話し掛けられたこと、および特定の人から重要な電子メールを受信したことなどの受動的なイベントも、アクション検知部204は、アクションとして検知する。
アクション検知部204は、特定の人から電話が掛かってきたことを、呼出しが特定のIPアドレスまたは電話番号からのものであるか否かをチェックすることによって、検知することができる。特定の人からメッセンジャでメッセージを受信したことは、メッセージが特定のIPアドレスからのものであるか否かをチェックすることによって、検知することができる。特定の人から話し掛けられたことは、予め特定の人の声紋を登録しておき、マイクロフォン20iに入力された音声の声紋を解析することによって、検知することができる。特定の人から重要な電子メールを受信したことは、受信した電子メールの送信者をチェックし、さらに、受信した電子メールのタイトルまたは本文に所定のキーワードが含まれていることをチェックすることによって、検知することができる。メッセージの受信および電子メールの受信には、メッセンジャまたはメーラなどのアプリケーションが用いられるので、これらをキーロガーによって検知してもよい。
または、アクション検知部204は、所定のフォルダ(例えば、所定の共有フォルダ)の中の新しいファイルをユーザが見つけたことをアクションとして検知することもできる。具体的には、キーロガーによる監視の結果および所定のフォルダの状態の変化を履歴として記録しておく。そして、ユーザが所定のフォルダにアクセスした際に、今回のアクセスにおける所定のフォルダの状態と前回のアクセスにおける所定のフォルダの状態とを比較し、新しいファイルがあれば、新しいファイルをユーザが見つけたと、検知する。所定のフォルダに追加されたファイルは、RSS(Really Simple Syndication)などの公知の技術によって監視することができる。
アクション通知部205は、アクションデータ7Bを生成しプロファイル管理サーバ1へ送信する。アクションデータ7Bには、アクション検知部204によって検知されたアクションおよび属性情報のほか、これらが検知された日時および端末装置2のユーザのユーザコードが示される。
プロファイル管理サーバ1において、操作状況データ取得部101(図3参照)は、端末装置2から操作状況データ7Aを取得する。アクションデータ取得部102は、端末装置2からアクションデータ7Bを取得する。
〔文書データの取得〕
図7および図8は、取得トリガアクションデータ7Cの例を示す図である。図9は、取得トリガアクションデータ7Cを作成するためのGUI画面の例を示す図である。図10は、取得トリガアクションデータ7Cの変形例を示す図である。図11は、カレントケースの切換えの例を示す図である。
作業文書データ取得部103は、予め決められたアクションをユーザが行った場合に、このユーザが使用している文書またはこれから使用しようとしている文書の文書データ6DCを取得する。以下、予め決められたアクションを「取得トリガアクション」と記載することがある。取得トリガアクションは、1つのアクションだけで完結する場合もあれば、複数のアクションを1組に纏めたものである場合もある。
ここで、文書データ6DCの取得の処理について、説明する。取得トリガアクションのデータを取り扱うためのカレントケース切換部104、取得トリガアクション記憶部121、およびカレントケースデータ記憶部122についても、併せて説明する。
取得トリガアクション記憶部121には、ユーザごとの取得トリガアクションデータ7Cが記憶されている。取得トリガアクションデータ7Cは、図7(A)〜(E)または図8のように、取得トリガアクションがXML(Extensible Markup Language)の形式で示されている。
<bhi:action>は、この行が取得トリガアクションデータ7Cの先頭であることを宣言するタグである。<bhi:X/>は、Xというアクションを表わすタグである。</bhi:action>は、1つの取得トリガアクションの記述を終了することを宣言するタグである。
取得トリガアクションデータ7Cには、取得トリガアクションを1組だけ示される場合もあれば、複数組示される場合もある。複数組示される場合は、いずれか1つの取得トリガアクションが行われることが、文書データ6DCの取得の要件である。
また、上述の通り、1つの取得トリガアクションにアクションが1つだけ含まれる場合もあれば複数含まれる場合もある。複数含まれる場合は、後述する記述の規則に従って各アクションが行われることによって、取得トリガアクションが行われたとみなされる。
図7(A)に示す取得トリガアクションデータ7Cは、1つの取得トリガアクションだけを示している。しかも、この取得トリガアクションには、アクションが1つだけ含まれる。
また、「save folder=’Y’」は、Yというフォルダにデータを保存するアクションを意味する。
したがって、図7(A)の取得トリガアクションデータ7Cは、「c:/user/share/」というパスのフォルダにデータを保存するアクションを取得トリガアクションとして示している。
図7(B)に示す取得トリガアクションデータ7Cも、図7(A)の例と同様に、1つの取得トリガアクションだけを示している。ただし、この取得トリガアクションには、アクションが複数、含まれている。この記述方法は、これら複数のアクションが記述の順にすべて行われることがアクションデータ7Bを取得する要件であることを、意味する。
また、「web url=’Y’」は、YというURL(Uniform Resource Locator)に基づいてウェブページを閲覧するアクションを意味し、「save」は直前に閲覧したウェブページを保存するアクションを意味する。
したがって、図7(B)の取得トリガアクションデータ7Cは、HTTP(Hypertext Transfer Protocol)で「example.com」のウェブサイトのデフォルトのウェブページを閲覧し、保存する、という2つのアクションを、取得トリガアクションとして示している。
または、図7(C)に示すように、「count」のパラメータを用いて回数の条件を加えることができる。「X count=’N’」は、Xというアクションが合計でN回行われることを要求している。
したがって、図7(C)の取得トリガアクションデータ7Cは、HTTP(Hypertext Transfer Protocol)で「example.com」のウェブサイトのデフォルトのウェブページを合計3回閲覧するアクションを、取得トリガアクションとして示している。
または、連続する同一のアクションを検知することを要件とする場合は、このアクションを連続する行に記述すればよい。図7(D)の取得トリガアクションデータ7Cは、HTTP(Hypertext Transfer Protocol)で「example.com」のウェブサイトのデフォルトのウェブページを連続して2回閲覧することを、取得トリガアクションとして示している。
図7(E)に示す取得トリガアクションデータ7Cは、2つの取得トリガアクションを示している。上述の通り、この記述方法は、これら2つの取得トリガアクションのうちのいずれか一方が行われればアクションデータ7Bを取得する要件を満たす、ということを意味する。
また、「load folder=’Y’」は、Yというフォルダからデータを読み出す(ロードする)アクションを意味する。
したがって、図7(E)の取得トリガアクションデータ7Cは、「c:/user/share/」というパスのフォルダにデータを保存するアクション、および、このフォルダからデータを読み出すアクションを択一的に取得トリガアクションとして示している。3つ以上の取得トリガアクションが取得トリガアクションデータ7Cに示される場合もある。
取得トリガアクションを種々のケースに応じて変更することができる。例えば、休憩および仕事のそれぞれのケース取得トリガアクションを使い分けることができる。
図8に示す取得トリガアクションデータ7Cには、2つのケースのそれぞれのケース別データ7CSが含まれている。ケース別データ7CSには、ケースに応じた取得トリガアクションが示されている。取得トリガアクションの記述方法は、図7(A)〜(E)を例に説明した通りである。
ただし、ケース別データ7CSには、そのケース別データ7CSを区別するための、ケース別データ7CSの開始を意味するタグである<bhi:case no=’K’>を最初の行に付け、そのケース別データ7CSの終了を意味するタグである</bhi:case>を最後の行に付ける。「K」は、取得トリガアクションデータ7Cにおけるそのケース別データ7CSのシーケンス番号である。さらに、そのケース別データ7CSの名称を示す<bhi:case name=’M’>を2行目に付ける。「M」は、任意の文字列である。
取得トリガアクションデータ7Cは、管理者がテキストエディタによって作成する。そして、その取得トリガアクションデータ7Cが与えられたユーザのユーザコードと対応付けて取得トリガアクション記憶部121に記憶される。
または、図9に示すようなGUI(Graphical User Interface)を用意しておき、ユーザがこのGUIを介して取得トリガアクションとするアクションを組み合わせて取得トリガアクションデータ7Cを作成できるようにしてもよい。
カレントケースデータ記憶部122には、ユーザごとのカレントケースデータ7Dが記憶されている。カレントケースデータ7Dには、ユーザの現在の状態に応じたケースの識別子、例えば、上述のシーケンス番号が示される。以下、現在の状態に応じたケースを「カレントケース」と記載する。
カレントケース切換部104は、カレントケースデータ7Dを更新することによって、ユーザのカレントケースを切り換える。
手動による場合は、カレントケース切換部104は、次のように切換えの処理を行う。ユーザが端末装置2にシーケンス番号を入力すると、切換要求部211は、このシーケンス番号およびこのユーザのユーザコードを示す切換要求データ7Eをプロファイル管理サーバ1へ送信する。
カレントケース切換部104は、切換要求データ7Eからユーザコードおよびシーケンス番号を抽出し、このユーザコードを示すカレントケースデータ7Dを、このシーケンス番号が示されるように更新する。
一方、切換えの処理を、ユーザによるシーケンス番号の入力を伴わずに、つまり、自動で、行うこともできる。
この場合は、予め、取得トリガアクションデータ7Cにおける<bhi:case no=’K’>のタグに「trigger=’T’」を追記しておくことによって、切換えのトリガとなるアクション(以下、「切換トリガアクション」と記載する。)を定義しておく。なお、「T」が切換トリガアクションである。
この記述方法によると、図10に示す取得トリガアクションデータ7Cは、「Mailer_A」というメーラの起動を1番のケースの切換トリガアクションとして示し、「Mailer_B」というメーラの起動を2番のケースの切換トリガアクションとして示している。
アクションは、前述の通り、端末装置2において、アクション検知部204によって検知され、検知の結果を示すデータつまりアクションデータ7Bがアクション通知部205によってプロファイル管理サーバ1へ送信される。そして、プロファイル管理サーバ1において、アクションデータ取得部102によってアクションデータ7Bが取得される。
カレントケース切換部104は、アクションデータ7Bが取得されると、このアクションデータ7Bに示されるユーザコードを抽出する。このユーザコードを示す取得トリガアクションデータ7Cをカレントケースデータ記憶部122から読み出す。そして、このアクションデータ7Bに示されるアクションが、この取得トリガアクションデータ7Cにおいて切換トリガアクションとして示されているか否かをチェックする。示されている場合は、この切換トリガアクションに係るケースのシーケンス番号が示されるように、カレントケースデータ記憶部122に記憶されている、このユーザコードのカレントケースデータ7Dを更新する。
図10に示す取得トリガアクションデータ7Cによると、カレントケースは、例えば図11に示すように変更される。
直近に使用されたメーラが「Mailer_A」であるときは、図11(A)において太線で示すように、1番のケースがカレントケースに設定されている。よって、「c:/user/share/」というフォルダへのデータの保存のアクションが取得トリガアクションである。
その後、「Mailer_A」が閉じられ、「Mailer_B」が起動されると、カレントケース切換部104は、図11(B)において太線で示すように、2番のケースをカレントケースに切り換える。これにより、取得トリガアクションが「c:/user/personal/」というフォルダへのデータの保存のアクションに切り換わる。
〔プロファイルの生成および更新〕
図12は、文書データ取得処理の流れの例を説明するフローチャートである。図13は、プロファイルデータ7Fの例を示す図である。
作業文書データ取得部103は、アクションデータ取得部102によってアクションデータ7Bが取得されるごとに、図12に示す手順で処理を実行する。
作業文書データ取得部103は、取得されたアクションデータ7Bからユーザコードを抽出し、このユーザコードを示す取得トリガアクションデータ7Cを取得トリガアクション記憶部121から読み出す(#801)。この取得トリガアクションデータ7Cにケースごとのケース別データ7CSが含まれている場合は(#802でYes)、カレントケースデータ7Dに示されるシーケンス番号のケース別データ7CSを抽出する(#803)。
作業文書データ取得部103は、アクションデータ7Bに示されるアクションが取得トリガアクションデータ7C(ステップ#803で抽出を行った場合は、ケース別データ7CS)に示される取得トリガアクションであるか否かを判別する(#804)。複数のアクションの組合せが取得トリガアクションとして示される場合は、そのユーザの、過去に受信したアクションデータ7Bに示されるアクションと今回のアクションとを実行順に組み合わせて、取得トリガアクションを満たすか否かを判別する。よって、取得トリガアクションを今回満たさない場合は(#805でNo)、今回取得したアクションデータ7Bを次回以降の判別のために保存しておく(#806)。そして、新たなアクションデータ7Bが取得されるのを待つ。
条件を満たす場合は(#805でYes)、作業文書データ取得部103は、アクションデータ7Bに示されるアクションつまり今回のアクションが、予め登録されているアクションであれば、アクションデータ7Bから属性情報を抽出して適宜参照し、文書データ6DCを取得する(#807、#808)。取得の方法は、アクションデータ7Bに示されるアクションに応じて様々である。
例えば、今回のアクションが文書に対する操作(例えば、文書の編集またはマーキング)である場合は、ほぼ同時期に操作状況データ7Aが操作状況データ取得部101によって取得される。そして、この操作状況データ7Aには、文書データ6DCを特定する情報、例えば、パスが示される。そこで、作業文書データ取得部103は、この情報に基づいて、文書データ6DCを、これを記憶している装置(例えば、ドキュメントサーバ31または端末装置2)から取得する。端末装置2から取得する場合は、作業文書データ取得部103は、端末装置2に対して文書データ6DCを要求する。すると、端末装置2において、作業文書データ送信部206は、文書データ6DCをフラッシュメモリ20cなどから読み出し、プロファイル管理サーバ1へ送信する。
ただし、アクションが文書の作成である場合は、未だ文書ができていない。このように、アクションに関連する文書が未だ存在しない場合は、作業文書データ取得部103は、文書データ6DCの取得を行わず、次のアクションを待つ。
さらに、作業文書データ取得部103は、取得した文書データ6DCから、プロファイルの作成に必要な部分を抽出する(#809)。つまり、ユーザのプロファイルの生成に不要な部分を除外する。
例えば、ユーザが注目している箇所(注目箇所)が属性情報として抽出された場合は、注目箇所を必要な部分として抽出し、それ以外の部分を削除する。注目箇所を含む所定の塊(ページ、章、または項など)を抽出し、それ以外の部分を削除してもよい。アクションの種類または日時に応じて残す部分を決定して抽出し、それ以外の部分を削除してもよい。
または、注目箇所が属性情報として抽出されたか否かに関わらず、所定の部分を削除してもよい。例えば、電子メールのヘッダおよびウェブページのバナー広告などを削除してもよい。なお、ウェブページの必要な部分と不要な部分との分別は、エバーノート社のEvernoteで採用されているWebクリッパまたはClealyの技術など、領域判別に関する公知の技術によって行うことができる。
このようにして、ユーザに関連する文書のデータが抽出される。以下、作業文書データ取得部103によって抽出された必要な部分のデータを「必要部分データ6HB」と記載する。
単語抽出部105は、必要部分データ6HBに示される文書(必要な部分)から単語を抽出する。抽出の処理は、例えば、次の方法で行うことができる。
必要部分データ6HBに示される文書が英語またはフランス語などで記述されている場合は、単語抽出部105は、スペースまたは改行のコードに基づいて単語同士を切り分け抽出すればよい。日本語で記述されている場合は、形態素解析の技術を用いて単語を抽出する。この技術を実装しているソフトウェアとして、奈良先端科学技術大学院大学の松本裕治研究室の茶筅(ChaSen)および工藤拓氏のMecabが挙げられる。これらのソフトウェアによって形態素解析を行うことによって、単語を抽出すればよい。
重要度算出部106は、抽出されたそれぞれの単語の重要度を算出する。重要度は、パターンマッチングによって算出してもよいし、TF−IDF(Term Frequency Inverse Document Frequency)法によって算出してもよい。
パターンマッチングによる重要度の算出は、例えば、次のように行えばよい。「○○は調査すべきである」のような、よく使う重要な言い回しを予め登録しておく。そして、抽出した単語のうち「○○」に該当する単語に対して、所定の点数を加算しまたは所定の係数を掛けるなどして、高い重要度を与える。
TF−IDF法による重要度の算出は、次に示す式に基づいて行えばよい。
「ni,j」は、単語iの、文書jにおける出現回数である。|D|は、文書の総数である。|{d:d∋ti}は、単語iを含む文書の総数である。上述の式の「idf」は、一般語フィルタとして働く。そして、多くの文書に出現する単語(一般語)の重要度を下げる役割を果たす。
重要度の算出に用いる方法(アルゴリズム)は、アクションデータ7Bに示されるアクションまたはカレントケースデータ7Dに示されるカレントケースに応じて使い分けてもよい。例えば、仕事のケースがカレントケースである場合は、パターンマッチングのアルゴリズムによって重要度を算出し、プライベートのケースがカレントケースである場合は、パターンマッチングのTF−IDF法のアルゴリズムによって重要度を算出するのが好ましい。仕事の文書には特定の言い回しが登場することが多く、プライベートの文書には特定の言い回しが少なく砕けた表現が登場することが多いからである。
または、カレントケースまたはアクションデータ7Bに示されるアクションに応じて、マッチングに用いる言い回しを変えて重要度を算出してもよいし、パラメータの値を変えて重要度を算出してもよい。
例えば、アクションデータ7Bに示されるアクションが文書の印刷である場合は、その文書の重要性が高いと考えられる。一方、このアクションが文書の閲覧である場合は、重要性がそれほど高くないと考えられる。そこで、
tfidf=α・tf・idf
と、重み付けの係数αをパラメータとして設けておき、アクションが文書の印刷である場合は1よりも大きい値をαに設定し、文書の閲覧である場合は1未満の値をαに設定してもよい。ただし、αは、所定の範囲内に制限する。例えば、0≦α≦2、に制限する。
または、単語の品詞に応じて係数を変えてもよい。一般的に固有名詞は他の品詞よりも重要である場合が多いので、重要度が高くなるように係数を設定するのが望ましい。例えば、上述のαを大きな値にする。形容詞は重要でないことが多いので、重要度が低くなるように係数を設定してもよい。助詞および代名詞には、重要度を与えないようにしてもよい。
なお、単語抽出部105によって抽出された単語のうち、算出した重要度が所定の値未満である単語は、プロファイルに含まれないよう除外される。除外した単語は、次に説明する関連度算出部107およびプロファイルデータ生成部108による処理の対象には、ならない。
関連度算出部107は、抽出した単語同士の関連度を算出する。算出の処理は、例えば次の方法によって行うことができる。
関連度算出部107は、2つの単語同士の、作業文書データ取得部103によって抽出された部分における距離を求める。そして、所定の関数またはテーブルに基づいて、その距離に応じた重要度を算出する。所定の関数またはテーブルには、距離が短いほど重要度が高くなるように、距離と重要度との関係が定義されている。例えば、「カテキン|は、|内臓脂肪|の|燃焼|に|効く。|そのため|トクホ|食品|として|利用|されて|いる」という部分において、「カテキン」、「内臓脂肪」、および「トクホ」の3つが、重要度が所定の値以上の単語として残ったとする。なお、「|」は、単語と単語との区切りの記号である。句読点などの記号は、無視する。「カテキン」と「内臓脂肪」との距離(いわゆるワード距離)は、自らを含め、3ワードである。よって、関連度算出部107は、両単語の関連度を、3ワードに対応する関連度を所定の関数またはテーブルから導くことによって、算出する。同様に、「カテキン」と「トクホ」との距離は、9ワードである。よって、関連度算出部107は、両単語の関連度を、9ワードに対応する関連度を所定の関数またはテーブルから導くことによって、算出する。
または、関連度算出部107は、シソーラス(分類辞典)を参照し、両単語の持つ意味的な繋がりに基づいて関連度を求めても算出してもよい。
同一の単語が複数抽出された場合は、2つの単語同士の組合せが重複する。例えば、WD1という単語が2つ抽出され、WD2という単語が3つ抽出された場合は、2×3、つまり、6組、同一の組合せが出現する。このような場合は、2つの単語同士の距離が最も近い組合せについてのみ、関連度を求めればよい。または、各組合せの関連度の平均値を取ってもよい。
プロファイルデータ生成部108は、ユーザごとのプロファイルデータ7Fを生成する。プロファイルデータ7Fには、図13のように、そのユーザのアクションに応じて単語抽出部105によって抽出された単語のほか、単語を識別するID(単語コード)、重要度算出部106によって算出されたその単語の重要度、抽出元の文書(元文書)、およびその単語の品詞などが示される。さらに、2つの単語の組合せごとに、識別子(組合せコード)および関連度算出部107によって算出された関連度などが示される。これらの単語は、そのユーザの特徴を表わす重要なキーワードであると、言える。
生成されたプロファイルデータ7Fは、そのユーザのユーザコードと対応付けられてプロファイルデータ記憶部123に記憶される。
ただし、そのユーザのプロファイルデータ7Fが既にプロファイルデータ記憶部123に記憶されている場合は、プロファイルデータ生成部108は、そのプロファイルデータ7Fを更新する。更新の処理は、例えば次のように行うことができる。
既にプロファイルデータ7Fに示される単語については、プロファイルデータ生成部108は、その単語の重要度を例えば次の式に基づいて算出し直す。
Wi=(1−β)・W0i+β・W1i
ただし、0≦β≦1、である。W0iは、既存のプロファイルデータ7Fに示される単語iの重要度である。W1iは、重要度算出部106によって今回算出された単語iの重要度である。
βは、任意に設定することができる。ユーザの過去のアクションを重要視するのであれば、βの値を小さくすればよいし、ユーザの今回のアクションを重要視するのであれば、βの値を大きくすればよい。過去のアクションを全く考慮しないのであれば、βを「1」にすればよい。カレントケースに応じてβの値を変えてもよい。なお、今回のアクションがイレギュラーである可能性があるので、βは、0.3〜0.5程度であるのが望ましい。
既存の単語同士の関連度も同様の方法で算出し直せばよい。つまり、次の式に基づいて算出し直せばよい。
Smn=(1−γ)・S0mn+γ・S1mn
ただし、0≦γ≦1、である。Smn0は、既存のプロファイルデータ7Fに示される単語mと単語nとの関連度である。Smn1は、関連度算出部107によって今回算出された関連度である。
そして、プロファイルデータ生成部108は、単語iの重要度を、算出し直したWiに書き換え、単語mと単語nとの関連度を、算出し直したSmnに書き換える。
上の各式によると、重要度および関連度は、次のように更新される。「カテキン」のこれまでの重要度が「6」であり、今回算出された重要度が「5」であり、βが「0.3」である場合は、これらの値に基づいて重要度を算出し直すと、
W=(1−0.3)・6+0.3・5=5.7
になる。
また、「カテキン」と「トクホ」とのこれまでの関連度が「9」であり、今回算出された関連度が「10」であり、γが「0.3」である場合は、これらの値に基づいて関連度を算出し直すと、
S=(1−0.3)・9+0.3・10=9.3
になる。
なお、初めて抽出された単語については、プロファイルデータ生成部108は、重要度算出部106によって今回算出された重要度および単語コードとともにプロファイルデータ7Fに追記する。また、初めて抽出された単語と他の単語との関連度については、関連度算出部107によって今回算出された重要度とともにプロファイルデータ7Fに追記する。
以上の処理によって、ユーザごとに、アクションに応じたプロファイルが生成されまたは更新される。
〔プロファイルを用いた情報の検索〕
情報検索部131は、情報の検索の処理を、プロファイルデータ7Fを用いて例えば次のように実行する。
ユーザが端末装置2に所定のコマンドを入力すると、情報検索クライアント207(図5参照)が起動する。なお、情報検索クライアント207は、情報検索部131による検索のサービスを受けるクライアントのモジュールである。
情報検索クライアント207は、検索のキーワード(以下、「検索キー」と記載する。)を入力するための入力画面をタッチパネルディスプレイ20dに表示させる。そして、ユーザが入力した検索キーおよびこのユーザのユーザコードを示す検索要求データ7Gをプロファイル管理サーバ1へ送信する。
プロファイル管理サーバ1において、情報検索部131は、検索要求データ7Gを取得すると、検索要求データ7Gに示されるユーザコードのプロファイルデータ7Fをプロファイルデータ記憶部123から読み出す。そして、検索要求データ7Gに示される検索キー(単語)がプロファイルデータ7Fに示される場合は、この検索キーとの関連度が最も高い単語を選出する。
例えば、検索キーが「カテキン」であり、「カテキン」と各単語との関連度が図13に示す通りである場合は、関連度の最も高い「脂肪」を選出する。
情報検索部131は、この検索キーと選出した単語との組合せ(例えば、「カテキン」および「脂肪」)を検索クエリとして用いて検索を行う。検索は、プロファイル管理サーバ1に備わっている検索エンジンを用いてもよいし、他の装置(例えば、ドキュメントサーバ32)の検索エンジンを用いてもよい。また、この検索キーと選出した単語とをANDで繋いでもよいし、ORで繋いでもよい。つまり、いわゆるAND検索を行ってもよいし、いわゆるOR検索を行ってもよい。
なお、検索キーがプロファイルデータ7Fに示されない場合は、情報検索部131は、従来通り、検索キーのみを検索クエリとして用いて検索を行う。
そして、情報検索部131は、検索結果を示す検索結果データ7Hを、要求元である端末装置2へ送信する。
端末装置2において、情報検索クライアント207は、検索結果データ7Hを受信すると、検索結果をタッチパネルディスプレイ20dに表示させる。
または、情報検索部131は、検索要求データ7Gに示される検索キー(単語)がプロファイルデータ7Fに示される場合に、この検索キーとの関連度が所定の値以上であり、かつ、重要度が最も高い単語を選出し補足してもよい。
または、情報検索部131は、上述のいずれかの方法で選出した単語を、検索要求データ7Gに示される単語と置き換えて、検索してもよい。
〔学習機能〕
図14は、確認ダイアログボックスWN1の例を示す図である。
学習処理部132は、取得トリガアクションデータ7Cに示される、ケースごとの切換トリガアクションを、ユーザの実際のアクションに合わせて設定(学習)し直す処理を、ケース通知部212と連携して次のように行う。
上述の通り、ユーザのアクションは、端末装置2によって検知され、プロファイル管理サーバ1へ通知される。この際に、アクションデータ7Bが端末装置2からプロファイル管理サーバ1へ送信される。
学習処理部132は、このアクションデータ7Bに示されるアクションが所定のアクションであれば、現在のケースを回答するように端末装置2に対して要求する。
すると、ケース通知部212は、図14のような確認ダイアログボックスWN1をタッチパネルディスプレイ20dに表示させる。確認ダイアログボックスWN1には、ケースごとにボタンBN1が設けられている。各ボタンBN1には、ボタンに対応するケースのシーケンス番号および名称が示されている。ここで、ユーザは、現在の自分の状況に合うケースのボタンBN1を押す。
ケース通知部212は、押されたボタンBN1に対応するケースのシーケンス番号および端末装置2のユーザのユーザコードを示すケース通知データ7Jをプロファイル管理サーバ1へ送信する。
学習処理部132は、ケース通知データ7Jに示されるユーザコードの取得トリガアクションデータ7Cの中の、ケース通知データ7Jに示されるシーケンス番号のケースの切換トリガアクションのコードを、アクションデータ7Bに示されるアクションのコードに書き換える。
例えば、特定の人に話し掛けられるというアクションを示すアクションデータ7Bが受信された後、1番のシーケンス番号を示すケース通知データ7Jが受信された場合は、学習処理部132は、取得トリガアクションデータ7Cの中の、シーケンス番号が1番であるケースの切換トリガアクションのコードを、特定の人に話し掛けられるというアクションのコードに書き換える。
同一のケースについて、複数のケース通知データ7Jが送信されてきた場合は、学習処理部132は、それぞれのケース通知データ7Jに示されるアクションのコードが切換トリガアクションのコードとして示されるように取得トリガアクションデータ7Cを更新してもよい。
例えば、会議室Aに到着するというアクションおよび特定の人に話し掛けられるというアクションをそれぞれ示す2つのケース通知データ7Jを順次受信した場合は、学習処理部132は、それぞれのアクションのコードが切換トリガアクションのコードとして示されるように取得トリガアクションデータ7Cを更新する。ただし、それぞれのアクションのコードをAND条件で関連付ける。このように更新することによって、ユーザが会議室Aで特定の人に話し掛けられた場合に所定のケースに切り換えることができる。つまり、アクションの複雑な条件にも対応することができる。
または、ケース通知データ7Jを一定の個数蓄積しておき、どのアクションがあった際にどのケースが選択されているのかの傾向を算出してもよい。そして、算出した傾向に基づいて取得トリガアクションデータ7Cを更新してもよい。例えば、会議室Aで特定の人に話し掛けられた際に必ず1番のケースが選択される傾向がある場合は、会議室Aに到着するというアクションおよび特定の人に話し掛けられるというアクションそれぞれのコードが切換トリガアクションのコードとして示されるように取得トリガアクションデータ7Cを更新すればよい。
なお、学習処理部132による処理は、常時行うのではなく、所定の期間だけ行ってもよい。
図15および図16は、プロファイル管理サーバ1における全体的な処理の流れの例を説明するフローチャートである。
次に、あるユーザUaのプロファイルを生成し、これに基づいて情報を検索する場合を例に、プロファイル管理サーバ1の全体的な処理の流れを、図15および図16のフローチャートを参照しながら説明する。
プロファイル管理サーバ1は、ユーザUaの端末装置2からアクションデータ7Bを受信すると(図15の#11でYes)、必要に応じてユーザUaのカレントケースを切り換える(#13)。すなわち、このアクションデータ7Bに示されるアクションがユーザUaの取得トリガアクションデータ7Cに示される切換トリガアクションである場合は(#12でYes)、ユーザUaのカレントケースをこの切換トリガアクションに対応するケースに切り換える(#13)。なお、カレントケースは、ユーザUaが手動で切り換えることもできる。
さらに、プロファイル管理サーバ1は、アクションデータ7Bを受信すると、プロファイルの生成または更新のために使用する文書のデータを取得する(#14)。取得の処理の手順は、前に図12で説明した通りである。
取得に成功した場合は(#15でYes)、プロファイル管理サーバ1は、形態素解析の技術を適宜使用してこの文書から単語を抽出するとともに(#16)、カレントケースに応じた重要度の計算のアルゴリズムまたはパラメータを選択する(#17)。なお、ユーザUxのプロファイルとして使用されない単語(例えば、助詞または代名詞などの単語)は、削除し(#18)、後の処理に用いられないようにするのが、望ましい。
プロファイル管理サーバ1は、選択したアルゴリズムまたはパラメータで各単語の重要度を算出するとともに(#19)、複数の単語同士の関連度を算出する(#20)。そして、算出した重要度および関連度などを示すプロファイルデータ7Fを生成する(#21)。なお、既にユーザUaのプロファイルデータ7Fがある場合は、今回算出した重要度および関連度を用いてプロファイルデータ7Fを更新する。
また、プロファイル管理サーバ1は、アクションデータ7Bを受信すると、現在が所定の時期であれば(図16の#22でYes)、ユーザUaの切換トリガアクションを学習し直す(#23、#24)。すなわち、プロファイル管理サーバ1は、今回のアクションのケースをユーザに選択させる(#23)。そして、それに応じて、ケースの切換えのアクションとして好ましいアクションを求め、これが切換トリガアクションになるようにユーザUaの取得トリガアクションデータ7Cを更新する(#24)。
または、プロファイル管理サーバ1は、ユーザUaの端末装置2から検索キー(検索クエリー)とともに検索の要求を受け付けると(#25でYes)、このキーワードとして用いられている単語に関連付けられている他の単語のうち、関連度が最も高いものを、ユーザUaのプロファイルデータ7Fから抽出し、これを補足することによって検索クエリーを補完する(#26)。そして、補完した検索クエリーで検索を行い(#27)、検索結果をユーザUaの端末装置2へ送信する(#28)。
プロファイル管理サーバ1は、図15および図16に示す処理を、端末装置2からデータを受信するごとに、適宜、実行する。
本実施形態によると、プロファイル管理サーバ1は、検索のキーワードとして使用する単語を、ユーザのアクションに応じた文書から抽出し、保存する。そして、ユーザが指定した検索クエリを、保存しておいた単語によって補正し、検索を行う。よって、ユーザの欲しい情報を従来よりも確実に検索することができる。
しかも、取得トリガアクションを適宜切り換えるので、ユーザの仕事に関連する単語およびユーザのプライベートに関連する単語を使い分けることができる。
また、複数のアクションを組み合わせて取得トリガアクションを定義することによって、より精度の高い検索を行うことができる。
また、会議への参加および電話による会話など、文書に対する直接的なアクションでないものも、取得トリガアクションとしているので、多様な文書から単語を抽出することができる。しかも、これらのアクションを伴う場合は複数人が1つの文書を同時に参照していることがあり、より重要な文書から単語を抽出することができる。
本実施形態では、プロファイル管理サーバ1は、所定のアクション(取得トリガアクション)を検知したタイミングで、プロファイルデータ7Fの生成または更新の処理、学習の処理、切換トリガアクションの変更の処理などを行った。プロファイル管理サーバ1は、所定のアクションの代わりにユーザが所定の状態であることを検知したタイミングで、これらの処理を行ってもよい。
例えば、ユーザが社内に居ること、ユーザが家に居ること、ユーザが移動中であること、メーラに未読のメッセージが残っていること、ユーザが会議中であること、ユーザが休憩中であること、ユーザが電話中であること、メッセンジャが使用中であること、およびユーザが会話中であることなどが、挙げられる。これらの状態は、アクションの場合と同様の方法によって、検知することができる。
端末装置2は、状態およびユーザコードなどを示すデータをアクションデータ7Bの代わりにプロファイル管理サーバ1へ送信する。そして、プロファイル管理サーバ1は、このデータに基づいて、上述の各処理を適宜、実行する。
端末装置2は、状態の検知を、所定の時間ごと(例えば、5分ごと)に行えばよい。または、端末装置2の電源がオンになったとき、端末装置2がプロファイル管理サーバ1に接続されたとき、または端末装置2のスリープモードが解除されたときなどに行ってもよい。
ユーザの身体の状態、例えばユーザの脳波の値が所定の範囲であることおよびユーザの脈派の値が所定の範囲であることも、所定の状態として挙げられる。脳波は、脳波計で測定すればよい。そして、測定値を、端末装置2を介してプロファイル管理サーバ1へ送信すればよい。脳波計として、例えば、ニューロスカイ社のMindSetが用いられる。MindSetによると、集中度およびリラックス度を測定することができる。
脈波は、脈波計で測定すればよい。そして、脳波の場合と同様、測定値を、端末装置2を介してプロファイル管理サーバ1へ送信すればよい。脈波計として、コニカミノルタ社のパルスオキシメータが用いられる。パルスオキシメータによると、ストレス度を測定することができる。または、カメラからの画像処理によって脈波を測定することもできる。
本実施形態では、プロファイル管理サーバ1がプロファイルデータ7Fを生成したが、端末装置2が生成してもよい。この場合は、図3に示す作業文書データ取得部103、カレントケース切換部104、単語抽出部105、重要度算出部106、関連度算出部107、プロファイルデータ生成部108、取得トリガアクション記憶部121、カレントケースデータ記憶部122、プロファイルデータ記憶部123、情報検索部131、および学習処理部132の各機能を端末装置2に設ければよい。
本実施形態では、検索クエリの補完だけでなく検索もプロファイル管理サーバ1が行ったが、補完の結果をプロファイル管理サーバ1から端末装置2へ送信し、検索は端末装置2が行ってもよい。
本実施形態では、取得トリガアクションデータ7CをXMLで記述したが、他の言語で記述してもよい。
本実施形態では、ユーザが指定した検索クエリーを補正して情報の検索を行ったが、例えば次のように、重要な単語に関する情報を自動的に検索してもよい。
プロファイル管理サーバ1は、プロファイルデータ7Fに示される単語のうちの、重要度が所定の値以上である単語を抽出する。抽出した単語それぞれを検索クエリーとして、情報を検索する。例えば、「トクホ」、「ペットボトル」、および「お茶」それぞれの重要度が所定の値以上であれば、これら3つの単語それぞれを検索クエリーとして、情報を検索する。
そして、プロファイル管理サーバ1は、それぞれの単語についての検索結果を示すデータを端末装置2へ送信する。そして、端末装置2は、単語ごとの検索結果を表示する。
また、プロファイル管理サーバ1は、抽出した単語との関連度の高い他の単語を組み合わせて情報を検索し、検索結果を端末装置2へ提供してもよい。
例えば、「トクホ」との関連性が最も高い単語が「飲料」である場合は、プロファイル管理サーバ1は、「トクホ 飲料」を検索クエリーとして検索し、検索結果を示すデータを端末装置2へ送信する。そして、端末装置2は、検索結果を、トクホの飲料リストとして、表示する。
または、プロファイル管理サーバ1は、「ペットボトル」との関連性が最も高い単語が「デザイン」である場合は、プロファイル管理サーバ1は、「ペットボトル デザイン」を検索クエリーとして検索し、検索結果を示すデータを端末装置2へ送信する。そして、端末装置2は、検索結果を、ペットボトルのデザイン集として、表示する。または、「作り方」との関連性が最も高い場合は、「ペットボトル 作り方」を検索クエリーとして検索し、検索結果を示すデータを端末装置2へ送信する。そして、端末装置2は、検索結果を、ペットボトルの作り方のノウハウ集として、表示する。
または、プロファイル管理サーバ1は、「お茶」との関連性が最も高い単語が「新製品」である場合は、プロファイル管理サーバ1は、「お茶 新製品」を検索クエリーとして検索し、検索結果を示すデータを端末装置2へ送信する。そして、端末装置2は、検索結果を、お茶の新製品情報として、表示する。
本実施形態では、端末装置2としてタブレットコンピュータを用いる場合を例に説明したが、ノート型パソコン、携帯電話端末、またはスマートフォンなどを用いることもできる。日立製作所のビジネス顕微鏡を用いてもよい。または、これらを複数台組み合わせて、端末装置2の上述の機能を実現してもよい。