以下に添付図面を参照して、この発明にかかる情報処理装置、情報処理方法及び情報処理プログラムの最良な実施の形態を詳細に説明する。後述する実施形態においては、情報処理装置をコンテンツ閲覧装置に適用した例について説明する。なお、情報処理装置は、コンテンツ閲覧装置以外の様々な装置に対して適用することができる。
(第1の実施の形態)
図1は、第1の実施の形態にかかるコンテンツ閲覧装置100の構成を示すブロック図である。本図に示すように、コンテンツ閲覧装置100は、文書入力部101と、属性付加部102と、文書属性付加部103と、文書種別判定部104と、文書種別表示処理部105と、文書種別修正部106と、文書データ記憶部107と、表示処理部108と、アノテーション入力受付部109と、アノテーション認識部110と、文書種別判定知識記憶部111と、語句属性表示処理部112と、語句属性修正部113と、意図表示処理部114と、意図選択受付部115と、意図抽出部116と、アクション決定部117と、意図判定知識記憶部118と、意図判定知識修正部119と、アクション記憶部120と、実行部121と、履歴記憶部122と、ブックマーク管理部123、ブックマーク蓄積部124と、アクション修正部125とを備える。
本実施の形態にかかるコンテンツ閲覧装置100は、インターネットコンテンツを閲覧可能な場合の例について説明する。例えば、コンテンツ閲覧装置100は、HTMLで記述されたインターネット上のコンテンツを表示できる。
また、コンテンツ閲覧装置100は、PC(Personal Computer)にコンテンツを参照するためのアプリケーションを搭載することで実現できる。また、コンテンツ閲覧装置100に用いられるPCは、例えばノート型など、どのような形状でも良い。また、コンテンツ閲覧装置100は、タブレットPC又はPDA(Personal Digital Assistants)等の他のハードウェア装置を用いて実現しても良い。
また、コンテンツ閲覧装置100は、図示しない液晶ディスプレイを備えている。また、液晶ディスプレイ装置の画面上には、透明なタブレットが重畳されている。これにより、利用者は、表示された画面上に対して、電子ペンなどのポインティングデバイスにより座標の入力を行うことができる。つまり、コンテンツ閲覧装置100が液晶ディスプレイに入力文書データを表示している時に、利用者が液晶ディスプレイに対してペンで入力することで、入力文書データに対するアノテーションの入力を受け付けることができる。
また、コンテンツ閲覧装置100は、ペン入力を可能とするタブレットと、アノテーション機能を備えている。これにより、コンテンツ閲覧装置100は、ペン入力で指定されたアノテーションに応じて、表示中の文書等に関するアクションを実行できる。
また、アノテーション機能とは、コンテンツ閲覧装置100が表示した文書データ等に対して、ペン入力で書き込むことができる機能をいう。書き込むことができる内容は、アンダーライン、囲み、文字、文字列、記号及び記号列などどのような内容でも良い。
また、コンテンツ閲覧装置100は、例えばウェブブラウザなどの既存のアプリケーションソフトウェアにおいて、図1で示した各構成を備えているものでもよい。また、コンテンツ閲覧装置100は、ウェブブラウザに対してプラグインソフトウェア又はアドオンソフトウェアを組み込むことで、図1に示した各構成を実現するものでもよい。
そして、利用者が、コンテンツ閲覧装置100を起動した場合、既存のウェブブラウザアプリケーションなどと同様に、Webページやブックマークの表示や、表示したWebページからリンクを辿るなどの操作を受け付けることができる。これらの操作により、コンテンツ閲覧装置100は、文書データを入力処理し、当該文書データを表示することができる。
文書入力部101は、文書データに対して入力処理を行う。この文書データは、HTML(Hyper Text Markup Language)形式の文書データ、XML(eXtensible Markup Language)形式の文書データ、紙原稿を既知のOCR技術により電子データに変換された文書データなど、種々の形式の文書データとする。また、これら文書データは、記録媒体やネットワークを介するなど、様々な経路からコンテンツ閲覧装置100に入力される。そして、入力処理された入力文書データは、属性付加部102及び文書属性付加部103に出力される。
図2は、文書入力部101により入力処理された入力文書データの例を示した図である。図2に示すように、本実施の形態においてはHTML形式の文書データを用いた場合について以下に説明する。
図1に戻り、属性付加部102は、辞書付加部131と、パタン付加部132と、語句属性対応辞書133と、パタン蓄積部134とを備えている。そして、属性付加部102は、語句属性対応辞書情報に入力文書データに含まれる語句が登録されているか否かの判定を行い、入力文書データの語句が記載された部分に、判定された語句属性を付加する。また、語句属性対応辞書情報は、語句と語句属性を対応付けてある辞書情報とする。
また、語句属性は、語句の意味を表す属性とする。属性付加部102が、入力文書データに含まれる語句に、語句属性を対応付けて埋め込む。これにより、コンテンツ閲覧装置100等の装置が、当該文書データを読み込むときに、記載された語句の意味を理解することができる。
図3は、語句属性対応辞書133のデータ構造の例を示す図である。図3に示すように語句属性対応辞書133は、語句を表す文字列と、語句属性とを対応付けて格納している。例えば、図3に示した語句属性対応辞書133のレコード301は、「佐藤」という文字列が、「人名」という語句属性とを対応付けている。
図4は、パタン蓄積部134のデータ構造の例を示す図である。図4に示すように、パタン蓄積部134は、文字列を判定するためのパタンと、語句属性とを対応付けて格納している。例えば、図4に示したパタン蓄積部134のレコード401は、パタン「株式会社([^あ−ん]+)」と、語句属性「企業名」とを対応付けている。他の例としては、図4に示したパタン蓄積部134のレコード402は、パタン「[企業名]「([^」]+」)」と、語句属性「商品名」とを対応付けている。
また、図4で示した例では、パタンは、Perl言語で用いられている正規表現で記述されている。また、パタン中において、語句属性を付与すべき箇所を小括弧によって指定している。レコード401は、「株式会社」という文字列の直後に連続する1文字以上のひらがな以外の文字列が、語句属性「企業名」に対応していることを示している。
また、レコード402は、語句属性「企業名」が付加された文字列の後に、連続するかぎ括弧(「」)に囲まれた文字列が、語句属性「商品名」に対応していることを示している。
パタン付加部132は、パタン蓄積部134に登録されたパタンの条件と、入力文書データに記載されている文字列が一致した場合、当該文字列に対して、パタン蓄積部134で対応付けられた語句属性情報を付加する。
例えば、入力文書データに“<SPAN class="企業名">東西</SPAN>「GB21」”という文字列が含まれている場合、パタン付加部132は、パタン蓄積部134のレコード402のパタンと合致すると判断する。この場合、パタン付加部132は、語句属性を付与すべき文字列は「GB21」であると判断する。そこで、当該パタンと対応付けられた語句属性が「商品名」であるので、パタン付加部132は、文字列“GB21”の前にタグ“<SPAN class="商品名">”を挿入し、文字列“GB21”の後ろにタグ“</SPAN>”を挿入する。
このように、属性付加部102及びパタン付加部132が判別する語句属性は予め定められている。本実施の形態では、語句属性の例として「人名」「企業名」「商品名」「地名」を示したが、他のあらゆる属性を予め定めても良い。
図5は、属性付加部102により、語句属性を示したタグが埋め込まれた入力文書データの例を示した図である。図5に示すように、語句属性の埋め込みには“<SPAN>”タグを用い、当該タグ中の“class”に語句属性を定義する。タグ501〜506が、属性付加部102により付加されたタグである。これにより、コンテンツ閲覧装置100は、タグで囲まれた文字列の意味を認識することができる。なお、属性付加部102による詳細な処理手順については後述する。
文書属性付加部103は、入力文書データに含まれる見出し、箇条書き、本文、ヘッダ、フッタなどの文書構造を判別し、当該入力文書データに対して当該文書構造を示す属性情報を付加する。
図6が、文書属性付加部103により、文書構造属性を示したタグが埋め込まれた入力文書データの例を示した図である。図6に示すように、文書構造属性の埋め込みには、“<SPAN>”タグを用い、当該タグの“class”に文書構造属性を定義する。タグ601〜608が、文書属性付加部103により埋め込まれたタグである。このようなタグを付加することで、コンテンツ閲覧装置100は、入力文書データの文書構造を認識することができる。なお、文書属性付加部103が行う詳細な処理手順については後述する。
文書種別判定部104は、属性付加部102により付加された語句属性情報と、文書属性付加部103により付加された文書構造属性情報とから、入力文書データが予め定められた文書種別のうち、いずれに該当するのか判定を行う。また、文書種別は、当該入力文書データの用途を示す種別とし、例えば、ニュース記事、解説記事、商品カタログ、販売情報等とする。また、文書種別判定部104は、入力文書データの文書種別を判定する際に、文書種別判定知識記憶部111を用いる。そして、文書種別判定部104は、文書種別を判定した後、当該文書種別を入力文書データに付加する。
図7は、文書種別判定知識記憶部111のデータ構造の例を示した図である。本図に示すように、文字列パタンと、語句属性と、構造指定と、文書種別と、点数とを対応づけて保持している。そして、文書種別判定部104は、当該文書種別判定知識記憶部111に基づいて、入力文書データに含まれる語句やタグに埋め込まれた属性を点数で評価して、文書種別を判定する。なお、詳細な処理手順については後述する。
図8は、文書種別判定部104により判定された文書種別が埋め込まれた入力文書データの例を示した図である。図8に示す入力文書データにおいては、メタタグ801が文書種別を保持している。つまり、図8に示す入力文書データは、文書種別判定部104により、“イベント情報”と判定されたことを示している。
文書種別表示処理部105は、判定された文書種別を、入力文書データと共に表示処理を行う。図9は、文書種別表示処理部105が表示処理する文書種別と入力文書データとの例を示した画面図である。なお、図9においては、文書種別は、ページタイプとして表示されている。当該ページタイプ901はプルダウンメニューとなっている。これにより、利用者は当該メニューから適切なページタイプを選択することができる。
また、利用者は、図9に当該表示された画面の表示領域902に対して、ペンを用いてアノテーション入力を行っても良い。なお、この場合の処理は、後述する表示処理部108による処理と同様となるので説明を省略する。
文書種別修正部106は、文書種別判定部104により判定された文書種別を修正する。例えば、図9で示した画面が表示されている時に、利用者が図9のプルダウンメニュー901に表示された文書種別が誤っていると判断した場合、図9で示したプルダウンメニューから他のページタイプ(文書種別)を選択することができる。例えば、利用者は、プルダウンメニュー901に対してペンでタップ等をすると、ページタイプ(文書種別)の一覧が選択肢として表示される。そして、利用者が、これらの選択肢から適切と考える文書種別を選択することで、文書種別修正部106は、入力文書データに付加する文書種別を、選択された文書種別に修正する。これにより、文書種別判定部104により判定された文書種別が誤っていた場合に、適切な文書種別に変更することができる。そして、これ以降の処理については、修正された文書種別を用いて行われることになる。
なお、このような処理が終了した後、文書種別判定部104は、文書種別を埋め込んだ入力文書データを、文書データ記憶部107に書き込む処理を行う。
文書データ記憶部107は、上述した処理により語句属性、文書構造属性及び文書種別が埋め込まれた入力文書データを記憶する。また、文書データ記憶部107は、コンテンツ閲覧装置100が、入力文書データを表示するために一時的に格納する記憶手段であり、例えばRAM等が用いられる。
表示処理部108は、語句属性、文書構造属性及び文書種別が埋め込まれた入力文書データの表示処理を行う。この画面例は、図9と同様とする。そして、当該表示処理部108が入力文書データを表示している時に、アノテーションの入力等を受け付けることができる。これにより利用者が入力文書データを閲覧できる。
図9のプルダウンメニュー901は、ページタイプとし、入力文書データに格納されていた文書種別を表示する。表示領域902は、入力文書データを表示し、アノテーションの入力を受け付ける。また、表示領域902は、上で説明した場合と同様にページタイプを変更することもできる。
領域903は、現在表示している入力文書データのアドレスを表示する。領域904では、空欄となっているが、入力されたアノテーションで特定された、入力文書データ中の単語等の文字列を表示する。検索ボタン905は、領域904の表示された文字列に対するアクションを選択するためのボタンとする。なお、詳細については後述する。
設定ボタン906は、本実施形態におけるコンテンツ閲覧装置100の初期設定などを行うためのウィンドウを呼び出すボタンとする。
図10は、利用者により設定ボタン906が押下された場合に表示されるメニュー画面の例を示した図である。図10に示したメニュー画面に表示された項目を選択することで、様々な処理を行うことができる。なお、詳細については後述する。
図9に戻り、チェックボックス907は、領域902に表示されている入力文書データと異なる入力文書データを表示する場合に、当該ウィンドウへの表示及び別ウィンドウへの表示のうちいずれかを指定するチェックボックスとする。
例えば、検索を実行する際、現在表示している入力文書データを残し、新規のウィンドウに検索結果を表示したい場合には、利用者はチェックボックス907をチェックする。
チェックボックス908は、表示領域902に表示された入力文書データに対して、アノテーションの入力を受け付けるか否かを指定するチェックボックスとする。
例えば、通常のHTML、または入力文書データに埋め込まれたスクリプトなどに対する操作と、アノテーションの入力とが競合する場合、利用者は、チェックボックス908のチェックを外して、アノテーションの入力を無効にする。これにより、通常のHTML、または入力文書データに埋め込まれたスクリプトなどに対する操作のみを正確に認識することができる。
図1に戻り、アノテーション入力受付部109は、表示処理部108により表示された入力文書データに対し、利用者のペンなどの操作によるアノテーションの入力を受け付ける。アノテーションは、表示画面に対して描かれた軌跡又は軌跡の組み合わせであり、例えば入力文書データの文字列に対するアンダーラインや囲み、文字、文字列、記号、記号列などがある。
アノテーション認識部110は、アノテーション入力受付部109から入力されたアノテーションの種別や、表示された入力文書データ中の当該アノテーションの適用範囲を認識する。また、アノテーション認識部110は、換言すればアノテーションの種別(態様)を識別する態様識別部と、アノテーションの適用範囲を特定する範囲特定部を含むものに相当する。
意図抽出部116は、アノテーション認識部110による認識結果(例えば、アノテーションの種別、及びアノテーションの適用範囲)と、表示している入力文書データに含まれる語句属性、文書構造属性又は文書種別と、意図判定知識記憶部118に予め蓄積された意図判定知識情報のうちいずれか一つ以上に基づいて、コンテンツ閲覧装置100を操作している利用者の意図を抽出する。
意図抽出部116は、アノテーションの認識結果である適用範囲に含まれる語句等に語句属性が付加されていた場合、当該語句属性も利用者の意図を判定する条件として用いる。また、本実施の形態とは異なるが、意図抽出部116は、入力文書データに付加された文書構造属性も利用者の意図を判定する条件として用いても良い。
図11は、意図判定知識記憶部118が備える意図判定知識情報のデータ構造の例を示した図である。図11に示すように、意図判定知識情報は、意図ラベルと、語句属性条件と、文書種別条件と、アノテーション条件とを対応付けている。図11に示すように、意図判定知識記憶部118は、利用者の意図の種類を予め格納している。この利用者の意図の種類としては、例えば、アノテーションの適用範囲に含まれる情報をスクラップしたい、アノテーションの適用範囲に含まれる情報を手がかりに地図情報を閲覧したい、アノテーションの適用範囲に含まれる情報を手がかりに商品の評判情報を検索したい等とする。
また、意図抽出部116は、当該意図判定知識情報を参照することで、アノテーションの認識結果、入力文書データの文書種別、適用範囲に含まれる語句の語句属性とから、利用者の意図を示した意図ラベルを抽出することができる。なお、詳細な処理手順については、後述する。
意図表示処理部114は、意図抽出部116により抽出された利用者の意図が複数ある場合に、新たに生成したコンテクストメニュー上に当該利用者の意図を表示する。これにより、利用者は、意図の判定結果を確認し、必要に応じてメニュー操作を行い、適切な意図を選択することができる。
また、意図表示処理部114は、利用者の意図として、図11の意図判定知識記憶部118から抽出した意図ラベルを表示する。これにより、抽出された利用者の意図が複数ある場合に適切な意図を選択することができる。
語句属性表示処理部112は、意図表示処理部114が利用者の意図を表示する際に、同じコンテクストメニュー上に、アノテーションの適用範囲に含まれている語句の語句属性を表示処理する。
語句属性修正部113は、語句属性表示処理部112により表示されたコンテクストメニューから、利用者が語句属性を選択した場合に、入力文書データのアノテーションの適用範囲に含まれる語句の語句属性を、選択された語句属性に修正する。
図12は、意図表示処理部114及び語句属性表示処理部112が、表示するコンテクストメニューの例を示した図である。図12に示す例では、アノテーション1201が利用者により入力された場合とする。そして、語句属性表示処理部112は、当該アノテーションの適用範囲に含まれている語句「東西電機」に付加された語句属性「企業名」を、ウィンドウ1202に表示している。これにより、当該語句属性が意図抽出の条件として用いられたことを確認できる。また、意図表示処理部114は、ウィンドウ1203に抽出された意図を表示する。つまり、図12で示した例では、利用者の意図として、地図、ホームページ、企業概要などを対象として検索を実行したい旨が提示されている。
なお、図12で示した例ではアノテーションを付与された「東西電機」に対応する語句属性が「企業名」のみの場合について説明した。しかしながら、語句に複数の属性が付加されている場合もある。
図13は、意図表示処理部114及び語句属性表示処理部112が、表示するコンテクストメニューの他の例を示した図である。図13に示すように、語句属性表示処理部112は、適用範囲内に含まれた語句に基づいて、複数の語句属性を取得した場合、ウィンドウ1301に、取得した語句属性を複数表示する。
そして、利用者が、図13に表示された語句属性から、いずれかの語句属性を選択した場合に、語句属性修正部113が当該語句属性を意図の抽出に用いるものとして修正を行う。これにより、意図抽出部116が、当該語句属性を用いて、再度利用者の意図の判定を行う。これにより、適切な利用者の意図と判定された意図ラベルが表示されることになる。
図1に戻り、意図選択受付部115は、表示された利用者の意図から、実際に利用者が処理を望んでいる意図の選択を受け付ける。図12で示したコンテクストメニューが表示された場合、意図選択受付部115は、メニュー1203に表示された検索対象である地図、企業概要及び株価から、実際に利用者が望んでいる検索対象の選択を受け付ける。これにより、利用者の適切な意図に基づいて処理を行うことを可能とする。
アクション決定部117は、意図抽出部116により判定された利用者の意図ラベルのうち、意図選択受付部115により選択された意図ラベルに対応するアクションを選択する。
また、アクション決定部117が選択するアクションの種類は予め定められている。なお、利用者の意図に対応する具体的なアクションの実行手法が示された情報を、アクション知識情報という。このアクション知識情報の例としては、利用者の意図に対応する処理を行うために組まれたスクリプトプログラム等とする。これらアクション知識情報は、後述するアクション記憶部120に記憶されている。そして、アクション決定部117、これらスクリプトプログラムを読み込むことで、利用者の意図情報に対応するアクションを実行することができる。
また、アクション決定部117は、利用者の意図情報に対応するアクション知識情報が複数存在する場合には、これら複数のアクション知識情報を利用者に対して提示して、利用者からアクション知識情報の選択を受け付けても良い。
例えば、利用者が、アノテーションにより指示した適用範囲に含まれる語句に基づいて地図情報を閲覧したいという意図がある旨の選択を受け付けた場合、アクション決定部117は、地図情報を提供するサービス(アクション知識情報)を複数用意している場合に、これら複数のサービスを利用者に対して提示する。
図14は、アクション決定部117が、利用者に対して複数のアクション知識情報を提示した場合の例を示した図である。図14に示すように、まず、表示された入力文書データに対して、利用者がアンダーラインなどのアノテーションを入力した場合、意図表示処理部114が、コンテクストメニューを表示する。また、このコンテクストメニューは、コンテクストメニュー1401において、アクション知識情報を利用者に対して提示している。
図14のコンテクストメニュー1401に示すように、アクション決定部117は、アクション知識情報を利用者に対して提示する。これにより、利用者が実行したい適切なアクションの選択を促すことができる。このように、コンテンツ閲覧装置100は、利用者との間でインタラクションを行い、当該インタラクションの内容に基づいてアクションを実行する。
なお、図14に示したコンテクストメニューの例では、図13と同様に、まず語句属性を利用者に選択させることもできる。そして、選択された語句属性に対応する検索対象(利用者の意図)を選択させる。その後に、アクション決定部117が、利用者に対して、検索対象に対応するウェブサイト(利用者の意図に対応するアクション知識情報)から、具体的にどのウェブサイトを利用して情報を検索したいのかというアクションを選択させている。
このように、利用者に対してコンテクストメニューを表示する際、語句属性表示処理部112と、意図表示処理部114と、アクション決定部117とは、インタフェースとして明確に区別されるものでなくともよい。
図15―1及び図15−2は、アクション記憶部120のデータ構造の例を示した図である。図15−1及び図15―2に示されるように、アクション記憶部120は、意図ラベルと、アクションラベルと、実行手法とが対応付けたテーブル構造を備えている。そして、アクション決定部117は、意図ラベルを検索キーとして検索を行うことで、アクションを特定できる。なお、図14で示した例では、アクション決定部117は、アクション知識情報として、アクションラベルを表示している。
図1に戻り、実行部121は、アクション決定部117により選択されたアクションを実行する。本実施の形態においては、実行部121は、アクション記憶部120において選択されたアクションに対応付けられた実行手法に従って処理を行う。
意図判定知識修正部119は、後述する履歴記憶部122に記憶された履歴情報等を利用して、意図判定知識記憶部118に蓄積された意図判定知識情報の変更、削除、追加等の修正を行う。
履歴記憶部122は、文書入力部101に入力された入力文書データの参照情報、意図選択受付部115を介して利用者に選択された意図情報、アクション決定部117を介して利用者に選択されたアクション知識情報など、コンテンツ閲覧装置100がコンテンツを参照する際に行った処理を、履歴情報として記憶する。
図16−1は、履歴記憶部122が記憶するデータ構造の例を示した図である。図16−1に示すように、履歴記憶部122は、文書種別と、語句属性と、文書構造と、意図ラベルと、アクションラベルと、閲覧先とを対応付けて格納している。このように、表示された入力文書データの文書種別、利用者がアノテーションを実行した部分HTMLに対応する語句属性、文書構造属性、利用者が選択した意図ラベル及び利用者が選択したアクションラベルを対応付けて、履歴記憶部122に記憶される。
図16−2は、履歴記憶部122に対して閲覧情報を追加した場合の例を示した図である。なお、説明については後に示す。
例えば、実行されたアクションのアクション種別がウェブ検索の場合、当該アクションによる検索処理の後に、検索結果として表示されたウェブサイトを、履歴記憶部122のフィールド1601に順次記憶していく。この記録可能な閲覧先の数は予め定められていても良い。例えば、この記録可能な閲覧先の数を、3件としてもよい。
図1に戻り、ブックマーク管理部123は、履歴記憶部122に記憶された履歴情報に基づいて、ブックマークを管理する。また、ブックマーク管理部123は、後述するブックマーク蓄積部124に蓄積される参照情報、参照情報を整理するツリー構造に対して追加、削除又は変更などの処理を行う。
また、図10に示したメニューから、「ブックマークを表示」の選択を受け付けた場合に、ブックマーク管理部123は、ブックマーク蓄積部124に蓄積されているブックマーク情報を読み出して、利用者に提示する。
図17は、ブックマーク管理部123により提示されるブックマーク情報の表示画面の例を示した図である。図17の領域1701に、ブックマーク情報が提示される。
また、領域1704は、検出した結果等により表示される入力文書データとする。また、ブックマークから所定の項目が選択された場合に、当該項目に対応する入力文書データが表示される。ページタイプ1702は、領域1704に表示された入力文書データに対して判定された文書種別を表示する。また、文書種別は、文書種別表示処理部105のインタフェースを介して表示されている。
また、利用者が、設定ボタン1703を押下した場合に、図10に示したメニューを表示する。そして、当該メニューから項目「ブックマークに追加」1002が選択されると、ブックマーク管理部123は、ブックマーク蓄積部124に対して、領域1704に表示されている入力文書データを、ブックマークとして登録する処理を行う。
また、本実施の形態においては、ブックマーク蓄積部124は、ブックマークをツリー構造で蓄積している。図18は、ブックマーク蓄積部124が蓄積するブックマーク情報のデータ構造を示した図である。図18に示すようにブックマーク情報は、分類1と、分類2と、タイトルと、サイトラベルと、URLとを対応付けて格納している。
ブックマークを登録する手順について説明する。例えば、履歴記憶部122は、図16−2に示されたレコード4601を履歴情報として記憶している。そこで、ブックマーク管理部123は、意図ラベル「検索対象:解説」から、検索対象を示す「解説」を、ブックマーク情報の分類1に代入し、表示されている入力文書データの文書種別「解説記事」をブックマーク情報の分類に代入する。
また、ブックマーク管理部123は、ブックマーク情報のタイトルとして、図17に表示されている入力文書データのタイトルを代入する。また、ブックマーク管理部123は、ブックマーク情報のURLとして、図17に表示されている元の入力文書データの取得先を示す参照情報を代入する。
また、図16−2に示した履歴情報のアクションラベルに、特定のサイトを指定する情報が格納されている場合、当該サイトの情報を、ブックマーク情報のサイトラベルとして代入する。また、ブックマーク情報を表示する際に、サイトラベルも表示することで、利用者は検索先を認識可能となる。なお、図16−2のレコード4601に示した履歴情報の場合、アクションラベルが「サイト:指定せずに検索」なので、ブックマーク情報のサイトラベルは空欄となる。
ブックマーク蓄積部124は、例えばツリー構造の形式で整理されたインターネットコンテンツへの利用者による参照情報を蓄積している。このように参照情報を蓄積することで、利用者は当該インターネットコンテンツを容易に閲覧することができる。
当該ブックマーク情報の分類1と分類2を利用することで、ツリー構造状にブックマークを分類することができる。また、サイトラベルは、当該文書を示す名称として、例えば図17に示すブックマーク内では括弧の内部に表示される。
このように、ブックマーク管理部123は、ブックマークを追加する際に、履歴記憶部122に記憶された情報と、文書種別判定部104によりブックマークされる入力文書データで判定された文書種別とを用いて、ブックマークを表すツリー構造のノードとして、必要な情報を登録する。
図19は、図17の領域1704の表示された入力文書データを、ブックマーク管理部123がブックマークに登録した場合のブックマーク情報の例を示した図である。図19のレコード1901が、図17の領域1704に表示されていた入力文書データのブックマーク情報を示している。このように、ブックマーク登録が行われる毎に、ブックマーク情報が追加されることになる。
図20は、当該ブックマーク情報が追加された後に、ブックマーク管理部123により提示されるブックマーク情報の表示画面の例を示した図である。図20の項目2003において、追加された入力文書データを示すブックマークが登録されているのが確認できる。
このように、ブックマーク蓄積部124に格納されているブックマーク情報が更新された場合、ブックマーク管理部123は、改めてブックマーク蓄積部124からブックマーク情報を読み出し、読み出したブックマーク情報に基づいて表示画面を更新する。
また、図20に示されたブックマークに対して編集を行うことができる。例えば、利用者は、任意のブックマークを選択し、削除ボタン2001を押下することで、ブックマーク管理部123が、選択されたブックマーク情報をブックマーク蓄積部124から削除する。
また、利用者は、任意のブックマークを選択し、編集ボタン2002を押下すると、ブックマークを編集するための利用者インタフェースが表示される。
図21は、ブックマークを編集するための編集画面例を示した図である。図21に示した画面上で、利用者は、選択したブックマーク情報として対応付けられた各情報を編集することができる。
利用者は、図21に示した画面に表示された項目であるサイトラベル、タイトル、URL等について、任意の値に変更することができる。また、分類1と、分類2とについては、プルダウンメニュー2101及びプルダウンメニュー2102に格納された複数の値から、適切な値を選択して、設定することができる。
図1に戻り、アクション修正部125は、アクション記憶部120に記憶されたアクション知識情報に対して追加、修正及び削除等の修正を行うことができる。次に、アクションを追加する場合について説明する。
まず、図9に示すような画面が表示されている状態で、利用者が設定ボタン906を押下した場合、図10に示す設定メニューが表示される。そして、図10に示す設定メニューから、項目「このサイトを検索先に追加」1003を選択された場合、アクション修正部125は、図9の領域902に表示されている入力文書データのアドレス等の情報を、検索先としてアクション知識情報としてアクション記憶部120に追加する。なお、詳細な処理手順については後述する。
次に、コンテンツ閲覧装置100において、入力された入力文書データに対して文書種別を付加して、文書データ記憶部107に記憶するまでの処理手順について説明する。図22は、コンテンツ閲覧装置100の入力された入力文書データに対して文書種別を付加して、文書データ記憶部107に記憶するまでの処理手順を示すフローチャートである。
まず、文書入力部101は、入力文書データの入力処理を行う(ステップS2201)。そして、文書入力部101に入力された入力文書データは、属性付加部102へと渡される。
次に、属性付加部102が、入力された入力文書データに含まれる語句に対して、当該語句を示す語句属性を含むタグを付加する(ステップS2202)。詳細については次の図23に示す。
そして、文書属性付加部103が、入力文書データを解析し、文書構造を示す文書構造属性を含むタグを付加する(ステップS2203)。詳細については図24−1及び図24―2に示す。
次に、文書種別判定部104が、付加されたタグ等に基づいて、入力文書データの文書種別を判定する(ステップS2204)。詳細については図25に示す。
そして、文書種別表示処理部105が、文書種別の表示処理を行う(ステップS2205)。これにより、利用者は表示された文書種別を適切か確認できる。
次に、文書種別判定部104は、利用者に入力された操作に従い、文書種別が適切か判定する(ステップS2206)。
そして、文書種別判定部104は文書種別が適切と判定した場合(ステップS2206:Yes)、文書種別について特に処理を行わない。
また、文書種別判定部104は文書種別が適切ではないと判定した場合(ステップS2206:No)、文書種別修正部106は、利用者からの操作に従い、判定された文書種別の修正を行う(ステップS2207)。
そして、文書種別判定部104は、判定された文書種別を埋め込んだ入力文書データを、文書データ記憶部107に格納する(ステップS2208)。
このような処理により、入力文書データに文書種別や語句属性等が埋め込まれる。そして、入力文書データの表示時に、アノテーションの入力を受け付けることで、当該文書種別等を用いることで、利用者の意図に従ったアクション等を特定することが可能となる。
次に、図22のステップS2202で示した入力文書データに含まれる語句に語句属性を付加する処理手順について説明する。図23は、属性付加部102の入力文書データに含まれる語句に語句属性を付加する処理手順を示すフローチャートである。
なお、属性付加部102の実現手段としては、例えば公知の固有表現抽出手法(「質問応答と日本語固有表現抽出および固有表現体系の関係についての考察」、市村由美、他、情報処理学会研究報告、NL−161−3、2004)を用いることができる。なお、本処理手順では、図2に示すHTML形式の入力文書データを処理の対象とする。
次に、辞書付加部131が、語句属性対応辞書133から、表層文字列と語句属性とを対応付けたレコードを一つ取得する(ステップS2301)。
そして、辞書付加部131は、処理対象である入力文書データ全体に対して、取得したレコードの表層文字列で検索し、当該文字列が出現するか否か確認する(ステップS2302)。例えば、図3で示した語句属性対応辞書133から、表層文字列「佐藤」と語句属性「人名」とを対応付けられたレコード301を取得した場合、辞書付加部131は、表層文字列「佐藤」を検索キーとして、入力文書データに対して検索を行う。そして、辞書付加部131は、当該文字列が出現してないことを確認した場合(ステップS2302:No)、当該レコード301を用いた処理を入力文書データに対して行わない。
そして、辞書付加部131は、入力文書データ中に、当該表層文字列が出現していることを確認した場合(ステップS2302:Yes)、入力文書データ中の当該出現箇所の前後に、当該表層文字列に対応付けられた語句属性を示すタグを挿入する(ステップS2303)。
例えば、図3のレコード301では表層文字列「佐藤」に対応する語句属性は「人名」なので、入力文書データ中に「佐藤」という文字列が含まれている場合、辞書付加部131は、当該文字列の前にタグ“<SPAN class=“人名”>”を挿入し、当該文字列の後ろにタグ“</SPAN>”を挿入する。
また、辞書付加部131は、入力文書データ中に、語句属性対応辞書133に登録された同一の表層文字列を複数検出した場合、検出した全ての箇所に対してタグを挿入する。
そして、辞書付加部131は、語句属性対応辞書133に格納された全てのレコードについて処理を行ったか判断する(ステップS2304)。そして、全てのレコードについて処理を行っていないと判断した場合(ステップS2304:No)、再び語句属性対応辞書133からレコードを取得する処理から開始する(ステップS2301)。このように、ステップS2301〜S2304までの処理は、ステップS2301で語句属性対応辞書133から全てのレコードが取り出されるまで繰り返される。
そして、パタン付加部132は、パタン蓄積部134から、パタンと語句属性とを対応付けたレコードを一つ取得する(ステップS2305)。
そして、パタン付加部132は、ステップS2304までの処理結果である入力文書データに対して、取得したレコードのパタンに合致する箇所を検索し、合致する文字列が出現するか否か確認する(ステップS2306)。そして、パタン付加部132は、当該パタンが出現してないことを確認した場合(ステップS2306:Yes)、当該パタン301を用いた処理を入力文書データに対して行わない。
そして、パタン付加部132は、当該入力文書データ中に、当該パタンに合致する文字列が出現していたことを確認した場合(ステップS2306:Yes)、入力文書データ中の当該出現箇所の文字列の前後に、当該パタン似対応付けられた語句属性を示すタグを挿入する(ステップS2307)。
例えば、パタン付加部132は、パタンとして図4のレコード401を取得した場合、図2に示した入力文書データの文字列「株式会社東西電機」がパタンに合致すると判断する。そして、パタン付加部132は、文字列「東西電機」に語句属性を付加すると判断する。また、レコード401のパタンでは、対応付けられた語句属性が「企業名」である。そこで、パタン付加部132は、入力文書データ中の文字列「東西電機」の前にタグ“<SPAN class=“企業名”>”を挿入し、入力文書データ中の文字列「東西電機の後ろにタグ“</SPAN>”を挿入する。
そして、パタン付加部132は、パタン蓄積部134に格納された全てのレコードについて処理が終了したか判断する(ステップS2308)。そして、全てのレコードについて処理が終了していないと判断した場合(ステップS2308:No)、再びパタン蓄積部134から、レコードを取得する処理から開始する(ステップS2305)。このように、ステップS2305〜S2308までの処理は、ステップS2305でパタン蓄積部134から全てのレコードが取り出されるまで繰り返し処理される。
上述した処理手順を行うことで、属性付加部102は入力文書データ中の語句に対して、語句属性を付与することができる。また、属性付加部102の処理結果は、既に図5に示したとおりとする。
次に、図22のステップS2203で示した入力文書データの文書構造を示す文書構造属性を付加する処理手順について説明する。図24―1及び図24−2は、文書属性付加部103の入力文書データの文書構造を示す文書構造属性を付加する処理手順を示すフローチャートである。
また、文書属性付加部103が判別する文書構造に関する属性は予め定められており、ここでは「ヘッダ」「見出し」「箇条書き」「本文」「フッタ」が予め定められているとする。
まず、文書属性付加部103は、属性付加部102から、語句属性を示すタグが付加された入力文書データを受け取る(ステップS2401)。本処理手順では、文書属性付加部103は、図5に示した入力文書データが受け取った場合とする。
そして、文書属性付加部103は、入力文書データにおいて、タグ“<Hn>”とタグ“</Hn>”の検索を行い、タグ“<Hn>”とタグ“</Hn>”が出現しているか否か確認を行う(ステップS2402)。なお、タグ“<Hn>”とは、タグ“<H1>”や、タグ“<H2>”などを示すものとする。
そして、文書属性付加部103は、タグ“<Hn>”の出現を確認した場合(ステップS2402:Yes)、当該タグに囲まれた部分HTMLを、一箇所毎に取得する(ステップS2403)。
そして、文書属性付加部103は、取得した部分HTMLが、入力文書データの先頭から10%以内の位置にあり、align属性の属性値が“right”であるか否か判定する(ステップS2404)。
次に、文書属性付加部103は、取得した部分HTMLが、先頭から10%以内の位置にあり且つalign属性の属性値が“right”であると判定した場合(ステップS2404:Yes)、文書属性付加部103は、当該部分HTMLを「ヘッダ」であると判定する(ステップS2405)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“ヘッダ”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”を挿入する。
また、文書属性付加部103は、先頭から10%以内の位置にあり且つalign属性の属性値が“right”ではないと判定した場合(ステップS2404:No)、当該部分HTMLが、入力情報中の末尾から10%以内の位置にあり且つalign属性の属性値が「right」であるか判定する(ステップS2406)。
次に、文書属性付加部103は、取得した部分HTMLが、末尾から10%以内の位置にあり且つalign属性の属性値が“right”であると判定した場合(ステップS2406:Yes)、文書属性付加部103は、当該部分HTMLを「フッタ」であると判定する(ステップS2407)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“フッタ”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”タグを挿入する。
次に、文書属性付加部103は、取得した部分HTMLが、末尾から10%以内の位置にあり且つalign属性の属性値が“right”ではないと判定した場合(ステップS2406:No)、この部分HTMLは「見出し」であると判定される(ステップS2408)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“見出し”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”を挿入する。
そして、文書属性付加部103は、ステップS2402で検出した全ての部分HTMLに含まれる全てのタグ“<Hn>”について、ステップS2403〜S2408の処理を下か否か判断する(ステップS2409)。全てのタグ“<Hn>”について処理を行っていないと判断した場合(ステップS2409:No)、ステップS2403から再び処理を行う。また、全てのタグ“<Hn>”について処理を終了したと判断した場合、ステップS2410に進む。
そして、文書属性付加部103は、入力文書データから、タグ“<TD>”とタグ“</TD>”の検索を行い、タグ“<TD>”とタグ“</TD>”が入力文書データに出現しているか否か確認を行う(ステップS2410)。
次に、文書属性付加部103は、タグ“<TD>”とタグ“</TD>”の出現を確認した場合(ステップS2410:Yes)、当該タグに囲まれた部分HTMLを、一箇所毎に取得する(ステップS2411)。
そして、文書属性付加部103は、取得した部分HTMLが、入力文書データの先頭から10%以内の位置にあり、align属性の属性値が“right”であるか否か判定する(ステップS2412)。
次に、文書属性付加部103は、取得した部分HTMLが、先頭から10%以内の位置にあり且つalign属性の属性値が“right”であると判定した場合(ステップS2412:Yes)、文書属性付加部103は、当該部分HTMLを「ヘッダ」であると判定する(ステップS2413)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“ヘッダ”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”を挿入する。
また、文書属性付加部103は、先頭から10%以内の位置にあり且つalign属性の属性値が“right”ではないと判定した場合(ステップS2412:No)、当該部分HTMLが、入力情報中の末尾から10%以内の位置にあり且つalign属性の属性値が「right」であるか判定する(ステップS2414)。
次に、文書属性付加部103は、取得した部分HTMLが、末尾から10%以内の位置にあり且つalign属性の属性値が“right”であると判定した場合(ステップS2414:Yes)、文書属性付加部103は、当該部分HTMLを「フッタ」であると判定する(ステップS2415)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“フッタ”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”を挿入する。
次に、文書属性付加部103は、取得した部分HTMLが、末尾から10%以内の位置にあり且つalign属性の属性値が“right”ではないと判定した場合(ステップS2414:No)、特に処理を行わない。
そして、文書属性付加部103は、ステップS2410で検出した全ての部分HTMLについて、ステップS2411〜S2416の処理を順に行う(ステップS2416)。
図24−2に移り、文書属性付加部103は、入力文書データにおいて、タグ“<LI>”、タグ“<DT>”、タグ“<DD>”が出現しているか確認を行う(ステップS2417)。文書属性付加部103は、タグ“<LI>”、タグ“<DT>”、タグ“<DD>”の出現を確認できなかった場合(ステップS2417:No)、処理を行わずにステップS2421に進む。
また、文書属性付加部103は、タグ“<LI>”、タグ“<DT>”、タグ“<DD>”の出現を確認した場合(ステップS2417:Yes)、当該タグで指定された部分HTMLを、一箇所毎に取得する(ステップS2418)。
次に、文書属性付加部103は、取得した部分HTMLを「箇条書き」であると判定する(ステップS2419)。そして、文書属性付加部103は、部分HTMLの直前にタグ“<SPAN class=“箇条書き”>”を挿入し、部分HTMLの直後にタグ“</SPAN>”タグを挿入する。
そして、文書属性付加部103は、ステップS2420で検出した全ての部分HTMLについて、ステップS2418〜S2420の処理を順に行う(ステップS2420)。
次に、文書属性付加部103は、入力文書データにおいて、タグ“<P>”とタグ“</P>”の検索を行い、タグ“<P>”とタグ“</P>”が出現しているか否か確認を行う(ステップS2421)。また、文書属性付加部103は、タグ“<P>”、タグ“</P>”の出現を確認できなかった場合(ステップS2421:No)、処理を行わずに終了する。
また、文書属性付加部103は、タグ“<P>”の出現を確認した場合(ステップS2421:Yes)、当該タグに囲まれた部分HTMLを、一箇所毎に取得する(ステップS2422)。
次に文書属性付加部103は、入力文書データで取得した部分HTML以降に、当該処理手順で「ヘッダ」と判定された部分HTMLが存在せず、且つ入力文書データで取得した部分HTML以前に、当該書手順で「フッタ」と判定された部分HTMLが存在しないか否か確認を行う(ステップS2423)。
そして、文書属性付加部103は、上述した部分HTMLが存在しないことが確認された場合(ステップS2423:Yes)、取得した部分HTMLを「本文」と判定する(ステップS2424)。そして、文書属性付加部103は、当該部分HTMLの直前にタグ“<SPAN class=“本文”>”を挿入し、当該部分HTMLの直後にタグ“</SPAN>”を挿入する。
そして、文書属性付加部103は、ステップS2421で検出した全ての部分HTMLについて、ステップS2422〜S2424の処理を順に行う(ステップS2425)。
このように、文書属性付加部103は、図24―1及び図24―2で示した処理手順に従って入力文書データの文書構造を解析し、当該入力文書データに対し文書構造情報を付加する。文書属性付加部103は、上述した処理手順で、例えば図6に示した入力文書データを生成する。
次に、図22に示すステップS2206の文書種別判定部104の入力文書データの文書種別を判定する処理手順について説明する。図25−1及び図25−2は、文書種別判定部104の入力文書データの文書種別を判定する処理手順を示すフローチャートである。
なお、文書種別判定部104が判定する文書種別は予め定められているものとする。本処理手順においては、例として文書種別が「解説記事」「イベント情報」「プレスリリース」のうちいずれかに判定する場合について説明する。このために、文書種別判定部104は、図7に示した文書種別判定知識記憶部111を用いることとする。
まず、文書種別判定部104は、文書属性付加部103の文書構造属性を付加された入力文書データを取得する(ステップS2501)。なお、この取得した入力文書データは、語句属性と、文書構造属性とが付加されたものとなる。
次に、文書種別判定部104は、予め定められた文書種別毎に対応付けられた数値型の変数をそれぞれ初期化する(ステップS2502)。
そして、文書種別判定部104は、図7に示す文書種別判定知識記憶部111の格納された文書種別判定知識情報を1レコード取得する(ステップS2503)。
次に、文書種別判定部104は、取得した文書種別判定知識情報のレコードに、文字列パタンが格納されているか判断する(ステップS2504)。
そして、文書種別判定部104は、入力文書データを検索し、当該文字列パタンが出現する箇所が存在しているか判断する(ステップS2505)。また、文書種別判定部104は、当該文字列パタンが存在していないと判断した場合(ステップS2505:No)、特に処理を行わない。
また、文書種別判定部104は、当該文字列パタンが存在していると判断した場合(ステップS2505:Yes)、出現箇所を1箇所ごとに取得する(ステップS2506)。
そして、文書種別判定部104は、取得したレコードで当該文字列と対応付けられている構造指定が「ALL」であるか否か確認する(ステップS2507)。そして、文書種別判定部104は、構造指定が「ALL」と記述されている場合(ステップS2507:Yes)、特に処理を行わない。
次に、文書種別判定部104は、構造指定が「ALL」ではないと確認した場合(ステップS2507:No)、出現箇所にタグとして付加された文書構造属性を取得する(ステップS2508)。
そして、文書種別判定部104は、取得した文書構造属性と、文書種別判定知識情報の当該レコードの構造指定とを照合する(ステップS2509)。また、文書種別判定部104は、照合で一致しないと判断した場合(ステップS2509:No)、特に処理を行わない。
また、文書種別判定部104は、照合で一致すると判断した場合(ステップS2509:Yes)、文書種別判定知識情報の当該レコードにおいて対応付けられた文書種別を読み出す(ステップS2510)。さらに、文書種別判定部104は、当該レコードにおいて対応付けられた点数を読み出す(ステップS2511)。
そして、文書種別判定部104は、読み出した文書種別に対応する変数に、読み出した点数を加点する(ステップS2512)。
このように、文書種別判定部104は、ステップS2503で検出した全ての出現箇所について、ステップS2506〜S2512の処理を順に行う(ステップS2513)。
次に、文書種別判定部104が、文書種別判定知識情報のレコードに文字列パタンが格納されていないと判断した場合(ステップS2504:No)、取得した文書種別判定知識情報のレコードに語句属性が格納されているか否か判断する(ステップS2514)。
そして、文書種別判定部104が、当該レコードに語句属性が格納されていると判断した場合(ステップS2514:Yes)、図25−2に示すように、入力文書データにおいて語句属性の検索を行い、当該語句属性が出現しているか判断する(ステップS2515)。また、文書種別判定部104は、語句属性が出現していないと判断した場合(ステップS2515:No)、特に処理を行わない。
次に、文書種別判定部104は、語句属性が出現していると判断した場合(ステップS2515:Yes)、当該出現箇所を一箇所ごとに取得する(ステップS2516)。
そして、文書種別判定部104は、文書種別判定知識情報の当該レコードにおいて、当該語句属性と対応付けられている構造指定が「ALL」であるか否か確認する(ステップS2517)。また、文書種別判定部104は、構造指定が「ALL」であることを確認した場合(ステップS2517:Yes)、特に処理を行わない。
次に、文書種別判定部104は、当出現箇所を含む文書構造属性を読み出す(ステップS2518)。そして、文書種別判定部104は、読み出した文書構造属性と、文書種別判定知識情報に記述された構造指定と照合する(ステップS2519)。そして、文書種別判定部104は、照合により一致しないと判断した場合(ステップS2519:No)、特に処理を行わない。
次に、文書種別判定部104は、照合により一致すると判断した場合(ステップS2519:Yes)、文書種別判定知識情報の当該レコードにおいて、対応付けられた文書種別を読み出す(ステップS2520)。そして、文書種別判定部104は、当該レコードにおいて、対応付けられた点数を読み出す(ステップS2521)。
そして、文書種別判定部104は、取得した文書種別に対応する変数に、取得した点数を加点する(ステップS2522)。
このように、文書種別判定部104は、ステップS2515で検出した全ての出現箇所について、ステップS2516〜S2522の処理を順に行う(ステップS2523)。
また、文書種別判定部104は、上述したステップS2503〜S2523までの処理を、文書種別判定知識情報として格納された全てのレコードに対して順に処理を行う(ステップS2524)。
最後に、文書種別判定部104は、各文書種別に対応する変数の値を相互に比較し、値が最大となる文書種別を、判定結果として出力する(ステップS2525)。
本実施の形態においては、このような処理手順を行うことで、文書種別を判定することができる。なお、ステップS2525において全ての変数の値が0であった場合、判定結果を「不明」として出力する。
このように、文書種別判定部104により、文書種別が判定された入力文書データの例が図8に示されている。なお、図8に示した例では、文書種別判定部104は、文書種別を「イベント情報」であると判定した場合とする。そして、文書種別判定部104は、図8に示すように、メタタグ801内に、判定した文書種別を挿入している。
以上の処理が終了すると、文書種別判定部104は、入力文書データを文書データ記憶部107に記憶する。また、文書種別判定部104が、文書データ記憶部107に記憶せずに、直接、表示処理部108が、当該入力文書データを表示しても良い。
このような処理が行われることで、文書種別が埋め込まれた入力文書データを生成することができる。そして、本実施の形態では、表示処理部108が、当該入力文書データの表示処理を行う。
次に、コンテンツ閲覧装置100の文書種別が付加された入力文書データに対してアノテーションが入力された場合のアクションを実行するまでの処理手順について説明する。図26は、コンテンツ閲覧装置100のアノテーションの入力から入力文書データに対するアクションを実行するまでの処理手順を示すフローチャートである。
まず、表示処理部108は、文書データ記憶部107に記憶される入力文書データの表示処理を行う(ステップS2601)。この場合、図9に示すような画面が表示される。
次に、アノテーション入力受付部109が、利用者からのアノテーションの入力を受け付ける(ステップS2602)。例えば、図9に示した画面を閲覧した利用者が、提示情報の内容に対して何らかのアクションを実行したいと考えた場合、ペンを用いて提示情報に対して書き込み操作を行う。コンテンツ閲覧装置100は、この書き込み操作をアノテーションとして入力を受け付ける。そして、入力されたアンダーラインは、アノテーション入力受付部109を通してアノテーション認識部110に伝えられる。
図27は、利用者が表示処理部により表示された提示情報中に含まれる語句「東西電機」に対して、アンダーラインを引いた場合の画面例を示した説明図である。例えば、利用者が語句「東西電機」というキーワードに関して、どのような企業であるか知らないので、当該「東西電機」を調べるためにアンダーラインを引く等が考えられる。
アノテーション入力受付部109は、例えばアノテーションのパスが連続している場合、又はパスが不連続であってもこの時間間隔が予め設定された時間よりも短い場合には、一つのアノテーションとして入力を受け付ける。このようにして、アノテーション入力受付部109は、各アノテーションを区別し、入力された各アノテーションの開始点(ペンによる書き始め)や終了点(書き終わり)、筆順、線の方向や長さ(パスの長さ)、位置などの情報を、表示画面の左下を基準とし、画面を構成するピクセルを単位として検出する。
図28は、利用者が表示処理部により表示された提示情報中に含まれる「開催場所:株式会社(略)4月7日(金)」を囲んだ場合の画面例を示した説明図である。例えば、利用者が囲まれた文字列を、文書種別毎にスクラップしたい場合に、当該文字列を囲む等が考えられる。
図26に戻り、次に、アノテーション認識部110は、入力を受け付けたアノテーションの開始点や終了点の座標やパスの長さ等から、入力文書データ中の各アノテーションの適用範囲及び種別を認識する(ステップS2603)。なお、詳細な処理手順については、後述する。
そして、意図抽出部116は、アノテーション認識部110による認識結果(例えば、アノテーションの種別、及びアノテーションの適用範囲)と、表示している入力文書データに含まれる語句属性、文書構造属性又は文書種別と、意図判定知識記憶部118に予め蓄積された意図判定知識情報とに基づいて、表示対象となる利用者の意図を示す意図ラベルを抽出する(ステップS2604)。
例えば、意図抽出部116は、上述した「東西電機」にアンダーラインが引かれた場合、「東西電機」には語句属性「企業名」が予め付加され、アノテーション条件がアンダーラインなので、図11に示す意図推定知識情報から、意図ラベル「検索対象:地図」、「検索対象:株価」、「検索対象:企業概要」が適切なものと抽出する。なお、詳細な処理手順については、後述する。
次に、意図表示処理部114が、判定された意図ラベルを表示処理する(ステップS2605)。この意図ラベルの表示された画面としては、例えば図12又は図13に示した画面等とする。また、意図表示処理部114は、表示している入力文書データの文書種別と、図11で示した意図推定知識情報で一致している文書種別と対応付けられた意図ラベルを優先的に表示する。
そして、意図選択受付部115は、表示された意図ラベルから、利用者が望んだ意図と一致する意図ラベルの選択を受け付ける(ステップS2606)。例えば、図12で示した画面例では、利用者が「東西電機」の地図、企業概要又は株価のうち、いずれかを知りたいのか選択を受け付ける。
次に、アクション決定部117が、選択を受け付けた意図ラベルに対応するアクションを選択する(ステップS2607)。このアクション決定部117が、意図ラベルに対応するアクションを選択するためにアクション記憶部120を使用する。これにより意図ラベルに対応するアクションを特定することができる。また、意図ラベルに対応するアクションが複数存在する場合、利用者に対してアクションを提示して、選択を受け付けても良い。利用者からアクションの選択を受け付ける画面としては、図14に示した画面例等がある。
そして、実行部121が、アクション決定部117により選択されたアクションを実行する(ステップS2608)。
上述した処理手順を行うことで、入力されたアノテーションに従って、利用者の意図と考えられる意図ラベルを提示し、当該意図ラベルの選択を受け付けることで、アクションを実行することができる。また、その際に、文書種別を用いて利用者の意図に優先順位を設けて表示している。これにより、利用者は自分の意図と一致する意図ラベルを特定することが容易になる。
次に、アノテーション認識部110が、入力を受け付けたアノテーションの識別を行うまでの処理手順について説明する。図29は、アノテーション認識部110の入力を受け付けたアノテーションを識別するまでの処理手順を示すフローチャートである。
まず、アノテーション認識部110においては、識別可能なアノテーションの種別が予め定められているものとする。そして、アノテーション認識部110は、入力されたアノテーションが、予め定められた複数の種別のうち、いずれに属するかを識別する。
本実施の形態においては、アノテーション認識部110が識別可能なアノテーションが「アンダーライン」、「囲み」及び「その他」のいずれかとした例とする。なお、アノテーション「アンダーライン」は、図27で示したアノテーションとし、アノテーション「囲み」は、図28で示したアノテーションとする。
まず、アノテーション認識部110は、アノテーション入力受付部109から、アノテーション情報の読み込み処理を行う(ステップS2901)。
図30−1は、図27に示すアノテーションが入力された場合において、アノテーション入力受付部109が検出したアノテーション情報の例を示した図である。そして、アノテーション認識部110は、図30−1に示されたアノテーション情報の読み込みを行う。
図30−2は、図28に示すアノテーションが入力された場合において、アノテーション入力受付部109が検出したアノテーション情報の例を示した図である。そして、アノテーション認識部110は、図30−2に示されたアノテーション情報の読み込みを行う。
この図30−1及び図30−2に示したアノテーション情報のstartX、startYがアノテーションの開始点のX座標とY座標を示し、endX、endYがアノテーションの終了点のX座標とY座標を示している。また、アノテーション情報のlengthは、アノテーションの開始から終了までの道のりとしてのパスの長さを示している。なお、各座標の基準点及び単位は処理系毎に規定すればよい。例えば図30−1及び図30−2では、画面の左下を基準とし、画面を構成するピクセルを単位とする。
図29に戻り、アノテーション認識部110は、読み込んだアノテーション情報から、入力文書データのうちアノテーションで示された位置の検出を行う(ステップS2902)。
例えば、アノテーション認識部110は、入力文書データの平面座標と、入力されたアノテーション情報に含まれるアノテーションの座標とから、表示された入力文書データのうちアノテーションが入力された領域を、適用範囲として特定する。
そして、アノテーション認識部110は、特定した適用範囲から、入力文書データのどの文字列が指定されているのかを識別する。また、指定された文字列において付加された語句属性や、文書構造属性等も検出する。
例えば、アノテーション認識部110は、図27に示す画面例の場合、アノテーションで文字列「東西電機」を指定されていると識別する。また、アノテーション認識部110は、図28に示す画面例の場合、「開催場所」から「4月7日(金)」までが指定されていると識別する。また、アノテーション認識部110は、これら識別される文字列を、例えば図8に示すHTML文書に含まれる文字列として取得する。
次に、アノテーション認識部110は、読み込まれたアノテーション情報の入力文書データ中の開始点startX、startY、終了点endX、endY、パスの長さlengthの各値を用いて、当該アノテーションの種別を判定する。以下に詳細な条件を示す。
アノテーション認識部110は、開始点のX座標と終了点のX座標の差が第1の所定値(例えば「10」)より大きく、開始点のY座標と終了点のY座標の差が第2の所定値(例えば「5」)より小さく、且つ開始点と終了点の間の距離がパスの長さ(length)に第3の所定値(例えば0.8)を乗じた値より長いか否か判断する(ステップS2903)。
アノテーション認識部110は上述した条件を満たした場合(ステップS2903:Yes)、アノテーションが「アンダーライン」と判定する(ステップS2904)。
例えば、図27に示したアノテーションの場合、図30−1に示すアノテーション情報が読み込まれる。このアノテーション情報を、ステップS2903で示した条件に当てはめる。この場合、開始点は“startX=101、startY=52”、終了点は“endX=123、endY=54”、パスの長さは“length=26”となる。
つまり、図30−1に示すアノテーション情報において、「|endX−startX|」は“22”なので第1の所定値(例えば「10」)より大きく、「|endY−startY|は“2”なので第2の所定値(例えば「5」)より小さい。
また、「(endX−startX)^2+(endY−startY)^2」は“488”となり、「(length×0.8)^2」は“432.64”となるので、開始点と終了点の間の距離は、パスの長さ(length)に第3の所定値(例えば0.8)を乗じた値より長いことになる。
つまり、図30−1に示したアノテーションは、「アンダ−ライン」であるための条件を満たしていることが確認できる。これにより、アノテーションが「アンダーライン」と確認できる。
例えば、図28に示したアノテーションの場合、図30−2に示すアノテーション情報が読み込まれる。このアノテーション情報を、ステップS2903で示した条件に当てはめる。この場合、開始点は“startX=14、startY=43”、終了点は“endX=14、endY=42”、パスの長さは“length=221”となる。この図30−2に示すアノテーション情報において、「|endX−startX|」は“0”となり、第1の所定値(例えば「10」)より小さい。つまり、図30−2に示すアノテーション情報は、「アンダ−ライン」と判定されるための条件を満たしていない。
そして、アノテーション認識部110は、アノテーションが「アンダーライン」であるための条件を満たしていないと判定した場合(ステップS2903:No)、当該アノテーションが「囲み」であるための条件を満たすか否かの判断を行う。
アノテーション認識部110は、開始点のX座標と終了点のX座標の差が第4の所定値(例えば「5」)より小さく、開始点のY座標と終了点のY座標の差が第5の所定値(例えば「5」)より小さく、且つ開始点と終了点の間の距離がパスの長さ(length)に第6の所定数(例えば「0.5」)を乗じた値よりも短いか否か判断する(ステップS2905)。
そして、アノテーション認識部110は、上述した条件を満足した場合(ステップS2905:Yes)、当該アノテーションは「囲み」と判定する(ステップS2906)。
例えば、図28に示したアノテーションの場合、図30−2に示すアノテーション情報が読み込まれる。このアノテーション情報を、ステップS2905で示した条件に当てはめる。この場合、「|endX−startX|」は“0”なので第4の所定値(例えば「5」)より小さく、「|endY−startY|」は“1”なので第5の所定値(例えば「5」より小さい。そして、「(endX−startX)^2+(endY−startY)^2」が“1”で、「(length×0.5)^2」が“12210.25”なので、開始点と終了点の間の距離は、パスの長さ(length)に第6の所定数(例えば「0.5」)を乗じた値よりも短い。このように、読み込まれたアノテーション情報は、「囲み」であるための条件を満たしているので、アノテーション認識部110は、当該アノテーションの種別を「囲み」と判定する。
そして、アノテーション認識部110は、アノテーションが「囲み」であるための条件を満足していない場合(ステップS2905:No)、「その他」であると判定する(ステップS2907)。
また、「その他」と判定されたアノテーションは、どのように処理を行っても良く、例えば、既知の文字認識技術(特に、入力されたストロークをリアルタイムで文字認識していくオンライン文字認識技術)を用いて、何らかの文字列や記号を検出しても良い。このように文字列や記号等を検出した場合、当該検出を示す種別(例えば、書き込まれた文字・記号等の種別等)を判定結果と共に出力してもよい。
そして、アノテーション認識部110は、上述した判定結果(例えばアノテーションの種別や、適用範囲、識別された文字列など)を出力する(ステップS2908)。
図31は、アノテーション認識部110が、図27に示したアノテーションが書き込まれた場合のアノテーション情報の判定結果の例を示した図である。図31に示すように、アノテーション認識部110は、アノテーションの種別を「アンダーライン」と判定したことが確認できる。
次に、図26のステップS2604における、意図抽出部116の入力文書データに対する利用者の意図を判定する手順について説明する。図32は、意図抽出部116の意図判定手順を示すフローチャートである。
まず、意図抽出部116は、各処理結果を受け取る(ステップS3201)。この各処理結果としては、アノテーション認識部110による判定結果と、表示処理部108により表示された入力文書データとする。なお、入力文書データは、語句属性、文書構造属性及び文書種別などがすでに付加されているので、属性付加部102、文書属性付加部103及び文書種別判定部104による処理結果が入力されることと同義である。
次に、意図抽出部116は、入力文書データから、アノテーション認識部110により特定されたアノテーションの適用範囲の情報を抽出する(ステップS3202)。この場合、アノテーションの適用範囲に含まれる語句属性や、文書構造属性も抽出される。
例えば、図27に示したアノテーションが入力された場合、図8に示す入力文書データで対応する部分は文字列「東西電機」となる。そして、この文字列を囲むタグがあるか検出を行う。そして、この検出されたタグに属性が定義されている場合、意図抽出部116は、当該属性を抽出する。例えば、図8に示したHTML文書の場合、意図抽出部116は、語句属性「企業名」と、文書構造属性「箇条書き」とを抽出する。
次に、意図抽出部116は、アノテーション認識部110の判定結果のアノテーション種別と、意図判定知識記憶部118に蓄積された意図判定知識情報のアノテーション条件とを一致するか比較し、一致するアノテーション条件を含む意図判定知識情報を抽出する(ステップS3203)。
そして、意図抽出部116は、入力文書データにおいて、アノテーションで指示された部分から語句属性が抽出されたか否かを判断する(ステップS3204)。次に、意図抽出部116は、語句属性を抽出していないと判断した場合(ステップS3204:Yes)、アノテーションによって指示された部分の語句属性が不明とみなして、入力文書データの文書種別が「不明」であるか否か判断する(ステップS3205)。
そして、意図抽出部116は、文書種別が「不明」であると判断した場合(ステップS3205:Yes)、利用者の意図を判定できなかったものとして「不明」と出力する(ステップS3206)。
また、意図抽出部116は、文書種別が「不明」でないと判断した場合(ステップS3205:No)、判定された文書種別を文書種別条件に含む意図判定知識情報を、意図判定知識記憶部118から抽出する(ステップS3207)。
また、意図抽出部116が、語句属性を抽出していると判断した場合(ステップS3204:No)、抽出した語句属性が語句属性条件として設定された意図判定知識情報を、意図判定知識記憶部118から抽出する(ステップS3208)。
例えば、図27に示したアノテーションが入力された場合、適用範囲に含まれる語句「東西電機」に対応する語句属性「企業名」が抽出される。この場合、語句属性が抽出されると判断されるので、意図抽出部116は、抽出した語句属性を語句属性条件として、意図判定知識記憶部118に対して検索を行う。なお、意図判定知識情報を抽出する際に、アノテーション条件も検索条件として設定される。
図33は、意図抽出部116が語句属性「企業名」及びアノテーション「アンダーライン」を検索キーにして、抽出した意図判定知識情報の例を示した図である。図33に示すように、意図ラベル「検索対象:地図」、「検索対象:株価」及び「検索対象:企業概要」が検出される。
そして、意図抽出部116は、抽出された意図判定知識情報を、入力文書データから抽出された文書種別が、文書種別条件として設定された意図判定知識情報が上位になるように並べ替える(ステップS3209)。
図34は、意図抽出部116が、図33で示した意図判定知識情報を並び替えた場合の例を示した図である。図34に示すように、文書種別条件に“イベント情報”を含んでいる意図判定知識情報が上位に並び替えられているのが確認できる。
また、図35は、意図抽出部116が、入力されたアノテーションが「囲み」の場合に抽出された意図判定知識情報の例を示した図である。なお、本図を抽出する手順については後述する。
次に、意図抽出部116は、抽出された意図判定知識情報を、判定結果として出力する(ステップS3210)。
次に、図26のステップS2608において、実行部121が、利用者から選択を受け付けたアクション知識情報に対応する処理を実行する処理手順について説明する。図36は、実行部121が、利用者から選択を受け付けたアクション知識情報に対応する処理を実行する処理手順を示すフローチャートである。
まず、実行部121は、アクション知識情報を受け付ける(ステップS3601)。
例えば、利用者が「東西電機」がどのような企業であるかを調べたいと考え、図14において検索対象として「企業概要」を選択した後、アクションとして「E−search」で検索する旨を選択したとする。この場合、図15−1のアクション知識情報1504に示したアクション知識情報が、実行部121に入力される。
そして、実行部121はアクション知識情報に含まれる実行方法の読み込み処理を行う(ステップS3602)。
次に、実行部121は、アクション種別がウェブ検索であるか否か判断する(ステップS3603)。
図15−1のアクション知識情報1504の実行方法を読み込んだ場合、“アクション種別:ウェブ検索”と定義されているのが確認できる。このため、実行部121は、このアクション知識情報1504が入力された場合は、ウェブ検索であると判断する。
そして、実行部121は、アクション知識情報がウェブ検索であると判断した場合(ステップS3603:Yes)、アクション知識情報の実行手法に記述された文字列「$keyword$」を、アノテーションの適用範囲に含まれる文字列に置換する(ステップS3604)。図14で示した例では、「$keyword$」が、「東西電機」に置換される。つまり、文字列「東西電機」は、検索キーとして用いられることになる。
次に、実行部121は、アクション知識情報の実行方法に記述された「$search_url$」を、予め定義されたウェブ検索エンジンのURL(例えばhttp://search.foobar.jp/など)に置換する(ステップS3605)。
そして、実行部121は、生成されたURLを、HTTPのGET手順により、予め定義されたウェブ検索エンジンに送信し、当該検索キー「東西電機」でウェブ検索を実行する(ステップS3606)。
次に、実行部121は、アクション種別がウェブ検索ではないと判断した場合(ステップS3603:No)、アクション種別がローカル検索であるか否か判断する(ステップS3607)。
そして、実行部121は、アクション種別がローカル検索であると判断した場合(ステップS3607:Yes)、アクション知識情報の実行方法に記述された文字列「$keyword$」を、アノテーションの適用範囲に含まれる文字列に置換する(ステップS3608)。このようにして、ローカル検索を行うためのスクリプトを生成する。
次に、実行部121は、ローカル検索実行プログラムを起動して、起動したローカル検索実行プログラムに対して生成したスクリプトを出力して、検索を実行する(ステップS3609)。
そして、実行部121は、アクション種別がローカル検索ではないと判断した場合(ステップS3607:No)、アクション種別がDB登録であるか否か判断する(ステップS3610)。
次に、実行部121は、アクション種別がDB登録であると判断した場合(ステップS3610:Yes)、DBを登録するためのスクリプト(例えばSQLで記述されている)を外部プログラムとして実行する(ステップS3611)。
また、実行部121は、アクション種別がDB登録ではないと判断した場合(ステップS3610:No)、特に処理を行わず終了する。
本実施の形態にかかるコンテンツ閲覧装置100は、様々な入力文書データに対してアクションを実行することができる。そこで、入力文書データで、アノテーションの適用範囲の語句に、語句属性が付与されていない場合について説明する。
図37は、入力文書データにおいて語句属性が付与されていない「VoIP」にアンダーラインが引かれた場合の画面例を示した図である。図9で示した画面例と同じ入力文書データに対して、利用者が異なる位置にアノテーションを入力した場合の例とする。図37では、利用者は語句「VoIP」にアンダーラインを引いている。しかし、図5に示したHTML文書では、「VoIP」に対して語句属性が付加されていない。このため、意図抽出部116は、語句属性ではなく文書種別に基づいて意図判定知識情報を抽出する。図32に示した処理手順では、語句属性が設定されておらず(ステップS3204:Yes)、文書種別が「不明」ではない(ステップS3205:No)ので、文書種別「イベント情報」に基づいて意図判定知識情報を抽出する。
この結果、意図表示処理部114は、文書種別に対応付けられた意味(語句属性)及び意図を表示処理する。また、アクション決定部117は、選択された意図に対応する所望のアクションを提示する。
このように、属性付加部102が単語「VoIP」の語句属性を判定できなかった場合でも、文書種別判定部104の判定結果に基づいて抽出された選択肢を、利用者に対して提示することが可能となる。これにより、利用者が意図やアクションを選択する手間が削減される。
図38は、入力文書データにおいて語句属性が付与されていない「VoIP」にアンダーラインが引かれた際に文書種別を修正する場合の画面例を示した図である。図38に示した例も同様に文書種別に基づいて利用者の意図を抽出するが、この場合に文書種別の修正も受け付ける。つまり、利用者がコンテクストメニューにカーソルを乗せている状態で所定時間経過すると、文書種別表示処理部105がページタイプの一覧メニュー3801を表示する。この一覧メニュー3801から、ページタイプを選択することで文書種別修正部106が、文書種別を修正する。本実施の形態にかかるコンテンツ閲覧装置100は、このような修正を図38に示したインタフェースで行うこととした。これにより、利用者は、文書種別修正部106に対する操作を、意図選択受付部115又はアクション決定部117に対する操作と区別なく実施できる。
また、図37または図38の場合、属性付加部102が解析できなかった語句属性を、上述したインタフェースにより、利用者に対して提示することができる。このため、提示された語句から、利用者が選択した場合に、当該語句と語句属性とを対応付けて、図3に示す語句属性対応辞書133に登録することができる。そして、再度同じ語句が入力文書データに含まれている場合に、属性付加部102は、当該語句の語句属性を適切に付加することができる。
例えば、利用者は、図38に示した画面から、「(サイトを)指定せずに検索」というアクションを選択した場合、コンテンツ閲覧装置100からの検索結果リストが提示される。そして、利用者が、提示された検索結果リストから検索結果を選択して、図17の領域1704で示した画面が表示されたとする。この場合、履歴記憶部122には図20に示したように「VoIPとは」という情報が履歴情報として登録される。
次に、図9とは異なる入力文書データを表示する場合の例について説明する。図39は、図9とは異なる入力文書データを表示した場合の画面例を示した図である。図39に示した入力文書データは、文書種別判定部104が文書種別を判定できずに「不明」として出力されている。
また、利用者がアンダーラインを引いた語句「SNS」について、属性付加部102は語句属性を判定できなかった。このため、意図抽出部116は利用者の意図を抽出できなかった。このため、意図抽出部116は図32のフローでステップS3206へと進んで意図判定結果として「不明」を出力する。
図40は、文書種別、語句属性及び利用者の意図全てが不明だった場合に表示される利用者インタフェースの例を示した図である。図40に示した利用者インタフェースにおいて、利用者は、文書種別の選択や、語句属性から適切な語句属性を選択することで、意図抽出部116は当該選択された文書種別や語句属性を条件に利用者の意図ラベル等を判定し、意図表示処理部114が、整理した利用者インタフェースを表示することができる。
上述した説明においては、入力されたアノテーションが「アンダーライン」の場合について主に説明した。当然にこれ以外にも様々な条件で意図を判定することが考えられる。
他の例としては、アノテーションとして「囲み」が入力された場合について説明する。本実施の形態において、アノテーションとして「囲み」を検出した場合、アノテーションの適用範囲に含まれる文字列を、文書種別や語句属性に応じて異なるデータベースに登録する。アノテーションとして「囲み」が入力された場合の画面例は、図28に示したとおりとする。
まず、アノテーション「囲み」の意図を判定する場合について図32に従って説明する。意図抽出部116は、ステップS3202において、アノテーションの適用範囲に含まれる語句属性として「企業名」「地名」「日付」を抽出する。
そして、意図抽出部116は、ステップS3203において、アノテーションが「囲み」なので、図11の意図判定知識記憶部118のうち、アノテーション条件が「囲み」の意図判定知識情報を抽出する。図11に示した意図判定情報では、レコード1101〜1104が抽出される。
次に、意図抽出部116は、ステップS3204において、入力文書データから語句属性を抽出しているので、ステップS3208に進む。そして意図抽出部116は、抽出した意図判定知識情報の語句属性条件と、入力文書データから抽出された語句属性とを比較し、一致する語句属性条件を含む意図判定知識情報のみ抽出する。なお、語句属性条件が「ALL」の意図判定知識情報は、ステップS3202で抽出された語句属性と関係なく抽出される。
また、入力文書データから複数の語句属性が抽出され、語句属性条件として複数の語句属性が定義されている場合がある。この場合において、入力文書データから抽出された語句属性と、語句属性条件との比較手順は、どのような手法を用いても良い。本実施の形態においては、意図判定知識情報の語句属性条件に設定された語句属性に、入力文書データから抽出された語句属性が少なくとも一つ以上に含まれている場合に抽出することとした。これにより、ステップS3208で抽出される意図抽出部116は、図11で示したレコード1101、1104となる。
図35が、アノテーション「囲み」が入力された場合に、意図抽出部116により抽出された意図判定知識情報の例を示した図である。図35に示すように、意図ラベル「DB登録:スクラップ」と「DB登録:スケジュール」なので、アノテーションに囲まれた文字列が、文書種別に応じたDB登録先に登録されることになる。
次に、意図抽出部116は、ステップS3209において、文書種別によって抽出された意図推定知識情報を並べ替える。なお、本例の場合は、抽出された文書種別が「イベント情報」であり、抽出されたレコード1101の文書種別条件が「ALL」であり、レコード1104の文書種別条件が「イベント情報」であり、共に合致するので、意図抽出部116は、並び替えを行わない。
このようにして、意図抽出部116は、アノテーションが「囲み」の場合の判定結果を出力する。上述したように出力される意図判定結果が複数なので、意図表示処理部114が、これら複数の意図判定結果を表示して、意図選択受付部115が、利用者から適切な意図判定知識情報の選択を受け付けることになる。
そして、意図表示処理部114は、これら意図判定知識情報の意図ラベルをコンテクストメニューに表示する。そして、意図選択受付部115は、これらの意図ラベルからの選択を受け付ける。この選択を受け付けた意図ラベルは「DB登録:スクラップ」又は「DB登録:スケジュール」である。
この場合もアクション決定部117は、これら意図ラベルに対応するアクション知識情報かを抽出する。また、アクション決定部117が、複数のアクション知識情報を抽出した場合、利用者に抽出した複数のアクション知識情報を提示して、適切なアクション知識情報を選択させる。
また、アクション決定部117は、意図ラベル「DB登録:スケジュール」の選択を受け付けた場合、図15−2に示すアクション知識情報としてレコード1502、1503を抽出する。
そして、アクション決定部117は、抽出されたアクション知識情報を、図14と同様のウィンドウで利用者に提示する。そして、利用者が、アクションラベル「DB:スケジュールブック」を選択したとする。
この場合、選択されたアクション知識情報1503は、実行部121に出力される。そして、実行部121は、図36の処理手順に従ってDBの登録処理を行う。
選択されたアクション知識情報1503のアクション種別が「DB登録」なので、実行部121は、ステップS3610からステップS3611へと進む。そして、実行部121は、アクション知識情報1503のスクリプトを、外部プログラムを呼び出して実行する。
また、アクション知識情報1503のスクリプトに含まれる「$region$」は、入力文書データのアノテーションの適用範囲に含まれる文字列に変換される。そして、実行部121は、当該文字列が変換されたスクリプトを、外部プログラム「schedule」に対して、引数「−add」を付加した上で受け渡す。なお、外部プログラム「schedule」はスケジュール情報を管理するアプリケーションとし、詳細については説明を省略する。
また、DBに登録するのを、適用範囲に記述された文字列に限定するのではなく、例えば外部プログラムに引数として入力文書データ全体を受け渡しても良い。この場合、ここのような処理を実行するためのスクリプトをアクション知識情報に記述する。
このように、アノテーション「囲み」が施された領域の語句属性条件と、文書種別条件に基づいて利用者の意図が判定され、アクションが実行される。なお、ここでは意図判定知識情報として語句属性条件と文書種別条件の両方を備えた場合について説明したが、例えば文書種別条件のみを手がかりとして利用者の意図を判定しても良い。
この場合、意図抽出部116は、図28のアノテーションに対しては文書種別「イベント情報」を検索キーとして、図11からレコード1101、1102、1104を抽出する。そして抽出したレコードの意図ラベルを、意図表示処理部114が表示する。その後、意図選択受付部115が、表示した意図ラベルから適切な意図ラベルの選択を受け付けることになる。
次に、本実施形態におけるコンテンツ閲覧装置100のその他の動作について説明する。
まず、アクション知識情報を追加する場合について詳細に説明する。図17に示した画面において、設定ボタン1703を押下された場合に、図10に示す設定ボタンのメニューが表示される。そして、「このサイトを検索先に追加」を選択することで、アクション知識情報が追加される。
具体的には、図17に示した画面が表示された場合に、アクション決定部117は、履歴記憶部122に記憶された履歴情報図16―1のレコード1602の意図ラベルとアクションラベルを検索キーとして、アクション知識情報(図15−1においてはレコード1501)を検出する。そして、検索されたアクション知識情報の複製を生成する。
そして、アクション決定部117は、表示中の入力文書データの参照情報(URL)から、サイトのドメイン情報を抽出する。そして、アクション決定部117は、抽出されたドメイン情報を、複製されたアクション知識情報のスクリプトに予め定義された形式で追加する。
アクション決定部117は、図17に示した画面例では、ドメイン情報を示す文字列「yougo.foo.jp」を、図16−2の4601のスクリプトの末尾に「&site=yougo.foo.jp」という形式で追加する。
図41は、アクション決定部117が生成したアクション知識情報を、利用者に対して提示したウィンドウの例を示した図である。図41に示すように、利用者に対して検索対象、サイト名、スクリプトを表示する。そして、利用者は、これらの情報を適宜修正することができる。
図42は、アクション決定部117が生成したアクション知識情報に対して、サイト名などの登録を受け付けるウィンドウの例を示した図である。図42に示すように、利用者が登録するサイトのサイト名を指定している。そして、利用者が登録ボタン4801を押下すると、新たなアクション知識情報が登録される。
図43は、上述した操作により追加されたアクション知識情報の例を示した図である。このようなアクション知識情報が、履歴情報が保持している意図ラベルなどと対応付けられて図15−1及び図15−2に示すようなアクション記憶部120に追加される。
図44は、新たなアクション知識情報が登録された場合にアクション決定部117が表示するコンテクストメニューの例を示した図である。図44に示すように、項目5001が追加されているのが確認できる。
図44の項目5001に示したように、改めてアクション決定部117の利用者インタフェースを表示する際には、利用者は新たに登録したサイトを、アクションとして選択できるようになる。
また、本実施の形態にかかるコンテンツ閲覧装置100においては、意図判定知識情報と、アクション知識情報とを、編集することを可能とする。
例えば、コンテンツ閲覧装置100は、任意の状況で、利用者から図9の設定ボタン906の押下を受け付けた場合、図10に示す設定メニューを表示する。そして、コンテンツ閲覧装置100は、設定メニューの項目「検索手順を編集」1004が選択された場合に、意図判定知識記憶部118に記憶された意図判定知識情報及び、アクション記憶部120に記憶されたアクション知識情報を編集することができる。
図45は、設定メニューの項目「検索手順を編集」1004に選択された場合に意図判定知識修正部119が提示する検索手順一覧画面を示した図である。図45に示すように、意図判定知識修正部119は、図11に示すような意図判定知識情報を一覧表示する。
そして、利用者が修正したい意図判定知識情報を選択し、変更ボタン4101を押下すると、意図判定知識情報及びアクション知識情報を修正するためのウィンドウが表示される。
図46は、利用者が図45に示す意図判定知識情報4108を選択して、変更ボタン4101を押下した場合に表示されるウィンドウの例である。図46に示した画面において、利用者が、意図判定知識情報を修正した後、OKボタン4202を押下することで、図45に示した画面に戻る。そして、利用者は、図45に示した画面において、さらにOKボタン4106を押下すると、変更内容が意図判定知識修正部119とアクション決定部117とに出力される。そして、意図判定知識修正部119が修正内容で意図判定知識記憶部118の意図判定知識情報の修正を行い、アクション決定部117がアクション記憶部120のアクション知識情報の修正を行う。
具体的には、語句属性、文書種別、アノテーション種別、検索対象の変更は、意図判定知識修正部119に出力される。また、検索対象と追加キーワードの変更は、アクション決定部117に出力される。また、追加キーワードは、予め定義された形式でアクション知識情報の実行手法中のスクリプトに反映される。
また、図45の追加ボタン4104を押下された場合、図42に示したサイトの追加画面が表示される。これにより、アクション知識情報にサイトを指定する条件を追加することが可能となる。
また、図45の削除ボタン4102は、利用者が指定した意図判定知識情報の削除を行う。また、複製ボタン4103は、利用者が指定した意図判定知識情報の複製を行う。また、利用者に追加ボタン4104が押下された場合、予め定義されたデフォルトの属性値を持った意図判定知識情報と、アクション知識情報とを生成し、図46に示したウィンドウを表示して、利用者に対して当該ウィンドウにおいて各属性値の入力を促す。
図45に示した画面に対して各属性の入力を受け付けて、意図判定知識情報及びアクション知識情報が変更された後、OKボタン4106の押下を受け付けた場合、意図判定知識修正部119及びアクション決定部117は、変更の内容をそれぞれ意図判定知識情報とアクション知識情報とに反映させる。
また、図45に示した画面において、「表示順序の設定」ボタン4105の押下を受け付けると、意図判定知識修正部119とアクション決定部117は、設定順序を設定する画面を表示する。
図47は、意図判定知識情報とアクション知識情報の表示順序を設定するウィンドウの例を示した図である。図47に示したウィンドウにおいて、文書種別を選択すると、選択された文書種別を文書種別条件として対応付けられている検索対象属性(意図ラベル)や、当該意図ラベルとアクション知識情報で対応付けられているサイト属性を表示する。また、語句属性を選択した場合も同様に、選択された語句属性を語句属性条件として対応付けられている検索対象属性(意図ラベル)や、当該意図ラベルとアクション知識情報で対応付けられているサイト属性を表示する。
そして、利用者が、表示された属性を選択し、その下部にある矢印ボタン(例えば4301や4302)を押下することで、選択した属性に対応する意図判定知識情報やアクション知識情報を並び替えることができる。その後、利用者が、「OK」ボタン4303を押下することで、意図判定知識修正部119とアクション決定部117は、変更された表示順序の情報を、それぞれ意図判定知識とアクション知識情報に反映させる。これにより、コンテンツ閲覧装置100は、アノテーションの入力を受け付けて、メニューを表示する際に、当該順序に従って属性を表示する。
また利用者は、任意の状況で図9の設定ボタン906を押下し、図10の設定メニューから項目「初期設定」1005を選択することで、コンテンツ閲覧装置100の初期設定を変更することができる。
図48は、コンテンツ閲覧装置100の初期設定として環境設定を行う画面例を示した図である。図48に示すチェックボックス4401は、アクションとしてウェブ検索またはローカル検索を実行する場合、既に表示している画面を更新して検索結果一覧を表示するのか、又は別途新たなウィンドウを生成して検索結果一覧を表示するのかを指定する。
また、項目4402は、図14のコンテクストメニュー1401等で、意図判定結果や文書種別判定結果を表示する際に、一列に提示する項目の最大数を指定するためのセレクタとする。もし提示すべき意図判定結果や文書種別判定結果の数が、項目4402で指定された数値を超える場合、これらの項目は表示されない。その代わりに、図37で示したウィンドウと同様に、コンテクストメニューの各列の末尾に「一覧を表示」を表示する。利用者が、当該「一覧を表示」をすることで、コンテンツ閲覧装置100は、選択された項目の全てを一覧表示する。これにより、利用者は所望の項目を選択することができる。
項目4403は、アクション種別としてウェブ検索を実行する際に、実行部121が使用するウェブ検索エンジンのURLを指定するセレクタである。具体的には項目4403で指定されたURLが、アクション知識情報のスクリプトに含まれる「$search_url$」と置換される。
さらに、ローカル検索の場合に使用する検索エンジンや、スクラップを実行した際に生成されるファイルの格納ディレクトリを指定する利用者インタフェースなどを用意してもよい。
図49は、コンテンツ閲覧装置100の初期設定として個人設定を行う画面例を示した図である。欄4501は、検索時に検索条件として優先的に設定した駅を指定する。また、欄4502は、検索時に検索条件として優先的に指定したい市区町村を指定する。
例えば、欄4501に利用者が勤める職場の最寄駅を指定した場合について説明する。コンテンツ閲覧装置100が、入力文書データの文書種別が「イベント情報」である場合に、利用者が、入力文書データに記載されたイベント開催地の最寄駅の駅名にアンダーラインを引き、コンテクストメニューにおいてアクションとしてウェブ検索で列車の乗換案内情報を検索するアクションを選択する。これにより、コンテンツ閲覧装置100は、予め指定された職場の最寄り駅を、乗換案内の出発駅として設定し、アノテーションの適用範囲に示されたイベント開催地の最寄り駅を到着駅として設定して、乗り換え案内検索を行うことができる。
また利用者は、一度アクションを実行した後、図9の検索ボタン905を押下することで、同じキーワードに関する異なるアクションを簡便に選択できる。
例えば図37のようにVoIPという語句に利用者がアンダーラインを引くと、アノテーションの適用範囲の語句が欄3701に表示される。その後、コンテキスメニューから、アクションを選択することで(例えばウェブ検索を行い)、別の入力文書データが表示される。この場合、欄3701には、先程アンダーラインを引いた語句「VoIP」が、そのまま表示される。
図50は、上述した状態において、図37に示した検索ボタンが押下された場合に表示するウィンドウの例を示した図である。図50に示したように、語句「VoIP」にアンダーラインが引かれた場合に提示された意図判定知識情報やアクション知識情報を、再度提示される。
このように、利用者は、一度アクションを実行した語句「VoIP」について、別のアクションを実行することができる。例えば、語句の意味の検索を行ったあと、関連書籍を探すために検索対象として書籍を指定して、アクションを選択し実行する等が考えられる。
また、上述した各実施の形態に限定されるものではなく、以下に例示するような変形が可能である。
(変形例1)
上述した第1の実施の形態において、入力文書データに対してアノテーションが入力された場合、コンテクストメニューを表示する際に、語句属性を条件にして抽出された意図ラベルを表示した。しかしながら、意図ラベルを表示する際に、必ず語句属性条件で抽出することに制限するものではない。そこで変形例1として、語句属性を条件とせず、文書種別を条件に意図ラベルを抽出して、コンテクストメニューを表示する場合について説明する。
なお、本変形例1にかかるコンテンツ閲覧装置100の構成は、第1の実施の形態に係るコンテンツ閲覧装置100と同様なので、同一の符号を付して説明を省略する。次に、処理が異なる点についてのみ説明する。
図51は、意図判定知識記憶部118が備える意図判定知識情報のデータ構造の例を示した図である。図51に示すように、意図判定知識情報は、意図ラベルと、文書種別条件と、アノテーション条件とを対応付けている。つまり、意図抽出部116は、文書種別条件と、アノテーション条件とから、意図ラベルを抽出する。
次に、意図抽出部116の入力文書データに対する利用者の意図を判定する手順について説明する。図52は、意図抽出部116の意図判定手順を示すフローチャートである。
まず、意図抽出部116は、図32のステップS3201〜S3203と同様に、入力されたアノテーションの種別とアノテーション条件が一致する意図判定知識情報を取得する(ステップS5301〜S5303)。
そして、意図抽出部116は、入力文書データの文書種別が「不明」であるか否か判定する(ステップS5304)。そして、意図抽出部116は、文書種別が「不明」であると判断した場合(ステップS5304:Yes)、利用者の意図を判定できなかったものとして「不明」と出力する(ステップS5306)。
また、意図抽出部116は、文書種別が「不明」でないと判断した場合(ステップS5304:No)、判定された文書種別を文書種別条件に含む意図判定知識情報を、意図判定知識記憶部118から抽出する(ステップS5305)。
そして、意図抽出部116は、抽出された意図判定知識情報を、判定結果として出力する(ステップS5307)。
図53は、意図表示処理部114が、表示するウィンドウの例を示した図である。本図に示すように、意図表示処理部114は、文書種別の条件と一致する意図ラベルを表示する。
また、変形例1において他の処理については、上述した第1の実施の形態と同様なので説明を省略する。
また、本変形例では、入力文書データの文書種別を特定するために、予め入力文書データの語句属性の付加及び文書構造属性の付加を行うこととした。しかしながら、これら属性の付加を行わずに、入力文書データに含まれる情報に基づいて文書種別を特定しても良い。
なお、本実施の形態は、識別可能なアノテーションを、「アンダーライン」、「囲み」及び「その他」のいずれかに制限するものではなく、様々なアノテーションを識別可能としても良い。
以上説明したように、本実施の形態にかかるコンテンツ閲覧装置100では、表示された入力文書データに対してアノテーションが入力された場合、アノテーションの種別と文書種別とにより、利用者が要求する意図、又は意図に対応付けられたアクションを決定できるので、利用者が適用範囲に対して行う処理を決定するための操作が省略されるので、利用者の操作負担が軽減する。また、利用者は、単純な操作で、適切な処理結果を得ることができる。
さらに、本実施の形態においては、コンテンツ閲覧装置100では、利用者の意図を判定する際に、アノテーションの適用範囲内の語句の語句属性を条件として、利用者の意図を判定するので、より適切な判定結果を得ることが可能となる。
また、コンテンツ閲覧装置100では、アノテーションの適用範囲内の語句の語句属性が不明な場合、文書種別を条件として利用者の意図が判定できる。これにより、より多くの場合で、上述した効果を得ることが可能となる。
また、意図判定結果、利用者により選択されたアクションの履歴情報及び文書種別の情報のいずれか一つ以上を組み合わせてブックマークを生成することで、当該ブックマークに示された入力文書データの内容を利用者の理解が容易な形式で表示可能となる。これにより、利用者は、ブックマークを参照することで、有益な情報を再利用することが容易になる。
また、コンテンツ閲覧装置100は、文書種別を用いて利用者の意図を判別して、アクションを提示するので、語句と語句属性とを対応付けた辞書の更新を頻繁に行わなくとも、利用者に対して意図の判別又は実行するアクションを提示できるので、辞書のメンテナンスコストを減少できる。また、語句に対応する語句属性を利用者が登録できるので、管理者による辞書の更新作業が軽減されるので、メンテナンスコストを減少できる。
図54は、上述した実施の形態にかかるコンテンツ閲覧装置100のハードウェア構成を示す図である。コンテンツ閲覧装置100は、ハードウェア構成として、コンテンツ閲覧装置100におけるコンテンツ閲覧プログラムなどが格納されているROM5502と、ROM5502内のプログラムに従ってコンテンツ閲覧装置100の各部を制御するCPU5501と、コンテンツ閲覧装置100の制御に必要な種々のデータを記憶するRAM5503と、ネットワークに接続して通信を行う通信I/F5505と、コンテンツ閲覧装置100で処理した結果を表示する表示部5506と、利用者が処理の要求などを入力するための入力I/F5504と、各部を接続するバス5507を備えている。また、コンテンツ閲覧装置100は、上述した構成を備えた、一般的なコンピュータに適用することができる。
上述した実施の形態にかかるコンテンツ閲覧装置100で実行されるコンテンツ閲覧プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
この場合には、コンテンツ閲覧プログラムは、コンテンツ閲覧装置100において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
また、上述した実施の形態にかかるコンテンツ閲覧装置100で実行されるコンテンツ閲覧プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態にかかるコンテンツ閲覧装置100で実行されるコンテンツ閲覧プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施形態のコンテンツ閲覧プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態のコンテンツ閲覧装置100で実行されるコンテンツ閲覧プログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からコンテンツ閲覧プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。