[システムの構成例]
図1は、本発明を適用したシステムの一実施の形態の構成を示す図である。サーバ1と端末2は、ネットワーク3を介して互いにデータの授受を行えるように構成されている。サーバ1は、所定の情報を蓄積し、その蓄積している情報を、ユーザからの指示(端末2からの指示)があったときに供給するように構成されている。
端末2は、ユーザ側の装置であり、ユーザからの指示を受け付け、その指示に基づく処理を実行する。また、以下に説明を加えるように、端末2は、所定のタイミングで、サーバ1に蓄積されている情報を取得する構成とされている。
ネットワーク3は、インターネットなどの広域なネットワーク、LAN(Local Area Network)などの狭域なネットワークなどから構成されている。ネットワーク3は、有線で構成されていても良いし、無線で構成されていても良い。
図1に示したシステムは、サーバ1に蓄積されている情報から、ユーザが所望する情報を、端末2側で抽出し、その抽出された情報を加工(新たな情報を生成)し、ユーザ側に提示する。
なお、図1には、説明の都合上、サーバ1と端末2は、それぞれ1台しか図示していないが、サーバ1も端末2も、それぞれ複数台、ネットワーク3には接続されている。
[端末の内部構成例]
図2は、端末2の内部構成例を示す図である。端末2は、パーソナルコンピュータで構成することができる。端末2のCPU(Central Processing Unit)21は、ROM(Read Only Memory)22に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)23には、CPU21が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース25は、キーボードやマウスから構成される入力部26が接続され、入力部26に入力された信号をCPU21に出力する。また、入出力インタフェース25には、ディスプレイやスピーカなどから構成される出力部27も接続されている。
さらに、入出力インタフェース25には、ハードディスクなどから構成される記憶部28、および、インターネットなどのネットワークを介して他の装置(例えば、サーバ1)とデータの授受を行う通信部29も接続されている。ドライブ30は、磁気ディスク41、光ディスク42、光磁気ディスク43、半導体メモリ44などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
なお、サーバ1も、端末2と基本的に同様の構成とすることができる。
[端末の機能について]
図3は、端末2が有する機能について説明するための図である。なお、図3に示した各機能の詳細については順次行うため、ここでは、まず簡潔に説明を加える。
端末2は、サーバ1などから情報を取得する取得機能71を有する。取得機能71により取得された情報は、解析機能72により解析される。解析機能72による解析としては、例えば、対象となる名詞を抽出し、その名詞が示す国や会社などの状態を示す単語を抽出するといった処理がある。学習機能73は、解析機能72が解析を行ううえで必要となる情報(単語)を取得機能71により取得される情報などを用いて作成する。
作成機能74は、データベースの作成に係わる処理を実行する。検索機能75は、ユーザから情報の提示の指示があったときに、その指示された情報をデータベース内を検索し、読み出す。提示機能76は、検索機能75による検索結果を、ユーザ側に提示する。
端末2の機能について、さらに、図4を参照して説明を加える。取得機能71(図3)は、通信部81、トリガー管理部82、ユーザインタフェース部83から構成される。トリガー管理部82は、サーバ1から定期的に情報を取得する際の指示を出したり、ユーザインタフェース部83からのユーザからの指示に応じて、サーバ1から情報を取得する際の指示を出したりする。トリガー管理部82からの指示に基づき、通信部81は、サーバ1とネットワーク3(図1)を介して通信を行う。
取得機能71を構成するこれらの各部と、図2に示した端末2の内部構成例との対応をとると、通信部81は、通信部29であり、トリガー管理部82は、CPU21(ROM22やROM23に記憶されているプログラムに従ってCPU21が実現する機能)であり、ユーザインタフェース部83は、入力部26と出力部27である。
ユーザインタフェース部83は、表示部84と入力I/F(インタフェース)85を含む構成とされているが、表示部84は、出力部27(図2)を構成する例えばディスプレイ(不図示)であり、入力I/F85は、入力部26(図2)を構成するキーボードやマウス(いずれも不図示)などである。
解析機能72(図3)は、通信部81、データ解析部86、データ参照部87、データベース89から構成される。データ解析部86は、通信部81により取得された情報を、データ参照部87の制御のもとデータベース89に記憶されているデータ(情報)を、必要に応じ参照し、解析する。データ解析部86とデータ参照部87は、CPU21(ROM22やROM23に記憶されているプログラムに従ってCPU21が実現する機能)(図2)であり、データベース89は、記憶部28である。
学習機能73(図3)は、通信部81、ユーザインタフェース部83、データ解析部86、データ参照部87、データ登録部88、データベース89から構成される。データ解析部86は、通信部81により取得された情報を、データ参照部87の制御のもとデータベース89に記憶されているデータ(情報)を、必要に応じ参照し、解析する。その解析結果は、データ登録部88の制御のもと、データベース89に登録される。また、データ登録部88は、データ解析部86により解析できない結果などがあった場合、ユーザインタフェース部83からのユーザの指示に基づき、登録処理を行う。
データ登録部88は、CPU21(ROM22やROM23に記憶されているプログラムに従ってCPU21が実現する機能)(図2)である。
作成機能74(図3)は、データ解析部86、データ登録部88、データベース89から構成される。データ解析部86により解析された解析結果は、データ登録部88によりデータベース89に登録される。
検索機能75(図3)は、ユーザインタフェース部83、データ参照部87、およびデータベース89から構成される。ユーザインタフェース部83に、ユーザから、検索対象や検索期間の情報が入力されると、その情報に適合するデータを、データ参照部87がデータベース89を参照することにより検索する。
また、検索機能75(図3)は、ユーザインタフェース部83から供給される検索対象や検索期間に対応するデータが、データベース89内に記憶されていなかった場合、解析機能72(図3)に指示を出し、新たなデータの取得や解析を行わせる。すなわち、解析機能72を構成する通信部81から取得されるデータが、データ解析部86により解析される。そして、その解析結果は、作成機能74を構成するデータ登録部88によりデータベース89に登録される。また、登録されるデータ内に、検索機能75が必要とするデータ(ユーザからの指示に対応するデータであり、検索結果として用いられるデータ)が存在していた場合、そのデータを検索結果として採用する。
提示機能76(図3)は、ユーザインタフェース部83から構成される。ユーザインタフェース部83は、検索機能75(図3)から供給されるデータをユーザに提示するための画面のデータを生成し、その画面のデータに基づいて、表示部84に画面を表示させる。
[データベースについて]
図5は、データベース89に登録されているデータベースの内容を説明するための図である。データベース89には、図5に示すように、3つのデータベースが登録されている。学習辞書データベース101は、学習機能73(図3)により学習された結果を記憶する。解析データ情報データベース102は、解析機能72(図3)により解析された結果を記憶する。記事データベース103は、取得機能71(図3)によりサーバ1(図1)より取得された記事を記憶する。
以下の説明においては、サーバ1には記事が蓄積されており、取得機能71は、その記事を取得し、記事データベース103は、その取得された記事を記憶する。なお、記事とは、例えば、ニュース記事、掲示板の記事、ブログの記事などである。
図6は、学習辞書データベース101に記憶されているデータのデータ構造について説明するための図である。学習辞書データベース101は、定型辞書と非定型辞書から構成されている。定型辞書には、一般的に用いられている辞書などを適用することができる。また、定型辞書には、一般的に用いられている単語が登録されている。
定型辞書に対し、非定型辞書には、年代別に単語が登録されている。
定型辞書に登録される単語の項目には、まず、“状態の対象を示す単語”に属する“良い分類に属する単語”と“悪い分類に属する単語”の2項目がある。また、定型辞書に登録される単語の項目には、“状態を示す単語”に属する“良い分類に属する単語”と“悪い分類に属する単語”の2項目がさらにある。
ここで、この4項目に該当する単語について図7を参照して説明を加える。図7に一例として、“A社の上半期の純利益は増大の見通し”という記事が、サーバ1に蓄積されており、その記事が取得され、処理対象(学習辞書データベース101に登録される対象)とされる場合を示す。
この記事のうち、“A社”という単語を“対象語”と称する。“対象語”とは、状態が変化しうる名詞、例えば、国、会社、人などの名詞である。“状態が変化しうる”とは、例えば、良い状態が継続した後に、悪い状態に変化するといったようなことを意味する。また、“対象語”とは、検索の対象(検索機能75(図3)の検索の対象)となる単語を意味する。
“A社の上半期の純利益は増大の見通し”という記事のうち、“純利益”という単語を“状態の対象を示す単語”と称し、以下の説明では適宜、“状態対象単語”と略記する。“状態対象単語”は、対象語により表される国や会社などの状態を示す“状態単語”がかかる対象となる単語である。換言すれば、“状態単語”の主語となりうる単語である。
“状態単語”とは、“A社の上半期の純利益は増大の見通し”という記事のうち、“増大”という単語であり、“状態を示す単語”のことである。
例文として示した記事は、「“対象語”が示す対象の、“状態対象単語”で示される事柄(項目)が、“状態単語”で示される状態である」という構造である。
学習辞書データベース101は、図6に示すように、まず、“状態の対象を示す単語”、すなわち“状態対象単語”に対応(該当)する “良い分類に属する単語”と“悪い分類に属する単語”を記憶している。同様に、学習辞書データベース101は、図6に示すように、“状態を示す単語”、すなわち“状態単語”に対応(該当)する“良い分類に属する単語”と“悪い分類に属する単語”を記憶している。
学習辞書データベース101に記憶されているデータの一例を示す以下のようになる。
状態の対象を示す単語
良い分類単語(状態対象単語) : 利益、純利益、平和、
悪い分類単語(状態対象単語) : 負債、借金、戦争、混乱、
状態を示す単語
良い分類単語(状態単語) : 増益、増収、増大、収拾、改善、
悪い分類単語(状態単語) : 減益、減収、減少、悪化、
“良い分類単語”には、その単語が、一般的に、比較的良いイメージがもたれているであろう単語、少なくとも、悪いイメージがない単語が登録される。“悪い分類単語”は、“良い分類単語”の逆のイメージがもたれている単語が登録される。なお、ここで、良いイメージまたは悪いイメージとは、単語に対してユーザが抱いているイメージ、印象などを意味し、また、単語が表す(意味する)性質などを含むとする。
また、上記したように、“良い分類単語(状態対象単語)”、“悪い分類単語(状態対象単語)”、“良い分類単語(状態単語)”、“悪い分類単語(状態単語)”の各項目には、複数の単語が登録される。
定型辞書には、上記したような4つの項目が設けられ、それらの項目毎に単語が登録されるが、非定型辞書も、同様に、4つの項目が設けられ、それらの項目毎に単語が登録されている。ただし、非定型辞書は、それら4つの項目に該当する単語を、所定の期間毎に管理している点が、定型辞書と異なる。
このように非定型辞書には、単語だけでなく、期間という項目も設けられ、時間と関連付けられて単語が管理されている。このようにすることで、時代とともに使われ方が変化した単語、イメージが変化した単語などを管理することが可能となる。
例えば、期間Aでは悪いイメージで用いられ、期間Bでは良いイメージで用いられるようになった単語Aが、後述するユーザが検索を行うときのキーワードとして用いられ、かつそのユーザが悪いイメージでその単語Aを用いたような場合を考える。仮に、学習辞書データベース101が、非定型辞書を有していなかった場合(期間と単語を関連付けて記憶していなかった場合)、ユーザが悪いイメージをもっている単語Aが用いられた検索は、期間Aでは良いイメージで使われていたにも係わらず、期間Aにおける記事が、検索結果としてユーザ側に提示されてしまう。
しかしながら、上記したように、学習辞書データベース101に非定型辞書を設けた場合(期間と単語を関連付けて記憶するようにした場合)、ユーザが悪いイメージをもっている単語Aが用いられた検索であれば、単語Aが良いイメージで扱われていた期間Aのときの記事は検索結果としてユーザ側に提示されないようにすることができる(なぜそのようになるかの詳細な根拠は、後述する検索処理の説明で明らかにする)。
次に、解析データ情報データベース102(図5)について、説明を加える。
図8は、解析データ情報データベース102に記憶されているデータのデータ構造を説明するための図である。解析データ情報データベース102は、記事を解析した結果が記憶されるデータベースである。そのため、解析データ情報データベース102には、まず、記事が掲載された日時(ここでは、掲載された日時としているが、その記事が発生した日時(事件が起きた日)や、記事を、端末2が取得した日時などでも良い)が記憶される。
また解析データ情報データベース102には、記事の“対象名”(対象語)と、その記事の内容から判断される“評価(良い・悪い)”も記憶されている。例えば、図7に示したような“A社の上半期の純利益は増大の見通し”といった記事が解析された場合、解析データ情報データベース102に記憶される“対象名”は、“A社”となる。また、この記事から、後述する処理により、“A社”が良い状態であるのか悪い状態であるのかを示す評価が下され、その結果が、“評価(良い・悪い)”という欄に記憶される。
例えば、上記した記事が“2005年の1月1日”に掲載された記事であった場合、また、上記した記事から判断される評価が“良い”という判断であった場合、以下のようなデータが解析データ情報データベース102に記憶される。
年 :2005年
月 :1月
日 :1日
対象名 :会社A
評価(良い・悪い) :良い
このように、解析データ情報データベース102には、“年”、“月”、“日”、“対象名”、“評価”が、それぞれ記事毎に(解析結果毎に)関連付けられて記憶される。なお、図8に示したように、“年”や“月”などは、記事毎に関連付ける(記事毎に記憶する)のではなく、共用する(グループ化する)ようにしても良い。
次に、記事データベース103(図5)について、説明を加える。
図9は、記事データベース103に記憶されているデータのデータ構造について説明するための図である。記事データベース103には、記事が記憶される。記事はテキストデータであり、ここでは、画像データなどを含まないものとする。記事データベース103は、“年月日”と“記事(テキストデータ)”を関連付けて記憶している。この“年月日”は、解析データ情報データベース102に記憶される“年”、“月”、“日”と同一の意味をもち、上記したように、記事が掲載された年月日、記事が発生した年月日(事件が起きた年月日)、記事を端末2が取得した年月日などである。
なお、ここでは、記事データベース103は、端末2に設けられ、記憶される記事は、サーバ1から定期的に取得されるとして説明を行うが、記事データベース103自体をサーバ1に設け、必要なときに、端末2がサーバ1に接続するようにしても良い。また、記事データベース103を、サーバ1や端末2以外の装置に記憶させるようにし、必要なときに、端末2がその装置に接続するようにしても良い。
図6、図8、図9に示したデータベースは、それぞれ1例であり、図示していないデータも、必要に応じて記憶させるようにすることも勿論可能である。また、各データベースで、共有できるデータなどは、共有するような構成とすることも勿論可能である。
また、各データベース内に記憶されているデータは、時系列的にソートされた状態で記憶されるようにしても良いし、バイナリテーブルやハッシュテーブルなどの形式で記憶されるようにしても良い。後述する検索の処理などにおいて、その検索時間などにかかる時間を短くできるような記憶方式で記憶されることが好ましい。
[端末の動作について]
次に、上記したような構成を有し、上記したようなデータベースを備える端末2の動作について説明する。まず、図10A、図10Bを参照し、端末2の動作の概略を説明する。
端末2の動作としては、図10Aに示すようなユーザによる指示がないときに実行される動作(以下、適宜、静的動作と称する)と、図10Bに示すようなユーザによる指示があったときに実行される動作(以下、適宜、動的動作と称する)とがある。静的動作は、定期的に記事などが取得されるときの動作であり、動的動作は、ユーザによる指示に基づく検索などの処理が実行されるときの動作である。
図10Aを参照するに、トリガー管理部82(図4)で内部トリガーが発生したときに、取得(登録)フェーズ(Phase)が実行され、例えば、サーバ1に記憶されている記事が取得され、データベース89の記事データベース103(図5)に記憶(登録)される。
内部トリガーは、例えば、1日に1回、所定のタイミングで発生される。従って、このトリガーの発生により記事がサーバ1から取得されるため、記事データベース103は、そのタイミングで更新されることになる。
図10Bを参照するに、ユーザインタフェース部83(図4)からユーザの指示が入力されると、利用フェーズが、取得(登録)フェーズに指示を出し、例えば、ユーザが指示した対象名に関する記事の検索や取得の処理が実行される。
このような端末2の処理の詳細について以下に説明を加える。
[学習処理について]
端末2の処理としては、まず学習に関する処理(学習処理)がある。そして、その学習された結果が用いられて検索に係わる処理(検索処理)が実行される。そして、その検索処理の結果を、ユーザ側に提示するための提示に係わる処理(提示処理)がある。まず、学習処理について説明する。
図11乃至図13に示したフローチャートを参照し、学習処理について説明する。学習処理は、学習機能73(図3)により行われるが、処理に応じて、他の機能も適宜使われる。まず、ステップS21において、“良いとされる対象語”に対する記事(以下、適宜、記事と記述する)がネットワーク3を介してサーバ1から取得される。なお、ここでは“良いとされる対象語”に関する処理を例に挙げて説明をするが、“悪いとされる対象語”に対しても、以下に説明する“良いとされる対象語”と同様の処理が行われる。
ここで、“良いとされる対象語”とは、ユーザの判断により良い対象語として指定された単語や、ネットワーク1上で公開されているランキングのサイトで、良いとされるランキングの上位に位置する単語などである。
ネットワーク1上で公開されているサイトから、“良いとされる対象語”が取得される場合、例えば、そのサイトに定期的に接続し、その時点での良いとされるランキング(例えば、〜ベスト10とかのランキング)を参照し、上位の数社分(会社に関するランキングであれば、数社分、国であれば、数カ国分など)の単語(対象語)が取得される。このようにして取得された単語は、“良いとされる対象語”として、データベース89に登録される。
ユーザの判断および指示により、“良いとされる対象語”が取得される場合、例えば、図14に示したような画面が、表示部84に表示される。図14に示した画面は、対象語を登録する際にユーザ側に提示される画面であり、ユーザは、この画面を参照して情報を入力することで、良いまたは悪いと判断(評判)される対象語を登録できる。
図14に示した画面には、対象語を入力するための対象語入力欄131、評判を入力するための評判入力欄132、および、入力した情報で登録する際に操作される登録ボタン133が表示されている。ユーザは、対象語入力欄131に、評価(評判)が良いまたは悪い対象語として登録させたい単語を入力する。
ユーザは、対象語入力欄131に入力した対象語(その対象語が示す会社、国、人など)は、良い評判があるのか、または、悪い評判があるのかを、評判入力欄132で指示する。評価入力欄132は、図14に示すように、例えば、“良い”と“悪い”のどちらか一方が選択できるようなボタンで構成されており、ユーザは、どちらか一方のボタンを選択すればよいように構成されている。評価入力欄132は、例えば、メニュー形式でユーザ側に提供され、そのメニュー内の項目から評価が選択されるようにしても良い。またユーザが、直接評価を入力するようにしても良い。さらに、選択肢として“良い”、“悪い”の2つだけでなく、複数の選択肢が設けられるようにしても良い。
ユーザは、対象語入力欄131に入力した単語と、その単語に対する評価を入力し、その入力した情報で良ければ、登録ボタン133を操作する。登録ボタン133が操作されると、その時点で入力されていた情報が、データベース89に登録される。なお、図5には図示しなかったが、このようにして登録された対象語を登録するデータベースは、データベース89内に設けられている。そのデータベースは、図5に示したデータベース以外のデータベースとして設けられていても良いし、図5に示したデータベース101乃至103内に設ける(共用する)ようにしても良い。
図11のフローチャートの説明に戻り、ステップS21において、良いとされる対象語に関する記事が取得される。ここでは、所定のタイミングで、定期的にサーバ1(図1)から記事が取得され、その取得された記事が、記事データベース103(図9)に記憶され、その記事データベース103から良いとされる対象語に関する記事が取得されるとして説明を続ける。
このような場合、このステップS21の処理が行われる前の時点で、取得機能71(図3)により、サーバ1から記事が取得される。取得機能71を構成するトリガー管理部82は、所定のタイミング(例えば、1日1回、1週間毎など)でトリガーを発生し、そのトリガーに応じて、通信部81が、ネットワーク3を介してサーバ1と接続し、その接続されたサーバ1から記事(テキストデータ)を取得し、データ登録部88により、データベース89の記事データベース103に登録されるといった一連の処理が実行されることにより、記事データベース103にテキストデータが蓄積される。
このようにして記事データベース103に蓄積されたテキストデータから、良いとされる対象語に関する記事が読み出されるとして以下の説明を続けるが、ステップS21における処理が実行される時点で、サーバ1に接続され、記事が取得されるようにしても良い。
ステップS21における処理に説明を戻し、ステップS21において、良いとされる対象語の記事が取得される。ステップS21における処理は、例えば、図14に示した画面において、ユーザが情報を入力したことがトリガーとなり、開始されるようにしても良い。
ステップS22において、学習機能73を構成するデータ解析部86(図4)は、取得された記事を解析することにより、まず、“状態の対象を示す単語”を抽出する。図7を再度参照するに、“状態の対象を示す単語”とは、状態対象単語のことである。ステップS21においては取得される記事は、図7に示したような“A社の上半期の純利益は増大の見通し”といったような記事であり、そのような取得された記事から、状態対象単語が抽出される。
状態対象単語が抽出される前の処理として形態素解析などの処理が実行される。通常、日本語の記事(文章)は、単語毎に区切られていないので、例えば、形態素解析などと称される方法により、記事を単語毎に分解する必要がある。そこでそのような処理がデータ解析部86により行われる。
ステップS23において、状態対象単語が存在したか否かが判断される。形態素解析などの手法により分解された単語のなかから状態対象単語を抽出するための処理が実行されるわけだが、その抽出の結果、状態対象単語が存在しないことも考えられる。状態対象単語が記事中に存在しないということについて(存在しているということについても合わせて)説明を加える。
抽出の処理が実行される際、学習辞書データベース101が参照される。データ解析部86は、形態素解析の結果、単語毎に分解された記事の内、所定の品詞、この場合、名詞に注目し(名詞を抽出し)、その抽出した名詞が、学習辞書データベース101に既に登録されているか否かを判断する。学習辞書データベース101が参照される際、定型辞書と非定型辞書の両方の辞書が参照される。定型辞書と非定型辞書のうち、“状態の対象を示す単語(状態対象単語)”の欄が参照される。
記事から抽出された名詞毎に、定型辞書または非定型辞書の状態対象単語の欄に登録されているか否かが判断される(記事からの名詞と学習辞書データベース101に記憶されている名詞とのマッチングが行われる)ことにより、ステップS22の処理が実行される。なお、ここでは、記事から抽出された名詞毎にマッチングが行われるとしたが、1つの記事において状態対象単語が存在するだいたいの位置は決まっているため、記事から抽出された全ての名詞に対してマッチング処理を実行するのではなく、状態対象単語が存在すると予測される位置に存在する単語だけに対してマッチング処理が実行されるようにしても良い。
例えば、図7に示した例文を再度参照するに、“A社の上半期の純利益は増大の見通し”という記事から、名詞のみを、記事中の順番で表記すると、“A社”、“上半期”、“純利益”、“増大”となるわけだが、通常の文章であれば、一番初めに存在している“A社”という単語は対象語である。この例文においても“A社”という単語は、対象語として存在している。対象語は、本実施の形態における“状態対象単語”にはなりえない。よって、対象語の位置に存在する名詞は、マッチングの対象としない。すなわち、この場合、一番初めに位置する名詞以外をマッチングの対象とするように設定しておいても良い。
また、状態対象単語は、上記記事の例によれば、“純利益”となるが、この“純利益”という単語は、文法的には、上記記事においては主語に相当する。すなわち、状態対象単語は、記事の主語であることが多いと考えられる。よって、状態対象単語を抽出するなどの、状態対象単語に係る処理が実行されるときには、記事の主語を文法的な解析を行うことにより検出し、その検出された主語を状態対象単語とする(この場合、状態対象単語の候補としてマッチング処理を実行する)ようにしても良い。
勿論、このような規則は、他にもあるので、複数の規則に基づき、マッチングの処理の対象となる名詞を限定するようにしても良い。マッチングの対象となる名詞を限定することにより、ステップS22にかかる処理時間を短くすることが可能となる。
ステップS22における処理で状態対象単語が抽出されたか否かが、ステップS23において判断されるわけだが、その判断は、記事内に存在していた単語(この場合、名詞)が学習辞書データベース101に記憶(登録)されていたか否かが判断されることにより行われる。学習辞書データベース101に記憶されていたと判断された場合、状態対象単語は存在していたと判断され、学習辞書データベース101に記憶されていないと判断された場合、状態対象単語は存在していないと判断される。
ステップS23において、記事中に状態対象単語は存在していなかったと判断された場合、ステップS24に処理が進められ、記事中に状態対象単語は存在していたと判断された場合、ステップS29に処理が進められる。
ステップS24において、取得された記事中から“状態を示す単語”が抽出される。“状態を示す単語”とは、図7を参照して説明したように、“状態単語”のことである。ステップS25において、記事内に状態単語は存在したか否かが判断される。このステップS24のおける処理とステップS25における処理は、基本的に、ステップS22とステップS23における処理と同様に行われる。
ステップS22とステップS23における処理では、“状態対象単語”が処理対象とされていたが、ステップS24とステップS25における処理では、“状態単語”が処理対象とされる点が異なるだけであり、基本的に、記事中に存在する名詞と、学習辞書データベース101内の“状態単語”の欄に記憶されている名詞とのマッチング処理が実行されることにより行われる。
この処理が実行される際も、記事内の全ての名詞に対してマッチング処理が実行されるのではなく、所定の位置に存在する名詞のみに対してマッチング処理が実行されるようにしても良い。
ステップS25において、記事内に状態単語は存在していたいと判断された場合、ステップS26に処理が進められ、記事内に状態単語は存在していないと判断された場合、ステップS26,S27の処理はスキップされ、ステップS28に処理が進められる。
ステップS26において、状態を示す単語(状態単語)より前の名詞が記事内から検索される。なお、名詞でも、数字(数値)や助数詞は検索対象から除かれる。ステップS27において、名詞は存在したか否かが判断される。ステップS27において、名詞は存在したと判断された場合、ステップS28に処理が進められ、名詞は存在していないと判断された場合、学習処理は終了される。
ここで、ステップS26からS28までの処理の流れについて説明を加える。ステップS26に処理が来るのは、“状態対象単語”が学習辞書データベース101に登録されていないときである。このような状況は、記事自体に、“状態対象単語”に該当すべき単語が存在していないために、結果として、学習辞書データベース101に登録されていないと判断された場合(ケース1とする)と、記事自体には“状態対象単語”に該当すべき単語が存在していたが、まだ、学習辞書データベース101に登録されていないために、学習辞書データベース101に登録されていないと判断された場合(ケース2とする)とが考えられる。
再度図7を参照する。記事内の名詞のみに注目し、その並びを考えると、“対象語”、“状態対象単語”、“状態単語”の順に一本的にはなっている。勿論この並びは、必ず守られる規則的なものではないが、ニュース記事のような記事(主にタイトル)などは、このような規則が比較的守られて記載されている。
よって、ステップS26,S27の処理において、状態単語(ステップS25において状態単語は存在していると判断されたときの状態単語)より前に、名詞が存在するか否かが判断される。
ケース1の場合、記事自体に状態対象単語が存在しないため、その後の処理が行われても、記事から状態対象単語が抽出されることがなく、結果として、学習辞書データベース101に登録される単語は存在しないことになる。すなわち、ケース1の場合において上記した規則的なことを考えると、“状態単語”の前には、“対象語”や“状態対象単語”に該当する名詞が存在していないときであると判断できる。
よって、ケース1の場合、ステップS27において、名詞は存在しないと判断されるため、すなわち、処理対象となっている記事には、状態対象単語に該当する名詞自体が存在していないと判断される。よって、学習辞書データベース101に記憶する単語はないことになるため、学習処理は終了される。
ケース2の場合、学習辞書データベース101には記憶されていないだけで、取得された記事自体には状態対象単語に該当する名詞が存在する可能性がある。“状態対象単語に該当する名詞が存在する可能性がある”とは、状態単語の前に位置する名詞は、状態対象単語の可能性もあるが、対象語などの状態対象単語には該当しない名詞の可能性もあることを意味する。
そこで、ユーザにより状態単語の前に存在する名詞は、状態対象単語であるか否かを決定してもらう処理が行われるようにする。すなわち、ステップS27において、名詞は存在したと判断された場合、ステップS28に処理が進められ、ユーザにより状態対象単語を決定してもらうためのUI(ユーザインタフェース)による学習処理が実行される。
図12は、ステップS28において実行されるUIによる学習処理の詳細を示すフローチャートである。図12のフローチャートを参照して、UIによる学習処理について説明する。ステップS51において、単語列(この場合、処理対象とされている記事)に対し選択項目(この場合、良いまたは悪いなどの状態を選択させるための項目)を表示するための画面が表示部84に表示される。
表示部84に表示される画面の一例を図15に示す。図15に示した画面には、取得された記事、この場合、“A社の上半期の純利益は増大の見通し”といった記事が表示されている。この記事の場合、“増大”というのが状態単語である。よって、“増大”という単語は、状態単語として、ステップS24,S25の処理で検出されている。そして、ステップS26,S27の処理により、“増大”という状態単語の前に位置する名詞として、“A社”、“上半期”、“純利益”という3つの名詞が存在していると判断される。
そこで、このような場合、この3つの名詞のうち、どの名詞が状態対象単語であるのかをユーザ側の判断により決定してもらうようにする。そのために、その3つの名詞が他の名詞(単語)と区別がつく状態で表示されるようにする。図15に示した例では、その3つの名詞のうち“純利益”という名詞が、他の名詞と区別がつく状態で表示されている。図15に示した例では、“純利益”という名詞は、箱151に囲まれて(文字が反転されるようにしても良い)表示されている。
箱151は、カーソル152が、処理対象とされる名詞(この場合、上記した3つの名詞)上に位置するとき、表示されるようにしても良いし、処理対象とされる全ての名詞に表示される(処理対象の名詞をユーザに一度に認識させるため)ようにしても良いし、処理対象とされる名詞のうち、例えば、状態単語に一番近い位置に存在する名詞に一番初めに(デフォルトとして)表示されるようにしても良い。
いずれにしても、箱151が表示され、カーソル152が位置すると、選択項目一覧153が表示される。選択項目一覧153に設けられている項目としては、“良い”、“悪い”、“登録しない”といった3つの項目が設けられている。これらの3つの項目の内、1つの項目のみが選択できるように構成されている。ユーザは、これらの3つの項目の内から、箱151で囲まれている名詞が状態対象単語として良いイメージがあれば、“良い”という項目を選択し、悪いイメージがあれば、“悪い”という項目を選択し、状態対象単語として登録する単語ではないというのであれば、“登録しない”という項目を選択する。
選択項目一覧153により選択した項目でよければ、ユーザは“了解”というボタン154を操作する。“了解”というボタン154が操作されることにより、その単語は、その選択項目に応じた学習辞書データベース101の欄に登録され、図15に示した画面は閉じられるか、または、登録処理は実行されずに、閉じられる。
例えば、選択項目一覧153の項目の内、“良い”または“悪い”という項目が選択された状態のときにボタン154が操作されたときには、画面は閉じられ、“登録しない”という項目が選択された状態のときにボタン154が操作されたときには、画面は閉じられずに、次の処理対象となる名詞上に箱151が表示されるような仕組みを設けても良い。
また、1つの記事からは1つの状態対象単語と1つの状態単語が存在し、複数の状態対象単語や状態単語が存在していることは少ないと考えられる。よって、1つの単語が登録された時点で、図15に示した画面は閉じられるようにしても良い(1つの記事から複数の状態対象単語や状態単語が登録されないような仕組みを設けるようにしても良い)。
いずれにしても、図15に示したような画面が、ステップS51(図12)の処理において、表示部84上に表示される。なお、ここでは、図15に示したような画面が表示されるとして説明したが、例えば、処理対象とされている記事の全文が表示されるのではなく、その記事から抽出された名詞のみが表示される画面としても良く、図15に示した画面に限定されるものではない。
ステップS52において、選択項目一覧153から1つの項目が選択され、ボタン154が操作されたか否かが判断される。ボタン154が操作されたと判断されるまで、ステップS52の処理が繰り返され(すなわちユーザからの指示待ちの状態が維持され)、ボタン154が操作されたと判断されると、ステップS53に処理が進められる。
ステップS53において、選択項目一覧153から選択された項目は、“良い”または“悪い”という項目であるか否かが判断される。ステップS53において、“良い”または“悪い”という項目が選択されたと判断された場合、ステップS54に処理が進められ、その時点で選択されている単語の登録に関する処理(登録処理)が実行される。
一方、ステップS53において、“良い”または“悪い”という項目が選択されたのではないと判断された場合、すなわち、この場合、“登録しない”という項目が選択されたと判断された場合、登録する単語はないので、ステップS54の処理はスキップされ、学習処理は終了される。
ステップS54において実行される登録処理について、図13のフローチャートを参照して説明する。ステップS71において登録モードであるか否かが判断される。ここでは、新たに単語を登録するための登録モードと、既に登録されている単語を新たに登録し直す更新モードが設けられている。
ステップS71において、登録モードであると判断された場合、ステップS72に処理が進められる。ここでの説明では、「UIによる学習処理」が実行された結果(図12のフローチャートに基づく処理が実行された結果)、ユーザにより登録が指示された単語であり、また、この場合、状態対象単語は学習辞書データベース101に記憶されてはいないと判断された(ステップS23(図11)の処理)場合であるので、学習辞書データベース101に新たに単語を登録する登録モードであると判断され、ステップS72に処理が進められる。
ステップS72において、データベース89(この場合、学習辞書データベース101)に既に登録されているか否かが判断される。ステップS72において、データベース101には未だ記憶されていないと判断された場合、ステップS73に処理が進められ、その処理対象となっている単語(名詞)がデータベース101に登録される。
この場合、処理対象となっている状態対象単語が、“良い”と判断されていた場合、学習辞書データベース101の非定型辞書の状態対象単語の良いという欄に登録され、“悪い”と判断されていた場合、学習辞書データベース101の非定型辞書の状態対象単語の悪いという欄に登録される。また、非定型辞書に単語が登録される場合、処理対象とされている記事が示す日時と対応する欄に登録される。
このように、非定型辞書に登録される単語は、ユーザの指示に基づき、その登録される欄(良いという欄か悪いという欄)が決定されるため、その登録される単語に対するユーザのイメージ、考え、思いなどが反映された状態で、登録させることが可能となる。逆に、このような非定型辞書を、複数のユーザで共有するようにした場合、複数のユーザのイメージ、考え、思いなどが反映されることになり、客観的なデータとすることが可能となる。
非定型辞書を、ユーザ特有の辞書とするか、複数のユーザが共有する辞書とするかにより、ユーザ個人の考えを反映した辞書とすることも可能であるし、ユーザ個人の考えが反映されない一般的な辞書とすることも可能である。
非定型辞書に単語を登録する際、記事の日時(期間)を考慮して、対応する欄に登録させることにより、期間(時代)毎に、単語を管理することが可能となる。すなわち、期間毎に良い状態を表現するための単語と、悪い状態を表現するための単語のサマリができることになり、期間毎の特徴語の抽出を行うことが可能となる。
フローチャートの説明に戻り、ステップS72において、処理対象となっている単語は、既にデータベース89に登録されていると判断された場合、ステップS73の処理をスキップし、学習処理は終了される。
一方、ステップS71において、登録モードではないと判断された場合、換言すれば、更新モードであると判断された場合、ステップS74に処理が進められ、データベース89内の対応するデータが置換される。更新モードは、例えば、ユーザが学習辞書データベース101に記憶されている単語を整理したいときなどに指定されるモードである。
このようにして、取得された記事(処理対象とされている記事)に、“状態単語”は存在するが“状態対象単語”は存在していなかったような場合であっても、データベースに登録することができる。すなわち、学習を行うことができる。また、データベースに登録する際、“良い”、“悪い”といったユーザの感覚で登録することができるため、ユーザの意見、趣向、考えなどが反映されたデータベースを作成することが可能となる。
さらに、後述する処理も含めて、本発明を適用することで、“状態単語”または“状態対象単語”のうちの一方がデータベースに登録されていれば、他方を学習により登録させることが可能となる。
このことについて、さらに説明を加えるために、図11のフローチャートの処理に説明を戻す。
ステップS21乃至S28までの一連の処理について既に説明したので、ステップS29以降の処理について説明する。ステップS29に処理が進められるのは、ステップS23において、取得された記事に、状態の対象を示す単語(状態対象単語)が含まれていると判断されたときである。
ステップS29において、取得された記事から状態単語が検索される。そして、ステップS30において、状態単語が存在したか否かが判断される。このステップS29とステップS30の処理は、基本的に、ステップS24とステップS25の処理と同様であり、既に説明したので、ここではその説明は省略する。
ステップS30において、取得された記事に状態単語は存在しないと判断された場合、ステップS31に処理が進められる。ステップS31において、状態対象単語より後の助数詞を除いた名詞が検索され、ステップS32において、その検索の結果、名詞が存在したか否かが判断される。
ステップS31以降に処理が来るのは、取得された記事内に状態対象単語は存在しているが状態単語は存在していないときである。上記したように、通常、ニュース記事などは、“対象語”、“状態対象単語”、“状態単語”の順に並んでいることが多い。そこで、状態対象単語が存在している場合、その状態対象単語の後に位置する名詞が状態単語である可能性が高い。そこで、ステップS31において、状態対象単語より後に位置する名詞を検索し、ステップS32において、名詞が存在したか否かを判断するようにする。
ステップS32において、名詞は存在したと判断された場合、ステップS28に処理が進めら、UIによる学習処理が実行される。このUIによる学習処理については、既に図12のフローチャートを参照して説明したので、その説明は省略する。ただし、上記した説明においては、状態対象単語が処理対象となっていたが、ここでは、状態単語が処理対象とされる点が異なる。
ステップS31,S32における処理は、ステップS26,S27の処理と基本的に同様であり、処理対象となる単語が異なるだけであるので、その詳細な説明は省略する。
このように、状態対象単語と状態単語のうち、一方が、取得された記事内に存在していれば(データベースに既に登録されていれば)、他方をデータベースに新たに登録することが可能である。
図11に示したフローチャートの処理は、状態対象単語と状態単語の両方が、取得された記事内に存在していない(データベースには、まだ登録されていない)状況であっても、データベースに登録できるような処理の流れとしてある。すなわち、ステップS23において、取得された記事に状態対象単語は存在していないと判断され、かつ、ステップS25において、状態単語も存在していないと判断された場合、ステップS28に処理が来るようにされている。
ステップS28における処理はUIによる学習処理であるが、このように、状態対象単語と状態単語が共に取得された記事には存在しないと判断された場合には、ユーザ側からの指示により、状態対象単語と状態単語が登録されるような処理が行われ。このような場合であっても、基本的に図12に示したフローチャートの処理に基づいて処理が行われれば、状態対象単語や状態単語を登録することが可能である。
ただし、このような場合、登録させる単語が、状態対象単語であるのか、状態単語であるのかも、ユーザにより指示されるようする必要がある。そのために、例えば、図15に示した画面において、選択項目一覧153内の選択項目として、“状態対象単語”、“状態単語”の2項目を追加し、その2項目から1つの項目と、他の3項目のうちから1つの項目が、それぞれ選択されるような仕組みが設けられる。
このようにすれば、状態対象単語と状態単語が共に取得できなかったようなときでも、ユーザの指示により、状態対象単語や状態単語を、学習辞書データベース101に記憶させることが可能となる。
図11のフローチャートの処理に説明を戻し、ステップS30において、取得された記事に状態単語は存在したと判断された場合、学習処理は終了される。この場合、状態対象単語も状態単語も、共に、学習辞書データベース101に記憶されていたことになるので、新たに、登録させる単語がないため、学習処理は終了される。
なお、上記した学習処理は、状態対象単語と状態単語のうち、どちらか一方が学習辞書データベース101に記憶されていなかった場合、ユーザの指示により登録させるようにした。ユーザの指示により登録させる上記したような仕組みの他に、ユーザの指示によらず登録させる仕組みも設けても良い。
例えば、図11に示したフローチャートの処理によれば、ステップS21において、良いとされる対象語に関する記事が取得され、その後の処理が実行される。良いとされる対象語に関する記事の内容は、良いものであるという前提をたて、その記事に含まれる単語は、学習辞書データベース101の“良い分類単語”の欄に記憶させるようにしても良い。
このようにした場合、例えば、取得された記事のなかから、状態対象単語は抽出されたが、状態単語は抽出されなかったときには、抽出された状態対象単語の直後に位置する名詞を状態単語として登録するといったような設定をしておくことにより、状態対象単語や状態単語としてふさわしくない単語が登録されてしまうようなこと(例えば、対象語が登録されてしまうといったようなこと)を低減させることができるとともに、ユーザの手を煩わすことなく、単語を追加、登録することが可能となる。
ユーザの手を煩わすことなく(自動的)に、単語を登録させるようにした場合、登録された後の時点で、ユーザに、その登録内容で良いか否かを問うような仕組みを設けるようにしても良い。そのような処理を設けることで、ユーザの考えなどを反映させた学習辞書データベース101を作成することが可能となる。
上記した学習処理は、上記した例に限定されるものではなく、状態対象単語や状態単語を学習する処理以外にも適用することができる。すなわち、上記した学習処理は、複数の分類毎に、単語を管理するデータベースを設け、そのデータベースに登録されていない単語を、追加、登録するような処理に対して適用することができる。
換言すれば、上記した学習処理は、2つの分類毎に、第1の分類に属する単語(例えば、状態対象単語)と第2の分類に属する単語(例えば、状態単語)を、それぞれ管理するようなデータベースの学習処理に、本発明を適用した場合を例に挙げて説明した。
上述した学習処理においては、学習辞書データベース101(図6)に、重複して同一の単語が登録されないようにした。また、学習辞書データベース101の非定型辞書に登録される単語は、ユーザの嗜好が反映されたものとされるとして説明した。
例えば、学習辞書データベース101は、図11に示したフローチャートの処理が実行されることにより作成されるわけだが、この図11に示したフローチャートに基づいて処理が実行されると、同一の単語は重複して登録されることがなく、また、ユーザの嗜好が反映されたデータベースを作成できる。
図11のステップS23において、取得された記事に状態対象単語が存在している否かが判断されるが、この判断は、学習辞書データベース101が参照されて行われる。この判断は上述したように、学習辞書データベース101に状態対象単語として登録されている単語が、取得された記事内に存在していれば、記事内に状態対象単語は存在していたと判断される処理であった。
また、ステップS25やステップS30において、取得された記事に状態単語が存在しているか否かが判断されるが、この判断も、ステップS23の判断と同様に、学習辞書データベース101に、状態単語として既に登録されている単語が、記事内に存在するか否かが判断されることにより行われる。
このように、学習辞書データベース101に登録されている単語が、取得された記事内に存在するか否かが判断されることにより学習辞書データベース101に登録する単語が学習されるわけだが、このような判断が行われることにより、学習辞書データベース101には、同一の単語が登録されるようなことはないように構成されることになる。
すなわち、学習辞書データベース101に既に登録されている単語は、登録対象とはならない。換言すれば、学習辞書データベース101に既に登録されている単語の場合、ステップS28(図12のUIによる学習処理)に処理が進むこともなく、また、ステップS54の処理(図13の登録処理)に処理が進むことがないために、学習辞書データベース101に登録される対象とはならない。よって、学習辞書データベース101に同一の単語が登録されることは、少なくとも、図11の処理に基づいて学習が行われる場合にはない。
このように、同一の単語が学習辞書データベース101に登録されないようにすると、同一の単語が複数の意味を有する、例えば、1つの単語が良い印象で登録されている一方で、悪い印象でも登録されているといったような状況が発生することがないため、単語の意味に統一性をもたせることができる。また、同一の単語が登録されていないため、後述する解析処理などの処理を、比較的簡便に行うことができる。
また、上記したように、例えば、図11のステップS28において、UIによる学習処理が行われるため、学習辞書データベース101は、ユーザの嗜好が反映されたものとなる。ユーザの嗜好が反映された学習辞書データベース101を用いることで、ユーザの嗜好が反映された結果を、ユーザに返すことが可能となる。
ユーザの嗜好が反映されている学習辞書データベース101は、記事として、例えば、ネットワーク上で掲示板やブログなどと称される、ユーザの意見が反映されるような記事を、以下に説明するような処理により解析するときに用いるとより有効であると考えられる。
このように学習されて作成される学習辞書データベース101を用いて行われる処理について、以下に説明する。
[解析データ情報データベースの作成に係わる処理について]
図16は、解析データ情報データベース102の作成に係わる処理(解析処理)について説明する。解析データ情報データベース102の作成は、解析機能72と作成機能74(図3)により行われる。
解析データ情報データベース102は、図8を参照して説明したように、ある対象名(会社、国など)に関する評価を管理しているデータベースである。また、この管理されている評価(評判)は、テキストデータ(記事)から抽出された状態対象単語と状態単語とに基づく判断結果である。そのようなデータを管理する解析データ情報データベース102は、以下のような処理が実行されることにより作成される。
ステップS101において、記事(テキストデータ)が取得される。このテキストデータは、記事データベース103(図9)に記憶されており、この記事データベース103に記憶されているテキストデータが取得される。取得された後(解析データ情報データベース102に登録された後)には、その取得されたテキストデータは、記事データベース103から削除されるようにしても良い。
ステップS102において、取得されたテキストデータが、例えば、形態素解析により単語毎に分解される。そして、分解された単語の内、名詞が抽出される。名詞が処理対象とされるのは、上述してきたように、状態対象単語や状態単語は、名詞であるためである。
ステップS103において、抽出された名詞のなかに、学習辞書データベース101に、状態対象単語として登録されている名詞があるか否かが判断される。ステップS103において、抽出された名詞のなかに、状態対象単語として学習辞書データベース101に登録されている名詞はないと判断された場合、解析データ情報データベース102に登録するデータがないことを示しているので、図16に示した解析処理は終了される。
一方、ステップS103において、抽出された名詞のなかに、状態対象単語として学習辞書データベース101に登録されている名詞があると判断された場合、ステップS104に処理が進められる。ステップS104において、抽出された名詞のなかに、状態単語として学習辞書データベース101に登録されている名詞があるか否かが判断される。
ステップS104において、抽出された名詞のなかに、状態単語として学習辞書データベース101に登録されている名詞はないと判断された場合、解析データ情報データベース102に登録するデータがないことを示しているので、図16に示した解析処理は終了される。
一方、ステップS104において、抽出された名詞のなかに、状態単語として学習辞書データベース101に登録されている名詞があると判断された場合、ステップS105に処理が進められる。
このステップS103とステップS104の処理が実行される際、学習辞書データベース101が参照されるわけだが、学習辞書データベース101には、上記したように、定型辞書と非定型辞書(図6参照)がある。非定型辞書は、時代(期間)毎にデータを分類して管理しているが、非定型辞書が参照されるときには、処理対象とされている記事が示す期間に対応する期間のデータのみが参照される。このようにすることで、期間毎に意味の違い(ニュアンス)が異なるような単語であっても、その違いを吸収した処理(検索、マッチングなど)を行うことができるようになる。
また、非定型辞書には、上記した学習処理によりデータが蓄積される。学習処理は、UIによる学習処理を含む(ユーザの嗜好、考え、イメージなどによる依存する処理を含む)ため、ユーザの嗜好、考え、イメージなどが反映されたものとなっている。よって、そのような非定型辞書を用いた処理は、ユーザの嗜好、考え、イメージなどが反映されたものとなる。すなわちこの場合、ステップS105において行われる判断に係わる処理は、ユーザの嗜好などが反映された判断が行われることになる。
ステップS105において、判断が行われる。ステップS105のおける処理は、対象名(その対象名が示す対象)が、その時点(記事の内容の時点)では、どのような状態であったか判断する処理である。例えば、“A社”は、“Aという時点”で、“良い”状態であったといったようなことを判断する処理である。
ステップS105に処理が来るときは、取得された記事に、状態対象単語と状態単語が存在しているときである。この状態対象単語と状態単語が用いられてステップS105における判断処理が行われる。状態対象単語と状態単語は、それぞれ、良い意味(イメージ)の単語であるか、悪い意味(イメージ)の単語であるのかにより分類されている(図6参照)。そこで、取得された記事から抽出された状態対象単語と状態単語が、それぞれ、良い意味の単語であるのか、悪い意味の単語であるのかといった情報を用いて、ステップS105における判断処理が行われる。
図17は、ステップS105において行われる判断処理の判断の仕方について説明するための図である。記事から抽出された状態対象単語と状態単語が共に、学習辞書データベース101の“良い分類単語”の欄で管理されている単語であった場合、その判断結果は、“良い”となる。例えば、状態対象単語が“利益”であり、状態単語が“増大”であれば、そのような状況は“良い”状態であると考えられ、このような判断は妥当であると考えられる。
記事から抽出された状態対象単語が“良い分類単語”の欄で管理され、状態単語が“悪い分類単語”の欄で管理されているような場合、その判断結果は、“悪い”となる。例えば、状態対象単語が“利益”であり、状態単語が“減少”であれば、そのような状況は“悪い”状態であると考えられ、このような判断は妥当であると考えられる。
記事から抽出された状態対象単語が“悪い分類単語”の欄で管理され、状態単語が“良い分類単語”の欄で管理されているような場合、その判断結果は、“悪い”となる。例えば、状態対象単語が“負債”であり、状態単語が“増大”であれば、そのような状況は“悪い”状態であると考えられ、このような判断は妥当であると考えられる。
記事から抽出された状態対象単語が“悪い分類単語”の欄で管理され、状態単語が“悪い分類単語”の欄で管理されているような場合、その判断結果は、“良い”となる。例えば、状態対象単語が“負債”であり、状態単語が“減少”であれば、そのような状況は“良い”状態であると考えられ、このような判断は妥当であると考えられる。
このように、記事から抽出された状態対象単語と状態単語が、それぞれ、学習辞書データベース101の“良い分類単語”に属するのか、“悪い分類単語”に属するのかに依存し、最終的に、その記事が示す時点での対象(基本的には、記事の主役(対象語)となっている会社、国など)の状況(評価、評判など)が判断される。
なお、図17に示した関係を、テーブルとして記憶しておくようにし、そのテーブルが参照されることにより、ステップS105における処理が実行されるようにしても良い。
なお、図17に示した状態対象単語、状態単語、判断結果の関係は、どのようなときにでも成り立つという関係ではなく、例外もある。例えば、状態対象単語が“悪い分類単語”に属する“負債”であり、状態単語が“悪い分類単語”に属する“悪化”であったような場合、図17に示した関係によれば、“良い”状況であると判断されてしまうが、実際には、“悪い”状況である。このような単語の組み合わせにより、図17に示した関係が成り立たないような場合は、予め例外処理が行われるように設定しておき、例外処理として“悪い”状況であると判断されるようにしておけばよい。
図17に示した関係をテーブルとして記憶するようにした場合、そのテーブルに、例外処理に関する単語の組み合わせの一覧などを、記載するようにしても良い。
ステップS105においては、このような判断処理が実行される。そして、この判断結果が、ステップS106の処理として、解析データ情報データベース102に追加登録される。対象名(対象語)と判断結果(ステップS105の処理の結果)が関連付けられ、対応する年月日の欄に登録される。
このような処理が、所定のタイミングで繰り化される(例えば、1日1回)ことにより、解析データ情報データベース102が作成される(新たなデータの追加、登録が行われる)。
なお、上述した解析処理を換言するならば、取得された記事が示す内容を判断する処理である。上述した解析処理は、後述する検索処理などにおいて用いられるデータ(解析データ情報データベース102)を作成する際に適用されるのみではなく、例えば、取得された情報が、どのような内容であるのかを判断するような処理として適用するも可能である。
[他の学習処理について]
学習辞書データベース101の非定型辞書は、所定の期間毎に単語を管理することができるように構成されており、異なる期間に同一の単語を登録することも可能である。よって、非定型辞書の期間毎に、同一の単語でも、異なる印象(イメージ、性質など)で登録させるようにしても良いし、また、そのようにすることで、より細かい解析を行うことができる(期間毎に解析し、期間毎に異なる結果を表示させることができる)ようになり、よりユーザにとって、細かなサービスを行えるようになると考えられる。
また、例えば、記事としてニュース記事など、比較的ユーザの嗜好が反映されないような記事を扱う場合、学習辞書データベース101にユーザの嗜好を反映させなくても、解析結果などの精度が低下することはないと考えられる。また、ニュース記事などの一般的な記事の場合には、ユーザの嗜好が反映されていない学習辞書データベース101を用いる方が、一般的な解析結果を返すことができ、好ましいとも考えられる。
そこで、学習辞書データベース101に同一の単語が重複して登録され、ユーザの嗜好が反映されない学習辞書データベース101が作成されるようにし、そのような学習辞書データベース101を用いた処理について説明を加える。
このような学習辞書データベース101に係わる処理は、上記した学習辞書データベース101に係わる処理と比較して、以下の点が異なる。学習辞書データベース101は、ユーザの嗜好が反映されるものではなく、一般的に広く使われる単語とその単語の印象が関連付けられたものとする。また、学習辞書データベース101は、同一の単語が、重複して登録されている。このような実施例1と異なる点についてのみ、以下に、説明を加える。
学習辞書データベース101に、ユーザの嗜好を反映させないようにした場合、ユーザの嗜好を反映させるために行われていたUIによる学習処理(図13のフローチャートの処理)を実行する必要がない。また、UIによる学習処理を行わなければ、学習辞書データベース101自体を、サーバ1(図1)側で作成し、定期的にユーザ側の端末2に提供するようにしても良い。
定期的に端末2に提供するようにした場合、端末2側では、図18に示すフローチャートの処理が実行される。すなわち、まずステップS121において、学習辞書データベース101の更新のタイミングがきたか否かが判断される。更新のタイミングとは、例えば、1日1回、1ヶ月に1回などである。ステップS121において、更新のタイミングであると判断された場合、ステップS122に処理が進められる。
ステップS122において、端末2は、サーバ1にアクセスし、学習辞書データベース101のデータをダウンロードする。そして、端末2は、そのダウンロードしたデータで、学習辞書データベース101を更新する。ダウンロードされるデータ(更新の対象とされるデータ)は、学習辞書データベース101全体でも良いし、学習辞書データベース101の非定型辞書の部分だけでも良い。
この更新の処理は、端末2側で行われるとして説明したが、サーバ1側で、所定のタイミングで、端末2側にデータを送信し、その送信されてきたデータを端末2側は受信し、自己が記憶している学習辞書データベース101を更新するという処理の流れにしても良い。
サーバ1側で作成される更新用のデータが、同一の単語が重複して登録されているようなデータであれば、学習辞書データベース101は、同一の単語が重複して登録されているデータになる。また、学習辞書データベース101に記憶されているデータを更新する(置き換える)のではなく、受信したデータを追加する方式にした場合、既に登録されている単語が、追加登録される可能性があるため、結果的に、学習辞書データベース101に同一の単語が重複して登録されることになる。
[他の解析処理について]
次に、このようにして、同一の単語が重複して登録されている可能性がある学習辞書データベース101を用いた解析処理について、図19のフローチャートを参照して説明を加える。
図19に示したフローチャートの処理と、実施例1の解析処理として説明した図16のフローチャートの処理とを比較するに、図19に示したフローチャートの処理は、ステップS143とステップS145における処理が追加された流れとされている。
すなわち、ステップS141とS142の処理は、ステップS101とステップS102と同様であり、ステップS147とステップS148の処理は、ステップS105とステップS106と同様である。また、ステップS144の処理は、ステップS143の処理結果をうけて実行される違いはあるが、基本的に、ステップS103と同様であり、また、ステップS146の処理は、ステップS145の処理結果をうけて実行される違いはあるが、基本的に、ステップS104と同様である。
ここで、図16に示したフローチャートを参照して既に説明した以外の部分(ステップS143とステップS145)について説明を加える。ステップS143とステップS145の処理は、基本的に同様の処理であるが、処理対象が、ステップS143は、状態対象単語であり、ステップS144は、状態単語である点が異なる。よって、ここでは、ステップS143の処理について、図20のフローチャートを参照して説明を加える。
ステップS161において、学習辞書データベース101の非定型辞書(図6)内の、取得された記事が示す年月日に対応する期間内が検索され、記事に含まれていた単語(名詞)に、状態対象単語が含まれていたか否かが判断される。例えば、記事が示す年月日が“1985年6月1日”であった場合、また、非定型辞書の期間として、“1980年1月〜1989年12月”といった期間(10年単位の期間)が設定されていた場合、その“1980年1月〜1989年12月”という期間内で管理されている部分が検索対象とされる。
ステップS161における検索結果が用いられ、ステップS162において、検索対象とされていた単語があったか否かが判断される。ステップS143(図19)の処理として、この解析処理が実行されている場合、検索対象とされている単語は、状態対象単語であるので、ステップS162における処理は、状態対象単語が、検索対象とされていた期間内に存在していたか否かが判断される処理である。
ステップS162において、検索対象の単語はなかったと判断された場合、ステップS163に処理が進められる。ステップS163において、非定型辞書の1つ前の期間(区間)が検索対象とされ、検索が実行される。すなわち、例えば、上記した例であれば、“1980年1月〜1989年12月”という期間の前の期間である“1970年1月〜1979年12月”が検索対象の期間とされる。そして、その設定された期間内で管理されている単語内に、状態対象単語(検索対象とされている単語)が存在しているか否かが検索される。
また、ステップS163においては、Nが1だけ加算されるという処理も実行される。このNは、どれだけの期間をさかのぼって検索するか(いくつの期間を検索するか)を決定するためのパラメータである。後述するステップS165において、“N>閾値”であるか否かが判断されるが、Nが閾値以上であれば、それ以上さかのぼって非定型辞書内の検索は行わないように設定されている。
なお、ここでは、さかのぼって検索する(前の期間を検索対象とする)として説明しているが、後の期間を検索対象としても良い。また、前後の期間を検索対象とするようにしても良い。またここでは、さかのぼって検索するとして説明を続けるが、ステップS161で検索対象とされた期間のみを検索するようにしても良い。このようにしたときには、ステップS163乃至S165の処理は省略される。
ステップS163における検索の結果が用いられ、ステップS164において、検索対象とされていた単語が存在したか否かが判断される。ステップS164において、検索対象とされていた単語は存在していなかったと判断された場合、ステップS165に処理が進められ、“N>閾値”であるか否かが判断される。
ステップS165において、“N>閾値”であると判断された場合、換言すれば、それ以上さかのぼって非定型辞書内の検索は行わないと判断された場合、ステップS166に処理が進められる。一方、ステップS165において、“N>閾値”ではないと判断された場合、ステップS163に処理が戻され、それ以降の処理が実行されることにより、引き続き、非定型辞書内の異なる期間内における検索が実行される。なおここでは、“N>閾値”としたが、“N≧閾値”でも良い。
ステップS166において、定型辞書内の検索が行われる。定型辞書内は、非定型辞書と異なり、期間毎に単語を管理していない(図6参照)。よって、上記した非定型辞書の場合と異なり、期間毎に検索するという処理は行われない。
ステップS166における定型辞書内の検索結果が用いられ、ステップS167において、検索対象とされていた単語は存在していたか否かが判断される。ステップS167において、検索対象とされていた単語は、存在していなかったと判断された場合、ステップS168に処理が進められる。
ステップS168に処理が進められるのは、処理対象となっている単語(ステップS143(図19)の処理として図20の処理が実行されているときには、状態対象単語であり、ステップS145(図19)の処理として図20の処理が実行されているときには、状態単語である)が、非定型辞書内にも定型辞書内にも存在しなかったときである。すなわち、学習辞書データベース101には、登録されていない単語が処理対象(検索対象)とされていたときである。
ステップS168において、処理対象とされていた単語は、学習辞書データベース101には存在していなかったことが判断結果として返される。
一方、ステップS162、ステップS164、または、ステップS167において、処理対象とされていた単語は、学習辞書データベース101(非定型辞書、または定型辞書)内に存在していたと判断された場合、ステップS169に処理が進められる。ステップS169において、存在していたと判断された単語のデータ(この場合、“良い”または“悪い”といったデータ)が返される。
図20に示した判断処理が、ステップS143(図19)の処理として実行されていた場合、ステップS144に処理が進められる。ステップS144において、学習辞書データベース101内に状態対象単語が登録されていたか否かが判断されるわけだが、この判断は、図20に示した判断処理が実行された結果が用いられて行われる。
すなわち、単語は存在していなかったと返された場合(ステップS168の処理が実行された場合)、ステップS144においては、NOと判断され、解析処理が終了される。また、単語は存在しており、そのデータが返された場合(ステップS169の処理が実行された場合)、ステップS144においては、YESと判断され、ステップS145に処理が進められる。
また同様に、図20に示した判断処理が、ステップS145(図19)の処理として実行されていた場合、ステップS146に処理が進められ、判断結果が用いられた判断が実行される。
図20に示した判断処理が、ステップS145(図19)の処理として実行される場合(状態対象単語の検索)、図20に示した判断処理が、ステップS143(図19)の処理として実行される場合(状態単語の検索)と異なる点がある。図20に示した判断処理が、ステップS145(図19)の処理として実行される場合、既に、状態対象単語は学習辞書データベース101に存在していたと判断されたときである。その状態対象単語が、非定型辞書内に存在していた場合、その存在していたとされる期間内で、状態単語が登録されているか否かの検索が行われる。
すなわち、状態対象単語と状態単語は、共に、同一の期間(または近接する期間)内から検索されるようにする。
例えば、図20に示した判断処理が、ステップS145(図19)の処理として実行される場合、ステップS161の処理における“該当年月日(期間)”は、“状態対象単語が存在していた年月日(期間)”とすればよい。
なお、状態対象単語が存在していた期間内だけを検索対象の期間とする場合、ステップS163乃至S165の処理を省略することが可能である。また、さらに、共に非定型辞書から検索されるという条件を付加するために、定型辞書内の検索(ステップS166,S167の処理)も省略するようにしても良い。
状態対象単語が定型辞書内に存在していた場合には、状態単語の検索も、上記した図20のフローチャートの処理に基づいて行われる。
このように、学習辞書データベース101に、同一の単語が重複して登録されているような場合、非定型辞書内の該当する期間内から解析が行われる。このような解析が行われることにより、取得された記事に含まれる単語の意味(印象、イメージ、性質など)を、その取得された記事が示す期間内で用いられていた意味に忠実に基づいて処理することができるようになる。
よって、同一の単語であっても、時代の流れとともに、意味などが変化してしまうことがあるが、このような変化にも対応した処理(解析)を行うことが可能となる。
次に、このようにして作成された解析データ情報データベース102を用いた処理について説明する。
[検索処理について]
解析データ情報データベース102を用いた(参照する)処理としては、検索処理がある。この検索処理について、図21のフローチャートを参照して説明する。検索処理は、検索機能75(図3)が実行する。検索機能75を構成するユーザインタフェース部83は、ステップS181において、ユーザに対して所定の画面を提示するとともに、その画面により入力されたデータ(情報)を取得する。ステップS181においてユーザに提示される画面の一例を、図22に示す。
図22は、ユーザに提示され、所定の情報、ここでは、検索の対象となる対象名(対象語)と期間を入力するための画面の一例を示す図である。図22に示した画面には、検索対象の期間を指定するための期間開始指定欄171と期間終了指定欄172が設けられている。ユーザは、検索したい期間の開始時期を、期間開始指定欄171に入力し、検索したい期間の終了時期を、期間終了指定欄172に入力する。
この期間開始指定欄171と期間終了指定欄172に入力される情報は、年、月、日である。この年月日の全てを入力しなくても、その一部、例えば、月だけでも検索はできるように構成されている(エラーとして処理されない)。また、検索の開始時期と終了時期のうち、どちらか一方だけ入力されたときも、検索可能に構成されている(エラーとして処理されない)。
例えば、終了時期だけが指定されたような場合、その終了時期から過去5年分の情報が検索対象とされるように設定されている。
検索の対象(対象語)を入力するために、分野入力欄173と対象入力欄174が設けられている。ここでは、検索の対象として、分野を指定することができるように、分野入力欄173が設けられている。この分野入力欄173は、マウスなどの所定の入力装置で、クリックなどの所定の操作が行われたときに、分野に関する一覧メニューが表示されるように構成されており、そのメニューのなかから、ユーザは、所望の分野を指定(入力)できるように構成されている。
なお、分野に関する検索も行えるようにする場合、例えば、解析データ情報データベース102内のデータを、分野毎に分類して管理する、分野を表す項目を設けて、その項目も含めて管理するなどするようにすれば良い。
対象入力欄174は、ユーザが、直接的(予めメニューなどで設定できる項目が限定されているわけではなく)に検索対象を入力することができるように構成されている。対象入力欄174は、ユーザが、この欄に、所望の検索対象名、例えば、会社名を入力できるように構成されている。
分野入力欄173または対象入力欄174のどちらか一方に対象名が入力されれば、検索は行えるように構成されており、ユーザは、両方の欄に対して入力を行わなくても良いように構成されている。
図22に示した画面には、検索する期間や対象が、入力した事項で良いときに操作される実行ボタン175も設けられている。
ユーザインタフェース部83は、このような画面を表示部84に表示させ、ユーザからの指示を待つ。そして、ユーザが、期間と対象を入力し、実行ボタン175を操作したときに、その期間と対象に関するデータが取得される(ステップS181(図21))。
ステップS182において、取得されたデータにエラーがないか否かが判断される。エラーがあると判断されるのは、例えば、分野入力欄173と対象入力欄174の両方に、入力がない状態で、実行ボタン175が操作されたために、検索対象のデータが取得できなかったときなどである。
ステップS182において、取得されたデータにエラーがあると判断された場合、ステップS181に処理が戻される。すなわち、データの取得待ちの状態に処理が戻される。この際、ユーザ側に、エラーメッセージが表示されるようにしても良い。一方、ステップS182において、取得されたデータにエラーはないと判断された場合、ステップS183に処理が進められる。
ステップS183において、解析データ情報データベース102を参照し、ユーザにより指定された期間内で、対象名に関するデータを検索する。その検索により、解析データ情報データベース102に、ユーザにより指定された期間内で、対象名に関するデータが記憶されていたか否かが、ステップS184において判断される。
ステップS184において、解析データ情報データベース102に、ユーザにより指定された期間内で、対象名に関するデータが記憶されていたと判断された場合、ステップS188に処理が進められ、記憶されていないと判断された場合、ステップS185に処理が進められる。
ステップS185において、記事データベース103を参照し、期間内の記事が検索される。上記した解析処理が実行されずに解析データ情報データベース102に登録されていない記事が、記事データベース103に残っている可能性があるため、解析データ情報データベース102に、ユーザにより指定された期間内で、対象名に関するデータが記憶されていないと判断されたときには、ステップS185の処理として記事データベース103が参照される。
なお、本実施の形態にとしては、予め解析処理が実行され、その解析結果が、解析データ情報データベース102に記憶されているとして説明をするが、例えば、解析データ情報データベース102を設けずに、よって、予め解析処理を行うようなことをしないようにしても良い。このようにした場合、検索処理が実行されるときに、記事データベース103から、ユーザにより指定された期間内で、対象名に関するテキストデータが取得され、解析されるといった処理の流れにすればよい。
ステップS185の処理の説明に戻り、記事データベース103が参照され、ユーザにより指定された期間内で、対象名に関するテキストデータが検索される。その検索の結果、記事データベース103に対応するテキストデータが記憶されていたか否かが判断される。ステップS186において、記事データベース103に対応するテキストデータが記憶されていると判断された場合、ステップS187に処理が進められる。
ステップS187において、解析処理が実行される。この解析処理は、図16のフローチャートに基づいて行われる。図16に示したフローチャートの処理については、既に説明したので、その詳細な説明は省略する。
解析処理が行われることにより、解析データ情報データベース102に新たなデータが追加登録される可能性がある。すなわち、図16のフローチャートを参照して説明したように、取得された記事に状態対象単語と状態単語が存在していれば、その記事に関するデータが、解析データ情報データベース102に新たに追加登録されるが、状態対象単語か状態単語のうちの一方でも存在していなければ、その記事に関するデータは、解析データ情報データベース102に追加登録されない。
そこで、ステップS188において、ステップS187における解析処理が実行された結果、解析データ情報データベース102に新たに追加登録されたデータがあるか否かが判断される。追加登録されたデータがある場合には、そのデータは、ユーザにより指定された期間内で、対象名に関するデータである。
ステップS188において、解析データ情報データベース102に新たに追加登録されたデータがあると判断された場合、ステップS189に処理が進められる。ステップS189への処理には、ステップS184において、YESと判断されたときにもくる。すなわち、ステップS189には、ユーザにより指定された期間内で、対象名に関するデータが、解析データ情報データベース102に登録されているときに来る。
解析データ情報データベース102にデータが登録されていたので、そのデータが読み出される。解析データ情報データベース102は、データを、年月日、対象名、評価をそれぞれ関連付けて管理しており(図8参照)、読み出されるデータは、年月日と評価である。上記処理において、ユーザが指定した対象名のデータのみが検索対象とされていたので、対象名を、読み出されるデータに含ませる必要性はない。
ステップS189において、読み出された年月日(日付)と評価から結果リストが作成される。結果リストとは、図23に示すように、日付と評価が対応付けられたリストであり、複数のデータが読み出されたときには、その読み出されたデータ数と同等数のデータが記載されるリストである。また、結果リストは、日付順にソートされた状態で管理される。
このような結果リストが作成されると、ステップS130において、提示処理が実行される。提示処理とは、解析データ情報データベース102に登録されていたデータをユーザ側に提供する処理であり、結果リストを用いて行われる処理である。すなわち、ユーザにより指定された期間内で、対象名に関するデータを、ユーザに返すための処理である。ステップS189における提示処理については、図24以降を参照して後述し、図21のフローチャートの説明を続ける。
ステップS186において、ユーザにより指定された期間内で、対象名に関するデータが解析データ情報データベース102に登録されていない状況で、記事データベース103にも対応するテキストデータが記憶されていないと判断された場合、結果として、ユーザに提示するデータがないことになるので、検索処理に係わる処理は終了される。
また、ステップS188において、ユーザにより指定された期間内で、対象名に関するテキストデータが記事データベース103から取得されたが、解析データ情報データベース102に追加登録されたデータはなかったと判断された場合も、結果として、ユーザに提示するデータがないことになるので、検索処理に係わる処理は終了される。
なお、検索処理においても解析処理が実行されるようにした場合、上記したように、記事データベース103が参照されることになるので、その記事データベース103に記憶されるテキストデータは、対象名という項目を設け、対象名という項目でも管理されるようにしても良い。対象名という項目を設けることにより、解析時に、ユーザにより指定された期間と対象名に関するテキストデータを読み出す処理にかかる時間を短くすることが可能になる。
このように、ユーザが指定した期間、対象名に係わるデータの検索が行われる。その結果、提示するデータが存在した場合には、提示処理が実行される。
[提示処理について]
次に図21のステップS189において実行される提示処理について説明する。この提示処理は、提示機能76(図3)により実行される。この提示処理に関しては、ユーザに対してどのように提示するかにより、処理が異なる。まず、提示処理1について、図24のフローチャートを参照して説明する。
ステップS201において、結果リストから先頭のデータの読み出しが行われる。先頭のデータとはこの場合、結果リストは日付順にソートされているため、その結果リストの中で、最も古い日付または最も新しい日付に関するデータである。ここでは、結果リストのデータは、古い日時順にソートされているとして説明を続ける。よって、先頭のデータは、最も古い日時のデータである。
ステップS202において、読み出された先頭のデータが、表示位置の表示開始位置に配置される。例えば、表示用の画像を作成するためのメモリの先頭のデータを表示させる位置として予め設定されている表示開始位置に、データが貼られる。このような処理が実行される一方で、ステップS203において、その時点で処理対象となっているデータ(この場合、先頭のデータ)の次に位置するデータ(次の日付のデータ)が、結果リストに登録されているか否かが判断される。
ステップS203において、結果リストに次のデータがあると判断された場合、ステップS204に処理が進められる。ステップS204において、次のデータが、結果リストから読み出される。そして、その読み出されたデータが、次のデータを表示させる所定の位置に配置される。このステップS204とステップS205の処理は、基本的に、ステップS201とステップS202の処理と同様であり、読み出されたデータをメモリ内に展開されている画面の、所定の位置に配置するという処理である。
ステップS205の処理が終了されると、ステップS203に処理が戻される。ステップS203乃至S205の処理が繰り返されることにより、結果リストに書き込まれているデータが、その順(すなわち、日付の古い順)に、画面の所定の位置に配置される(画面が作成される)。そして、ステップS203において、結果リストに次のデータは存在しないと判断された場合、換言すれば、結果リストに書き込まれている全てのデータを処理したと判断された場合、ステップS206に処理が進められる。
ステップS206において、表示部84に作成された画面が表示される。ステップS206において表示部84に表示される画面の一例を、図25に示す。図25に示した画面の上部には、ユーザにより指定された対象名(図25では“会社A”)と期間(図25では“2000.01.01〜2005.01.01”)が表示されている。その下側に、提示処理1の処理が実行されることにより結果リストから作成された画面が表示されている。
その画面は、結果リストに書き込まれていた日付と状態が時系列的に列挙された画面である。例えば、結果リストに“2000.04.01”という日付に“良い”という評価が関連付けられて書き込まれていたために、“2004.04.01 良い”といった表示がされている。また、図25に示した画面においては、表示しきれないデータを閲覧できるように、図中、右側にスクロールーバーが設けられている。
このように、結果リストに書き込まれているデータを、時系列に全て列挙した表示を行うことにより、ユーザは、指定した対象が、指定した期間内において、どのように状態が変化したかを把握することができる。
また、結果リストに書き込まれたデータの数は、対象名が登場した記事の回数に依存しているため、多くのデータが表示されれば、その会社が注目されていたことを意味する。結果リストに書き込まれたデータを、全て画面に表示させることにより、ユーザにその対象名の人気度(注目度)を、期間や評価と合わせて認識させることが可能となる。
[提示処理2について]
次に、提示処理2について、図26のフローチャートを参照して説明する。上記した提示処理1においては、結果リストに書き込まれている全てのデータが表示される(ユーザに提示される)ようにしたが、提示処理2では、結果リストに書き込まれているデータのうち、評価が変化した時点でのデータのみを時系列的に表示されるようにする。
例えば、日付A、日付B、日付Cがともに“良い”という評価であり、日付Cに続く日付Dが“悪い”という評判であった場合、提示処理1では日付A乃至Dの全てのデータが表示されたが(4つのデータが表示されたが)、提示処理2では、日付Aと日付Dのデータのみが表示される(2つのデータが表示される)。このように、評価が変わった時点でのデータが、ユーザに提示されるようにするための処理について説明する。
ステップS221において、結果リストの先頭のデータの読み出しが行われ、ステップS222において、その読み出されたデータが、ユーザに提示される画面の所定の位置に配置される。ステップS223において、結果リストに次のデータがあるか否かが判断される。ステップS223において、結果リストに次のデータがあると判断された場合、ステップS224に処理が進められ、次のデータと判断されたデータが読み出される。
このステップS221乃至S224の処理は、図24のステップS201乃至S204の処理と基本的に同様である。
ステップS225において、“前のデータの評価=次のデータの評価”という関係が満たされるか否かが判断される。ステップS221からの処理の流れでステップS225に処理が来た場合、“結果リストの先頭のデータの評価=結果リストの2番目のデータの評価”という関係が満たされるか否かが判断される。
ステップS225における処理を換言するならば、評価に変化があったか否か(評価が継続されているか否か)を判断する処理である。ステップS225において、“前のデータの評価=次のデータの評価”であると判断された場合、ステップS223に処理が戻され、それ以降の処理が繰り返される。一方、ステップS225において、“前のデータの評価=次のデータの評価”ではないと判断された場合、ステップS226に処理が進められる。
ステップS226において、次のデータ(その時点で処理対象とされているデータ)が、画面上の所定の位置に配置される。この処理は、基本的に、図24のステップS205の処理と同様に行われる。そして、ステップS206の処理が終了されると、ステップS223に処理が戻され、それ以降の処理が繰り返される。
ステップS223において、結果リストに次のデータがないと判断された場合、ステップS227に処理が進められ、メモリに作成されていた画面データに基づいて、表示部86に検索結果の表示が行われる。
図26の提示処理2に係わる処理は、図24に示した提示処理1の処理と比べ、ステップS225(図26)の処理が追加された処理とされている。すなわち、結果リストに書き込まれているデータから選択的にデータを抽出するための処理が追加された処理とされている。そのステップS225における処理は、“前のデータの評価=次のデータの評価”であるか否かを判断する処理である。この処理を換言するならば、評価が継続しているか否かを判断する処理である。
提示処理2は、選択的にデータを抽出するために、評価が切り替わった時点(日付)を判断し、抽出するような処理である。
提示処理2が実行されることによりユーザ側に提示される画面の一例を図27に示す。図27に示した例では、結果リストに書かれていたデータの日付が、“2000.04.01”から“2000.10.10”まで(ただし“2000.10.10”のデータは含まれない)の間に存在していた評価は、“良い”であり、“2000.10.10”から“2001.04.05”まで(ただし“2001.04.05”のデータは含まれない)の間に存在して評価は、“悪い”であったような場合である。
結果リストに、“2000.04.01”から“2000.10.10”まで(ただし“2000.10.10”のデータは含まれない)の間にデータが複数書き込まれていても、その複数のデータが全て“良い”という評価(継続して“良い”という評価)であるために、ステップS225の処理により“前のデータの評価=次のデータの評価”であると判断され、ステップS226に処理が進まない。よって、画面のデータとして、“次のデータ”は新たに配置されないため、結果として表示されないことになる。
すなわち、図27を参照するに、“2000.04.01”から“2000.10.10”まで(ただし“2000.10.10”のデータは含まれない)の間の評価として、ユーザ側には、“良い”という1つのデータの表示だけで提示される。
“2000.10.10”という日付に対応する評価が“悪い”であったために、ステップS225の処理で、“前のデータの評価=次のデータの評価”ではないと判断され、ステップS226に処理が進められることになり、新たに画面のデータとして、“次のデータ”(この場合、“2000.10.10”に対応するデータ(日付と評価))が配置されることになる。
また“2000.10.10”から“2001.04.05”の前の日付の評価までは、“悪い”が継続されていたため、ステップS225の処理により“前のデータの評価=次のデータの評価”であると判断され続け、ステップS226に処理が進まないので“次のデータ”は、画面のデータとして新たに配置されることがなく、結果としてその間のデータは表示されないことになる。
よって、図27を参照するに、同様に、“2000.10.10”から“2001.04.05”まで(ただし“2001.04.05”のデータは含まれない)の間の評価として、ユーザ側には、“悪い”という1つのデータの表示だけで提示される。
このようにユーザに、指示された対象に関する評価を提示することにより、ユーザは、評価(状況)が維持された期間、評価が変更された時点などの情報を、瞬時に読み取ることが可能となる。
[提示処理3について]
次に、図28のフローチャートを参照し、提示処理3について説明する。提示処理3においては、所定の期間毎に、その期間における評価が提示されるようにする。そのために、ステップS241において、ユーザにより指定された期間の分割が行われる。
分割の仕方として、予め所定の期間(例えば、1ヶ月)毎に、評価を提示すると設定することができる。このような場合、所定の期間毎に、ユーザにより指定された期間が分割されるような処理が実行される。例えば、ユーザにより指定された期間が10ヶ月であり、予め設定されている所定の期間が1ヶ月であった場合、1ヶ月毎に評価が提示されるように、10(=10/1)個の区間に分割される。
他の分割の仕方として、予めユーザに提示する評価の総数を設定しておき、その数に合うように、ユーザにより指定された期間を分割するようにしても良い。例えば、1回に10個の評価を提示すると設定し、そのような設定のときにユーザが指定した期間が10ヶ月であれば、1ヶ月毎に評価が提示され、結果として10個の評価が提示されるように、ユーザが指定した期間が分割される。このような場合、ユーザにより指定された期間を、予め設定されている所定の数で除算することにより、1つの期間(区間)の長さが設定される。
ユーザにより指定された期間を分割する際に用いられる数値(1つの評価を提示する所定の期間、1回に提示する評価の総数など)は、ユーザにより設定できるような仕組みを設けても勿論良い。
ステップS241において、分割された期間毎に評価が提示されるように、ステップS242以降の処理が実行される。ステップS242において、開始期間内の評価が、数値化され、その数値の和が求められ、その和を、加算した評価の数で除算することにより、評価の平均値が算出される。
“開始期間”とは、ステップS241の処理により分割された区間のうち、最初に位置する区間(期間)のことである。また、“評価を数値化する”とは、例えば、“良い”という評価は“2”という数値に、“悪い”という評価は“0”という数値にすることを意味する。なお、数値は、2や0に限定されるわけではない。
ステップS242において、評価の平均値が算出されると、ステップS243において、算出された平均値と、日付(期間)が関連付けられて、表示用リストに記載される。表示用リストとは、ユーザ側に提供される検索結果の画面を表示させるときに必要とされる画像データを作成するためのリストである。
平均値や表示用リストについての詳細は図29、図30を参照して後述する。
ステップS244において、次の期間(区間)があるか否かが判断され、あると判断された場合、ステップS245に処理が進められる。ステップS245において、次の区間の評価の平均値が算出される。そして、ステップS246において、その算出された平均値と、その平均値が算出された期間(区間)に関するデータが対応付けられて表示用リストに追加登録される。このステップS245,S246における処理は、基本的に、ステップS242,S243の処理と同様である。
ステップS246の処理が終了されると、ステップS244に処理が戻され、それ以降の処理が繰り返される。ステップS244において、次の期間はないと判断された場合、ステップS247に処理が進められる。ステップS247において、作成された表示用リストに基づいて、ユーザ側に提示する画面データが作成され、その作成された画面データに基づく表示が行われる。
図29乃至図31を参照し、提示処理3の処理についてさらに説明を加える。図29に提示処理3が実行されるときに作成されている結果リストの一例を示す。ここでの説明においては、ユーザにより指定された期間を、所定の期間毎に分割する場合を例に挙げ、その所定の期間が3ヶ月である場合を例に挙げて説明する。
図29に示した結果リストの先頭のデータの日付は“2000.04.05”である。この日付から3ヶ月の間に存在するデータが、開始期間として設定される。なお、“2000.04.05”から正確に3ヶ月と設定すると、“2000.07.04”となるが、ここでは、“日”までは計算しないとして処理されるように設定されている場合を例に挙げて説明する。
このようにした場合、“2000.04.01”は、“2000.04”として扱われ、この“2000.04”から3ヶ月間ということになるので、“2000.06”までが、開始期間として設定される。次の期間は、“2000.07”から“2000.09”までであるが、図29を参照するに、その期間に属するデータは存在しない。そこで、さらに次の3ヶ月の期間が次の期間として設定される。すなわち、次の期間は、図29を参照するに、日付が“2000.10.10”のデータから“2000.12.25”までのデータを含む期間(第2の期間)とされる。
ステップS241においては、このような期間の設定が行われる。そして、ステップS242において、開始期間の評価の平均値が求められる。開始期間内のデータのうち、日付が“2000.04.05”の評価は“良い”であるので“2”と数値化され、日付が“2000.04.06”の評価は“良い”であるので“2”と数値化され、日付が“2000.06.01”の評価は“悪い”であるので“0”と数値化される。
このように数値化された評価の平均値を求めると、1.3(=(2+2+0)/3)となる。同様に、第2の期間に存在する評価は全て“悪い”であり、数値化すると全て“0”であるので、平均値は、“0.0”となる。
このようにして求められた平均値は、期間を表すデータとともに表示用リストに書き込まれる(ステップS243,S246の処理)。表示用リストは、最終的にユーザ側に提示される画面を作成する際に用いられるリストであるが、その画面に、平均値をそのまま表示させるようにした場合、表示用リストにも平均値が書き込まれる。平均値をそのまま表示させるのではなく、平均値から導き出される“良い”とか“悪い”とかいった状況を示す単語を表示させるようにした場合、そのような状況を示す単語が書き込まれる。
表示用リストに状況を示す単語を書き込むようにした場合、平均値から、その状況を示す単語が導き出される。この処理は、例えば、閾値を用いた処理を実行することにより可能となる。具体的には、所定の閾値を1とし、平均値が1以上であれば、“良い”という単語が表示用リストに書き込まれるようにし、平均値が1以下であれば、“悪い”という単語が表示用リストに書き込まれるようにすればよい。
閾値を細かく設定すれば、それだけ書き込まれる単語の語彙を増やすことができ、より細かい評価をユーザに提示することが可能となる。例えば、閾値を、0.5,1.0,1.5の3つ設けるようにする。平均値が0.5以下であれば“とても悪い”、平均値が0.5乃至1.0の間であれば“悪い”、平均値が1.0乃至1.5の間でれば“良い”、平均値が1.5以上であれば“とても良い”といったようにしても良い。
このように閾値を複数設けることにより、より多くの単語を用いることができ、より詳細な評価をユーザに提示することが可能となる。図30に示した表示用リストの例においては、このような閾値を用いた判定が行われる場合を示している。図30を参照するに、開始期間の日付のデータは、“2000.04”とされ、その期間の判定結果は、“良い”とされている。
開始期間の次のデータは、図29に示した結果リストによれば、第2の期間になるが、第2の期間は、“2000.10”からであり、“2000.04”から3ヶ月間後の“2000.07”ではない。このような期間は、ユーザ側に提示しないようにした場合、このような期間に関するデータを表示用リストに記載する必要はないが、このような期間も、ユーザ側に提示するようにした場合、図30に示すように、“2000.07”という日付と、“―”という判定結果(“―”は、表示すべきデータがないことを示す)が関連付けられて表示用リストに記載される。
さらに図30に示した表示用リストには、図29に示した結果リストの第2の期間に対応するデータとして、日付として“2000.10”が、判定結果として“とても悪い”が記載されている。
このようなデータが記載されている表示用リストから作成される画面の一例を図31に示す。期間が“2000.04”から“2000.07”までは“良い”という判定結果が、“2000.07”から“2000.10”までは“―”(データがない)という判定結果が、“2000.10”から“2001.01”までは“とても悪い”という判定結果が、それぞれ表示されている。
提示処理3における処理が実行されることによりユーザ側には、所定の期間毎に、対象の評価が提示されるため、ユーザは、一定期間毎の評価の変化を、瞬時に読み取ることが可能となる。
[提示処理4について]
次に、図32のフローチャートを参照し、提示処理4について説明する。提示処理4においては、ユーザにより指定された期間内で、同一の評価が継続した期間とその期間に関する評価を、ユーザ側に提示できるようにする。
ステップ261において、結果リストの先頭のデータの読み出しが行われる。ステップS262において、読み出されたデータが表示用リストに登録される。表示用リストについて、図33を参照して説明する。
図33に示した表示用リストは、“日付”、“評価”、“件数”、“判定結果”という4項目が設けられている。“日付”の欄には、表示用リストに登録すると判断されたときに処理対象とされているデータが示す日付が記載される。同様に“評価”の欄には、表示用リストに登録すると判断されたときに処理対象とされているデータが示す評価が記載される。
“件数”の欄には、評価が継続された回数が記載される。“判定結果”の欄には、“件数”の欄に記載されている数値から導き出される判定結果が記載される。このようなデータから構成される表示用リストが、提示処理4が実行されることにより作成される。
図33に示した表示用リストから、ユーザ側に提示される画面を作成するときに必要となるデータは、“日付”と“判定結果”の欄に記載されているデータである。ここでは、表示用リストに“日付”、“評価”、“件数”、“判定結果”の4つの項目が設けられ、一括して管理されるとして説明を続けるが、例えば、“日付”、“評価”、“件数”という項目から構成されるリストを仮表示用リストとし、“日付”と“判定結果”という項目から構成されるリストを表示用リストとしても良い。
すなわち、必ずしも1つのリストとして管理する必要性はなく、ユーザに提示する画面を作成するためのリストと、そのリストを作成するために必要なリストを別々に設け、管理するようにしても良い。
図32のフローチャートの説明に戻り、ステップS261において結果リストから読み出された先頭のデータは、ステップS262において、表示用リストの先頭に書き込まれる。図33に示した表示用リストは、処理対象とされている結果リストが、図29に示したような結果リストであった場合に対応している。よって、図29に示した結果リストの先頭のデータは、“2000.04.05 良い”というデータであるので、図33に示した表示用リストの“日付”の欄には“2000.04.05”と書き込まれ、“評価”の欄には“良い”と書き込まれる。
また、表示用リストの“件数”の欄には、初期値の“1”が記載される。ただし、この“件数”の欄の数値は、後述する処理により更新されるため、図33に示した表示用リストの“件数”の欄には“2”と記載されている。また、ステップS262の処理が実行された時点では、“判定結果”の欄には、まだ何も記載されていない状態である。
このような先頭のデータに対応するデータが表示用リストに書き込まれると、ステップS263において、結果リストに次のデータがあるか否かが判断される。ステップS263において、結果リストに次のデータがあると判断された場合、ステップS264に処理が進められ、あると判断された次のデータが結果リストから読み出される。
ステップS265において、“前のデータの評価=次のデータの評価”という条件が満たされるか否かが判断される。ステップS265において、“前のデータの評価=次のデータの評価”という条件が満たされると判断された場合、ステップS266に処理が進められ、表示用リストの件数の欄の数値が更新される。
この場合(ステップS261からステップS266への処理の流れの場合)、ステップS265において行われる処理は、“結果リストの最も古い日付の評価=結果リストの2番目に古い日付の評価”であるか否かが判断される処理である。図29に示した結果リストが処理対象とされているときには、“結果リストの最も古い日付の評価=結果リストの2番目に古い日付の評価”は、“良い=良い”となるので、ステップS265における判断は、YESと判断され、ステップS266に処理が進められ、“件数”の欄の数値が“1”から“2”に更新される。すなわち、ステップS265においてYESと判断されたときには、対応する“件数”の欄の数値が1だけ加算された値に更新される。
ステップS266における処理が終了されると、ステップS263に処理が戻され、それ以降の処理が繰り返される。
一方、ステップS265において、“前のデータの評価=次のデータの評価”という条件は満たされないと判断された場合、ステップS267に処理が進められる。例えば、図29に示した結果リストが処理対象とされているとき、前のデータが日付“2000.04.06”に対応する“良い”であり、次のデータが日付“2000.06.01”に対応する“悪い”であるような場合、ステップS264における処理でNOと判断されるため、ステップS267に処理が進められる。
このような場合、ステップS267において、判定、および、その判定結果の表示用リストへの書き込みが行われる。判定は、“件数”の欄に記載されている数値により行われる。この判定は、例えば、閾値が用いられることにより行われる。例えば、閾値を5と10とし、“良い”という評価のときの“件数”の数値が、0<件数の数値<5を満たすとき、判定結果を“良い”とし、5≦件数の数値<10を満たすとき、判定結果を“とても良い”にする。
同様に、“悪い”という評価のときの“件数”の数値が、0<件数の数値<5を満たすとき、判定結果を“悪い”とし、5≦件数の数値<10を満たすとき、判定結果を“とても悪い”にする。
このようにして判定結果を出すときに用いられる閾値は、例えば、過去の記事を参考にして予め決定される。例えば、所定の対象(会社Aとする)の記事を参考にし、会社Aが良い状況のときに、会社Aが登場した記事の回数がカウントされる。他の対象に対しても、同様にカウントがとられる。このようにして集計されたカウント数から、良い状況のときには、どのくらいの回数で、記事が掲載されるのかという平均値が算出される。その平均値を閾値として設定するようにしても良い。
閾値は、提示処理4の処理が行われる前の時点で設定されており、その設定されている閾値が用いられて、ステップS267の処理が行われる。例えば、図33に示した表示用リストを参照するに、日付“200.04.05”に対する“評価”は“良い”であり、“件数”の数値は2であるので、上記した閾値が用いられた場合、“良い”と判定されることになり、“判定結果”の欄に、“良い”と書き込まれる。
ステップS267において、判定、および、その判定結果が表示用リストに書き込まれると、ステップS268において、次のデータに関するデータが表示用リストに書き込まれる。例えば、日付として“2000.06.01”が、評価として“悪い”が、“件数”として“1”が、それぞれ表示用リストに書き込まれる。
ステップS268の処理が終了されると、ステップS263に処理が戻され、それ以降の処理が繰り返される。このようなステップS261乃至S268の処理が繰り返されることにより、表示用リストが作成される。
ステップS263において、結果リストに次のデータはないと判断された場合、ステップS269に処理が進められる。ステップS269において、表示リストに基づき画面データが作成され、その作成された画面データに基づく画面が表示部84に表示される。
なお、ステップS269に処理が来た時点で、まだ表示用リストの“判定結果”の欄に判定結果が記載されていないデータが存在した場合(例えば、ステップS266から、ステップS263に処理が進み、ステップS269に処理が来た場合)、ステップS267と同様の処理が実行されることにより、その記載されていないデータが書き込まれ、書き込みが終了した後に、表示に係わる処理が実行される。
ステップS269の処理の結果、ユーザに提示される画面の一例を、図34に示す。図34に示した画面は、図33に示した表示用リストに基づいた画面である。日付“2000.04.05”から“2000.06.01”までの判定結果は、“良い”であり、日付“2000.06.01”から“2000.01.01”までの判定結果は、“とても悪い”であるので、そのような表示がなされている。
このように、評価が継続した期間毎に、その継続した期間に対応する評価が、ユーザ側に提示されることにより、ユーザは、所定の期間の評価の変動を、瞬時に読み取ることが可能となる。また、提示処理4によれば、所定の期間内で、記事として出現した回数に依存した評価(判定結果)を表示させることができるため、その対象となっている会社などの、所定の期間内における人気度(出現頻度)も把握させることが可能となる。
どのくらいの期間、所定の状態(評価)が継続されたのかをよりわかりやすく提示するために、図35に示したような画面が、ユーザ側に提示されるようにしても良い。図35に示した画面は、棒グラフとして期間と評価を表示した例を示している。期間の長さは、棒グラフの棒の長さに比例している。このような表示がされることにより、所定の評価(例えば、良いという評価)が、どのくらい継続したのかを、ユーザに一目で判断させることが可能となる。
また、図36のようなグラフとして提示しても良い。図36に示した画面は、縦軸を評価とし、横軸を期間として、評価の変化を表したグラフである。図36に示した画面には、“良い”と“悪い”の間の評価として“どちらでもない”という評価も設けられている。このような評価を表示させるのは、上記したように、複数の閾値を設けることにより可能である。
図35や図36に示した画面は、提示処理1乃至4のうちのどの処理が実行された場合でも、表示させることが可能な画面である。
このように、本発明によれば、取得される記事から、対象の状態(評価、状況)を判定することができ、その判定を、期間などの時間に係わる情報と関連付けてユーザに提示することが可能となる。よって、ユーザは、一定期間のニュースなどの記事から所定の対象の評価を時系列で閲覧することが可能となり、動向を容易に把握することが可能となる。
[記録媒体について]
上述した一連の処理は、それぞれの機能を有するハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
記録媒体は、図2に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク41(フレキシブルディスクを含む)、光ディスク42(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク43(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリ44などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM22や記憶部28が含まれるハードディスクなどで構成される。
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 サーバ, 2 端末, 3 ネットワーク, 21 CPU, 22 ROM, 23 RAM, 24 バス, 25 入出力インタフェース, 26 入力部, 27 出力部, 28 記憶部, 29 通信部, 30 ドライブ, 71 取得機能, 72 解析機能, 73 学習機能, 74 作成機能, 75 検索機能, 76 提示機能, 81 通信部, 82 トリガー管理部, 83 ユーザインタフェース部, 84 表示部, 85 入力I/F, 86 データ解析部, 87 データ参照部, 88 データ登録部, 89 データベース, 101 学習辞書データベース, 102 解析データ情報データベース, 103 記事データベース