以下に、本願に係る情報表示プログラム、情報表示方法、情報表示装置、及び配信装置を実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、以下の実施形態により本願に係る情報表示プログラム、情報表示方法、情報表示装置、及び配信装置が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.情報表示処理〕
最初に、本実施形態の情報表示プログラム等により実現される情報表示処理を説明する。以下の説明では、本実施形態の情報表示装置の一例である端末装置100の動作を例に、情報表示処理を説明する。
図1は、実施形態に係る端末装置100にコンテンツが表示された様子を示す図である。図1の例では、端末装置100が備える表示面(以下、画面ともいう。)に、複数のコンテンツが配置されたコンテンツC1が表示されている。コンテンツC1は、画像(例えば、静止画、動画)、テキスト情報(例えば、質問文の要約)等のコンテンツが配置された配置面の情報である。例えば、端末装置100にインストールされたアプリケーション(以下、アプリという。)に表示する画面の情報である。コンテンツC1には、複数のコンテンツがタイル状に配置されている。なお、コンテンツC1は、端末装置100が備える記憶装置に予めインストールされたデータ(例えば、地図データ等のコンテンツデータ)に基づき生成されてもよい。また、コンテンツC1は、ページの情報(例えば、ウェブページの情報)であってもよい。
端末装置100は、例えば、スマートデバイス(スマートフォン、或いはタブレット)、携帯電話、パーソナルコンピュータ等のユーザ端末である。図1の例では、端末装置100は、スマートデバイスとなっているが、端末装置100はスマートデバイスに限定されない。端末装置100は、ネットワーク接続機能を備え、ネットワークを介して任意のサーバ装置と通信する。端末装置100の画面は、タッチパネル式の画面となっている。端末装置100は、ユーザのタッチパネル操作に応じて画面にコンテンツを表示したり、コンテンツの表示態様を変更したりする。なお、図1の例では、端末装置100は縦置きとなっているが、横置きであってもよい。この場合、端末装置100は、図1の例とは異なり、画面の長辺が上或いは下となるようコンテンツC1を表示する。
コンテンツC1は、例えば、スマートデバイス用に最適化されたコンテンツ(例えば、アプリの画面)である。コンテンツC1は、例えば、ニュース、天気予報、受信メールのインデックスや内容、フォトビュワー、その他各種のコンテンツが配置されている。本実施形態では、コンテンツC1は、ユーザ(質問者)が投稿した質問文に対して、他のユーザ(回答者)が回答文を投稿することで、ユーザ間で知識や知恵の共有を行うことができる情報共有サービスに関するコンテンツであるものとするが、コンテンツC1は、情報共有サービスに関するコンテンツに限定されない。なお、コンテンツC1は、アプリの画面に限られない。例えば、コンテンツC1は、スマートデバイス用に最適化されたウェブページであってもよい。この場合、コンテンツC1は、HTML(Hyper Text Markup Language)、XML(Extensible Markup Language)等で記述されてもよい。
図1の例の場合、コンテンツC1には、タイル状のコンテンツQC11〜QC15が一列に配置されている。コンテンツQC11〜QC15は、それぞれ、所定のコンテンツ(以下、配信コンテンツという、)へのリンクである。例えば、コンテンツQC11〜QC15は、質問へ回答するためのコンテンツ(以下、回答投稿コンテンツという。)を表示するためのリンクである。図1の例の場合、コンテンツQC11〜QC15はテキストの表示領域となっている。テキストの表示領域には必ずしも枠が設けられていなくてもよい。コンテンツQC11〜QC15には、それぞれ、対象の質問の質問文に関するテキストが表示されている。例えば、コンテンツQC11〜QC15には、それぞれ、質問文の「見出し」が表示されている。以下の説明では、質問文のことを本文ということがある。
「見出し」は、配信コンテンツの内容をユーザが容易に把握するためのテキストである。見出しは、配信コンテンツに含まれるテキスト(例えば、本文)に対応するテキストである。見出しは、配信コンテンツに含まれるテキストを所定の者(例えば、ポータルサイトの運営者の従業員)が読んで要約することにより作成される。或いは、見出しは、本文から見出しを生成する学習済みモデルに、本文を入力することにより生成される。「見出し」は、例えば、情報処理サーバが本文を構文解析(例えば、係り受け解析)して本文の係り受け情報(例えば、係り受け木構造)を作成し、係り受け情報に基づき本文の一部を削除する(例えば、木の枝刈りをする)ことにより作成されてもよい。以下の説明では、本文の一部を削除して生成される見出しのことを削除ベースの見出しという。
なお、見出しは、所定の条件を満たすよう生成される。例えば、見出しは、所定の文字数以下となるよう生成される。一例として、見出しは、13.5文字以下となるよう生成される。このとき、13.5文字は、全角文字1個を1文字とした文字数である。半角文字1文字は0.5文字である。以下の説明では、所定の条件のことを「生成条件」という。生成条件は、13.5文字以下に限定されない。生成条件となる文字数は、13.5文字より多くてもよいし少なくてもよい。勿論、生成条件は文字数に限定されない。
なお、「見出し」は、要約、タイトル、短縮タイトル、トピック、トピック見出し等と言い換えることができる。本実施形態では、「見出し」は、配信コンテンツに含まれる「本文」に基づき作成される短縮テキストであるものとする。なお、構文上は文が短縮されていても、「見出し」の文字数が元のテキスト(例えば、本文或いは本文のタイトル)の文字数より多くなることがあり得る。例えば、元のテキストに含まれる略語を正式名称に置き換えた場合は、構文上は文が短縮されていても、結果として文字数が増えることがある。このような場合も、「見出し」は元のテキストの短縮テキストである。
ユーザが端末装置100を操作してコンテンツC1を配信するサーバ(以下、情報処理サーバという。)にアクセスすると、端末装置100は、情報処理サーバからコンテンツC1の配信を受ける。また、端末装置100は、コンテンツC1とともに、端末装置100を動作させるための制御情報の配信を受ける。制御情報は、例えば、コンテンツC1の表示態様を規定した情報である。例えば、制御情報は、コンテンツQC11〜QC15に対するユーザの操作に対応して、コンテンツQC11〜QC15に表示されたテキストの表示態様をどのように変更するかを規定した情報である。端末装置100は、制御情報に従って画面にコンテンツC1を表示する。
なお、制御情報は、端末装置100にインストールされたアプリを制御するプログラムであってもよいし、ページに埋め込まれたプログラムであってもよい。例えば、制御情報は、JavaScript(登録商標)等のスクリプト言語で記載されたプログラムであってもよい。勿論、制御情報は、スクリプト言語以外のコンピュータ言語で記載された情報であってもよい。例えば、制御情報は、CSS3(Cascading Style Sheets 3)等のスタイルシート言語で記載された情報であってもよい。また、制御情報は、Java(登録商標)、Swift、C言語、C++等のプログラミング言語で記載され、コンパイル等されたプログラムであってもよい。情報処理サーバ等のサーバから配信されるアプリケーションソフトそのものを制御情報とみなすことも可能である。このとき、ページの情報は、制御情報に含まれていてもよい。なお、最終的に端末装置100がプログラムを実行できるのであれば、制御情報は、コンパイルされたプログラムでなくてもよい。その他、制御情報は、インタプリタ言語(例えば、スクリプト言語)、機械言語、或いは中間言語の形式で提供されるデータ(プログラム)であってもよい。
また、制御情報には、「見出し」の元のテキスト(例えば、本文)の情報が含まれていてもよい。また、制御情報には、「見出し」に関する所定のテキスト(例えば、本文)の関係情報が含まれていてもよい。関係情報は、所定のテキストに含まれる複数のワードのワード間の関係を示す情報である。例えば、関係情報は、所定のテキストに含まれる複数のワードの係り受け構造を示す情報(以下、係り受け情報)である。なお、関係情報には、所定のテキストに含まれる複数のワードそれぞれの重要度の情報が含まれていてもよい。
次に、端末装置100の動作を説明する。以下、図面を参照しながら、端末装置100が実行する情報表示処理を説明する。情報表示処理は、例えば、情報処理サーバ等のサーバが送信する制御情報に従って行われる。情報処理サーバは、コンテンツC1等のコンテンツを配信するサーバである。以下の説明では、端末装置100は、情報処理サーバが配信する制御情報に従って情報表示処理を実行するものとするが、他のサーバが配信する制御情報に従って情報表示処理を実行してもよい。
〔1−1.テキストの表示領域の拡大〕
端末装置100は、情報処理サーバからコンテンツC1に関するデータを取得すると、コンテンツC1を画面に表示する(状態D11)。上述したように、コンテンツC1には、タイル状のコンテンツQC11〜QC15が一列に配置されている。コンテンツQC11〜QC15には、それぞれ、本文の「見出し」が表示されている。図1の状態D11に示すコンテンツQ11の場合、テキストTM21aが、コンテンツQ11が示す質問の本文の見出しである。例えば、コンテンツQ11が示す質問の本文が、「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」であるとする。このとき、テキストTM21aは、例えば、「おにぎりを差し入れとしてどうやって持っていく?」である。
端末装置100は、テキストに対するユーザの操作に応じて他のテキストに変更する。以下の説明では、変更前のテキストのことを第1のテキストということがある。また、変更後のテキストのことを第2のテキストということがある。図1の例であれば、状態D11に示すテキストTM21aが第1のテキストであり、状態D13に示すテキストTM21bが第2のテキストである。端末装置100は、コンテンツC1上の第1のテキストに対するユーザの操作に応じて、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長或いは短縮した第2のテキストに変更する。以下、端末装置100が、第1のテキストを第2のテキストに変更する処理を具体的に説明する。
例えば、ユーザがテキストTM21a(第1のテキスト)の表示領域を広げる操作を実行したとする(状態D12)。図1の状態D12の例では、ユーザは、テキストTM21aが表示されたコンテンツQC11を縦方向にピンチアウトしている。テキストの表示領域を広げる操作は、縦方向へのピンチアウトに限られず、例えば、横方向へのピンチアウトであってもよい。勿論、テキストの表示領域を広げる操作はピンチアウトに限られない。例えば、画面にテキストの表示領域の拡大のためのコントロール(例えば、拡大ボタンや拡大縮小バー)を設け、そのコントロールへの操作をテキストの表示領域を広げる操作としてもよい。
端末装置100は、テキストTM21a(第1のテキスト)の表示領域を広げる操作が実行された場合には、テキストTM21aをテキストTM21b(第2のテキスト)に変更する(状態D13)。テキストTM21bは、テキストTM21aの内容を伸長したテキストである。例えば、テキストTM21bは、テキストTM21a中の所定の箇所にテキストT1、T2、T3を補完したテキストである。テキストTM21aが見出しなのであれば、テキストTM21bはテキストTM21aの本文であってもよい。具体例を挙げると、テキストTM21aが「おにぎりを差し入れとしてどうやって持っていく?」であるとすれば、テキストTM21bは「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」である。
なお、端末装置100は、ユーザの第1のテキストに対する操作量に応じて第2のテキストの情報量(伸長量)を変更してもよい。例えば、ピンチアウトによるコンテンツQC11の拡大量が所定の閾値より小さい場合、端末装置100は、テキストTM21a(第1のテキスト)よりも長く、かつ、テキストTM21aの本文よりも短いテキストを第2のテキストとする。テキストTM21aが削除ベースの見出しであり、端末装置100がテキストTM21aに関する関係情報(例えば、テキストTM21aの本文の係り受け情報)を取得しているのであれば、端末装置100は、関係情報に基づいて削除部分(例えば、木の枝刈り部分)を復元することにより第2のテキストを生成してもよい。
例えば、テキストTM21aが「おにぎりを差し入れとしてどうやって持っていく?」であり、テキストTM21aの本文が「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」であるとする。この場合、端末装置100は、テキストTM21aより少し長い見出しである「おにぎりをバーベキューで差し入れとしてどうやって持っていく?」を第2のテキストとする。
端末装置100は、コンテンツQC11の拡大量に応じて第2のテキストの長さを変化させる。なお、端末装置100は、第1のテキストに追加するテキストを関係情報に付されている重要度に基づいて選択してもよい。例えば、端末装置100は、コンテンツQC11の拡大量に基づき第1のテキストに追加するテキストの量を判別する。そして、端末装置100は、判別した追加量を満たすように、重要度が高い順に第1のテキストに追加するテキストを選択する。なお、コンテンツQC11の拡大量が所定の閾値より大きい場合、端末装置100は、テキストTM21aの本文そのものを第2のテキストとしてもよい。
〔1−2.テキストの表示領域の縮小〕
図1の例では、テキストの表示領域が拡大された場合の処理について述べた。次に、テキストの表示領域が縮小された場合の処理について述べる。図2は、テキストの表示領域が縮小される様子を示す図である。図2の例の場合、テキストTM21bが変更前のテキスト(第1のテキスト)であり、テキストTM21aが変更後のテキスト(第2のテキスト)である。図2の状態D21は、図1の状態D13と同じである。
例えば、ユーザがテキストTM21b(第1のテキスト)の表示領域を縮める操作を実行したとする(状態D22)。図2の状態D22の例では、ユーザは、テキストTM21bが表示されたコンテンツQC11を縦方向にピンチインしている。テキストの表示領域を縮める操作は、縦方向へのピンチインに限られず、例えば、横方向へのピンチインであってもよい。勿論、テキストの表示領域を縮める操作はピンチインに限られない。例えば、画面にテキストの表示領域の縮小のためのコントロール(例えば、縮小ボタンや拡大縮小バー)を設け、そのコントロールへの操作をテキストの表示領域を縮める操作としてもよい。
端末装置100は、テキストTM21b(第1のテキスト)の表示領域を縮める操作が実行された場合には、テキストTM21bをテキストTM21a(第2のテキスト)に変更する(状態D23)。テキストTM21aは、テキストTM21bの内容を短縮したテキストである。例えば、テキストTM21aは、テキストTM21bに含まれるテキストT1、T2、T3を削除したテキストである。テキストTM21bが本文なのであれば、テキストTM21aはテキストTM21bの見出しであってもよい。具体例を挙げると、テキストTM21bが「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」であるとすれば、テキストTM21aは「おにぎりを差し入れとしてどうやって持っていく?」である。
なお、端末装置100は、ユーザの第1のテキストに対する操作量に応じて第2のテキストの情報量(例えば、テキストの短縮量或いは伸長量)を変更してもよい。例えば、ピンチインによるコンテンツQC11の縮小量が所定の閾値より小さい場合、端末装置100は、テキストTM21b(第1のテキスト)よりも短く、かつ、テキストTM21a(例えば、テキストTM21bの最も短い見出し)よりも長いテキストを第2のテキストとする。端末装置100がテキストTM21bに関する関係情報(例えば、本文の係り受け情報)を取得しているのであれば、端末装置100は、関係情報に基づいてテキストTM21bに含まれる一部のテキストを削除する(例えば、木の枝刈りを実行する)ことにより第2のテキストを生成してもよい。
例えば、テキストTM21bが「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」であり、テキストTM21bの最も短い見出しが「おにぎりを差し入れとしてどうやって持っていく?」であるとする。この場合、端末装置100は、テキストTM21aより少し長い見出しである「おにぎりをバーベキューで差し入れとしてどうやって持っていく?」を第2のテキストとする。
端末装置100は、コンテンツQC11の縮小量に応じて第2のテキストの長さを変化させる。なお、端末装置100は、第1のテキストから削除するテキストを関係情報に付されている重要度に基づいて選択してもよい。例えば、端末装置100は、コンテンツQC11の縮小量に基づき第1のテキストから削除するテキストの量を判別する。そして、端末装置100は、判別した削除量を満たすように、重要度が低い順に第1のテキストから削除するテキストを選択する。なお、コンテンツQC11の縮小量が所定の閾値より大きい場合、端末装置100は、テキストTM21bの最も短い見出しを第2のテキストとしてもよい。
〔1−3.テキストの所定位置への情報の補完〕
図1及び図2の例では、テキストの表示領域が拡大及び縮小された場合の処理について述べた。次に、テキストの所定の位置へ情報を補完する処理について述べる。図3は、テキストの所定の位置へ情報が補完される様子を示す図である。図3の例の場合、テキストTM21aが変更前のテキスト(第1のテキスト)であり、テキストTM21cが変更後のテキスト(第2のテキスト)である。図3の状態D31は、図2の状態D23と同じである。
端末装置100は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にテキストを補完した第2のテキストに変更する。
例えば、ユーザがテキストTM21a(第1のテキスト)の所定の位置(文字と文字の間、或いはテキストTM21aに含まれる所定のテキスト上)で、文字間を広げるように或いは所定のテキストを拡大するように、ピンチアウトを実行したとする(状態D32)。この場合、端末装置100は、テキストTM21aをテキストTM21c(第2のテキスト)に変更する(状態D33)。テキストTM21cは、ユーザが操作した位置にテキストT1を補完したテキストである。例えば、テキストTM21aが「おにぎりを差し入れとしてどうやって持っていく?」であるとすれば、テキストTM21cは「おにぎりをバーベキューで差し入れとしてどうやって持っていく?」である。
ここで、テキストTM21aが削除ベースの見出しであり、端末装置100がテキストTM21aに関する関係情報(例えば、テキストTM21aの本文の係り受け情報)を取得しているとする。この場合、端末装置100は、関係情報に基づいて削除部分(例えば、木の枝刈り部分)を復元することにより第2のテキストを生成してもよい。
なお、所定の操作はピンチアウトに限られない。例えば、所定の操作はタップ或いはクリックであってもよい。例えば、図3の状態D33において、ユーザがテキストTM21cの所定の位置(例えば、テキストTM21cに含まれる所定のテキストT1上)で、タップ或いはクリックを実行したとする。この場合、端末装置100は、テキストT1(第3のテキスト)を、テキストT1に関する補足情報をテキストTM21cに付加したテキストに変更する。例えば、テキストT1が“バーベキュー”なのであれば、テキストTM21c中のテキストT1の部分を“弱火で肉や野菜をじっくり焼く料理であるバーベキュー”に置き換える。
〔1−4.テキストの所定位置からの情報の削除〕
図3の例では、テキストの所定の位置へ情報が補完される処理について述べた。次に、テキストの所定の位置からの情報が削除される処理について述べる。図4は、テキストの所定の位置から情報が削除される様子を示す図である。図4の例の場合、テキストTM21cが変更前のテキスト(第1のテキスト)であり、テキストTM21aが変更後のテキスト(第2のテキスト)である。図4の状態D41は、図3の状態D33と同じである。
端末装置100は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にある一部のテキストを短縮或いは削除した第2のテキストに変更する。
例えば、ユーザがテキストTM21c(第1のテキスト)の所定の位置(例えば、テキストTM21cに含まれるテキストT1上)で、フリックやスワイプを実行したとする(状態D42)。この場合、端末装置100は、テキストTM21cをテキストTM21a(第2のテキスト)に変更する(状態D43)。テキストTM21aは、ユーザが操作した位置にあるテキストT1をテキストTM21cから削除したテキストである。例えば、テキストTM21cが「おにぎりをバーベキューで差し入れとしてどうやって持っていく?」であるとすれば、テキストTM21aは「おにぎりを差し入れとしてどうやって持っていく?」である。
ここで、端末装置100がテキストTM21cに関する関係情報(例えば、テキストTM21cの本文の係り受け情報)を取得しているとする。この場合、端末装置100は、関係情報に基づいてテキストTM21cの該当部分のテキストを削除することにより第2のテキストを生成してもよい。
なお、所定の操作はフリックやスワイプに限られない。例えば、所定の操作はピンチインであってもよい。例えば、ユーザがテキストTM21c(第1のテキスト)の所定の位置(例えば、テキストTM21cに含まれるテキストT1上)で、ピンチインを実行したとする。この場合も、端末装置100は、テキストTM21cをテキストTM21a(第2のテキスト)に変更する。テキストTM21aは、ユーザが操作した位置にあるテキストT1(第4のテキスト)をテキストTM21cから削除したテキストである。なお、端末装置100は、第4のテキスト上でピンチインが実行された場合に、第1のテキストから第4のテキストを削除するのではなく、第4のテキストを短縮してもよい。
〔2.配信装置の動作〕
本実施形態の情報表示プログラムは、配信装置により端末装置100に配信される。以下、本実施形態の配信装置の一例である情報処理サーバ10の動作を例に、配信装置の動作を説明する。
図5は、実施形態に係る情報処理サーバ10の動作を示す図である。情報処理サーバ10は、クライアント端末に対して各種サービスを提供するサーバ用ホストコンピュータである。情報処理サーバ10は、端末装置100にコンテンツを配信する。例えば、情報処理サーバ10は、ポータルサイト、ゲーム情報配信サイト、ニュースサイト、オークションサイト、天気予報サイト、ショッピングサイト、ファイナンス(株価)サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、掲示板サイト、ウェブブログなどに関連する情報がタイル状に配置されたコンテンツを端末装置100に配信する。本実施形態の情報処理サーバ10は、ユーザ同士で質問及び回答を行うことが可能な情報共有サービスを提供する。
上述したように、情報処理サーバ10は、情報共有サービスを提供する。情報共有サービスは、ユーザ(質問者)が投稿した質問文に対して、他のユーザ(回答者)が回答文を投稿することで、ユーザ間で知識や知恵の共有を行う。情報処理サーバ10は、端末装置100からの要求に応じて、情報共有サービスに関するコンテンツC1を端末装置100に配信する。端末装置100は、コンテンツC1の配信を受けて、画面にコンテンツC1を表示する。
以下、実施形態1の情報処理サーバ10の動作について説明する。
まず、情報処理サーバ10は、端末装置100からコンテンツC1の配信要求を受け付ける(ステップS1)。コンテンツC1の配信要求を受け付けたら、情報処理サーバ10は、データベースに登録されている複数の質問文それぞれの関係情報を生成する(ステップS2)。例えば、情報処理サーバ10は、質問文TQ21〜TQ23それぞれの関係情報である関係情報F21〜F23を生成する。関係情報は、テキスト(例えば、質問文)に含まれる複数のワードのワード間の関係を示す情報である。例えば、関係情報は、テキストに含まれる複数のワードの係り受け構造を示す情報(以下、係り受け情報)である。
図6は、情報処理サーバ10が関係情報を生成する様子を示す図である。例えば、質問文が「おにぎりをバーベキューで差し入れとして持っていきたいのですが、どうやって持っていくのがよいでしょうか?」であるとする。この場合、情報処理サーバ10は、質問文を構文解析(例えば、係り受け解析)し、例えば、図6の中段に示すような係り受け情報を生成する。情報処理サーバ10は、質問文を形態素解析して係り受け情報を生成してもよい。そして、情報処理サーバ10は解析結果(例えば、係り受け情報)を関係情報として取得する。図6の中段の関係情報は、ワードとワードの係り受け構造を木構造にして視認可能にしたものである。なお、情報処理サーバ10は、質問文に含まれるワードの述語構造を示す情報(以下、述語構造情報という。)を関係情報として取得してもよい。また、情報処理サーバ10は、質問文に含まれる複数のワードそれぞれの重要度を判別してもよい。そして、情報処理サーバ10は、関係情報に重要度の情報を含めてもよい。
そして、情報処理サーバ10は、関係情報F21〜F23に基づいて質問文TQ21〜TQ23それぞれの見出しである見出しTM21〜TM23を生成する(ステップS3)。情報処理サーバ10は、関係情報に基づいて質問文の一部を削除する(例えば、木の枝刈りをする)ことにより見出し生成する。
続いて、情報処理サーバ10は、ステップS3で生成した見出しに基づいてコンテンツC1を生成する(ステップS4)。そして、情報処理サーバ10は、制御情報とともにコンテンツC1を端末装置100に送信する(ステップS5)。制御情報には、見出しの本文や関係情報が含まれていてもよい。
本実施形態によれば、情報表示プログラムは、コンテンツC1上の第1のテキストに対するユーザの操作に応じて、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長或いは短縮した第2のテキストに変更する。そのため、ユーザは内容を素早く知ることが可能である上に、内容を詳細に知ることも可能になる。結果として、ユーザは、高い満足度を得ることができる。
〔3.情報処理サーバの構成例〕
以上、本実施形態の配信装置の動作について述べたが、以下、本実施形態の配信装置の一例である情報処理サーバ10の構成を説明する。
情報処理サーバ10は、端末装置100等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。情報処理サーバ10は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、情報処理サーバ10は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。情報処理サーバ10が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つの情報処理装置(情報処理サーバ)とみなすことができる。
上述したように、情報処理サーバ10は、端末装置100とネットワークを介して接続されている。ネットワークは、LAN(Local Area Network)、WAN(Wide Area Network)、電話網(携帯電話網、固定電話網等)、地域IP(Internet Protocol)網、インターネット等の通信ネットワークである。ネットワークには、有線ネットワークが含まれていてもよいし、無線ネットワークが含まれていてもよい。
図7は、実施形態に係る情報処理サーバ10の構成例を示す図である。情報処理サーバ10は、通信部11と、記憶部12と、制御部13と、を備える。なお、図7に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部11は、外部の装置と通信する通信インタフェースである。通信部11は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部11は、NIC(Network Interface Card)等のLANインタフェースであってもよいし、USB(Universal Serial Bus)ホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部11は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部11は、情報処理サーバ10の通信手段として機能する。通信部11は、制御部13の制御に従って端末装置100と通信する。
記憶部12は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部12は、情報処理サーバ10の記憶手段として機能する。記憶部12は、質問情報データベース121、及びモデルデータベース122を記憶する。
質問情報データベース121には、質問情報が登録される。図8は、質問情報データベース121に登録される情報の一例を示す図である。質問情報データベース121には、「質問ID(Identifier)」、「カテゴリ」、「質問文」、「質問者情報」、および「回答」といった項目を有する情報が登録される。
「質問ID」は、質問サイトでなされた質問を識別するための識別子である。また、「カテゴリ」は、質問IDで識別される質問のカテゴリである。例えば、「カテゴリ」は、音楽、健康、ビジネスといった質問の分類である。また、「質問文」は、質問IDで識別される質問の質問文である。「質問者情報」は、質問IDで識別される質問者の情報である。例えば、「質問者情報」は、質問者の識別情報(例えば、ユーザID)やユーザ属性情報(例えば、デモグラフィック情報やサイコグラフィック情報)である。具体例を挙げると、ユーザ属性情報は、ユーザ(例えば質問者や回答者)の年齢、職業、収入、資産、住所、勤務先の住所、使用言語数、家族構成、友人関係、ライフサイクル、価値観、ライフスタイル、性格、好み、及びこれらの変化の情報である。また、ユーザ属性情報には、ユーザの検索履歴やサービス利用履歴が含まれていてもよい。勿論、ユーザ属性情報は上記の情報に限定されない。
また、「回答」は、質問IDで識別される質問への回答の情報である。「回答」の項目には、「回答文」、「回答者情報」、および「評価」といった項目を有する情報が登録される。「回答文」は、質問IDで識別される質問への回答文である。「回答者情報」は、回答文を投稿した回答者の情報である。例えば、「回答者情報」は、回答者の識別情報(例えば、ユーザID)や属性情報(例えば、デモグラフィック情報やサイコグラフィック情報)である。また、「評価」は、回答者が行った回答への評価の情報である。例えば、評価は、ベストアンサーを得たか否か、回答の優良度を示すスコア(例えば、評価を示す星の数や“いいね”の数等)である。なお、図8の例では、1つの質問につき1つの「回答」の項目しか設けられていないが、1つの質問につき複数の「回答」の情報が設けられていてもよい。
例えば、図8に示す例では、質問ID「Q21」、カテゴリ「CT1」、質問文「TQ21」、質問者情報「UQ21」、回答文「TA21」、回答者情報「UA21」、及び評価「E21」といった情報が対応付けて登録されている。このような情報は、例えば、質問ID「Q21」が示す質問情報に、「CT1」が示すカテゴリと、「TQ21」が示す質問文と、「UQ21」が示す質問者情報と、「TA21」が示す回答文と、「UA21」が示す回答者情報と、「E21」が示す評価と、が含まれる旨を示す。なお、図8に示す例では、質問情報データベース121に登録される情報として、「Q21〜Q23」、「CT1〜CT3」、「TQ21〜TQ23」、「UQ21〜UQ23」、「TA21〜TA23」、「UA21〜UA23」、「E21〜E23」といった概念的な情報を示したが、実際には、テキストデータやバイナリデータが登録されることとなる。
図7に戻り、モデルデータベース122には、情報処理サーバ10が有するモデルのデータが登録される。図9は、モデルデータベース122に登録される情報の一例を示す図である。図9に示す例では、モデルデータベース122には、「モデルID」、および「モデルデータ」といった情報が登録されている。
ここで、「モデルID」は、各モデルを識別するための情報である。また、「モデルデータ」は、対応付けられた「モデルID」が示すモデルのデータであり、例えば、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報である。
例えば、図9に示す例では、モデルID「4001」およびモデルデータ「M1」といった情報が対応付けて登録されている。このような情報は、例えば、「4001」が示すモデルのデータが「M1」である旨を示す。なお、図9に示す例では、モデルデータベース122に登録される情報として、「M1〜M3」といった概念的な情報を記載したが、実際には、モデルの構造や接続係数を示す文字列や数値等が登録されることとなる。以下、M1〜M3等を総称してモデルMという。
モデルMは、第1の学習用テキストに含まれる複数のワードのワード間の関係を示す関係情報と、第1の学習用テキストに対応するテキストであって生成条件を満たす第2の学習用テキストと、に基づいて、入力テキスト(例えば、質問文)を入力した時に入力テキストに対応するテキストであって生成条件を満たす出力テキスト(例えば、見出し)を出力するよう学習したモデルである。このようなモデルMは、入力テキストを入力する入力層と、出力テキストを出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重み(すなわち、接続係数)とに基づく演算を行うことにより、入力層に入力されたテキストに応じて、入力テキストに対応するテキストであって生成条件を満たすテキストを出力層から出力するよう、コンピュータを機能させるためのモデルである。
ここで、モデルMが「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルMが含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、モデルMがDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルMが含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
情報処理サーバ10は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、出力する情報の算出を行う。具体的には、モデルMは、入力テキストが入力された場合に、入力テキストに対応するテキストであって生成条件を満たす出力テキストを出力するように係数が設定される。例えば、情報処理サーバ10は、第2の学習用テキストの関係情報と、第1の学習用テキストをモデルMに入力して得られるテキストの関係情報と、の類似度に基づいて係数を設定する。情報処理サーバ10は、このようなモデルMを用いて、入力テキスト(例えば、質問文)から出力テキスト(例えば、見出し)を生成する。
なお、上記例では、モデルMが、入力テキスト(例えば質問文)が入力された場合に、入力テキストに対応するテキストであって生成条件を満たすテキスト(例えば、見出し)を出力するモデル(以下、モデルVという。)である例を示した。しかし、実施形態に係るモデルMは、モデルVにデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。
また、情報処理サーバ10がGAN(Generative Adversarial Networks)を用いた学習処理或いは生成処理を行う場合、モデルMは、GANの一部を構成するモデルであってもよい。
図7に戻り、制御部13は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報処理サーバ10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部13は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
また、制御部13は、記憶部12に記憶されるモデルMに従った情報処理により、モデルMの入力層に入力された入力テキストに対し、モデルMが有する係数(すなわち、モデルMが学習した各種の特徴に対応する係数)に基づく演算を行い、モデルMの出力層から出力テキストを出力する。
制御部13は、図7に示すように、受付部131と、学習部132と、生成部133と、送信部134と、を備える。制御部13を構成するブロック(受付部131〜送信部134)はそれぞれ制御部13の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部13は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
受付部131は、端末装置100からコンテンツの取得要求を受け付ける。例えば、受付部131は、アプリのデータの取得要求を受け付ける。コンテンツがウェブページの情報なのであれば、受付部131は、ウェブページの取得要求として、HTTPリクエストを受け付ける。
学習部132は、モデルMの学習を行い、学習したモデルMをモデルデータベース122に格納する。より具体的には、学習部132は、入力テキストをモデルMに入力した際に、モデルMが入力テキストに対応するテキストであって生成条件を満たす出力テキストを出力するように、モデルMの接続係数の設定を行う。すなわち、学習部132は、入力テキストをモデルMに入力した際に、モデルMが入力テキストに対応するテキストであって生成条件を満たす出力テキストを出力するように、モデルMの学習を行う。
例えば、学習部132は、モデルMが有する入力層のノードに第1の学習用テキスト(例えば、質問文)を入力し、各中間層を辿ってモデルMの出力層までデータを伝播させることで、第1の学習用テキストに対応するテキストであって生成条件を満たすテキストを出力させる。そして、学習部132は、モデルMが実際に出力したテキストと、学習データに含まれる第2の学習用テキスト(例えば、見出し)との差に基づいて、モデルMの接続係数を修正する。例えば、学習部132は、バックプロパゲーション等の手法を用いて、接続係数の修正を行ってもよい。このとき、学習部132は、第2の学習用テキストの関係情報と、第1の学習用テキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて接続係数の修正を行ってもよい。また、学習部132は、第2の学習用テキストの分散表現となるベクトルと、モデルMが実際に出力したテキストの分散表現となるベクトルとのコサイン類似度に基づいて、接続係数の修正を行ってもよい。
なお、学習部132は、いかなる学習アルゴリズムを用いてモデルMを学習してもよい。例えば、学習部132は、ニューラルネットワーク、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いて、モデルMを学習してよい。
生成部133は、入力テキストをモデルMに入力することにより、入力テキストに対応するテキストであって生成条件を満たす出力テキストを生成する。このとき、出力テキストは、所定の文字数以下のテキストであってもよい。また、生成部133は、入力テキスト、出力テキスト、及びそれらテキストの関係情報に基づいて、コンテンツC1を生成する。
送信部134は、受付部131がコンテンツC1の取得要求を受け付けた場合に、コンテンツC1の情報を端末装置100に配信する。具体的には、送信部134は、記憶部12からコンテンツC1の情報を取得し、コンテンツC1の情報を端末装置100に配信する。このとき、コンテンツC1の情報には、制御情報が含まれていてもよい。
制御情報は、JavaScript(登録商標)等のスクリプト言語で記載されたプログラムであってもよい。勿論、制御情報は、スクリプト言語以外のコンピュータ言語で記載された情報であってもよい。例えば、制御情報は、HTML、XML等のマークアップ言語で記載された情報であってもよいし、CSS、CSS3等のスタイルシート言語で記載された情報であってもよい。また、制御情報は、Java(登録商標)、Swift、C言語、C++等のプログラミング言語で記載され、コンパイル等されたプログラム(例えば、アプリそのもの)であってもよい。なお、最終的に端末装置100がプログラムを実行できるのであれば、制御情報は、コンパイルされたプログラムでなくてもよい。その他、制御情報は、インタプリタ言語(例えば、スクリプト言語)、機械言語、或いは中間言語の形式で提供されるデータ(プログラム)であってもよい。
なお、制御情報には、コンテンツQC11〜QC15の表示指示の情報が含まれていてもよい。表示指示には、コンテンツQC11〜QC15の配置位置やコンテンツQC11〜QC15の表示領域の設定値などが含まれていてもよい。例えば、表示指示には、コンテンツC1の上端を基準としたコンテンツQC11〜QC15の表示領域の位置や大きさ等を示す情報が含まれていてもよい。また、制御情報には、ユーザが所定の操作をした場合にコンテンツQC11〜QC15の表示態様をどのように変更するかを示す情報が含まれていてもよい。例えば、ユーザがコンテンツQC11〜QC15をピンチインやピンチアウトした場合に、コンテンツQC11〜QC15に表示されている第1のテキストを第2のテキストに変更することを示す情報が含まれていてもよい。また、表示指示には、他のページへの遷移の契機となるユーザの操作や端末装置100の状態等を示す情報が含まれていてもよい。
〔4.端末装置の構成例〕
次に、本実施形態の情報表示装置の一例である端末装置100の構成について説明する。端末装置100は、ユーザがコンテンツの閲覧に使用する情報表示装置である。端末装置100は、例えば、スマートフォン、タブレット、携帯電話等の通信端末である。通信機能を備えるのであれば、端末装置100は、パーソナルコンピュータ(ノートPC、デスクトップPC)、PDA(Personal Digital Assistant)等の情報処理端末であってもよい。この場合、情報処理端末も通信端末の一種である。端末装置100は、ネットワークを介して情報処理サーバ10と接続する。
図10は、実施形態に係る端末装置100の構成例を示す図である。端末装置100は、通信部110と、入力部120と、記憶部130と、出力部140と、制御部150と、を備える。なお、図10に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部110は、外部の装置と通信する通信インタフェースである。通信部110は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部110は、NIC等のLANインタフェースであってもよいし、USBホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部110は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部110は、端末装置100の通信手段として機能する。通信部110は、制御部150の制御に従って情報処理サーバ10と通信する。
入力部120は、外部から各種入力を受け付ける入力装置である。例えば、入力部120は、キーボードやマウスや操作キー等、ユーザが各種操作を行うための操作装置である。入力部120は、端末装置100の入力手段として機能する。なお、端末装置100にタッチパネルが採用される場合には、タッチパネルも入力部120に含まれる。この場合、ユーザは、指やスタイラスで画面をタッチすることにより各種操作を行う。
記憶部130は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部130は、端末装置100の記憶手段として機能する。記憶部130は、アプリケーションのデータが格納されている。アプリケーションのデータは、ウェブブラウザのデータであってもよい。
出力部140は、音、光、振動、画像等、外部に各種出力を行う装置である。出力部140は、端末装置100の出力手段として機能する。出力部140は、各種情報を表示する表示装置を備える。表示装置は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイである。なお、端末装置100にタッチパネルが採用される場合には、表示装置(以下、画面という。)は入力部120と一体であってもよい。出力部140は、制御部150の制御に従って、画面に画像を表示する。
制御部150は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、端末装置100内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部150は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
制御部150は、図10に示すように、表示部151と、表示制御部152と、を備える。制御部150を構成するブロック(表示部151と、表示制御部152)はそれぞれ制御部150の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部150は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
表示部151は、第1のテキストを含むコンテンツC1を画面に表示する。
表示制御部152は、コンテンツC1上のユーザ操作(例えば、コンテンツC1上の第1のテキストに対するユーザの操作)に応じて、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長或いは短縮した第2のテキストに変更する。
表示制御部152は、コンテンツC1上の第1のテキストを、ユーザの第1のテキストに対する操作量に応じた情報量に内容が伸長或いは短縮された第2のテキストに変更する。
表示制御部152は、第1のテキストの表示領域を広げる操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長した第2のテキストに変更する。
表示制御部152は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にテキストを補完した第2のテキストに変更する。
表示制御部152は、第1のテキストの所定の位置でピンチアウトが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にテキストを補完した第2のテキストに変更する。
表示制御部152は、第1のテキストに含まれる第3のテキスト上でタップ或いはクリックが実行された場合には、コンテンツC1上の第1のテキストを、第3のテキストに関する補足情報を第1のテキストに付加した第2のテキストに変更する。
表示制御部152は、第1のテキストの表示領域を縮める操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの内容を短縮した第2のテキストに変更する。
表示制御部152は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にある一部のテキストを短縮或いは削除した第2のテキストに変更する。
表示制御部152は、第1のテキストの所定の位置でピンチインが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にある一部のテキストを短縮或いは削除した第2のテキストに変更する。
表示制御部152は、第1のテキストに含まれる第4のテキスト上でフリック或いはスワイプが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストから第4のテキストを削除した第2のテキストに変更する。
〔5.情報処理サーバの処理フロー〕
次に、情報処理サーバ10が実行する処理の手順について説明する。図11は、情報送信処理の一例を示すフローチャートである。
まず、情報処理サーバ10は、ユーザが操作する端末装置100からコンテンツC1のリクエスト(配信要求)を受信したか判別する(ステップS11)。リクエストを受信していない場合(ステップS11:No)、情報処理サーバ10は、リクエストを受信するまでステップS11を繰り返す。
リクエストを受信した場合(ステップS11:Yes)、情報処理サーバ10は、質問情報データベース121から質問文を取得する(ステップS12)。そして、情報処理サーバ10は、質問文の関係情報を取得する(ステップS13)。そして、情報処理サーバ10は、関係情報に基づいて質問文の見出しを生成する(ステップS14)。
そして、情報処理サーバ10は、ステップS14で生成した見出しを含むコンテンツC1を生成する(ステップS15)。そして、情報処理サーバ10は、ステップS15で生成したコンテンツC1を端末装置100に送信する(ステップS16)。このとき、情報処理サーバ10は、コンテンツC1とともに制御情報を送信してもよい。制御情報には関係情報が含まれていてもよい。送信が完了したら、情報処理サーバ10は、ステップS11に戻り、端末装置100からコンテンツのリクエストを受信するまで待機する。
〔6.端末装置の処理フロー〕
次に、制御情報を実行した端末装置100が実行する処理の手順について説明する。図12は、情報表示処理の一例を示すフローチャートである。
端末装置100は、ユーザの操作に応じて情報処理サーバ10にコンテンツC1の配信を要求する。そして、端末装置100は、情報処理サーバ10からコンテンツC1を受信する(ステップS21)。そして、端末装置100は、コンテンツC1を画面に表示する(ステップS22)。
次に、端末装置100は、端末装置100に対するユーザの操作があったか判別する(ステップS23)。ユーザの操作がない場合(ステップS23:No)、端末装置100は、ユーザの操作があるまでステップS23を繰り返す。
ユーザの操作があった場合(ステップS23:Yes)、端末装置100は、ユーザの操作がコンテンツC1に含まれるテキストへの操作か判別する(ステップS24)。例えば、端末装置100は、コンテンツC1に含まれるテキストにピンチアウト、ピンチイン、フリック、スワイプ等の操作が行われたか判別する。ユーザの操作がテキストへの操作でない場合(ステップS24:No)、端末装置100は、ステップS26に処理を進める。
ユーザの操作がテキストへの操作の場合(ステップS24:Yes)、端末装置100は、ユーザが操作したテキストを変更する(ステップS25)。例えば、端末装置100は、ユーザが操作したテキストを、テキストの内容を伸長或いは短縮した他のテキストに変更する。変更が完了したら、端末装置100は、処理をステップS23に戻す。
次に、端末装置100は、ユーザの操作が遷移操作(例えば、リンクのタップ)か判別する(ステップS26)。ユーザの操作が遷移操作でない場合(ステップS26:No)、端末装置100は、ステップS23に処理を戻す。ユーザの操作が遷移操作の場合(ステップS26:Yes)、端末装置100は、コンテンツのリクエストを送信する(ステップS27)。リクエストの送信が終了したら、端末装置100は、ステップS21に処理を戻し、ステップS21〜S27の処理を繰り返す。
〔7.変形例〕
上述の実施形態は一例を示したものであり、種々の変更及び応用が可能である。
例えば、上述の実施形態では、第1のテキストは質問文や質問文の見出しであるものとした。しかし、第1のテキストは質問文や質問文の見出しに限られない。例えば、第1のテキストは回答文や回答文の見出しであってもよい。勿論、第1のテキストは、質問文に関するテキストや回答文に関するテキストでなくてよい。例えば、第1のテキストは、記事の本文やその見出しであってもよい。同様に、第2から第4のテキストについても第1のテキストと同様である。
また、上述の実施形態では、コンテンツC1(第1のコンテンツ)は情報共有サービスに関するコンテンツであるものとしたが、コンテンツC1は情報共有サービスに関するコンテンツに限られない。例えば、コンテンツC1は、記事の見出しがリストされたコンテンツであってもよい。
また、上述の実施形態では、端末装置100は、ピンチアウト、ピンチイン、フリック、スワイプ、タップ、クリック等のユーザの操作が行われた場合に第1のテキストを変更した。しかし、端末装置100は、上述した操作以外の操作が行われた場合にも第1のテキストを変更してもよい。このとき、ユーザの操作は、ダブルタップ、ロングタップ、ドラッグ、タッチアンドホールド、シェイク、ピーク(Peek)、ポップ(Pop)であってもよい。なお、タッチアンドホールドは、端末装置100の画面に指をあてながらタップしたままの状態を維持する操作である。また、シェイクは端末装置100を振る操作のことである。ピークは、画面を軽くプレスする操作であり、ポップは画面を強くプレスする操作である。
例えば、端末装置100がシェイクされたとする。この場合、端末装置100は、コンテンツC1上のテキストをデフォルトの表示に戻してもよい。例えば、第1のテキストへのユーザの操作によってコンテンツC1上の第1のテキストが第2のテキストに変更されていたとする。この場合、端末装置100は、端末装置100がシェイクされたら、第2のテキストを第1のテキストに戻す。
また、端末装置100は、ユーザがコンテンツC1上の所定のテキスト上で指を左(右)にスワイプしたときに所定のテキストの右(左)側に情報を増やしてもよい。例えば、コンテンツC1上に「おにぎりを差し入れとしてどうやって持っていく?」のテキストがあるとする。このテキスト上でユーザが指を右にスワイプしたとすると、端末装置100はこのテキストの左に「バーベキューで」を付与する。或いは、上記所定のテキスト上でユーザが指を左にスワイプしたとすると、このテキストの右に「ラップで十分?」を付与する。
なお、端末装置100の出力部140は、ユーザの画面のタッチを検知する入力部120と一体となってタッチパネル式の画面を構成していてもよい。この場合、タッチを検知する入力部120は、感圧センサーを備え、ユーザが画面を押し込んだか否かを検知可能であってもよい。より具体的には、入力部120は、ユーザが指やスタイラスで画面を強めに押し込んだ時に、画面上の押し込まれた位置と押し込み圧力の大きさを検知し、端末装置100を制御する制御部150に位置と圧力の情報を出力する。なお、入力部120は、押し込まれた面積を検知し、制御部150に面積の情報を出力するよう構成されていてもよい。なお、感圧センサーは、フォースセンサー、3Dタッチセンサー等と言い換えることが可能である。
以下の説明では、ユーザが画面を押し込む操作のことを押し込み操作という。上述したピークやポップも押し込み操作の一種である。ここで、押し込み操作とは、例えば、ユーザが画面を強くタッチすることで、端末装置100に通常のタッチとは異なる動作をさせる操作のことである。或いは、押し込み操作とは、例えば、所定値(例えば、後述の第1の閾値或いは第2の閾値)より大きな圧力を伴うユーザのタッチパネル操作のことである。なお、押し込み操作は、端末装置100が所定値以上の圧力を検出した際のユーザの操作ということも可能である。押し込み操作は、プレス操作、フォースタッチ、3Dタッチ、感圧タッチ、強タッチ、深いタッチ等と言い換えることができる。また、以下の説明では、ユーザが画面を触れる操作をタッチ操作という。タッチ操作は、軽いタッチ、浅いタッチ、通常のタッチ等と言い換えることができる。
端末装置100の入力部は、押し込み圧力の大きさを、例えば、0〜1の範囲の値で検出するよう構成されていてもよい。このとき、入力部が検出可能な最大の圧力の値が1、非加圧時の値が0であってもよい。そして、端末装置100は、押し込み圧力の大きさに基づいて、ユーザがタッチ操作を行ったか、押し込み操作を行ったかを判別してもよい。例えば、端末装置100は、タッチ操作と押し込み操作を切り分ける第1の閾値を記憶し、押し込み圧力の大きさが第1の閾値より小さい場合には、ユーザが画面をタッチ操作したと判別し、押し込み圧力の大きさが第1の閾値より大きい場合には、ユーザが画面を押し込み操作したと判別する。入力部が押し込み圧力の大きさを0〜1の範囲の値で検出するのであれば、第1の閾値は、例えば、0.3である。勿論、第1の閾値は0.3より大きくてもよいし、小さくてもよい。
また、押し込み操作は、押し込み圧力の大きさの違いによって区別されていてもよい。例えば、端末装置100は、ユーザが弱い圧力、例えば、第1の閾値より大きく第2の閾値より小さい圧力で画面を押し込んだ場合に、弱い押し込み操作(第1の押し込み操作)がされたと判別してもよい。また、端末装置100は、ユーザが強い圧力、例えば、第2の閾値より大きな圧力で画面を押し込んだ場合に、強い押し込み操作(第2の押し込み操作)がされたと判別してもよい。第2の閾値は第1の閾値より大きな値である。弱い押し込み操作は、弱プレス、軽プレス、ピーク(Peek)等と言い換えることができる。強い押し込み操作は、強プレス、重プレス、ポップ(Pop)等と言い換えることができる。端末装置100は、ユーザが弱い押し込み操作を行ったか、強い押し込み操作を行ったかに基づいて動作を変更してもよい。以下の説明に登場する「押し込み操作」の記載は、適宜、「弱い押し込み操作」或いは「強い押し込み操作」に置き換え可能である。
なお、第1の閾値、及び第2の閾値は、ユーザが端末装置100に設定可能であってもよい。また、第1の閾値、及び第2の閾値は、ウェブページやアプリケーションプログラムに組み込まれていてもよい。また、第1の閾値、及び第2の閾値は、情報処理サーバ10から配信される制御情報に含まれていてもよい。
端末装置100は、画面上の第1のテキストが位置する場所に対して押し込み操作が行われた場合に、第1のテキストを第2のテキストに変更してもよい。第2のテキストは、第1のテキストの内容を伸長したテキストであってもよいし、第1のテキストの内容を短縮したテキストであってもよい。このとき、端末装置100は、第1のテキスト中の押し込まれている場所にある単語に比重をおいて第1のテキストの内容を伸長或いは短縮してもよい。例えば、端末装置100は、第1のテキスト中の押し込まれている場所にある単語に関する記載が変更前の記載に比べて増えるように第1のテキストの内容を伸長或いは短縮する。なお、これらの処理は、押し込み操作以外にも、ロングタップ(長押し)やダブルタップが行われた場合にも適用可能である。
また、端末装置100は、ユーザが画面上の第1のテキストを2本の指で押し込み操作した場合に、第1のテキストを、押し込んだ位置にある2つの単語に関する情報が補足された第2のテキストに変更してもよい。或いは、端末装置100は、ユーザが画面上の第1のテキストを2本の指で押し込み操作した場合に、第1のテキストとは別に、2つの単語に関する要約を画面に表示してもよい。また、端末装置100は、ユーザが画面上の第1のテキストを2本の指で押し込み操作した場合に、第1のテキストを、押し込んだ位置にある2つの単語間のフレーズに関する情報が補足された第2のテキストに変更してもよい。或いは、端末装置100は、ユーザが画面上の第1のテキストを2本の指で押し込み操作した場合に、第1のテキストとは別に、2つの単語間のフレーズに関する要約を画面に表示してもよい。これらの処理は、押し込み操作以外にも、2本の指で単に画面がタッチされた場合にも適用可能である。
また、端末装置100は、画面上の第1のテキストが位置する場所に対して押し込み操作が行われた場合に、押し込み操作が行われている間のみ、第1のテキストを第2のテキストに変更してもよい。或いは、端末装置100は、画面上の第1のテキストが位置する場所に対して押し込み操作が行われた場合に、押し込み操作が行われている間のみ、押し込んだ位置にある単語の補足情報を第1のテキストとは別に画面に表示してもよい。或いは、端末装置100は、画面上の第1のテキストが位置する場所に対して押し込み操作が行われた場合に、押し込み操作が行われている間のみ、第1のテキスト中の、押し込んだ位置にある単語の前、後、或いは前後にテキストを挿入してもよい。挿入するテキストは、本文から第1のテキストを生成する過程で本文から削除されたテキストであってもよい。なお、これらの処理は、押し込み操作以外にも、ロングタップ(長押し)やダブルタップが行われた場合にも適用可能である。
本実施形態の情報処理サーバ10を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムまたはデータ(例えば、モデルM)を、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムまたはデータをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、情報処理サーバ10の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部13或いは制御部150)であってもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔8.ハードウェア構成〕
実施形態及び変形例に係る情報処理サーバ10或いは端末装置100は、例えば図13に示すような構成のコンピュータ1000によっても実現可能である。図13は、情報処理サーバ10或いは端末装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU(Central Processing Unit)1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インタフェース(I/F)1500、入出力インタフェース(I/F)1600、及びメディアインタフェース(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インタフェース1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インタフェース1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インタフェース1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インタフェース1600を介して出力装置へ出力する。
メディアインタフェース1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインタフェース1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理サーバ10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM)に基づいた処理を実行することにより、制御部13或いは制御部150を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM)を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムまたはデータ(例えば、モデルM)を取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔9.効果〕
上述したように、端末装置100は、第1のテキストを含むコンテンツを画面に表示する。そして、端末装置100は、コンテンツC1上のユーザ操作(例えば、コンテンツC1上の第1のテキストに対するユーザの操作)に応じて、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長或いは短縮した第2のテキストに変更する。ユーザは内容を素早く知ることが可能である上に、内容を詳細に知ることも可能になる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、コンテンツC1上の第1のテキストを、ユーザの第1のテキストに対する操作量に応じた情報量に内容が伸長或いは短縮された第2のテキストに変更する。これにより、操作量に応じてテキストの長さが変化するので、ユーザはテキストの内容を把握しやすい。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストの表示領域を広げる操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの内容を伸長した第2のテキストに変更する。これにより、ユーザはテキストの内容を詳細に把握できる。結果として、ユーザは高い満足度を得ることができる。
表示制御手順は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にテキストを補完した第2のテキストに変更する。これにより、ユーザはテキスト中の詳細に知りたい部分のみ詳細に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストの所定の位置でピンチアウトが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にテキストを補完した第2のテキストに変更する。これにより、ユーザはテキスト中の詳細に知りたい部分のみ詳細に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストに含まれる第3のテキスト上でタップ或いはクリックが実行された場合には、コンテンツC1上の第1のテキストを、第3のテキストに関する補足情報を第1のテキストに付加した第2のテキストに変更する。これにより、ユーザはテキスト中の詳細に知りたい部分のみ詳細に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストの表示領域を縮める操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの内容を短縮した第2のテキストに変更する。これにより、ユーザはテキストの内容を端的に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキスト上の所定の位置で所定の操作が実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にある一部のテキストを短縮或いは削除した第2のテキストに変更する。これにより、ユーザはテキストの内容を端的に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストの所定の位置でピンチインが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストの所定の位置にある一部のテキストを短縮或いは削除した第2のテキストに変更する。これにより、ユーザはテキストの内容を端的に把握できる。結果として、ユーザは高い満足度を得ることができる。
端末装置100は、第1のテキストに含まれる第4のテキスト上でフリック或いはスワイプが実行された場合には、コンテンツC1上の第1のテキストを、第1のテキストから第4のテキストを削除した第2のテキストに変更する。これにより、ユーザはテキストの内容を端的に把握できる。結果として、ユーザは高い満足度を得ることができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、表示部は、表示手段や表示回路に読み替えることができる。同様に、表示制御部は、表示制御手段や表示制御回路に読み替えることができる。