【文献】
村田 匡輝 外2名,講演テキストにおける読みやすさを考慮した改行挿入とその評価,言語処理学会第15回年次大会発表論文集,日本,言語処理学会,2009年 3月 2日,p.474-477
【文献】
山田 浩輝 外2名,モバイル機器におけるドキュメント閲覧効率化のためのテキストと図表の独立ズーミング,モバイル学会誌,日本,特定非営利活動法人モバイル学会,2012年 1月 1日,第2巻第1号,p.9-14
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0017】
本実施の形態である文書表示装置100は、文書を表示可能なものであって、
図1の例に示すように、文書受付モジュール110、文書表示モジュール120、言語処理モジュール130、操作受付モジュール140、倍率決定モジュール150、改行位置決定モジュール160、拡大・縮小処理モジュール170を有している。特に、表示装置を有している携帯可能な情報処理装置に適している。
【0018】
文書受付モジュール110は、文書表示モジュール120、言語処理モジュール130と接続されている。文書受付モジュール110は、表示すべき文書を受け付ける。なお、ここでの対象とする文書とは、少なくともテキストデータを含み、場合によっては画像、図形、表、動画、音声等の電子データ、又はこれらの組み合わせを含めてもよい。文書を受け付けるとは、例えば、インターネット等の通信回線を介して、文書を受信すること、メモリ(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等(例えば、ハードディスク)を含む)等に記憶されている文書を読み出すこと等が含まれる。また、文書の内容として、ニュース、ビジネスに用いられる文書、広告宣伝等であってもよい。もちろんのことながら、言語は日本語に限られず、英語、中国語等であってもよい。
文書表示モジュール120は、文書受付モジュール110、拡大・縮小処理モジュール170と接続されている。文書表示モジュール120は、文書受付モジュール110が受け付けた文書を表示する。例えば、タッチパネルである液晶ディスプレイ等に表示する。特に、携帯可能な装置であるので、表示画面の大きさは小さいのが一般的である。
【0019】
言語処理モジュール130は、文書受付モジュール110、改行位置決定モジュール160と接続されている。言語処理モジュール130は、文書受付モジュール110が受け付けた文書内の文章(テキストデータ)を言語処理によって、改行の候補を抽出する。ここでの言語処理とは、例えば、形態素解析、構文解析等がある。つまり、文書内の文章を形態素、文節等の意味のある単位に分解する処理であればよい。その分解した単位毎に改行の候補を抽出する。具体的には、形態素毎、文節毎、節毎、文毎、を改行の候補とする。
対象とする文書は、文書受付モジュール110が受け付けた文書であればよく、文書表示モジュール120が表示しているか否かにはかかわらない。つまり、文書表示モジュール120が既に表示している文書、未だ表示していない文書も対象となる。
【0020】
操作受付モジュール140は、倍率決定モジュール150と接続されている。操作受付モジュール140は、文書表示モジュール120によって表示された文書に対しての拡大又は縮小の操作を受け付ける。例えば、ユーザがタッチパネル上で行うピンチアウト、ピンチインの操作を受け付ける。
倍率決定モジュール150は、操作受付モジュール140、改行位置決定モジュール160、拡大・縮小処理モジュール170と接続されている。倍率決定モジュール150は、操作受付モジュール140によって受け付けられた操作に基づいて、表示倍率を決定する。例えば、ピンチアウト、ピンチインであれば、2本の指を画面上に載せた最初の位置間の距離から、広げる又は縮める操作によって変換した位置における距離の比率を用いて、表示倍率を決定する。もちろんのことながら、ユーザの拡大縮小操作の終了時だけでなく、その操作の途中であっても表示倍率の算出を行ってもよい。
【0021】
改行位置決定モジュール160は、言語処理モジュール130、倍率決定モジュール150、拡大・縮小処理モジュール170と接続されている。改行位置決定モジュール160は、倍率決定モジュール150によって決定された表示倍率に基づいて、言語処理モジュール130によって抽出された改行の候補から改行位置を決定する。例えば、表示倍率と改行の候補(区切り単位)を対応させたテーブルを予め用意しておき、そのテーブルにしたがって表示倍率に対応する改行の候補を抽出すればよい。より詳細に説明すると、テーブルは、文書表示装置100又は表示装置の大きさ(インチ数、表示装置の横幅のドット数等)毎に、元の文字の大きさ(ポイント数、文字の横幅のドット数等)、表示倍率の組み合わせに対応した改行の候補が記載されている。なお、元の文字の大きさ、表示倍率は、範囲を示すものであってもよい。また、拡大・縮小した後の、文字の大きさと改行の候補を対応させたテーブルであってもよい。この場合、元の文字の大きさに表示倍率を乗算して、拡大・縮小した後の文字の大きさを算した後に、そのテーブルを用いればよい。結果として、表示される文章の行は、意味のある単位で区切られていることになる。
また、改行位置決定モジュール160は、言語処理モジュール130による言語処理結果と文書表示モジュール120の表示幅に基づいて、言語処理モジュール130によって抽出された改行の候補から改行位置を決定するようにしてもよい。例えば、表示倍率に加えて、言語処理結果として改行の候補(区切り単位)の最長文字数と表示可能幅から改行位置を決定する。つまり、表示画面に1行が収まる最大の長さで、改行を行うことになる。また、表示倍率を用いて、改行位置を決定しているので、小さい文字となる場合は、より大きな意味単位(例えば、節、文単位)で改行を行うことになり、大きな文字となる場合は、より小さな意味単位(例えば、形態素、文節単位)で改行を行うことになる。これによって、表示倍率と言語処理結果と表示幅に沿った改行位置とすることができる。なお、元の文章に改行が含まれている場合は、その改行を削除するようにしてもよい。その際、句点の後の改行は残すようにしてもよい。句点の後の改行は、段落の終了を示しているので、削除しないようにしたものである。
拡大・縮小処理モジュール170は、文書表示モジュール120、倍率決定モジュール150、改行位置決定モジュール160と接続されている。拡大・縮小処理モジュール170は、倍率決定モジュール150によって決定された表示倍率に基づいて、改行位置決定モジュール160によって決定された改行位置で改行された文書を拡大又は縮小する。
【0022】
「これは彼が彼女にあげた本です。」という文を例として説明する。
(1)言語処理モジュール130が、文書内の文章に対して形態素解析、構文解析を行い、形態素、文節、節の境界に、それぞれ<m>、<b>、<c>のタグを付与する。これらが、改行の候補となる。
「これ<m>は<b>彼<w>が<b>彼女<w>に<b>あげた<c>本<w>です<w>。<c>」
(2)改行位置決定モジュール160が、文書表示装置100の画面サイズを取得し、改行を入れた場合に最大の幅が画面の横幅以下となるように、境界に使うタグを決定する。この場合は、<m>、<b>、<c>のいずれかを選択することになる。
(3)改行位置決定モジュール160が、対象タグの位置に改行コードを挿入し、他のタグは削除する。
<c>を選択した場合は以下のようになる。
「これは彼が彼女にあげた
本です。」
(4)操作受付モジュール140が拡大縮小の操作を受け付け、倍率決定モジュール150が表示倍率を算出する毎に前記(2)、(3)の処理を繰り返す。
【0023】
また、倍率決定モジュール150は、要素倍率決定モジュール155を有しており、文書内の要素に応じて表示倍率を決定するようにしてもよい。例えば、文書内の文章に対しては、前述の処理で表示倍率を決定し、文章以外の要素(例えば、画像等)に対しては、異なる表示倍率となるようにしてもよい。要素倍率決定モジュール155は、文書内に文章以外の要素がある場合は、倍率決定モジュール150によって決定された第1の表示倍率に基づいて、所定の改行位置となるような文章の表示サイズを算出し、その表示サイズに基づいて、その要素の第2の表示倍率を算出する。例えば、指定された表示倍率との差分が予め定められた範囲内において、1行の文字数が最も多くなるように、改行位置を決定し、その改行位置で文章を表示した場合の文章の表示サイズB(最も長い行の表示サイズ)を算出する。拡大縮小前の文章部分の表示サイズと表示サイズBから第1の表示倍率を算出する。そして、文書の表示サイズA(横幅、一般的には表示画面の横幅)から文章の表示サイズBを減算して、文章以外の要素の表示サイズC(例えば、画像等の横幅)を決定する。拡大縮小前の文章以外の要素の表示サイズと表示サイズCに基づいて、文章以外の要素の第2の表示倍率を算出する。また、所定の改行位置として、予め定められた改行位置(例えば、文節単位)としてもよいし、ユーザが選択した単位としてもよい。
この場合、改行位置決定モジュール160は、その所定の改行位置を改行位置として決定する。
そして、拡大・縮小処理モジュール170は、文章を第1の表示倍率で拡大又は縮小し、文章以外の要素を第2の表示倍率で拡大又は縮小する。
この処理によって、文章の読みやすさを優先して、文書以外の要素の表示倍率を決定することができる。
【0024】
また、改行位置決定モジュール160は、行内の長さの統計的数値である不揃具合を算出し、その不揃具合に基づいて、改行位置を決定するようにしてもよい。統計的数値としては、例えば、行内の文字数の分散である。後述する
図7の例にフローチャートのように、改行位置候補を順次選択し、不揃具合が閾値以下であるものを改行位置として選択するようにしてもよい。また、言語処理モジュール130が抽出した改行の候補のうち、最も不揃具合が小さい改行位置を選択してもよい。この処理によって、行末である改行位置が揃った文章を表示することができるようになる。また、等幅フォントではなく、文字毎に幅が異なるプロポーショナルフォントを用いている場合は、文字数ではなく、その行を表示した場合の行長さの分散を用いればよい。
また、改行位置決定モジュール160は、行毎に改行位置を決定するようにしてもよい。前述の例では、文章内で<m>、<b>、<c>のいずれかを選択したが、行毎に異なる改行の候補(タグ)を選択するようにしてもよい。これによって、<m>、<b>、<c>のいずれかを選択した場合よりも、行長を長くすることができ、文章の表示領域内を有効に使用することができる。
【0025】
図2は、本実施の形態による処理例を示すフローチャートである。
ステップS202では、文書受付モジュール110が、対象とする文書を受け付ける。
ステップS204では、言語処理モジュール130が、文書に対して改行位置の候補となり得る位置を抽出する。
ステップS206では、文書表示モジュール120が、文書を画面に表示する。ここでの表示は、本実施の形態による改行処理が行われていない文書(ステップS202で受け付けた文書そのもの)の表示である。例えば、
図3(a)の画面300の文書表示領域310内に文書を表示する。なお、この文章は、もともと改行が含まれている文章である。
ステップS208では、操作受付モジュール140が、文書に対するユーザの拡大/縮小操作を受け付ける。例えば、
図3(a)の文書表示領域310内でユーザがピンチアウトの操作を行う。
ステップS210では、倍率決定モジュール150が、表示倍率を決定する。
【0026】
ステップS212では、改行位置決定モジュール160が、文書の改行位置を決定する。なお、拡大/縮小処理を行った結果、文章の横幅が文書表示領域310に入っているか否かを判断し、入りきらない場合に、ステップS212の処理を行うようにしてもよい。例えば、
図3(b)の状態は、
図3(a)の状態からピンチアウトが行われたが、文章の横幅が文書表示領域310に入っているので、ステップS212の処理は行っていない。また、ステップS210の後は、常にステップS212の処理を行ってもよい。
図3(b)の例は、もともとの改行の位置と、ステップS212の処理が行われた場合の改行の位置が一致した場合の例としてもよい。
図4(a)の例は、ユーザによってさらにピンチアウトの操作が行われた場合の例を示しており、文章が文書表示領域310の横幅に収まるように、改行位置の候補(
図4(a)の場合は文節)を決定している。さらに、ピンチアウトの操作が行われた場合、
図4(b)の例のように、文章が文書表示領域310の横幅に収まるように、改行位置の候補(
図4(b)の場合は形態素)を決定している。
ステップS214では、拡大・縮小処理モジュール170が、表示倍率に応じた文書の拡大/縮小処理を行う。
なお、ステップS204の処理は、ステップS212前であれば、ステップS204の位置でなくてもよい。
【0027】
図2に例示するフローチャートのステップS212の処理を、
図5に例示するフローチャートによる処理としてもよい。なお、
図6の例を用いて説明する。
図6(a)は、文書を表示している文書表示領域310に、文章以外の要素である画像620が含まれている例を示している。
図6(b)の例は、本実施の形態による処理を行わなかった場合の例を示している。つまり、文章部分も画像620も同じ表示倍率で拡大したものであり、画像620は拡大画像630に拡大されており、その残りの領域である文章の表示領域の横幅で改行を行った例である。したがって、文節の途中で改行が行われていたりしている。
【0028】
ステップS502では、倍率決定モジュール150が、文章以外の要素はあるか否かを判断し、ある場合はステップS504へ進み、それ以外の場合はステップS510へ進む。例えば、表示画面内に画像等があるか否かを判断する。
図6(a)の例は、文書を表示している文書表示領域310に、画像620が含まれているので、ステップS504へ進む。
ステップS504では、倍率決定モジュール150が、表示倍率に応じて所定の改行位置候補となるような文章の表示サイズを算出する。
図6(c)の例では、所定の改行位置は文節であり、その表示幅に収まるように文節で改行した場合を示している。ここでの文章の表示サイズ(横幅)は、最長の行である「縮小に応じて」の行長さになる。
ステップS506では、要素倍率決定モジュール155が、画面サイズから文章の表示サイズを減算して、文章以外の要素の表示倍率を算出する。ピンチアウトの操作による倍率では、
図6(a)に例示する画像620は、
図6(b)に例示する拡大画像630の大きさになるが、本実施の形態の形態では、
図6(c)に例示する修正拡大画像640のような大きさになる。つまり、文章部分の改行位置に合わせた文章表示領域としたため、画像の領域は本来の倍率で拡大したものよりも小さくなる。
ステップS508では、改行位置決定モジュール160が、所定の改行位置候補を改行位置として決定する。
ステップS510では、改行位置決定モジュール160が、文書の改行位置を決定する。
この後、拡大・縮小処理モジュール170は、文章をステップS504で算出した表示サイズになるような表示倍率で拡大縮小し、文章以外の要素をステップS506で算出した表示倍率で拡大縮小する。
【0029】
図7は、本実施の形態による処理例を示すフローチャートである。
ステップS702では、改行位置候補を選択する。選択する順序は、予め定められている。
ステップS704では、各行の文字数を計数する。
ステップS706では、行末位置の不揃具合を算出する。
ステップS708では、不揃具合は閾値以下か否かを判断し、閾値以下の場合はステップS714へ進み、それ以外の場合はステップS710へ進む。
ステップS710では、改行位置候補は残っているか否かを判断し、残っている場合はステップS702へ戻り、それ以外の場合はステップS712へ進む。
ステップS712では、不揃具合が閾値以下となる改行位置候補がないので、不揃具合の最小である改行位置候補を改行位置に選択する。
ステップS714では、不揃具合が閾値以下となっている改行位置候補を改行位置に決定する。
【0030】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、
図8に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ、携帯電話(スマートフォンを含む)等である。つまり、具体例として、処理部(演算部)としてCPU801を用い、記憶装置としてRAM802、ROM803、HD804を用いている。HD804として、例えばハードディスクを用いてもよい。文書受付モジュール110、文書表示モジュール120、言語処理モジュール130、操作受付モジュール140、倍率決定モジュール150、要素倍率決定モジュール155、改行位置決定モジュール160、拡大・縮小処理モジュール170等のプログラムを実行するCPU801と、そのプログラムやデータを記憶するRAM802と、本コンピュータを起動するためのプログラム等が格納されているROM803と、補助記憶装置であるHD804と、キーボード、マウス、タッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置806と、液晶ディスプレイ等の出力装置805と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース807、そして、それらをつないでデータのやりとりをするためのバス808により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【0031】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、
図8に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図8に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えばASIC等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに
図8に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。
【0032】
前記実施の形態においては、対象として横書きの文書を示したが、縦書きの文章を対象としてもよい。この場合、横幅とあったものは縦長とすればよい。
【0033】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。