記事配置決定装置
【課題】 記事の重要度に応じて、適切にコンテンツを配置することのできる記事配置決定装置を提供することを目的とする。
【手段】 仮想記事領域生成手段2は、記録部4に記録された各記事の重要度6に基づいた面積を有する仮想記事領域を生成する。仮想記事領域配置手段10は、生成された仮想記事領域を、仮想平面上に配置する。仮想バネ設定手段12は、記録部4に記録された記事間の関連度に応じたバネ定数を有する仮想バネを、対応する仮想記事領域間に設定する。仮想記事領域配置決定手段16は、力合計算出手段による合計力が小さくなるように、仮想平面上に配置された仮想記事領域の配置を変更して、決定する。記事領域配置決定手段18は、決定された仮想記事領域の配置に基づいて、記事領域の配置を決定する。
【手段】 仮想記事領域生成手段2は、記録部4に記録された各記事の重要度6に基づいた面積を有する仮想記事領域を生成する。仮想記事領域配置手段10は、生成された仮想記事領域を、仮想平面上に配置する。仮想バネ設定手段12は、記録部4に記録された記事間の関連度に応じたバネ定数を有する仮想バネを、対応する仮想記事領域間に設定する。仮想記事領域配置決定手段16は、力合計算出手段による合計力が小さくなるように、仮想平面上に配置された仮想記事領域の配置を変更して、決定する。記事領域配置決定手段18は、決定された仮想記事領域の配置に基づいて、記事領域の配置を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数の記事をその重要度に応じて、適切に自動配置する装置に関するものである。
【背景技術】
【0002】
インターネットを介して、サーバ装置に記録されているコンテンツを、端末装置にて閲覧することが行われている。この際、閲覧に使用される端末装置としては、PC、スマートフォン、タブレットなどがあり、その画面の大きさも様々である。
【0003】
このため、PCのような大画面を有する機器向けに最適に配置したニュース記事などを、スマートフォンなどの小画面しかない機器で閲覧すると、記事全体が表示されなかったり、全体を表示しようとすると極端に文字を小さくしなければならないという問題があった。
【0004】
また、閲覧する端末装置が決まっていたとしても、記事の配置を人間が手作業で決定することは煩わしかった。
【0005】
そのため、コンテンツを自動的に配置するための装置が提案されている。たとえば、特許文献1には、コンテンツの再配置を自動的に行う装置が開示されている。この装置では、紙面のテーマに対応したコンテンツを検索し、再配置することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−318143号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の装置は、一旦配置された記事を入れ替えたい時などに、その自動的な再配置を行うものであり、最初からレイアウトを決定するものではない。また、記事の重要度に応じて、適切な記事の配置を自動的に決定することはできなかった。
【0008】
この発明は、上記のような問題点を解決して、記事の重要度に応じて、適切にコンテンツを配置することのできる記事配置決定装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
(1)(2)この発明に係る記事配置決定装置は、平面上に複数の記事を配置する記事配置決定装置であって、複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段とを備えている。
【0010】
したがって、仮想バネの合計力に基づいて、重要度と関連度の観点から好ましい記事配置を決定することができる。
【0011】
(3)この発明に係る記事配置決定装置は、仮想平面上に配置された各仮想記事領域間に配置された仮想バネの引力の合計値を算出する力合計算出手段をさらに備え、仮想記事領域配置決定手段は、仮想記事領域を仮想平面に配置する仮想記事領域配置手段と、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計値が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置変更決定手段とを備えている。
【0012】
したがって、配置を変えながら、バネの合計力の変化を見て、適切な配置を選択することができる。
【0013】
(4)この発明に係る記事配置決定装置は、仮想記事領域生成手段が、前記仮想記事領域として、各記事の重要度に応じた面積を有する円を生成することを特徴としている。
【0014】
したがって、記事配置のシミュレーションを容易に行うことができる。
【0015】
(5)この発明に係る記事配置決定装置は、仮想記事領域配置手段が、最も重要度の高い仮想記事領域を、記事を配置する平面上の右上または左上に固定して配置することを特徴としている。
【0016】
したがって、注目度の高い場所に、重要度の高い記事を配置することができる。
【0017】
(6)この発明に係る記事配置決定装置は、仮想記事領域配置手段が、関連度の大きい仮想記事領域の対から順に、仮想記事領域を配置していくことを特徴としている。
【0018】
したがって、関連度の大きい記事を離さずに配置することが可能となる。
【0019】
(7)この発明に係る記事配置決定装置は、仮想バネ設定手段が、隣接して接した状態にある仮想記事領域間においては、引力が生じないように仮想バネを設定することを特徴としている。
【0020】
したがって、両仮想記事領域を離そうとした場合には引力が働くことになり、この引力の合計の大きさを小さくすることで、適切な配置を選択することができる。
【0021】
(8)この発明に係る記事配置決定装置は、仮想バネ設定手段が、各記事間の関連度が大きいほどバネ定数を大きくすることを特徴としている。
【0022】
したがって、関連度の高い記事であるほど、離そうとすると大きな引力が働くようにシミュレーションすることができる。
【0023】
(9)この発明に係る記事配置決定装置は、仮想記事領域配置変更決定手段が、最も引力の大きい仮想バネに関連する仮想記事領域に着目して、配置変更を行うことを特徴としている。
【0024】
したがって、配置変更により、合計力が小さくなる可能性が高くなる。
【0025】
(10)(11)この発明に係る記事配置決定装置は、平面上に複数の記事を配置する記事配置決定装置であって、複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段とを備えている。
【0026】
したがって、配置変更などを行わなくとも、容易に適切な配置を実現することができる。
【0027】
(12)この発明に係る記事配置決定装置は、解析対象となる記事を解析し、記事を構成する少なくとも名詞を単語として抽出する単語抽出手段と、単語抽出手段によって抽出された記事に含まれる各単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する重要度算出手段とをさらに備えている。
【0028】
したがって、単語の重要度に基づいて記事の重要度を算出することができる。
【0029】
(13)この発明に係る記事配置決定装置は、各記事に含まれる単語に基づいて、各記事間の関連度を算出する関連度算出手段をさらに備えたことを特徴としている。
【0030】
したがって、単語に基づいて、両記事間の関連度を算出することができる。
【0031】
(14)この発明に係る記事配置決定装置は、関連度算出手段が、各記事において重要度の高い上位から所定個の単語を重要単語として決定する重要単語決定手段と、
関連度を算出する一方の記事に含まれる重要単語と、関連度を算出する他方の記事に含まれる重要単語を、ウエブ上の検索サイトにて検索してヒット数を取得する単語間の関連度を算出する単語間関連度算出手段と、前記一方の記事に含まれる重要単語と、前記他方の記事に含まれる重要単語との組み合わせを変えて、単語間関連度算出手段によって得た関連度を合計し、両記事間の関連度を算出する記事間関連度算出手段とを備えている。
【0032】
したがって、検索サイトを利用して記事間の関連度を算出することができる。
【0033】
(15)この発明に係る記事配置決定方法は、コンピュータによって平面上における複数の記事配置を決定する方法であって、当該コンピュータは、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成し、生成された仮想記事領域を仮想平面上に配置し、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定し、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定し、決定された仮想記事領域の配置に基づき、記事領域の配置を決定することを特徴としている。
【0034】
したがって、仮想バネの合計力に基づいて、重要度と関連度の観点から好ましい記事配置を決定することができる。
【0035】
「仮想記事領域生成手段」は、実施形態においては、ステップS71がこれに対応する。
【0036】
「仮想記事領域配置決定手段」は、実施形態においては、ステップS22〜32、S40、S41がこれに対応する。
【0037】
「仮想記事領域配置手段」は、実施形態においては、ランダムに仮想記事領域を配置する処理を実行するCPU34がこれに対応する。
【0038】
「仮想記事領域配置変更決定手段」は、実施形態においては、仮想記事領域の配置を入れ替える処理を実行するCPU34がこれに対応する。
【0039】
「仮想バネ設定手段」は、実施形態においては、ステップS22がこれに対応する。
【0040】
「力合計算出手段」は、実施形態においては、バネの引力を合計する処理を実行するCPU34がこれに対応する。
【0041】
「記事領域配置決定手段」は、実施形態においては、ステップS33がこれに対応する。
【0042】
「単語抽出手段」は、実施形態においては、ステップS2がこれに対応する。
【0043】
「重要度算出手段」は、実施形態においては、ステップS3〜S8がこれに対応する。
【0044】
「関連度算出手段」は、実施形態においては、ステップS10〜S18がこれに対応する。
【0045】
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【図面の簡単な説明】
【0046】
【図1a】この発明の一実施形態による記事配置決定装置の機能ブロック図である。
【図1b】この発明の一実施形態による重要度・関連度算出装置の機能ブロック図である。
【図2】記事領域配置装置および重要度・関連度算出装置のハードウエア構成である。
【図3】重要度・関連度算出プログラムのフローチャートである。
【図4】重要度・関連度算出プログラムのフローチャートである。
【図5】形態素解析プログラムのフローチャートである。
【図6】形態素解析の結果を示す図である。
【図7】形態素解析の結果を示す図である。
【図8a】重要度を算出する課程を示す図である。
【図8b】算出された各記事の重要度を示す図である。
【図9】IDF値算出処理のフローチャートである。
【図10】Hot係数算出処理のフローチャートである。
【図11】辞書サイトからの返信データを示す図である。
【図12】Hot係数を算出するための係数表である。
【図13】記事K1とK2の重要単語を示す図である。
【図14】算出した関連度を示す図である。
【図15】記事配置決定プログラムのフローチャートである。
【図16】記事配置決定プログラムのフローチャートである。
【図17】記事配置決定プログラムのフローチャートである。
【図18】大きい順に並べた関連度のテーブルである。
【図19】仮想記事領域の配置手順を説明するための図である。
【図20】仮想記事領域の配置手順を説明するための図である。
【図21】仮想記事領域の配置手順を説明するための図である。
【図22】仮想記事領域の配置手順を説明するための図である。
【図23】仮想記事領域の配置手順を説明するための図である。
【図24】仮想記事領域を記事領域に変形する手順を示すための図である。
【図25】決定された記事配置を示す図である。
【図26】仮想バネを示す図である。
【図27】他の実施形態による仮想記事領域の配置決定を示す図である。
【図28】要約文生成プログラムのフローチャートである。
【図29】要約文生成プログラムのフローチャートである。
【図30】記事の例を示す図である。
【図31】文に分解した記事を示す図である。
【図32】各文について算出した重要度を示す図である。
【図33】生成された要約文を示す図である。
【発明を実施するための形態】
【0047】
1.記事配置決定装置の機能ブロック図
図1aに、この発明の一実施形態による記事配置決定装置の機能ブロック図を示す。仮想記事領域生成手段2は、記録部4に記録された各記事の重要度6に基づいた面積を有する仮想記事領域を生成する。仮想記事領域配置手段10は、生成された仮想記事領域を、仮想平面上に配置する。
【0048】
仮想バネ設定手段12は、記録部4に記録された記事間の関連度に応じたバネ定数を有する仮想バネを、対応する仮想記事領域間に設定する。仮想記事領域配置変更決定手段16は、力合計算出手段による合計力が小さくなるように、仮想平面上に配置された仮想記事領域の配置を変更して、決定する。記事領域配置決定手段18は、決定された仮想記事領域の配置に基づいて、記事領域の配置を決定する。
【0049】
図1bに、図1aの記事配置決定装置とともに用いる重要度・関連度算出装置の機能ブロック図を示す。単語抽出手段22は、記録部4に記録されている各記事20に含まれる単語を抽出する。重要度算出手段24は、抽出した単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する。算出した各記事の重要度は、各記事に対応づけて記録される。関連度算出手段26は、各記事に含まれる単語の重要度に基づいて、各記事間の関連度を算出する。たとえば、両記事における重要度の高い単語を組み合わせて検索サイトにて検索を行い、当該単語の組み合わせによるヒット件数の数によって関連度を決定する。以上のようにして算出された記事の重要度および記事間の関連度は、図1aの記録部4に記録される。
【0050】
2.ハードウエア構成
図2に、図1a、図1bに示す記事配置決定装置および重要度・関連度算出装置のハードウエア構成を示す。CPU34には、メモリ36、ディスプレイ38、ハードディスク40、CD−ROMドライブ42、キーボード/マウス44、通信回路46が接続されている。通信回路46は、インターネットなどに接続するためのものである。
【0051】
ハードディスク40には、WINDOWS(商標)などのオペレーティングシステム50、重要度・関連度算出プログラム52、記事配置決定プログラム53、形態素辞書54、複数の記事20が記録されている。オペレーティングシステム50、重要度・関連度算出プログラム52、記事配置決定プログラム53は、CD−ROM48に記録されていたものをCD−ROMドライブ42を介して、インストールしたものである。形態素辞書54には、単語とその品詞が対応づけて記録されている。
【0052】
3.重要度・関連度算出プログラム
重要度・関連度算出プログラム52のフローチャートを、図3、図4に示す。CPU34は、ハードディスク40に記録された記事20のうち、最初の記事20を対象記事とする(ステップS1)。
【0053】
CPU34は、記事に含まれる全ての文を対象として、形態素解析を行う(ステップS2)。図5に、形態素解析処理の詳細を示す。まず、CPU34は、ハードディスク40に記録されている形態素辞書54を参照して、記事の形態素を解析する(ステップS21)。この形態素解析は、従来より行われている一般的な手法を用いることができる。形態素解析の結果を、図6に示す。
【0054】
次に、CPU34は、通信回路46を使用して、インターネットを介して、ウエブ上の百科事典や辞書(たとえばWikipedia(商標)やe-Words(商標))にアクセスする。そして、図6に示す形態素解析によって得られた連続する単語を結合し、これをウエブ上の百科事典や辞書、検索サイトにて検索する(ステップS22)。たとえば、「平素」と「は」を結合して「平素は」という単語を生成し、この単語が見出し語としてウエブ上の百科事典や辞書に存在するかどうか、あるいは検索サイトにおいて所定件数以上(たとえば1万件以上)ヒットするかどうかを検索する。たとえば、「平素+は」「格別+の」「IT+ソリューション」などは、ウエブ上で文節として使用されている例が多くあるので、検索サイトにおける検索で所定件数以上のヒットを得ることができる。また、「電子+書籍」などの単語は、百科事典や辞書の見出し語として存在する可能性がある。
【0055】
なお、この実施形態では、文の初めの単語を対象単語として、後続の単語を順次結合して行き、最も長い単語としてウェブ上の百科事典・辞書に存在する、または検索サイトにて所定件数以上ヒットするものを抽出する。CPU34は、このようにして抽出した結合単語(たとえば「平素は」)を、図6のテーブルに記録するとともに、結合単語を構成する個々の単語(たとえば「平素」「は」)を図6のテーブルから削除する。これにより、テーブルは、図7に示すようになる。さらに、CPU34は、見いだされた結合単語を、形態素辞書54に追加登録する。
【0056】
続いて、抽出された単語の次の単語(抽出されなかった場合は対象単語の次の単語)を次の対象単語として、後続の単語を順次結合して行き、最も長い単語としてウェブ上の辞書に存在するものを抽出する。この処理を、文末まで繰り返す。
【0057】
したがって、この実施形態によれば、形態素辞書54に登録されていない単語であっても、これを単語として抽出することができる。
【0058】
続いて、CPU34は、上記で得た単語を結合する処理を行う(ステップS23)。たとえば、名詞が連続する場合にはこれを結合して一つの名詞とする。「福島」「第一」「原子力」「発電所」という4つの名詞が連続する場合、これを「福島第一原子力発電所」とする。同様に、人名の姓と名が連続する場合、これを結合する。その他、形態素の結合として一般に行われている手法を用いて、単語の結合を行う。CPU34は、得られた結合単語(たとえば、「福島第一原子力発電所」)を、図7のテーブルに記録するとともに、結合単語を構成する個々の単語(たとえば、「福島」「第一」「原子力」「発電所」)を図7のテーブルから削除する。
【0059】
以上のようにして、形態素解析を行うことができる。
【0060】
(3)TF値算出
次に、CPU34は、上記にて抽出した単語(この実施形態では名詞を含む単語のみを対象とする)について、TF(Term Frequency)値を算出する(ステップS3)。つまり、図7のテーブルに記録した品詞が名詞である単語および名詞を品詞として含む単語について、TF値を算出する。
【0061】
ここで、TF値とは、当該単語が当該文章中において出現する回数を、文章中の延べ単語数で除した値である。
【0062】
TF=単語の出現回数/各単語の出現回数の合計
図8aに、各単語について算出したTF値を示す。CPU34は、算出したTF値をハードディスク40に記録する。
【0063】
この実施形態では、当該文章中における各単語の出現頻度を得ることで、各単語が当該文章中において、どの程度強調されているのかを算出するようにしている。
【0064】
(4)IDF値算出
次に、CPU34は、各単語についてIDF(Inverse Document Frequency)値を算出する(ステップS4)。ここで、IDF値は、各単語の希少性(世間に流通している単語として一般的でないこと)を表すものである。当該単語の希少性が高いほど、IDF値は高くなる。
【0065】
この実施形態では、IDF値は、以下の式により算出するようにしている。
【0066】
IDF=log(当該単語の検索エンジンでのヒット数(ページ数)/検索エンジン上の総ページ数)
図9に、IDF値算出処理の詳細を示す。CPU34は、図7のテーブルに記録された最初の単語(この実施形態では名詞を含む単語のみを対象とする)を対象単語とする(ステップS41)。CPU34は、対象単語(たとえば「平素は」)を、インターネット上の検索サイト(たとえばYahoo!(商標)やgoogle(商標)など)にて検索する(ステップS42)。
【0067】
この検索リクエストに応じて、検索サイトから検索結果が返信されてくるので、CPU34はこれを受信する。CPU34は、検索結果に含まれる対象単語のヒット数(当該単語が含まれるページ数)および検索サイトが対象としている総ページ数を取得し、メモリ36に記録する(ステップS43)。
【0068】
続いて、CPU34は、log(当該単語の検索エンジンでのヒット数(ページ数)/検索エンジン上の総ページ数)を計算して、IDF値を算出する(ステップS44)。CPU34は、算出したIDF値を、各単語に対応づけてハードディスク40に記録する(図8a参照)。
【0069】
CPU34は、すべての単語についてIDF値を算出したかどうかを判断する(ステップS45)。図7のテーブルにおいて未処理の単語が残っていれば、CPU34は、次の単語を対象単語とする(ステップS46)。そして、ステップS42以下を繰り返す。このようにして、対象となる全ての単語についてIDF値を算出する。
【0070】
(5)TF−IDF値算出
続いて、CPU34は、各単語につき、算出したTF値とIDF値に基づいて、TF−IDF値を計算する(ステップS5)。この実施形態では、TF値とIDF値との積を算出することにより、TF−IDF値を算出するようにしている。
【0071】
(6)Hot係数算出
続いて、CPU34は、Hot係数を算出する(ステップS6)。ここで、Hot係数とは、対象となる単語の現在における注目度を表す指数である。この実施形態では、ウエブ上の辞書において対象単語を検索し、当該対象単語がどの程度の頻度で、どの程度現在に近い時間で更新されているかを取得し、これに基づいて算出するようにしている。
【0072】
具体的には、当該単語について、最新の更新日から所定件数(たとえば100件)の更新日を取得し、これら更新日の平均日を算出して、現在の日との差を求める。この差が小さいほど、Hot係数を大きくする。
【0073】
図10に、Hot係数算出処理の詳細を示す。CPU34は、図7のテーブルに記録された最初の単語(この実施形態では名詞を含む単語のみを対象とする)を対象単語とする(ステップS61)。CPU34は、対象単語を、インターネット上の辞書(ウエブ辞書)にアクセスし検索する(ステップS62)。
【0074】
対象単語が見出し語として存在すれば、当該対象単語に対する説明などのデータが返信されてくる。見出し語として存在しなければ、存在しない旨(あるいはエラー)が返信されてくる。CPU34は、これを受けて、対象単語がウエブ上の辞書に見出し語として存在するかどうかを判断する(ステップS63)。
【0075】
見出し語として存在する場合、CPU34は、返信されてきた解説データ中に記録されている更新日を、最新のものから所定件数(ここでは100件)取得する(ステップS64)。
【0076】
図11に、返信されてくる解説データの例を示す。見出し語、内容などの項目の他、更新日の項目が設けられている。この更新日には、内容等について更新が行われた履歴が順に示されている。CPU34は、この更新日を最新のものから100件取得する。なお、更新が100件以下の場合には、当該単語のHot係数を1.0として、ステップS68に進む。
【0077】
次に、CPU34は、取得した100件の更新日の平均日を算出する。次に、CPU34は、現在日(内部時計に基づく)と平均日との差(絶対値)を算出する(ステップS66)。さらに、算出した差に基づいてHot係数を算出する(ステップS67)。
【0078】
この実施形態では、ハードディスク40に予め記録された係数テーブル(図12参照)に基づいてHot係数を決定する。たとえば、算出した差が10日であれば、Hot係数は2.6として決定される。CPU34は、算出したHot係数を、対象単語に対応づけて記録する(図8a参照)。
【0079】
CPU34は、すべての単語についてHot係数を算出したかどうかを判断する(ステップS68)。図7のテーブルにおいて未処理の単語が残っていれば、CPU34は、次の単語を対象単語とする(ステップS69)。そして、ステップS62以下を繰り返す。このようにして、対象となる全ての単語についてHot係数を算出する。
【0080】
なお、対象単語がウエブ上の辞書に見出し語として存在しない場合には、Hot係数を1.0とする(ステップS70)。
【0081】
(7)重要度・関連度の算出
CPU34は、各単語につき、TF−IDF値にHot係数を乗じて、重要度を算出する(図3のステップS7)。CPU34は、このようにして算出した重要度を、対象単語に対応づけて記録する(図8a参照)。続いて、CPU34は、対象記事に含まれる単語の重要度を総合計し、記事の重要度を算出する(ステップS8)。CPU34は、算出した重要度を、対応する記事に関連づけてハードディスク40に記録する(図8b参照)。
【0082】
続いて、CPU34は、全ての記事について処理をしたかどうかを判断する(ステップS9)。未処理の記事が残っていれば、次の記事を対象記事とする(ステップS19)。全ての記事について処理をしたのであれば、CPU34は、記事間の関連度の算出処理に移る。
【0083】
CPU34は、まず、i=1、j=i+1に設定する(ステップS10)。次に、記事K1(数字は、ハードディスク40に記録された記事の順序を表す)に含まれる単語のうち、重要度の高いものから10語を抽出する(ステップS11)。また、記事K2に含まれる単語のうち、重要度の高いものから10語を抽出する(ステップS12)。ここでは、図13に示すように、記事K1の重要単語と、記事K2の重要単語が選択されたものとする。
【0084】
次に、CPU34は、記事K1の重要単語の一つと、記事K2の重要単語の一つとを組み合わせ、当該組み合わせた用語について、通信回路46を介して、インターネット上の検索エンジンにて検索を行う。CPU34は、検索結果として送られてくるヒット数を取得する(ステップS13)。このような検索を、記事K1の重要単語と、記事K2の重要単語のすべのて組合せについて行う。したがって、ここでは、10×10=100件の検索が行われることになる。
【0085】
CPU34は、これら検索結果としてのヒット数を合計し、合計ヒット件数を記事K1と記事K2の関連度R1,2として25億ヒット(億の単位にて四捨五入)をハードディスク40に記録する(ステップS14)。
【0086】
次に、jをインクリメントし(ステップS15)、記事K1と記事K3の関連度R1,3を、上記と同様の処理によって算出する(ステップS10〜S14)。この処理を繰り返し、記事K1と記事K5の関連度R1,5までを算出すると(つまり、j=5を超えると)、CPU34はiをインクリメントする(ステップS16、S17)。また、jをi+1とする(ステップS17)。これにより、iは2、jは3となる。
【0087】
CPU34は、ステップS11以下を繰り返す。これにより、関連度R2,3、R2.4、R2,5が算出されることになる。さらに、iがインクリメントされ、関連度R3,4、R3,5が算出される。つづいて、関連度R4,5が算出される。 以上のようにして、各記事の重要度および各記事間の関連度が算出される。
【0088】
(8)記事の配置
次に、CPU34は、記事配置決定プログラム53に基づき、各記事の配置を決定する。記事配置決定プログラム53のフローチャートを図15〜図17に示す。この実施形態では、記事間の関連度の大きさに比例した仮想バネが仮想記事領域間に設けられているものとし、仮想記事領域を配置した際の仮想バネの引力の合計が小さくなるように配置するようにしている。
【0089】
まず、CPU34は、各記事の重要度に比例した大きさの仮想記事領域を円として生成する(ステップS71)。次に、CPU34は、関連度Rの大きい順に記事KiとKjのペアをテーブルに記憶する(ステップS72、図18参照)。また、CPU34は、これら記事ペアの間に、関連度の大きさに応じたバネ定数を有する仮想バネをかける。
【0090】
この実施形態では、図26Aに示すように、2つの仮想記事領域が接している状態において、仮想バネが自然長の状態となるように、仮想バネを仮想記事間にかけるようにしている。仮想記事領域が離れると、バネ定数の大きさに応じた引力が働くことになる。つまり、関連性の大きい記事ペアを離すと、仮想バネに大きな引力が生じることになる。
【0091】
そこで、この実施形態では、仮想記事領域を配置したときの仮想バネの引力の合計が小さくなるように、配置を決定するようにしている。これにより、関連性の高い記事が近くの位置にあるように配置されることになる。
【0092】
次に、CPU34は、最も重要度の高い記事に対応する仮想記事領域を、仮想平面の右上に配置する(ステップS73、図19A参照)。ここでは、記事K1の重要度が最も高いものとして説明を進める。図19Aに示すように、記事K1に対応する仮想記事領域が仮想平面の右上に配置されることになる。なお、仮想平面は、記事を表示するための領域に対応して設定した仮想的な平面である。記事表示領域(端末装置のディスプレイの大きさ)の大きさ(縦・横)に比例して、仮想平面の大きさ(縦・横)も変化するように設定している。なお、この実施形態では、重要度の最も高い記事は、最も注目度の高い右上の場所に固定するものとしている。
【0093】
次に、図18のテーブル中から、最も関連度の高い記事のペアを読み出す(ステップS74)。ここでは、記事K1と記事K5のペアが選択される。CPU34は、選択した記事ペアの少なくとも一方が、すでに、仮想平面に配置されているか否かを判断する(ステップS75)。ここでは、記事K1が既に配置されているので、ステップS76に進む。ステップS76においては、取得した記事ペアを仮想平面に配置する。なお、配置の際に、新たに配置される記事については、ペアの記事と接するように、しかも可能な限り右上に近い位置となるように配置する(この実施形態では、上よりも右側であることを優先する)。
【0094】
ここでは、図19Bに示すように、仮想バネがかけられた記事K1と記事K5が配置されることになる。なお、記事K1は既に配置済みであるから改めて配置はしない。なお、配置の際には、互いの仮想記事領域は重なり合わないようにする。
【0095】
上記のようにして記事ペアを配置すると、CPU34は、当該記事ペアを図18のテーブルから削除する(ステップS77)。次に、CPU34は、別置きされた記事が、仮想平面上にあるかどうかを判断する(ステップS78)。ここでは、別置きした記事はないので、ステップS80に進む。
【0096】
ステップS80において、CPU34は、図18のテーブルに記事ペアが残っているかどうかを判断する。ここでは、まだ記事ペアが残っているので、ステップS73に戻る。
【0097】
ステップS73においては、図18のテーブルに残った記事ペアのうち、最も関連度の高いものを選択する。ここでは、記事ペアK3、K5が選択される。この記事ペアK3、K5のうち記事K5が既に仮想平面に配置されているので、この記事ペアを、仮想平面に配置する(ステップS75、S76)。ここでは、図20Aのように、記事K5との間に仮想バネがかけられた記事K3が配置されることになる。
【0098】
上記の処理を終えると、次に、CPU34は、図18のテーブルから記事ペアK1、K3を読み出して配置する。ここでは、図20Aに示すように、既に記事K1および記事K3がともに配置されているので、記事K1と記事K3との間に仮想バネをかける処理を行うことになる。
【0099】
上記の処理を繰り返すことにより、すべての記事K1〜K5を仮想平面に配置する。これにより、図20Bに示すように、互いに仮想バネのかけられた記事K1〜K5が配置されることになる。
【0100】
なお、上記にて説明した図18のテーブルとは異なるテーブルにて処理を行った場合の処理について、以下にいくつかの例を示す。たとえば、図21Aに示すように、記事K1とK5のペア、記事K1とK2のペア、記事K2とK3のペアを配置したものとする。この配置状態において、テーブルから記事K2とK5のペアを読み出した場合には、K3を矢印の方向に移動させるとともに、K2をK3に接するように矢印の方向に回転させる。このようにして、図21Bのように配置する。
【0101】
また、図22Aに示すように、記事K3を配置しようとする際に、記事K3が仮想空間からはみ出る場合、はみ出ない位置を探し出して配置する。あるいは、図22Bに示すように、できるだけはみ出る面積が小さくなるような位置を探し出して配置する。
【0102】
また、テーブルから読み出した記事ペアのいずれもが、仮想空間に配置されていない場合には、当該記事ペアを別置きしておく(ステップS75、S90、S91)。たとえば、図23Aに示すように、記事K1とK5が配置されている状態で、記事K3とK4のペアをテーブルから読み出したとする。この場合には、記事K3とK4のペアを、図23Aに示すように別置きしておく。
【0103】
別置きした記事ペアのいずれかが、仮想空間内に配置されれば、当該別置きしておいた記事ペアを仮想空間に配置する(ステップS78、S79)。たとえば、図23Aの状態において、テーブルから記事ペアK1、K4が読み出され、記事K4が配置されたとする(図23B参照)。いま、記事K4は記事K3とともに別置きされているので、これらペアを仮想空間に配置する。配置の仕方は、通常のペアを配置する場合と同様である。
【0104】
以下、図18のテーブルに従った説明に戻る。図18のテーブルに記事ペアが残っていなければ、CPU34は、ステップS80からステップS81に進む。ステップS81においては、別置きされた記事が残っているかどうかを判断する。別置きされた記事が残っていれば、それら全てを、仮想平面において、他の記事と重複せず、しかもできるだけ右上に近くなるように配置する(ステップS82)。
【0105】
以上のようにして、全ての記事の仮想記事領域について配置を終えると、円形の記事領域を矩形または矩形の組合せからなる記事領域に変形し、記事領域を決定する(ステップS83)。矩形への変形は、中心を変えずに、同じ面積を有する正方形に置き換える(所定比率の矩形を予め定義しておいてもよい)。たとえば、図24Aに示す場合であれば、図24Bに示すように変形されることになる。
【0106】
続いて、CPU34は、記事領域の重複部分を回避し、また、記事領域間の隙間を埋めるように、各記事領域を変形する。このようにして、図25に示すような記事領域を得ることができる。
【0107】
4.その他の実施形態
(1)上記実施形態では、2つの記事の重要単語の組合せにより検索を行い、そのヒット件数の合計によって関連度を算出するようにしている。しかしながら、次のようにして、関連度を算出するようにしてもよい。一方の記事の重要単語が、他方の記事に何語含まれているかを算出し、これを全ての重要単語について行って合計する。これで、一方の記事から、他方の記事への関連度を得ることができる。次に、他方の記事の重要単語が、一方の記事に何語含まれているかを算出し、これを全ての重要単語について行って合計する。これにより、他方の記事から、一方の記事への関連度を得ることができる。最後に、一方の記事から他方の記事への関連度と、他方の記事から一方の記事への関連度を合計して、関連度を得る。
【0108】
(2)上記実施形態では、バネ定数の大きい(すなわち関連度の高い)記事ペアから順に、仮想空間に配置するようにしている。このようにすることで、バネの引力が小さくなるような配置を目指している。
【0109】
しかし、仮想記事領域を配置した状態において、各仮想バネに働く引力を計算し、仮想バネに働く引力の合計が小さくなるように、仮想記事領域を入れ替えるようにして、配置を決定するようにしてもよい。
【0110】
たとえば、最も重要度の高い記事K1の仮想記事領域を右上に配置した後、他の記事の仮想記事領域をランダムに配置する。この状態を示すのが、図27である。
【0111】
ここで、CPU34は、各記事間のバネ定数に基づき、各バネに働く引力を合計する。つまり、下式にて力の合計Fを算出する。
【0112】
F=F1,2+F1,3+F1,4+F1,5+F1,6+F2,3+F2,4+F2,5+F2,6+F3,4+F3,5+F3,6+F4,5+F4,6+F5,6
ここで、Fi,jは、記事KiとKjに働く引力であり、記事KiとKjとの間にかけられた仮想バネのバネ定数pi,jと、記事KiとKjの互いの外周面がどれだけ離れているかを示す距離xi,jとの積によって求められる(図26B参照)。
【0113】
次に、CPU34は、上記のF1,2、F1,3、F1,4、F1,5、F1,6、F2,3、F2,4、F2,5、F2,6、F3,4、F3,5、F3,6、F4,5、F4,6、F5,6のうち、最も大きいものを選択する。たとえば、F2,5が最も大きいとする。つまり、記事K2と記事K5の間に最も大きな力が働いていることがわかる。したがって、記事K2と記事K5を近づけるように配置替えすることで、合計の力Fを小さくできる可能性があることになる。つまり、より関連性の高い記事を近くに配置できる可能性があることになる。
【0114】
CPU34は、記事K2と記事K5の双方に対して、0より大きい力で引き合う記事を探し出す。たとえば、記事K6は記事K2と接しており引力は0である、同様に、記事K3は記事K5と接しており引力は0である。したがって、記事K2、K5のいずれとも接していない記事K4だけがこの条件に合致するものとして選択されることになる。なお、固定配置される記事K1は、ここでは対象としない。
【0115】
CPU34は、最も大きな力が働いている記事K2、K5と、選択した記事K4とを入れ替えて、合計の力Fを再計算する。つまり、選択した記事K4と記事K2の場所を入れ替える。そして、合計の力Fを再計算する。同様にして、記事K4と記事K5の場所を入れ替え、合計の力Fを再計算する。
【0116】
そして、元の配置、記事K4とK2を入れ替えた配置、記事K4とK5を入れ替えた配置のうち、力Fが最も小さい配置を選択する。
【0117】
最も力Fが小さい配置が元の配置であれば、CPU34は、元の配置が好ましい配置であるとして決定する。記事K4とK2を入れ替えた配置または記事K4とK5を入れ替えた配置が最も力Fが小さい配置であれば、当該配置において、最も大きな引力の働く記事間の組合せを見いだし、上記の処理を繰り返す。このようにして、ある程度、力Fが小さくなる配置を決定することができる。
【0118】
上記実施形態では、最も大きな力が働いている記事K2と記事K5の双方に対して、0より大きい力で引き合う記事を探し出し、当該記事の仮想記事領域と入れ替えを行うようにしている。しかし、図27において、記事K6、K3も入れ替えを行う対象として選択するようにしてもよい。記事K6はK2に接しているがK5に接しておらず、記事K3はK5に接しているがK2に接しておらず、しかも、K6とK3は接していないからである。つまり、K2、K3、K6、K5の経路にて力が0ではない状態の仮想バネにてつながっているからである。
【0119】
この場合、CPU34は、記事K3の仮想記事領域と記事K2の仮想記事領域を入れ替え、記事K6の仮想記事領域と記事K5の仮想記事領域とを入れ替えて、合計力の変化を見ることになる。
【0120】
また、上記実施形態では、ランダムに仮想記事領域を配置するようにしている。しかし、図15、図16に示す処理にて仮想記事領域を配置した後、上記の入れ替えを行うようにしてもよい。
【0121】
さらに、上記実施形態では、入れ替えによって力Fの小さくなる配置を探し出している。しかし、最も重要度の大きい記事の仮想記事領域を固定配置した後、他の仮想記事領域をかなり離れた位置に仮配置し、仮想バネの力によって自然に収まる位置に決定するようにしてもよい。この場合、他の仮想記事領域(固定記事領域以外の仮想記事領域)は、移動中においての重なり合いを許容するようにする。ただし、固定配置された仮想記事領域と接した瞬間に、他の仮想記事領域との重なり合いを禁止するようにする。
【0122】
上記では、ステップS24、S40、S41において、仮想空間に配置されていない記事ペアの別置きの方法を説明した。しかし、当該記事ペアを別置きせずに、既に配置されている記事群に接するように配置し(この段階では、当該記事ペアと既に配置されている記事群との間には仮想バネを設けない)、最後に上記の入れ替えによって仮想バネに働く引力の合計が小さくなるようにしてもよい。
【0123】
なお、上記では、バネ定数kによる仮想バネの引力をF=k×xとしたが、Fがkおよびxの単調増加関数となるようにすればよい。たとえば、F=k×log(x)とすれば、距離の影響をより小さく評価することができる。
【0124】
CPU34が、このようなシミュレーションを行うことで、よりバネ定数の大きい仮想記事領域が早く固定配置された仮想記事領域に接することになり、適切な配置を実現することができる。
【0125】
(3)上記実施形態では、右上に記事領域を固定的に配置している。これは、縦書きの記事において、右上が最も注目度が高いからである。横書きの場合には、左上に配置するようにしても良い。
【0126】
(4)上記実施形態では、仮想記事領域として円を用いたが、矩形、三角、六角などの他の図形を用いるようにしても良い。
【0127】
(5)上記実施形態では、固定的に配置された仮想記事領域を設けている。しかし、全ての仮想記事領域を移動可能にしてもよい。
【0128】
5.要約文生成プログラム
上記実施形態では、記事の重要度・関連度に応じた記事領域の配置について説明した。このようにして配置した各記事領域には、当該記事を表示することになる。ただし、記事領域に表示できる文字数(文字フォントの大きさと記事領域の大きさによって決まる)よりも、記事の文字数が多い場合には、記事の内容を全て表示することができない。そこで、記事領域に表示できる文字数内の要約を作成し、これを記事領域に表示する必要が生じる。
【0129】
以下、要約文生成プログラムのフローチャートを、図28、図29に示す。
【0130】
(1)文の抽出
CPU34は、ステップS101において、ハードディスク40に記録された記事の文章データから、文を抽出する(ステップS101)。この実施形態では、句点(「。」や「.」)に基づいて、文を抽出するようにしている。すなわち、句点が見いだされるまでを一つの文として抽出する。
【0131】
たとえば、図30に示すような文章データ(記事)であれば、図31に示すように、文番号「1」〜「6」までの6つの文が抽出されることになる。CPU34は、このようにして抽出した文を、順番を示す文番号とともにハードディスク40に記録する。この際、CPU34は、各文の文字数を併せて記録する。
【0132】
(2)形態素解析
次に、CPU34は、文章データに含まれる全ての文を対象として、形態素解析を行う(ステップS102)。形態素解析処理の詳細は、図5に示すものと同様である。形態素解析の結果を、図7に示す。
【0133】
(3)TF値算出
次に、CPU34は、上記にて抽出した単語(この実施形態では名詞を含む単語のみを対象とする)について、TF(Term Frequency)値を算出する(ステップS103)。つまり、図7のテーブルに記録した品詞が名詞である単語および名詞を品詞として含む単語について、TF値を算出する。
【0134】
ここで、TF値とは、当該単語が当該文章中において出現する回数を、文章中の延べ単語数で除した値である。
【0135】
TF=単語の出現回数/各単語の出現回数の合計
図8aに、各単語について算出したTF値を示す。CPU34は、算出したTF値をハードディスク40に記録する。
【0136】
この実施形態では、当該文章中における各単語の出現頻度を得ることで、各単語が当該文章中において、どの程度強調されているのかを算出するようにしている。
【0137】
(4)IDF値算出
次に、CPU34は、各単語についてIDF(Inverse Document Frequency)値を算出する(ステップS104)。IDF算出処理の詳細は、図9に示すものと同様である。CPU34は、算出したIDF値を、各単語に対応づけてハードディスク40に記録する(図8a参照)。
【0138】
(5)TF−IDF値算出
続いて、CPU34は、各単語につき、算出したTF値とIDF値に基づいて、TF−IDF値を計算する(ステップS105)。この実施形態では、TF値とIDF値との積を算出することにより、TF−IDF値を算出するようにしている。
【0139】
(6)Hot係数算出
続いて、CPU34は、Hot係数を算出する(ステップS106)。Hot係数算出処理の詳細は、図10に示すものと同様である。CPU34は、算出したHot係数を、対象単語に対応づけて記録する(図8a参照)。
【0140】
(7)重要度の算出
CPU34は、各単語につき、TF−IDF値にHot係数を乗じて、重要度を算出する(ステップS107)。CPU34は、このようにして算出した重要度を、対象単語に対応づけて記録する(図8a参照)。
【0141】
次に、CPU34は、各単語の重要度に基づいて重要単語を決定する(ステップS108)。この実施形態では、単語の重要度の平均値を算出し、この平均値を超える重要度を有する単語を重要単語として抽出している。たとえば、図8aに示す場合であれば、単語の重要度の平均値は11.40135438である。したがって、CPU34は、この平均値を超える重要度を有する単語「電子書籍」「図書館」「書籍」・・・「利用価値」を重要単語として選択することになる。
【0142】
次に、CPU34は、各文のうち重要単語が含まれる文について重要度を算出する。重要度は、当該文に含まれる各単語の重要度を合計することによって算出する(ステップS109)。たとえば、図31に示す文章の第1文「平素は、・・・申し上げます。」には、重要単語が含まれていないので、第1文についての重要度は算出しない。第2文「当社は従来より・・・参りました。」には、重要単語「当社」「図書館」「書籍」がふくまれているので重要度を算出する。CPU34は、各単語の重要度を図8aを参照して取得し、これを合計して重要度57.83187を得る。
【0143】
CPU34は、算出した各文の重要度を、各文に対応づけてハードディスク40に記録する(図31参照)。
【0144】
(8)要約文の生成
次に、CPU34は、算出した各文の重要度に基づき、最も重要度の高い文を抽出する(ステップS110)ここでは、図31に示す第4文の重要度が最も高いので、第4文が選択される。CPU34は、選択した文の文字数の合計が、予め定められた指定文字数を超えているかどうかを判断する(ステップS111)。ここでは、記事領域に表示できる文字数が指定文字数となる。ここでは、指定文字数が、250文字であるとして説明を進める。
【0145】
第4文の文字数は、62文字である(図31参照)。したがって、指定文字数である250文字を超えていないので、ステップS12に進む。ステップS12では、次に重要度の高い文を抽出する。ここでは、第5文が選択されることになる。第5分の文字数は97文字である。したがって、選択された文の合計文字数は、62文字と97文字を合計して、160文字となる。よって、指定文字数である250文字を超えていないので、ステップS111からステップS112に進む。
【0146】
ステップS112では、さらに次に重要度の高い文を抽出する。このような処理を、選択された文の合計文字数が指定文字数250文字を超えるまで繰り返す。ここでは、第4文(62文字)、第5文(97文字)、第3文(74文字)、第2文(56文字)を抽出した時点で、合計文字数が289文字となって指定文字数を超える。
【0147】
指定文字数を超えると、CPU34は、最後に抽出した文を抽出文から外す(ステップS113)。ここでは、第2文が最後に抽出した文であるから、第2文を抽出したものから外す。その結果、図32に示すように、第4文、第5文、第3文が抽出されることになる。
【0148】
次に、CPU34は、抽出した文を、元の文章における順番(つまり文番号の若い順)に従って並び替える(ステップS114)。これにより、図33に示すような順番の抽出文を得ることができる。
【0149】
CPU34は、このようにして並び替えた抽出文を要約として出力する(ステップS115)。ここでは、図33に示す「書籍の電子化が・・・繋げたいと考えております。」という要約を、対応する表示領域に出力する。
【0150】
以上の処理を、全ての表示領域について行う。これにより、各表示領域には、対応する記事の要約文が表示される。なお、CPU34は、要約文とともに、記事全文へのリンク情報を表示するようにしている。
【0151】
6.その他の実施形態
(1)上記実施形態では、TF値(強調度)、IDF値(希少度)、Hot係数(注目度)に基づいて単語の重要度を算出するようにしている。しかしながら、これらのうちのいずれか一つを用いて重要度を算出したり、これらのうちのいずれか二つを組み合わせて重要度を算出するようにしてもよい。
【0152】
(2)上記実施形態では、当該文章における単語の出現回数に基づいて単語の強調度を算出するようにしている。しかし、文章中における単語の出現位置に基づいて、単語の強調度を判断するようにしてもよい。たとえば、文の後ろの方に出てくる単語の方が強調度を高くするようにしてもよい。さらに。出現回数と出現位置とを組み合わせて強調度を算出するようにしてもよい。
【0153】
(3)上記実施形態では、検索サイトにおける当該単語のヒット数と、検索対象の全ページ数との比率に基づいて希少度(IDF値)を算出するようにしている。しかし、辞書や百科事典(ウエブ上にあるものローカルにあるものを問わない)などにおいて当該単語が何回使用されているか(見出し項目だけでなく内容中に用いられている場合も含む回数)に基づいて、当該単語の希少度を算出するようにしてもよい。
【0154】
(4)上記実施形態では、ウエブ上の辞書の更新日の平均値と現在日の差に基づいて、現在の注目度(Hot係数)を算出するようにしている。しかしながら、最新の更新日との差に基づいて、現在の注目度を算出するようにしてもよい。あるいは、所定期間内に更新が行われた回数を算出し、これに基づいて現在の注目度を算出するようにしてもよい(更新回数が多いほど、注目度が大きい)。
【0155】
(5)上記実施形態では、各単語の重要度の平均値をしきい値として重要単語を抽出するようにしている。しかし、標準偏差、分散なども考慮して重要単語を抽出するようにしてもよい。
【0156】
(6)上記実施形態では、重要単語を含む文についてのみ重要度を算出するようにしている。しかし、全ての文について重要度を算出するようにしてもよい。
【0157】
(7)上記実施形態では、指定文字数を超えない範囲で、文を選択するようにしている。しかし、指定文字数と合計文字数の差の絶対値が最も小さくなるように文を選択するようにしてもよい。
【0158】
(8)上記実施形態では、指定文字数に基づいて文を選択するようにしている。しかし、文の合計数、行の合計数、文の合計データ量などに基づいて文を選択するようにしてもよい。
【0159】
(9)上記実施形態では、指定文字数などの文の選択基準は予め定められているものとしている。しかし、対象とする文章の文字数などに応じて、指定文字数などを可変にするようにしてもよい(たとえば、文章の文字数の半分を指定文字数とするなど)。これにより、文章の長さに対応した長さの要約文を得ることができる。
【0160】
(10)上記実施形態では、端末装置側において要約文作成処理を行っている。しかしながら、サーバ装置側において、要約文作成処理を行うようにしてもよい。
【0161】
(11)上記実施形態では、句点に基づいて文章中から「文」を抽出するようにしている。しかし、見出しなどのように句点のない文もある。そこで、見出しであると判断した部分(他の部分よりフォントが大きい、見出しであるとの属性が付与されている等により判断する)については、全体を一文であると判断するようにしてもよい。
【0162】
(12)上記実施形態では、単語の重要度を算出する際に、文章全体のジャンルや属性(社会面の記事であるか、三面記事であるかや、論文であるか雑文であるかなど)により、単語について係数を設けるようにしてもよい。たとえば、社会面における「国会」は、通常出てくる単語であるから係数を低くする。一方、三面記事における「国会」は、あまり出てこない単語であるから係数を高くする。この係数を、算出した重要度に乗じて、最終的な重要度を得る。
【0163】
(13)上記実施形態では、文の重要度を算出する際に、文と文の関連性を考慮せずに行っている。しかし、文と文の関連性も考慮して重要度を算出するようにしてもよい。たとえば、「その」「彼」等の指示代名詞が当該文に出てくる場合、重要度によって選択され、並び替えられた抽出文において、当該文より前の文が抽出されていない場合には、当該指示代名詞を含む文の係数を小さくする。一方、「したがって」「つまり」などの、話題を展開する接続詞が文に含まれる場合、当該文の係数を大きくする。この係数を、算出した重要度に乗じて、最終的な重要度を得る。
【技術分野】
【0001】
この発明は、複数の記事をその重要度に応じて、適切に自動配置する装置に関するものである。
【背景技術】
【0002】
インターネットを介して、サーバ装置に記録されているコンテンツを、端末装置にて閲覧することが行われている。この際、閲覧に使用される端末装置としては、PC、スマートフォン、タブレットなどがあり、その画面の大きさも様々である。
【0003】
このため、PCのような大画面を有する機器向けに最適に配置したニュース記事などを、スマートフォンなどの小画面しかない機器で閲覧すると、記事全体が表示されなかったり、全体を表示しようとすると極端に文字を小さくしなければならないという問題があった。
【0004】
また、閲覧する端末装置が決まっていたとしても、記事の配置を人間が手作業で決定することは煩わしかった。
【0005】
そのため、コンテンツを自動的に配置するための装置が提案されている。たとえば、特許文献1には、コンテンツの再配置を自動的に行う装置が開示されている。この装置では、紙面のテーマに対応したコンテンツを検索し、再配置することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−318143号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の装置は、一旦配置された記事を入れ替えたい時などに、その自動的な再配置を行うものであり、最初からレイアウトを決定するものではない。また、記事の重要度に応じて、適切な記事の配置を自動的に決定することはできなかった。
【0008】
この発明は、上記のような問題点を解決して、記事の重要度に応じて、適切にコンテンツを配置することのできる記事配置決定装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
(1)(2)この発明に係る記事配置決定装置は、平面上に複数の記事を配置する記事配置決定装置であって、複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段とを備えている。
【0010】
したがって、仮想バネの合計力に基づいて、重要度と関連度の観点から好ましい記事配置を決定することができる。
【0011】
(3)この発明に係る記事配置決定装置は、仮想平面上に配置された各仮想記事領域間に配置された仮想バネの引力の合計値を算出する力合計算出手段をさらに備え、仮想記事領域配置決定手段は、仮想記事領域を仮想平面に配置する仮想記事領域配置手段と、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計値が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置変更決定手段とを備えている。
【0012】
したがって、配置を変えながら、バネの合計力の変化を見て、適切な配置を選択することができる。
【0013】
(4)この発明に係る記事配置決定装置は、仮想記事領域生成手段が、前記仮想記事領域として、各記事の重要度に応じた面積を有する円を生成することを特徴としている。
【0014】
したがって、記事配置のシミュレーションを容易に行うことができる。
【0015】
(5)この発明に係る記事配置決定装置は、仮想記事領域配置手段が、最も重要度の高い仮想記事領域を、記事を配置する平面上の右上または左上に固定して配置することを特徴としている。
【0016】
したがって、注目度の高い場所に、重要度の高い記事を配置することができる。
【0017】
(6)この発明に係る記事配置決定装置は、仮想記事領域配置手段が、関連度の大きい仮想記事領域の対から順に、仮想記事領域を配置していくことを特徴としている。
【0018】
したがって、関連度の大きい記事を離さずに配置することが可能となる。
【0019】
(7)この発明に係る記事配置決定装置は、仮想バネ設定手段が、隣接して接した状態にある仮想記事領域間においては、引力が生じないように仮想バネを設定することを特徴としている。
【0020】
したがって、両仮想記事領域を離そうとした場合には引力が働くことになり、この引力の合計の大きさを小さくすることで、適切な配置を選択することができる。
【0021】
(8)この発明に係る記事配置決定装置は、仮想バネ設定手段が、各記事間の関連度が大きいほどバネ定数を大きくすることを特徴としている。
【0022】
したがって、関連度の高い記事であるほど、離そうとすると大きな引力が働くようにシミュレーションすることができる。
【0023】
(9)この発明に係る記事配置決定装置は、仮想記事領域配置変更決定手段が、最も引力の大きい仮想バネに関連する仮想記事領域に着目して、配置変更を行うことを特徴としている。
【0024】
したがって、配置変更により、合計力が小さくなる可能性が高くなる。
【0025】
(10)(11)この発明に係る記事配置決定装置は、平面上に複数の記事を配置する記事配置決定装置であって、複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段とを備えている。
【0026】
したがって、配置変更などを行わなくとも、容易に適切な配置を実現することができる。
【0027】
(12)この発明に係る記事配置決定装置は、解析対象となる記事を解析し、記事を構成する少なくとも名詞を単語として抽出する単語抽出手段と、単語抽出手段によって抽出された記事に含まれる各単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する重要度算出手段とをさらに備えている。
【0028】
したがって、単語の重要度に基づいて記事の重要度を算出することができる。
【0029】
(13)この発明に係る記事配置決定装置は、各記事に含まれる単語に基づいて、各記事間の関連度を算出する関連度算出手段をさらに備えたことを特徴としている。
【0030】
したがって、単語に基づいて、両記事間の関連度を算出することができる。
【0031】
(14)この発明に係る記事配置決定装置は、関連度算出手段が、各記事において重要度の高い上位から所定個の単語を重要単語として決定する重要単語決定手段と、
関連度を算出する一方の記事に含まれる重要単語と、関連度を算出する他方の記事に含まれる重要単語を、ウエブ上の検索サイトにて検索してヒット数を取得する単語間の関連度を算出する単語間関連度算出手段と、前記一方の記事に含まれる重要単語と、前記他方の記事に含まれる重要単語との組み合わせを変えて、単語間関連度算出手段によって得た関連度を合計し、両記事間の関連度を算出する記事間関連度算出手段とを備えている。
【0032】
したがって、検索サイトを利用して記事間の関連度を算出することができる。
【0033】
(15)この発明に係る記事配置決定方法は、コンピュータによって平面上における複数の記事配置を決定する方法であって、当該コンピュータは、各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成し、生成された仮想記事領域を仮想平面上に配置し、各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定し、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定し、決定された仮想記事領域の配置に基づき、記事領域の配置を決定することを特徴としている。
【0034】
したがって、仮想バネの合計力に基づいて、重要度と関連度の観点から好ましい記事配置を決定することができる。
【0035】
「仮想記事領域生成手段」は、実施形態においては、ステップS71がこれに対応する。
【0036】
「仮想記事領域配置決定手段」は、実施形態においては、ステップS22〜32、S40、S41がこれに対応する。
【0037】
「仮想記事領域配置手段」は、実施形態においては、ランダムに仮想記事領域を配置する処理を実行するCPU34がこれに対応する。
【0038】
「仮想記事領域配置変更決定手段」は、実施形態においては、仮想記事領域の配置を入れ替える処理を実行するCPU34がこれに対応する。
【0039】
「仮想バネ設定手段」は、実施形態においては、ステップS22がこれに対応する。
【0040】
「力合計算出手段」は、実施形態においては、バネの引力を合計する処理を実行するCPU34がこれに対応する。
【0041】
「記事領域配置決定手段」は、実施形態においては、ステップS33がこれに対応する。
【0042】
「単語抽出手段」は、実施形態においては、ステップS2がこれに対応する。
【0043】
「重要度算出手段」は、実施形態においては、ステップS3〜S8がこれに対応する。
【0044】
「関連度算出手段」は、実施形態においては、ステップS10〜S18がこれに対応する。
【0045】
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【図面の簡単な説明】
【0046】
【図1a】この発明の一実施形態による記事配置決定装置の機能ブロック図である。
【図1b】この発明の一実施形態による重要度・関連度算出装置の機能ブロック図である。
【図2】記事領域配置装置および重要度・関連度算出装置のハードウエア構成である。
【図3】重要度・関連度算出プログラムのフローチャートである。
【図4】重要度・関連度算出プログラムのフローチャートである。
【図5】形態素解析プログラムのフローチャートである。
【図6】形態素解析の結果を示す図である。
【図7】形態素解析の結果を示す図である。
【図8a】重要度を算出する課程を示す図である。
【図8b】算出された各記事の重要度を示す図である。
【図9】IDF値算出処理のフローチャートである。
【図10】Hot係数算出処理のフローチャートである。
【図11】辞書サイトからの返信データを示す図である。
【図12】Hot係数を算出するための係数表である。
【図13】記事K1とK2の重要単語を示す図である。
【図14】算出した関連度を示す図である。
【図15】記事配置決定プログラムのフローチャートである。
【図16】記事配置決定プログラムのフローチャートである。
【図17】記事配置決定プログラムのフローチャートである。
【図18】大きい順に並べた関連度のテーブルである。
【図19】仮想記事領域の配置手順を説明するための図である。
【図20】仮想記事領域の配置手順を説明するための図である。
【図21】仮想記事領域の配置手順を説明するための図である。
【図22】仮想記事領域の配置手順を説明するための図である。
【図23】仮想記事領域の配置手順を説明するための図である。
【図24】仮想記事領域を記事領域に変形する手順を示すための図である。
【図25】決定された記事配置を示す図である。
【図26】仮想バネを示す図である。
【図27】他の実施形態による仮想記事領域の配置決定を示す図である。
【図28】要約文生成プログラムのフローチャートである。
【図29】要約文生成プログラムのフローチャートである。
【図30】記事の例を示す図である。
【図31】文に分解した記事を示す図である。
【図32】各文について算出した重要度を示す図である。
【図33】生成された要約文を示す図である。
【発明を実施するための形態】
【0047】
1.記事配置決定装置の機能ブロック図
図1aに、この発明の一実施形態による記事配置決定装置の機能ブロック図を示す。仮想記事領域生成手段2は、記録部4に記録された各記事の重要度6に基づいた面積を有する仮想記事領域を生成する。仮想記事領域配置手段10は、生成された仮想記事領域を、仮想平面上に配置する。
【0048】
仮想バネ設定手段12は、記録部4に記録された記事間の関連度に応じたバネ定数を有する仮想バネを、対応する仮想記事領域間に設定する。仮想記事領域配置変更決定手段16は、力合計算出手段による合計力が小さくなるように、仮想平面上に配置された仮想記事領域の配置を変更して、決定する。記事領域配置決定手段18は、決定された仮想記事領域の配置に基づいて、記事領域の配置を決定する。
【0049】
図1bに、図1aの記事配置決定装置とともに用いる重要度・関連度算出装置の機能ブロック図を示す。単語抽出手段22は、記録部4に記録されている各記事20に含まれる単語を抽出する。重要度算出手段24は、抽出した単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する。算出した各記事の重要度は、各記事に対応づけて記録される。関連度算出手段26は、各記事に含まれる単語の重要度に基づいて、各記事間の関連度を算出する。たとえば、両記事における重要度の高い単語を組み合わせて検索サイトにて検索を行い、当該単語の組み合わせによるヒット件数の数によって関連度を決定する。以上のようにして算出された記事の重要度および記事間の関連度は、図1aの記録部4に記録される。
【0050】
2.ハードウエア構成
図2に、図1a、図1bに示す記事配置決定装置および重要度・関連度算出装置のハードウエア構成を示す。CPU34には、メモリ36、ディスプレイ38、ハードディスク40、CD−ROMドライブ42、キーボード/マウス44、通信回路46が接続されている。通信回路46は、インターネットなどに接続するためのものである。
【0051】
ハードディスク40には、WINDOWS(商標)などのオペレーティングシステム50、重要度・関連度算出プログラム52、記事配置決定プログラム53、形態素辞書54、複数の記事20が記録されている。オペレーティングシステム50、重要度・関連度算出プログラム52、記事配置決定プログラム53は、CD−ROM48に記録されていたものをCD−ROMドライブ42を介して、インストールしたものである。形態素辞書54には、単語とその品詞が対応づけて記録されている。
【0052】
3.重要度・関連度算出プログラム
重要度・関連度算出プログラム52のフローチャートを、図3、図4に示す。CPU34は、ハードディスク40に記録された記事20のうち、最初の記事20を対象記事とする(ステップS1)。
【0053】
CPU34は、記事に含まれる全ての文を対象として、形態素解析を行う(ステップS2)。図5に、形態素解析処理の詳細を示す。まず、CPU34は、ハードディスク40に記録されている形態素辞書54を参照して、記事の形態素を解析する(ステップS21)。この形態素解析は、従来より行われている一般的な手法を用いることができる。形態素解析の結果を、図6に示す。
【0054】
次に、CPU34は、通信回路46を使用して、インターネットを介して、ウエブ上の百科事典や辞書(たとえばWikipedia(商標)やe-Words(商標))にアクセスする。そして、図6に示す形態素解析によって得られた連続する単語を結合し、これをウエブ上の百科事典や辞書、検索サイトにて検索する(ステップS22)。たとえば、「平素」と「は」を結合して「平素は」という単語を生成し、この単語が見出し語としてウエブ上の百科事典や辞書に存在するかどうか、あるいは検索サイトにおいて所定件数以上(たとえば1万件以上)ヒットするかどうかを検索する。たとえば、「平素+は」「格別+の」「IT+ソリューション」などは、ウエブ上で文節として使用されている例が多くあるので、検索サイトにおける検索で所定件数以上のヒットを得ることができる。また、「電子+書籍」などの単語は、百科事典や辞書の見出し語として存在する可能性がある。
【0055】
なお、この実施形態では、文の初めの単語を対象単語として、後続の単語を順次結合して行き、最も長い単語としてウェブ上の百科事典・辞書に存在する、または検索サイトにて所定件数以上ヒットするものを抽出する。CPU34は、このようにして抽出した結合単語(たとえば「平素は」)を、図6のテーブルに記録するとともに、結合単語を構成する個々の単語(たとえば「平素」「は」)を図6のテーブルから削除する。これにより、テーブルは、図7に示すようになる。さらに、CPU34は、見いだされた結合単語を、形態素辞書54に追加登録する。
【0056】
続いて、抽出された単語の次の単語(抽出されなかった場合は対象単語の次の単語)を次の対象単語として、後続の単語を順次結合して行き、最も長い単語としてウェブ上の辞書に存在するものを抽出する。この処理を、文末まで繰り返す。
【0057】
したがって、この実施形態によれば、形態素辞書54に登録されていない単語であっても、これを単語として抽出することができる。
【0058】
続いて、CPU34は、上記で得た単語を結合する処理を行う(ステップS23)。たとえば、名詞が連続する場合にはこれを結合して一つの名詞とする。「福島」「第一」「原子力」「発電所」という4つの名詞が連続する場合、これを「福島第一原子力発電所」とする。同様に、人名の姓と名が連続する場合、これを結合する。その他、形態素の結合として一般に行われている手法を用いて、単語の結合を行う。CPU34は、得られた結合単語(たとえば、「福島第一原子力発電所」)を、図7のテーブルに記録するとともに、結合単語を構成する個々の単語(たとえば、「福島」「第一」「原子力」「発電所」)を図7のテーブルから削除する。
【0059】
以上のようにして、形態素解析を行うことができる。
【0060】
(3)TF値算出
次に、CPU34は、上記にて抽出した単語(この実施形態では名詞を含む単語のみを対象とする)について、TF(Term Frequency)値を算出する(ステップS3)。つまり、図7のテーブルに記録した品詞が名詞である単語および名詞を品詞として含む単語について、TF値を算出する。
【0061】
ここで、TF値とは、当該単語が当該文章中において出現する回数を、文章中の延べ単語数で除した値である。
【0062】
TF=単語の出現回数/各単語の出現回数の合計
図8aに、各単語について算出したTF値を示す。CPU34は、算出したTF値をハードディスク40に記録する。
【0063】
この実施形態では、当該文章中における各単語の出現頻度を得ることで、各単語が当該文章中において、どの程度強調されているのかを算出するようにしている。
【0064】
(4)IDF値算出
次に、CPU34は、各単語についてIDF(Inverse Document Frequency)値を算出する(ステップS4)。ここで、IDF値は、各単語の希少性(世間に流通している単語として一般的でないこと)を表すものである。当該単語の希少性が高いほど、IDF値は高くなる。
【0065】
この実施形態では、IDF値は、以下の式により算出するようにしている。
【0066】
IDF=log(当該単語の検索エンジンでのヒット数(ページ数)/検索エンジン上の総ページ数)
図9に、IDF値算出処理の詳細を示す。CPU34は、図7のテーブルに記録された最初の単語(この実施形態では名詞を含む単語のみを対象とする)を対象単語とする(ステップS41)。CPU34は、対象単語(たとえば「平素は」)を、インターネット上の検索サイト(たとえばYahoo!(商標)やgoogle(商標)など)にて検索する(ステップS42)。
【0067】
この検索リクエストに応じて、検索サイトから検索結果が返信されてくるので、CPU34はこれを受信する。CPU34は、検索結果に含まれる対象単語のヒット数(当該単語が含まれるページ数)および検索サイトが対象としている総ページ数を取得し、メモリ36に記録する(ステップS43)。
【0068】
続いて、CPU34は、log(当該単語の検索エンジンでのヒット数(ページ数)/検索エンジン上の総ページ数)を計算して、IDF値を算出する(ステップS44)。CPU34は、算出したIDF値を、各単語に対応づけてハードディスク40に記録する(図8a参照)。
【0069】
CPU34は、すべての単語についてIDF値を算出したかどうかを判断する(ステップS45)。図7のテーブルにおいて未処理の単語が残っていれば、CPU34は、次の単語を対象単語とする(ステップS46)。そして、ステップS42以下を繰り返す。このようにして、対象となる全ての単語についてIDF値を算出する。
【0070】
(5)TF−IDF値算出
続いて、CPU34は、各単語につき、算出したTF値とIDF値に基づいて、TF−IDF値を計算する(ステップS5)。この実施形態では、TF値とIDF値との積を算出することにより、TF−IDF値を算出するようにしている。
【0071】
(6)Hot係数算出
続いて、CPU34は、Hot係数を算出する(ステップS6)。ここで、Hot係数とは、対象となる単語の現在における注目度を表す指数である。この実施形態では、ウエブ上の辞書において対象単語を検索し、当該対象単語がどの程度の頻度で、どの程度現在に近い時間で更新されているかを取得し、これに基づいて算出するようにしている。
【0072】
具体的には、当該単語について、最新の更新日から所定件数(たとえば100件)の更新日を取得し、これら更新日の平均日を算出して、現在の日との差を求める。この差が小さいほど、Hot係数を大きくする。
【0073】
図10に、Hot係数算出処理の詳細を示す。CPU34は、図7のテーブルに記録された最初の単語(この実施形態では名詞を含む単語のみを対象とする)を対象単語とする(ステップS61)。CPU34は、対象単語を、インターネット上の辞書(ウエブ辞書)にアクセスし検索する(ステップS62)。
【0074】
対象単語が見出し語として存在すれば、当該対象単語に対する説明などのデータが返信されてくる。見出し語として存在しなければ、存在しない旨(あるいはエラー)が返信されてくる。CPU34は、これを受けて、対象単語がウエブ上の辞書に見出し語として存在するかどうかを判断する(ステップS63)。
【0075】
見出し語として存在する場合、CPU34は、返信されてきた解説データ中に記録されている更新日を、最新のものから所定件数(ここでは100件)取得する(ステップS64)。
【0076】
図11に、返信されてくる解説データの例を示す。見出し語、内容などの項目の他、更新日の項目が設けられている。この更新日には、内容等について更新が行われた履歴が順に示されている。CPU34は、この更新日を最新のものから100件取得する。なお、更新が100件以下の場合には、当該単語のHot係数を1.0として、ステップS68に進む。
【0077】
次に、CPU34は、取得した100件の更新日の平均日を算出する。次に、CPU34は、現在日(内部時計に基づく)と平均日との差(絶対値)を算出する(ステップS66)。さらに、算出した差に基づいてHot係数を算出する(ステップS67)。
【0078】
この実施形態では、ハードディスク40に予め記録された係数テーブル(図12参照)に基づいてHot係数を決定する。たとえば、算出した差が10日であれば、Hot係数は2.6として決定される。CPU34は、算出したHot係数を、対象単語に対応づけて記録する(図8a参照)。
【0079】
CPU34は、すべての単語についてHot係数を算出したかどうかを判断する(ステップS68)。図7のテーブルにおいて未処理の単語が残っていれば、CPU34は、次の単語を対象単語とする(ステップS69)。そして、ステップS62以下を繰り返す。このようにして、対象となる全ての単語についてHot係数を算出する。
【0080】
なお、対象単語がウエブ上の辞書に見出し語として存在しない場合には、Hot係数を1.0とする(ステップS70)。
【0081】
(7)重要度・関連度の算出
CPU34は、各単語につき、TF−IDF値にHot係数を乗じて、重要度を算出する(図3のステップS7)。CPU34は、このようにして算出した重要度を、対象単語に対応づけて記録する(図8a参照)。続いて、CPU34は、対象記事に含まれる単語の重要度を総合計し、記事の重要度を算出する(ステップS8)。CPU34は、算出した重要度を、対応する記事に関連づけてハードディスク40に記録する(図8b参照)。
【0082】
続いて、CPU34は、全ての記事について処理をしたかどうかを判断する(ステップS9)。未処理の記事が残っていれば、次の記事を対象記事とする(ステップS19)。全ての記事について処理をしたのであれば、CPU34は、記事間の関連度の算出処理に移る。
【0083】
CPU34は、まず、i=1、j=i+1に設定する(ステップS10)。次に、記事K1(数字は、ハードディスク40に記録された記事の順序を表す)に含まれる単語のうち、重要度の高いものから10語を抽出する(ステップS11)。また、記事K2に含まれる単語のうち、重要度の高いものから10語を抽出する(ステップS12)。ここでは、図13に示すように、記事K1の重要単語と、記事K2の重要単語が選択されたものとする。
【0084】
次に、CPU34は、記事K1の重要単語の一つと、記事K2の重要単語の一つとを組み合わせ、当該組み合わせた用語について、通信回路46を介して、インターネット上の検索エンジンにて検索を行う。CPU34は、検索結果として送られてくるヒット数を取得する(ステップS13)。このような検索を、記事K1の重要単語と、記事K2の重要単語のすべのて組合せについて行う。したがって、ここでは、10×10=100件の検索が行われることになる。
【0085】
CPU34は、これら検索結果としてのヒット数を合計し、合計ヒット件数を記事K1と記事K2の関連度R1,2として25億ヒット(億の単位にて四捨五入)をハードディスク40に記録する(ステップS14)。
【0086】
次に、jをインクリメントし(ステップS15)、記事K1と記事K3の関連度R1,3を、上記と同様の処理によって算出する(ステップS10〜S14)。この処理を繰り返し、記事K1と記事K5の関連度R1,5までを算出すると(つまり、j=5を超えると)、CPU34はiをインクリメントする(ステップS16、S17)。また、jをi+1とする(ステップS17)。これにより、iは2、jは3となる。
【0087】
CPU34は、ステップS11以下を繰り返す。これにより、関連度R2,3、R2.4、R2,5が算出されることになる。さらに、iがインクリメントされ、関連度R3,4、R3,5が算出される。つづいて、関連度R4,5が算出される。 以上のようにして、各記事の重要度および各記事間の関連度が算出される。
【0088】
(8)記事の配置
次に、CPU34は、記事配置決定プログラム53に基づき、各記事の配置を決定する。記事配置決定プログラム53のフローチャートを図15〜図17に示す。この実施形態では、記事間の関連度の大きさに比例した仮想バネが仮想記事領域間に設けられているものとし、仮想記事領域を配置した際の仮想バネの引力の合計が小さくなるように配置するようにしている。
【0089】
まず、CPU34は、各記事の重要度に比例した大きさの仮想記事領域を円として生成する(ステップS71)。次に、CPU34は、関連度Rの大きい順に記事KiとKjのペアをテーブルに記憶する(ステップS72、図18参照)。また、CPU34は、これら記事ペアの間に、関連度の大きさに応じたバネ定数を有する仮想バネをかける。
【0090】
この実施形態では、図26Aに示すように、2つの仮想記事領域が接している状態において、仮想バネが自然長の状態となるように、仮想バネを仮想記事間にかけるようにしている。仮想記事領域が離れると、バネ定数の大きさに応じた引力が働くことになる。つまり、関連性の大きい記事ペアを離すと、仮想バネに大きな引力が生じることになる。
【0091】
そこで、この実施形態では、仮想記事領域を配置したときの仮想バネの引力の合計が小さくなるように、配置を決定するようにしている。これにより、関連性の高い記事が近くの位置にあるように配置されることになる。
【0092】
次に、CPU34は、最も重要度の高い記事に対応する仮想記事領域を、仮想平面の右上に配置する(ステップS73、図19A参照)。ここでは、記事K1の重要度が最も高いものとして説明を進める。図19Aに示すように、記事K1に対応する仮想記事領域が仮想平面の右上に配置されることになる。なお、仮想平面は、記事を表示するための領域に対応して設定した仮想的な平面である。記事表示領域(端末装置のディスプレイの大きさ)の大きさ(縦・横)に比例して、仮想平面の大きさ(縦・横)も変化するように設定している。なお、この実施形態では、重要度の最も高い記事は、最も注目度の高い右上の場所に固定するものとしている。
【0093】
次に、図18のテーブル中から、最も関連度の高い記事のペアを読み出す(ステップS74)。ここでは、記事K1と記事K5のペアが選択される。CPU34は、選択した記事ペアの少なくとも一方が、すでに、仮想平面に配置されているか否かを判断する(ステップS75)。ここでは、記事K1が既に配置されているので、ステップS76に進む。ステップS76においては、取得した記事ペアを仮想平面に配置する。なお、配置の際に、新たに配置される記事については、ペアの記事と接するように、しかも可能な限り右上に近い位置となるように配置する(この実施形態では、上よりも右側であることを優先する)。
【0094】
ここでは、図19Bに示すように、仮想バネがかけられた記事K1と記事K5が配置されることになる。なお、記事K1は既に配置済みであるから改めて配置はしない。なお、配置の際には、互いの仮想記事領域は重なり合わないようにする。
【0095】
上記のようにして記事ペアを配置すると、CPU34は、当該記事ペアを図18のテーブルから削除する(ステップS77)。次に、CPU34は、別置きされた記事が、仮想平面上にあるかどうかを判断する(ステップS78)。ここでは、別置きした記事はないので、ステップS80に進む。
【0096】
ステップS80において、CPU34は、図18のテーブルに記事ペアが残っているかどうかを判断する。ここでは、まだ記事ペアが残っているので、ステップS73に戻る。
【0097】
ステップS73においては、図18のテーブルに残った記事ペアのうち、最も関連度の高いものを選択する。ここでは、記事ペアK3、K5が選択される。この記事ペアK3、K5のうち記事K5が既に仮想平面に配置されているので、この記事ペアを、仮想平面に配置する(ステップS75、S76)。ここでは、図20Aのように、記事K5との間に仮想バネがかけられた記事K3が配置されることになる。
【0098】
上記の処理を終えると、次に、CPU34は、図18のテーブルから記事ペアK1、K3を読み出して配置する。ここでは、図20Aに示すように、既に記事K1および記事K3がともに配置されているので、記事K1と記事K3との間に仮想バネをかける処理を行うことになる。
【0099】
上記の処理を繰り返すことにより、すべての記事K1〜K5を仮想平面に配置する。これにより、図20Bに示すように、互いに仮想バネのかけられた記事K1〜K5が配置されることになる。
【0100】
なお、上記にて説明した図18のテーブルとは異なるテーブルにて処理を行った場合の処理について、以下にいくつかの例を示す。たとえば、図21Aに示すように、記事K1とK5のペア、記事K1とK2のペア、記事K2とK3のペアを配置したものとする。この配置状態において、テーブルから記事K2とK5のペアを読み出した場合には、K3を矢印の方向に移動させるとともに、K2をK3に接するように矢印の方向に回転させる。このようにして、図21Bのように配置する。
【0101】
また、図22Aに示すように、記事K3を配置しようとする際に、記事K3が仮想空間からはみ出る場合、はみ出ない位置を探し出して配置する。あるいは、図22Bに示すように、できるだけはみ出る面積が小さくなるような位置を探し出して配置する。
【0102】
また、テーブルから読み出した記事ペアのいずれもが、仮想空間に配置されていない場合には、当該記事ペアを別置きしておく(ステップS75、S90、S91)。たとえば、図23Aに示すように、記事K1とK5が配置されている状態で、記事K3とK4のペアをテーブルから読み出したとする。この場合には、記事K3とK4のペアを、図23Aに示すように別置きしておく。
【0103】
別置きした記事ペアのいずれかが、仮想空間内に配置されれば、当該別置きしておいた記事ペアを仮想空間に配置する(ステップS78、S79)。たとえば、図23Aの状態において、テーブルから記事ペアK1、K4が読み出され、記事K4が配置されたとする(図23B参照)。いま、記事K4は記事K3とともに別置きされているので、これらペアを仮想空間に配置する。配置の仕方は、通常のペアを配置する場合と同様である。
【0104】
以下、図18のテーブルに従った説明に戻る。図18のテーブルに記事ペアが残っていなければ、CPU34は、ステップS80からステップS81に進む。ステップS81においては、別置きされた記事が残っているかどうかを判断する。別置きされた記事が残っていれば、それら全てを、仮想平面において、他の記事と重複せず、しかもできるだけ右上に近くなるように配置する(ステップS82)。
【0105】
以上のようにして、全ての記事の仮想記事領域について配置を終えると、円形の記事領域を矩形または矩形の組合せからなる記事領域に変形し、記事領域を決定する(ステップS83)。矩形への変形は、中心を変えずに、同じ面積を有する正方形に置き換える(所定比率の矩形を予め定義しておいてもよい)。たとえば、図24Aに示す場合であれば、図24Bに示すように変形されることになる。
【0106】
続いて、CPU34は、記事領域の重複部分を回避し、また、記事領域間の隙間を埋めるように、各記事領域を変形する。このようにして、図25に示すような記事領域を得ることができる。
【0107】
4.その他の実施形態
(1)上記実施形態では、2つの記事の重要単語の組合せにより検索を行い、そのヒット件数の合計によって関連度を算出するようにしている。しかしながら、次のようにして、関連度を算出するようにしてもよい。一方の記事の重要単語が、他方の記事に何語含まれているかを算出し、これを全ての重要単語について行って合計する。これで、一方の記事から、他方の記事への関連度を得ることができる。次に、他方の記事の重要単語が、一方の記事に何語含まれているかを算出し、これを全ての重要単語について行って合計する。これにより、他方の記事から、一方の記事への関連度を得ることができる。最後に、一方の記事から他方の記事への関連度と、他方の記事から一方の記事への関連度を合計して、関連度を得る。
【0108】
(2)上記実施形態では、バネ定数の大きい(すなわち関連度の高い)記事ペアから順に、仮想空間に配置するようにしている。このようにすることで、バネの引力が小さくなるような配置を目指している。
【0109】
しかし、仮想記事領域を配置した状態において、各仮想バネに働く引力を計算し、仮想バネに働く引力の合計が小さくなるように、仮想記事領域を入れ替えるようにして、配置を決定するようにしてもよい。
【0110】
たとえば、最も重要度の高い記事K1の仮想記事領域を右上に配置した後、他の記事の仮想記事領域をランダムに配置する。この状態を示すのが、図27である。
【0111】
ここで、CPU34は、各記事間のバネ定数に基づき、各バネに働く引力を合計する。つまり、下式にて力の合計Fを算出する。
【0112】
F=F1,2+F1,3+F1,4+F1,5+F1,6+F2,3+F2,4+F2,5+F2,6+F3,4+F3,5+F3,6+F4,5+F4,6+F5,6
ここで、Fi,jは、記事KiとKjに働く引力であり、記事KiとKjとの間にかけられた仮想バネのバネ定数pi,jと、記事KiとKjの互いの外周面がどれだけ離れているかを示す距離xi,jとの積によって求められる(図26B参照)。
【0113】
次に、CPU34は、上記のF1,2、F1,3、F1,4、F1,5、F1,6、F2,3、F2,4、F2,5、F2,6、F3,4、F3,5、F3,6、F4,5、F4,6、F5,6のうち、最も大きいものを選択する。たとえば、F2,5が最も大きいとする。つまり、記事K2と記事K5の間に最も大きな力が働いていることがわかる。したがって、記事K2と記事K5を近づけるように配置替えすることで、合計の力Fを小さくできる可能性があることになる。つまり、より関連性の高い記事を近くに配置できる可能性があることになる。
【0114】
CPU34は、記事K2と記事K5の双方に対して、0より大きい力で引き合う記事を探し出す。たとえば、記事K6は記事K2と接しており引力は0である、同様に、記事K3は記事K5と接しており引力は0である。したがって、記事K2、K5のいずれとも接していない記事K4だけがこの条件に合致するものとして選択されることになる。なお、固定配置される記事K1は、ここでは対象としない。
【0115】
CPU34は、最も大きな力が働いている記事K2、K5と、選択した記事K4とを入れ替えて、合計の力Fを再計算する。つまり、選択した記事K4と記事K2の場所を入れ替える。そして、合計の力Fを再計算する。同様にして、記事K4と記事K5の場所を入れ替え、合計の力Fを再計算する。
【0116】
そして、元の配置、記事K4とK2を入れ替えた配置、記事K4とK5を入れ替えた配置のうち、力Fが最も小さい配置を選択する。
【0117】
最も力Fが小さい配置が元の配置であれば、CPU34は、元の配置が好ましい配置であるとして決定する。記事K4とK2を入れ替えた配置または記事K4とK5を入れ替えた配置が最も力Fが小さい配置であれば、当該配置において、最も大きな引力の働く記事間の組合せを見いだし、上記の処理を繰り返す。このようにして、ある程度、力Fが小さくなる配置を決定することができる。
【0118】
上記実施形態では、最も大きな力が働いている記事K2と記事K5の双方に対して、0より大きい力で引き合う記事を探し出し、当該記事の仮想記事領域と入れ替えを行うようにしている。しかし、図27において、記事K6、K3も入れ替えを行う対象として選択するようにしてもよい。記事K6はK2に接しているがK5に接しておらず、記事K3はK5に接しているがK2に接しておらず、しかも、K6とK3は接していないからである。つまり、K2、K3、K6、K5の経路にて力が0ではない状態の仮想バネにてつながっているからである。
【0119】
この場合、CPU34は、記事K3の仮想記事領域と記事K2の仮想記事領域を入れ替え、記事K6の仮想記事領域と記事K5の仮想記事領域とを入れ替えて、合計力の変化を見ることになる。
【0120】
また、上記実施形態では、ランダムに仮想記事領域を配置するようにしている。しかし、図15、図16に示す処理にて仮想記事領域を配置した後、上記の入れ替えを行うようにしてもよい。
【0121】
さらに、上記実施形態では、入れ替えによって力Fの小さくなる配置を探し出している。しかし、最も重要度の大きい記事の仮想記事領域を固定配置した後、他の仮想記事領域をかなり離れた位置に仮配置し、仮想バネの力によって自然に収まる位置に決定するようにしてもよい。この場合、他の仮想記事領域(固定記事領域以外の仮想記事領域)は、移動中においての重なり合いを許容するようにする。ただし、固定配置された仮想記事領域と接した瞬間に、他の仮想記事領域との重なり合いを禁止するようにする。
【0122】
上記では、ステップS24、S40、S41において、仮想空間に配置されていない記事ペアの別置きの方法を説明した。しかし、当該記事ペアを別置きせずに、既に配置されている記事群に接するように配置し(この段階では、当該記事ペアと既に配置されている記事群との間には仮想バネを設けない)、最後に上記の入れ替えによって仮想バネに働く引力の合計が小さくなるようにしてもよい。
【0123】
なお、上記では、バネ定数kによる仮想バネの引力をF=k×xとしたが、Fがkおよびxの単調増加関数となるようにすればよい。たとえば、F=k×log(x)とすれば、距離の影響をより小さく評価することができる。
【0124】
CPU34が、このようなシミュレーションを行うことで、よりバネ定数の大きい仮想記事領域が早く固定配置された仮想記事領域に接することになり、適切な配置を実現することができる。
【0125】
(3)上記実施形態では、右上に記事領域を固定的に配置している。これは、縦書きの記事において、右上が最も注目度が高いからである。横書きの場合には、左上に配置するようにしても良い。
【0126】
(4)上記実施形態では、仮想記事領域として円を用いたが、矩形、三角、六角などの他の図形を用いるようにしても良い。
【0127】
(5)上記実施形態では、固定的に配置された仮想記事領域を設けている。しかし、全ての仮想記事領域を移動可能にしてもよい。
【0128】
5.要約文生成プログラム
上記実施形態では、記事の重要度・関連度に応じた記事領域の配置について説明した。このようにして配置した各記事領域には、当該記事を表示することになる。ただし、記事領域に表示できる文字数(文字フォントの大きさと記事領域の大きさによって決まる)よりも、記事の文字数が多い場合には、記事の内容を全て表示することができない。そこで、記事領域に表示できる文字数内の要約を作成し、これを記事領域に表示する必要が生じる。
【0129】
以下、要約文生成プログラムのフローチャートを、図28、図29に示す。
【0130】
(1)文の抽出
CPU34は、ステップS101において、ハードディスク40に記録された記事の文章データから、文を抽出する(ステップS101)。この実施形態では、句点(「。」や「.」)に基づいて、文を抽出するようにしている。すなわち、句点が見いだされるまでを一つの文として抽出する。
【0131】
たとえば、図30に示すような文章データ(記事)であれば、図31に示すように、文番号「1」〜「6」までの6つの文が抽出されることになる。CPU34は、このようにして抽出した文を、順番を示す文番号とともにハードディスク40に記録する。この際、CPU34は、各文の文字数を併せて記録する。
【0132】
(2)形態素解析
次に、CPU34は、文章データに含まれる全ての文を対象として、形態素解析を行う(ステップS102)。形態素解析処理の詳細は、図5に示すものと同様である。形態素解析の結果を、図7に示す。
【0133】
(3)TF値算出
次に、CPU34は、上記にて抽出した単語(この実施形態では名詞を含む単語のみを対象とする)について、TF(Term Frequency)値を算出する(ステップS103)。つまり、図7のテーブルに記録した品詞が名詞である単語および名詞を品詞として含む単語について、TF値を算出する。
【0134】
ここで、TF値とは、当該単語が当該文章中において出現する回数を、文章中の延べ単語数で除した値である。
【0135】
TF=単語の出現回数/各単語の出現回数の合計
図8aに、各単語について算出したTF値を示す。CPU34は、算出したTF値をハードディスク40に記録する。
【0136】
この実施形態では、当該文章中における各単語の出現頻度を得ることで、各単語が当該文章中において、どの程度強調されているのかを算出するようにしている。
【0137】
(4)IDF値算出
次に、CPU34は、各単語についてIDF(Inverse Document Frequency)値を算出する(ステップS104)。IDF算出処理の詳細は、図9に示すものと同様である。CPU34は、算出したIDF値を、各単語に対応づけてハードディスク40に記録する(図8a参照)。
【0138】
(5)TF−IDF値算出
続いて、CPU34は、各単語につき、算出したTF値とIDF値に基づいて、TF−IDF値を計算する(ステップS105)。この実施形態では、TF値とIDF値との積を算出することにより、TF−IDF値を算出するようにしている。
【0139】
(6)Hot係数算出
続いて、CPU34は、Hot係数を算出する(ステップS106)。Hot係数算出処理の詳細は、図10に示すものと同様である。CPU34は、算出したHot係数を、対象単語に対応づけて記録する(図8a参照)。
【0140】
(7)重要度の算出
CPU34は、各単語につき、TF−IDF値にHot係数を乗じて、重要度を算出する(ステップS107)。CPU34は、このようにして算出した重要度を、対象単語に対応づけて記録する(図8a参照)。
【0141】
次に、CPU34は、各単語の重要度に基づいて重要単語を決定する(ステップS108)。この実施形態では、単語の重要度の平均値を算出し、この平均値を超える重要度を有する単語を重要単語として抽出している。たとえば、図8aに示す場合であれば、単語の重要度の平均値は11.40135438である。したがって、CPU34は、この平均値を超える重要度を有する単語「電子書籍」「図書館」「書籍」・・・「利用価値」を重要単語として選択することになる。
【0142】
次に、CPU34は、各文のうち重要単語が含まれる文について重要度を算出する。重要度は、当該文に含まれる各単語の重要度を合計することによって算出する(ステップS109)。たとえば、図31に示す文章の第1文「平素は、・・・申し上げます。」には、重要単語が含まれていないので、第1文についての重要度は算出しない。第2文「当社は従来より・・・参りました。」には、重要単語「当社」「図書館」「書籍」がふくまれているので重要度を算出する。CPU34は、各単語の重要度を図8aを参照して取得し、これを合計して重要度57.83187を得る。
【0143】
CPU34は、算出した各文の重要度を、各文に対応づけてハードディスク40に記録する(図31参照)。
【0144】
(8)要約文の生成
次に、CPU34は、算出した各文の重要度に基づき、最も重要度の高い文を抽出する(ステップS110)ここでは、図31に示す第4文の重要度が最も高いので、第4文が選択される。CPU34は、選択した文の文字数の合計が、予め定められた指定文字数を超えているかどうかを判断する(ステップS111)。ここでは、記事領域に表示できる文字数が指定文字数となる。ここでは、指定文字数が、250文字であるとして説明を進める。
【0145】
第4文の文字数は、62文字である(図31参照)。したがって、指定文字数である250文字を超えていないので、ステップS12に進む。ステップS12では、次に重要度の高い文を抽出する。ここでは、第5文が選択されることになる。第5分の文字数は97文字である。したがって、選択された文の合計文字数は、62文字と97文字を合計して、160文字となる。よって、指定文字数である250文字を超えていないので、ステップS111からステップS112に進む。
【0146】
ステップS112では、さらに次に重要度の高い文を抽出する。このような処理を、選択された文の合計文字数が指定文字数250文字を超えるまで繰り返す。ここでは、第4文(62文字)、第5文(97文字)、第3文(74文字)、第2文(56文字)を抽出した時点で、合計文字数が289文字となって指定文字数を超える。
【0147】
指定文字数を超えると、CPU34は、最後に抽出した文を抽出文から外す(ステップS113)。ここでは、第2文が最後に抽出した文であるから、第2文を抽出したものから外す。その結果、図32に示すように、第4文、第5文、第3文が抽出されることになる。
【0148】
次に、CPU34は、抽出した文を、元の文章における順番(つまり文番号の若い順)に従って並び替える(ステップS114)。これにより、図33に示すような順番の抽出文を得ることができる。
【0149】
CPU34は、このようにして並び替えた抽出文を要約として出力する(ステップS115)。ここでは、図33に示す「書籍の電子化が・・・繋げたいと考えております。」という要約を、対応する表示領域に出力する。
【0150】
以上の処理を、全ての表示領域について行う。これにより、各表示領域には、対応する記事の要約文が表示される。なお、CPU34は、要約文とともに、記事全文へのリンク情報を表示するようにしている。
【0151】
6.その他の実施形態
(1)上記実施形態では、TF値(強調度)、IDF値(希少度)、Hot係数(注目度)に基づいて単語の重要度を算出するようにしている。しかしながら、これらのうちのいずれか一つを用いて重要度を算出したり、これらのうちのいずれか二つを組み合わせて重要度を算出するようにしてもよい。
【0152】
(2)上記実施形態では、当該文章における単語の出現回数に基づいて単語の強調度を算出するようにしている。しかし、文章中における単語の出現位置に基づいて、単語の強調度を判断するようにしてもよい。たとえば、文の後ろの方に出てくる単語の方が強調度を高くするようにしてもよい。さらに。出現回数と出現位置とを組み合わせて強調度を算出するようにしてもよい。
【0153】
(3)上記実施形態では、検索サイトにおける当該単語のヒット数と、検索対象の全ページ数との比率に基づいて希少度(IDF値)を算出するようにしている。しかし、辞書や百科事典(ウエブ上にあるものローカルにあるものを問わない)などにおいて当該単語が何回使用されているか(見出し項目だけでなく内容中に用いられている場合も含む回数)に基づいて、当該単語の希少度を算出するようにしてもよい。
【0154】
(4)上記実施形態では、ウエブ上の辞書の更新日の平均値と現在日の差に基づいて、現在の注目度(Hot係数)を算出するようにしている。しかしながら、最新の更新日との差に基づいて、現在の注目度を算出するようにしてもよい。あるいは、所定期間内に更新が行われた回数を算出し、これに基づいて現在の注目度を算出するようにしてもよい(更新回数が多いほど、注目度が大きい)。
【0155】
(5)上記実施形態では、各単語の重要度の平均値をしきい値として重要単語を抽出するようにしている。しかし、標準偏差、分散なども考慮して重要単語を抽出するようにしてもよい。
【0156】
(6)上記実施形態では、重要単語を含む文についてのみ重要度を算出するようにしている。しかし、全ての文について重要度を算出するようにしてもよい。
【0157】
(7)上記実施形態では、指定文字数を超えない範囲で、文を選択するようにしている。しかし、指定文字数と合計文字数の差の絶対値が最も小さくなるように文を選択するようにしてもよい。
【0158】
(8)上記実施形態では、指定文字数に基づいて文を選択するようにしている。しかし、文の合計数、行の合計数、文の合計データ量などに基づいて文を選択するようにしてもよい。
【0159】
(9)上記実施形態では、指定文字数などの文の選択基準は予め定められているものとしている。しかし、対象とする文章の文字数などに応じて、指定文字数などを可変にするようにしてもよい(たとえば、文章の文字数の半分を指定文字数とするなど)。これにより、文章の長さに対応した長さの要約文を得ることができる。
【0160】
(10)上記実施形態では、端末装置側において要約文作成処理を行っている。しかしながら、サーバ装置側において、要約文作成処理を行うようにしてもよい。
【0161】
(11)上記実施形態では、句点に基づいて文章中から「文」を抽出するようにしている。しかし、見出しなどのように句点のない文もある。そこで、見出しであると判断した部分(他の部分よりフォントが大きい、見出しであるとの属性が付与されている等により判断する)については、全体を一文であると判断するようにしてもよい。
【0162】
(12)上記実施形態では、単語の重要度を算出する際に、文章全体のジャンルや属性(社会面の記事であるか、三面記事であるかや、論文であるか雑文であるかなど)により、単語について係数を設けるようにしてもよい。たとえば、社会面における「国会」は、通常出てくる単語であるから係数を低くする。一方、三面記事における「国会」は、あまり出てこない単語であるから係数を高くする。この係数を、算出した重要度に乗じて、最終的な重要度を得る。
【0163】
(13)上記実施形態では、文の重要度を算出する際に、文と文の関連性を考慮せずに行っている。しかし、文と文の関連性も考慮して重要度を算出するようにしてもよい。たとえば、「その」「彼」等の指示代名詞が当該文に出てくる場合、重要度によって選択され、並び替えられた抽出文において、当該文より前の文が抽出されていない場合には、当該指示代名詞を含む文の係数を小さくする。一方、「したがって」「つまり」などの、話題を展開する接続詞が文に含まれる場合、当該文の係数を大きくする。この係数を、算出した重要度に乗じて、最終的な重要度を得る。
【特許請求の範囲】
【請求項1】
平面上に複数の記事を配置する記事配置決定装置であって、
複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段と、
を備えた記事配置決定装置。
【請求項2】
コンピュータによって平面上に複数の記事を配置する記事配置決定装置を実現するための記事配置決定プログラムであって、コンピュータを、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段として機能させるための記事配置決定プログラム。
【請求項3】
請求項1の装置または請求項2のプログラムにおいて、
前記装置は、前記仮想平面上に配置された各仮想記事領域間に配置された仮想バネの引力の合計値を算出する力合計算出手段をさらに備え、
前記仮想記事領域配置決定手段は、仮想記事領域を仮想平面に配置する仮想記事領域配置手段と、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計値が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置変更決定手段とを備えていることを特徴とする装置またはプログラム。
【請求項4】
請求項1〜3のいずれかの装置またはプログラムにおいて、
前記仮想記事領域生成手段は、前記仮想記事領域として、各記事の重要度に応じた面積を有する円を生成することを特徴とする装置またはプログラム。
【請求項5】
請求項1〜4のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置手段は、最も重要度の高い仮想記事領域を、前記平面上の右上または左上に固定して配置することを特徴とする装置またはプログラム。
【請求項6】
請求項1〜5のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置手段は、関連度の大きい仮想記事領域の対から順に、仮想記事領域を配置していくことを特徴とする装置またはプログラム。
【請求項7】
請求項1〜6のいずれかの装置またはプログラムにおいて、
前記仮想バネ設定手段は、隣接して接した状態にある仮想記事領域間においては、引力が生じないように仮想バネを設定することを特徴とする装置またはプログラム。
【請求項8】
請求項1〜7のいずれかの装置またはプログラムにおいて、
前記仮想バネ設定手段は、各記事間の関連度が大きいほどバネ定数を大きくすることを特徴とする装置またはプログラム。
【請求項9】
請求項1〜8のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置変更決定手段は、最も引力の大きい仮想バネに関連する仮想記事領域に着目して、配置変更を行うことを特徴とする装置またはプログラム。
【請求項10】
平面上に複数の記事を配置する記事配置決定装置であって、
複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段と、
を備えた記事配置決定装置。
【請求項11】
コンピュータによって平面上に複数の記事を配置する記事配置決定装置を実現するための記事配置決定プログラムであって、コンピュータを、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段として機能させるための記事配置決定プログラム。
【請求項12】
請求項1〜11のいずれかの装置またはプログラムにおいて、
前記装置は、さらに、
解析対象となる記事を解析し、記事を構成する少なくとも名詞を単語として抽出する単語抽出手段と、
単語抽出手段によって抽出された記事に含まれる各単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する重要度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項13】
請求項1〜12のいずれかの装置またはプログラムにおいて、
前記装置は、さらに、
各記事に含まれる単語に基づいて、各記事間の関連度を算出する関連度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項14】
請求項13の装置またはプログラムにおいて、
前記関連度算出手段は、
各記事において重要度の高い上位から所定個の単語を重要単語として決定する重要単語決定手段と、
関連度を算出する一方の記事に含まれる重要単語と、関連度を算出する他方の記事に含まれる重要単語を、ウエブ上の検索サイトにて検索してヒット数を取得する単語間の関連度を算出する単語間関連度算出手段と、
前記一方の記事に含まれる重要単語と、前記他方の記事に含まれる重要単語との組み合わせを変えて、単語間関連度算出手段によって得た関連度を合計し、両記事間の関連度を算出する記事間関連度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項15】
コンピュータによって平面上における複数の記事配置を決定する方法であって、当該コンピュータは、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成し、
生成された仮想記事領域を仮想平面上に配置し、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定し、
前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定し、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定することを特徴とする記事配置決定方法。
【請求項1】
平面上に複数の記事を配置する記事配置決定装置であって、
複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段と、
を備えた記事配置決定装置。
【請求項2】
コンピュータによって平面上に複数の記事を配置する記事配置決定装置を実現するための記事配置決定プログラムであって、コンピュータを、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置決定手段と、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定する記事領域配置決定手段として機能させるための記事配置決定プログラム。
【請求項3】
請求項1の装置または請求項2のプログラムにおいて、
前記装置は、前記仮想平面上に配置された各仮想記事領域間に配置された仮想バネの引力の合計値を算出する力合計算出手段をさらに備え、
前記仮想記事領域配置決定手段は、仮想記事領域を仮想平面に配置する仮想記事領域配置手段と、前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計値が小さくなるような仮想記事領域の配置を決定する仮想記事領域配置変更決定手段とを備えていることを特徴とする装置またはプログラム。
【請求項4】
請求項1〜3のいずれかの装置またはプログラムにおいて、
前記仮想記事領域生成手段は、前記仮想記事領域として、各記事の重要度に応じた面積を有する円を生成することを特徴とする装置またはプログラム。
【請求項5】
請求項1〜4のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置手段は、最も重要度の高い仮想記事領域を、前記平面上の右上または左上に固定して配置することを特徴とする装置またはプログラム。
【請求項6】
請求項1〜5のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置手段は、関連度の大きい仮想記事領域の対から順に、仮想記事領域を配置していくことを特徴とする装置またはプログラム。
【請求項7】
請求項1〜6のいずれかの装置またはプログラムにおいて、
前記仮想バネ設定手段は、隣接して接した状態にある仮想記事領域間においては、引力が生じないように仮想バネを設定することを特徴とする装置またはプログラム。
【請求項8】
請求項1〜7のいずれかの装置またはプログラムにおいて、
前記仮想バネ設定手段は、各記事間の関連度が大きいほどバネ定数を大きくすることを特徴とする装置またはプログラム。
【請求項9】
請求項1〜8のいずれかの装置またはプログラムにおいて、
前記仮想記事領域配置変更決定手段は、最も引力の大きい仮想バネに関連する仮想記事領域に着目して、配置変更を行うことを特徴とする装置またはプログラム。
【請求項10】
平面上に複数の記事を配置する記事配置決定装置であって、
複数の記事および各記事の重要度を記録するとともに、各記事間の関連度を記録する記録部と、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段と、
を備えた記事配置決定装置。
【請求項11】
コンピュータによって平面上に複数の記事を配置する記事配置決定装置を実現するための記事配置決定プログラムであって、コンピュータを、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成する仮想記事領域生成手段と、
生成された仮想記事領域のうち少なくとも最も大きい重要度を有するものを仮想平面上に互いに重複しないように固定的に配置した固定的仮想記事領域とするともに、他の仮想記事領域を当該仮想平面上において、互いに重複することを許容して遠方に配置した可動的仮想記事領域とする仮想記事領域配置手段と、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定する仮想バネ設定手段と、
前記仮想平面上に配置された前記可動的仮想記事領域を、設定された仮想バネの引力に従い、前記固定的仮想記事領域に向って移動させ、前記可動的仮想記事領域が前記固定的仮想記事領域に接すると、当該可動的仮想記事領域を固定的仮想記事領域とすることで、前記仮想記事領域の配置を決定する記事領域配置決定手段として機能させるための記事配置決定プログラム。
【請求項12】
請求項1〜11のいずれかの装置またはプログラムにおいて、
前記装置は、さらに、
解析対象となる記事を解析し、記事を構成する少なくとも名詞を単語として抽出する単語抽出手段と、
単語抽出手段によって抽出された記事に含まれる各単語の重要度を算出し、当該各単語の重要度に基づいて各記事の重要度を算出する重要度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項13】
請求項1〜12のいずれかの装置またはプログラムにおいて、
前記装置は、さらに、
各記事に含まれる単語に基づいて、各記事間の関連度を算出する関連度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項14】
請求項13の装置またはプログラムにおいて、
前記関連度算出手段は、
各記事において重要度の高い上位から所定個の単語を重要単語として決定する重要単語決定手段と、
関連度を算出する一方の記事に含まれる重要単語と、関連度を算出する他方の記事に含まれる重要単語を、ウエブ上の検索サイトにて検索してヒット数を取得する単語間の関連度を算出する単語間関連度算出手段と、
前記一方の記事に含まれる重要単語と、前記他方の記事に含まれる重要単語との組み合わせを変えて、単語間関連度算出手段によって得た関連度を合計し、両記事間の関連度を算出する記事間関連度算出手段と、
を備えたことを特徴とする装置またはプログラム。
【請求項15】
コンピュータによって平面上における複数の記事配置を決定する方法であって、当該コンピュータは、
各記事に対応し、各記事の重要度に応じた面積を有する仮想記事領域を生成し、
生成された仮想記事領域を仮想平面上に配置し、
各記事間の関連度に応じたバネ定数を有する仮想バネを、対応する前記仮想記事領域間に設定し、
前記仮想平面上の仮想記事領域の配置を変更し、仮想バネの引力の合計が小さくなるような仮想記事領域の配置を決定し、
決定された仮想記事領域の配置に基づき、記事領域の配置を決定することを特徴とする記事配置決定方法。
【図1a】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【公開番号】特開2013−16135(P2013−16135A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−150378(P2011−150378)
【出願日】平成23年7月6日(2011.7.6)
【出願人】(596100812)京セラコミュニケーションシステム株式会社 (38)
【出願人】(305026161)京セラ丸善システムインテグレーション株式会社 (4)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成23年7月6日(2011.7.6)
【出願人】(596100812)京セラコミュニケーションシステム株式会社 (38)
【出願人】(305026161)京セラ丸善システムインテグレーション株式会社 (4)
【Fターム(参考)】
[ Back to top ]