(57)【要約】      （修正有）【課題】プレーンテキストが記述している内容を、簡易な処理で容易に把握することができるテキスト表示技術を提供する。【解決手段】フォーマット情報が存在しないプレーンテキストファイルのテキスト構造を、階層構造の各階層を示すタグとそのタグに対応付けるべき文字列ブロックの開始箇所を指定する正規表現によって記述されている定義データにしたがって解析して、文字列ブロックの開始箇所を特定し、各文字列ブロックを階層表示ビューの各階層に割り当てて画面表示する。【選択図】図４
2016004539.tif 000002
【特許請求の範囲】
【請求項１】
文書のフォーマットに関する情報が付与されていないプレーンテキストファイルが記述している文字列を画面表示する処理をコンピュータに実行させるテキスト表示プログラムであって、前記コンピュータに、
前記プレーンテキストファイルを記憶装置から読み出す読出ステップ、
前記プレーンテキストファイルが記述している文字列ブロック間の階層関係を定義する定義データを取得する定義取得ステップ、
前記定義データが定義している前記階層関係にしたがって前記文字列ブロック間の階層関係を表現した階層表示ビューを画面表示する階層表示ステップ、
を実行させ、
前記プレーンテキストファイルは、１以上の前記文字列ブロックを含んでおり、
前記定義データは、前記プレーンテキストファイルが記述している各前記文字列ブロックの開始箇所を特定する文字列を定義しており、
前記階層表示ステップにおいては、前記コンピュータに、前記開始箇所によって特定される各前記文字列ブロックを前記階層表示ビューの各階層に割り当てて画面表示させる
ことを特徴とするテキスト表示プログラム。
【請求項２】
前記定義データは、前記文字列ブロックの前記開始箇所が記述している文字列のうち前記階層表示ビューの各階層のタイトルとして使用すべきものを前記階層毎に定義しており、
前記テキスト表示プログラムは、前記階層表示ステップにおいて、前記コンピュータに、前記定義データの定義にしたがって前記文字列ブロックの前記開始箇所が記述している文字列のうち前記階層表示ビューの各階層のタイトルとして使用すべきものを特定させた上で、その特定した文字列を前記階層表示ビューの各階層のタイトルとして表示させる
ことを特徴とする請求項１記載のテキスト表示プログラム。
【請求項３】
前記定義データは、前記文字列ブロックの前記開始箇所が記述している文字列のうち前記階層表示ビューの各階層のタイトルとして使用すべきものの文字列パターンを前記階層毎に定義しており、
前記テキスト表示プログラムは、前記階層表示ステップにおいて、前記コンピュータに、前記文字列ブロックの前記開始箇所が記述している文字列のうち前記文字列パターンに合致するものを特定させた上で、その合致した文字列を前記階層表示ビューの各階層のタイトルとして表示させる
ことを特徴とする請求項２記載のテキスト表示プログラム。
【請求項４】
前記テキスト表示プログラムは、前記コンピュータにさらに、
前記階層表示ビューの各階層のうちいずれかを選択する選択入力を受け取るステップ、
前記プレーンテキストファイルが記述している前記文字列ブロックのうち前記選択入力に対応するものを抽出して画面表示するステップ、
を実行させることを特徴とする請求項１記載のテキスト表示プログラム。
【請求項５】
前記テキスト表示プログラムは、前記コンピュータにさらに、
前記プレーンテキストファイルが記述している文字列をキーワードとして指定して検索するよう要求する検索リクエストを受け取るステップ、
前記検索リクエストが指定する前記キーワードに合致する文字列を含んでいる前記文字列ブロックを前記プレーンテキストファイルから抽出するステップ、
前記階層表示ビューのなかから前記抽出した文字列ブロックに対応する前記階層のみを取り出して前記階層表示ビュー上に画面表示するステップ、
を実行させることを特徴とする請求項１記載のテキスト表示プログラム。
【請求項６】
前記テキスト表示プログラムは、前記コンピュータにさらに、
１以上の前記プレーンテキストファイルを指定する指定入力を受け取るステップ、
指定された各前記プレーンテキストファイルについて、前記読出ステップ、前記定義取得ステップ、および前記画面表示ステップを実行するステップ、
前記階層表示ビューが表示している各階層およびその各階層に対応する前記文字列ブロックを特定する情報を記憶装置に格納するステップ、
を実行させることを特徴とする請求項１記載のテキスト表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストデータの内容を表示する技術に関する。
【背景技術】
【０００２】
コンピュータが取り扱う文書データは、文書のフォーマットに関する情報が当該文書データ内に付与されているものと、フォーマットに関する情報が付与されず文字列のみを記録したプレーンテキストとがある。プレーンテキストは一般的なテキストエディタプログラムによって閲覧編集することができる。文字量が多いプレーンテキストデータは、記述している項目の意味づけや階層構造が分かりにくい点において、閲覧編集しにくいといえる。
【０００３】
下記特許文献１は、プレーンテキストに対して文書構造情報を付加することにより文書処理に好適な文書データ（タグファイル）を作成する技術を開示している（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−０５１９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１記載の技術は、プレーンテキストが記述している原文を形態素解析し、その記述内容の構造や階層関係にしたがって、原文のプレーンテキストに対して構造情報を付加するものであると考えられる。しかしそのような解析処理は一般に演算負荷が高い。またプレーンテキストが記述している内容や階層関係がさほど複雑ではない場合においては、記述内容の意味を解析しなくとも内容を十分に把握できる場合もあると考えられる。
【０００６】
本発明は、上記のような課題に鑑みてなされたものであり、プレーンテキストが記述している内容を、簡易な処理で容易に把握することができるテキスト表示技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るテキスト表示プログラムは、プレーンテキストファイルが記述している文字列ブロックの開始箇所を特定し、各文字列ブロックを階層表示ビューの各階層に割り当てて画面表示する。
【発明の効果】
【０００８】
本発明に係るテキスト表示プログラムによれば、プレーンテキストファイルが記述している文字列ブロックを行単位で特定して階層表示するので、簡易な処理によってプレーンテキストファイルの構造を可視化することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係るテキスト表示プログラム１２０を実行するコンピュータ１００およびその周辺構成を示す図である。
【図２】プレーンテキストファイル１４１の例を示す図である。
【図３】定義データ１３０の例を示す図である。
【図４】テキスト表示プログラム１２０の画面イメージを示す図である。
【図５】実施形態２に係るテキスト表示プログラム１２０の画面例を示す図である。
【図６】テキスト表示プログラム１２０が検索結果を表示している様子を示す画面イメージである。
【図７】実施形態３に係るテキスト表示プログラム１２０を実行するコンピュータ１００およびその周辺構成を示す図である。
【図８】実施形態３におけるテキスト表示プログラム１２０の画面イメージを示す図である。
【図９】実施形態４におけるプレーンテキストファイル１４１の例を示す図である。
【図１０】実施形態４における定義データ１３０の例を示す図である。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
図１は、本発明の実施形態１に係るテキスト表示プログラム１２０を実行するコンピュータ１００およびその周辺構成を示す図である。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、テキスト表示プログラム１２０、定義データ１３０、記憶装置１４０を備える。記憶装置１４０はプレーンテキストファイル１４１を格納している。
【００１１】
テキスト表示プログラム１２０は、プレーンテキストファイル１４１のテキスト構造を解析して画面表示する処理を実装したプログラムである。詳細については後述する。以下では記載の便宜上、テキスト表示プログラム１２０を動作主体として説明する場合があるが、実際にこれを実行するのはＣＰＵ１１０である。
【００１２】
定義データ１３０は、テキスト表示プログラム１２０がプレーンテキストファイル１４１のテキスト構造を解析するルールを記述したデータである。定義データ１３０の具体例については後述する。
【００１３】
テキスト表示プログラム１２０と定義データ１３０は、記憶装置１４０に格納することもできるし、その他適当な記憶装置に格納することもできる。定義データ１３０は必ずしもデータファイルとして構成する必要はなく、例えばテキスト表示プログラム１２０の一部として組み込むこともできる。
【００１４】
図２は、プレーンテキストファイル１４１の例を示す図である。プレーンテキストファイル１４１は、文書のフォーマットに関する情報がファイル内に付与されておらず、文字列のみを記述したデータファイルである。
【００１５】
プレーンテキストファイル１４１は、フォーマット情報が存在しないので、これを閲覧するとき、原則としては記述されている文字列がそのまま画面表示される。しかし実際には、プレーンテキストファイル１４１が記述している文字列はその内容に応じていくつかの文字列ブロックに分かれている場合がある。またその文字列ブロック間には階層関係が存在する場合がある。
【００１６】
図２に示す例においては、１行目に記載されている文字列は当該文書のタイトルであり、文字列ブロックとして「１．第２室トピックス」と「２．案件詳細」の２つが存在していると考えられる。これらブロックは当該文書に従属する。さらに各文字列ブロックは、下階層の文字列ブロックとして、「◆  案件名：」で開始する文字列ブロックを含んでいると考えられる。
【００１７】
本実施形態１に係るテキスト表示プログラム１２０は、プレーンテキストファイル１４１の上記のような階層関係を解析し、その階層関係を後述する階層表示ビュー上で画面表示する。
【００１８】
図３は、定義データ１３０の例を示す図である。定義データ１３０は、プレーンテキストファイル１４１のテキスト構造を定義するデータであり、階層構造の各階層を示すタグとそのタグに対応付けるべき文字列ブロックの開始箇所を指定する正規表現によって記述されている。以下の説明の便宜のため行番号を併記したが、実際のデータ上では行番号は必要ない。
【００１９】
１行目のタグ「Ｔ」は、当該文書のタイトルとして使用すべき文字列を指定する。ここでは２行目のタグ「ＴＲ」が指定する正規表現に合致する文字列をタイトルとして用いるべき旨を指定している。図２の例においては、タグＴＲの正規表現「（）」が指定する文字列パターンに合致するプレーンテキストファイル１４１の行を抽出し、これを当該文書のタイトルとして用いることになる。図２に示す例においては、１行目がこれに該当する。
【００２０】
４行目のタグ「ＢＴ」は、１つ目の文字列ブロックのタイトルを指定する。ここでは固定文字列として「１．第２室トピックス」が指定されている。５行目のタグ「ＢＢＲ」は１つ目の文字列ブロックの開始箇所を指定する正規表現を記述する。ここではプレーンテキストファイル１４１内に必ず「１．第２室トピックス」という文字列が含まれると仮定して当該文字列を開始箇所として指定しているが、メタ文字を含む正規表現によって開始箇所を指定することもできる。連続する複数行の組み合わせで文字列ブロックの開始が特定される場合は、複数行にまたがる正規表現により指定することもできる。
【００２１】
文字列ブロックの終了は次の文字列ブロック開始直前の行、ファイルの最終行、もしくは文字列ブロックの終了箇所を指定する正規表現により決定される。６行目の「ＢＢＥ」は文字列ブロックの終了箇所を指定する正規表現を記述した例である。終了箇所の指定を省略した場合は、次の文字列ブロック開始直前の行もしくはファイルの最終行が文字列ブロックの終了位置として判定される。
【００２２】
１４行目のタグ「ＢＴ」、１５行目のタグ「ＢＢＲ」、１６行目のタグ「ＢＢＥ」は、２つ目の文字列ブロックについて同様にタイトルと開始箇所と終了箇所を指定している。
【００２３】
各文字列ブロックは、配下に別の文字列ブロックを含む場合がある。図２に示す例においては、「◆  案件名：」で開始する文字列ブロックはそれぞれ「１．第２室トピックス」「２．案件詳細」の下階層に配置されるものである。定義データ１３０はこれら下階層の文字列ブロックについても定義することができる。
【００２４】
８行目のタグ「ＢＳＴ」は、１つ目の文字列ブロック「１．第２室トピックス」に従属する下層文字列ブロックのタイトルを指定する。ここでは９行目のタグ「ＢＳＲ」が指定する正規表現に合致する文字列をタイトルとして用いるべき旨を指定している。９行目のタグ「ＢＳＲ」は、下層文字列ブロックの開始箇所を指定する役割も有する。すなわち、「◆  案件名：」で開始する行は、「１．第２室トピックス」に従属する下層文字列ブロックとなる。
【００２５】
下層文字列ブロックが複数存在する場合は、タグ「ＢＳＴ」「ＢＳＲ」のペアを複数指定することもできる。図３の例においては、「１．第２室トピックス」に従属する下層文字列ブロックは２組存在する。プレーンテキストファイル１４１の先頭行から見て次の上層文字列ブロックが出現するまでに登場する下層文字列ブロックは、全て直近で定義されている上層文字列ブロックに従属するとみなすことができる。
【００２６】
１８行目〜２２行目の各タグは、２つ目の文字列ブロック「２．案件詳細」に従属する下層文字列ブロックについて、同様に定義している。
【００２７】
なおプレーンテキストはフォーマット情報を含まないので、文字列ブロックは１以上の文字行によって構成されていると考えられる。したがって文字列ブロックの開始箇所は、例えば行頭の文字列などのように、文字列ブロックの開始箇所を行単位で特定することができればよいと考えられる。
【００２８】
図４は、テキスト表示プログラム１２０の画面イメージを示す図である。ここでは図２に例示したプレーンテキストファイル１４１を図３に例示した定義データ１３０にしたがって解析した結果を表示している。
【００２９】
図４左側の階層表示ビューは、プレーンテキストファイル１４１が記述している文字列ブロックの階層関係を、ツリービューによって表示している。ルートノードは当該文書のタイトルを表示しており、その配下の２つのノードは２つの文字列ブロックおよびそのタイトルを表示している。
【００３０】
各文字列ブロックの配下には、下層文字列ブロックが含まれている。ここでは２つ目の文字列ブロック「２．案件詳細」配下の文字列ブロックのタイトルを階層表示ビュー上で展開している。
【００３１】
ユーザが階層表示ビューのいずれかのノードを選択すると、テキスト表示プログラム１２０は、そのノードおよびこれに属する下層ノードに対応する文字列ブロックを画面右側に表示する。図４においては、２目の文字列ブロック「２．案件詳細」を選択し、その配下の下層文字列ブロックと併せて画面右側に表示している。
【００３２】
階層表示ビューの各ノードと文字列ブロックとの間の対応関係は、例えばプレーンテキストファイル１４１内の各文字列ブロックの開始行番号と各ノードとを対応付けることによって保持することができるが、これに限られるものではなくその他適当な手法を用いてもよい。
【００３３】
＜実施の形態１：まとめ＞
以上のように、本実施形態１において、定義データ１３０はプレーンテキストファイル１４１内の各行が記述している文字列ブロックの開始箇所（または開始行）を特定する正規表現を定義しており、テキスト表示プログラム１２０はその正規表現にしたがって各文字列ブロックの開始箇所を特定して階層表示ビュー上で表示する。行単位で文字列ブロックを特定することにより、簡易な処理によってプレーンテキストファイル１４１のテキスト構造を特定することができる。
【００３４】
また本実施形態１において、定義データ１３０はプレーンテキストファイル１４１が記述している文字列ブロックの階層関係を定義しており、テキスト表示プログラム１２０はその定義にしたがって各文字列ブロックの階層関係を特定して階層表示ビュー上で表示する。これにより、フォーマット情報を持たないプレーンテキストファイル１４１であっても、ユーザはその記述内容の階層関係を容易に把握することができる。
【００３５】
また本実施形態１において、定義データ１３０はプレーンテキストファイル１４１が記述している文字列ブロックのタイトル部分を指定する正規表現を定義しており、テキスト表示プログラム１２０はその定義にしたがって各文字列ブロックのタイトルを抽出して各階層のタイトルとして表示する。これにより、見出し情報を持たないプレーンテキストファイル１４１であっても、ユーザはその概略を即座に把握することができる。
【００３６】
また本実施形態１において、ユーザは階層表示ビュー上でいずれかの文字列ブロックを指定し、テキスト表示プログラム１２０はその指定された文字列ブロックをプレーンテキストファイル１４１から読み出して表示する。これにより、例えば大量の文字列ブロックを記述したプレーンテキストファイル１４１であっても、所望する部分の内容のみを容易に把握することができる。
【００３７】
＜実施の形態２＞
図５は、本発明の実施形態２に係るテキスト表示プログラム１２０の画面例を示す図である。本実施形態２において、テキスト表示プログラム１２０はユーザからの検索リクエストを受け付けると、検索キーワード指定画面１２１を表示する。その他の構成は実施形態２と同様であるため、以下では検索リクエストおよび検索キーワード指定画面１２１について主に説明する。
【００３８】
検索リクエストは、プレーンテキストファイル１４１内の特定のキーワードに合致する部分を検索するリクエストである。検索キーワード指定画面１２１は、そのキーワードを指定入力するための画面である。ユーザが検索キーワードを入力してＯＫボタンを押下すると、テキスト表示プログラム１２０はそのキーワードに合致する文字列を含む文字列ブロックを特定する。ここではユーザが検索キーワード「石木田」を指定したものと仮定する。
【００３９】
図６は、テキスト表示プログラム１２０が検索結果を表示している様子を示す画面イメージである。テキスト表示プログラム１２０は、検索キーワードに合致する文字列を含む文字列ブロックをプレーンテキストファイル１４１から特定し、その文字列ブロックのみを階層表示ビュー上で表示する。ただしキーワードに合致した文字列ブロックが下層文字列ブロックである場合は、その下層文字列ブロックが属する上層文字列ブロックに対応するツリーノードも併せて表示する。階層関係のどの位置においてキーワードが存在するかを視覚的に把握しやすくするためである。
【００４０】
図６に示す例においては、２つ目の文字列ブロック「２．案件詳細」に属する下層文字列ブロック「◆  案件名：案件その１」において検索キーワードに合致する文字列が存在するので、当該文字列ブロックおよびその上層文字列ブロックを階層表示ビュー上で表示している。検索キーワードに合致する文字列ブロックが複数存在する場合は、各文字列ブロックを同様に表示することができる。
【００４１】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係るテキスト表示プログラム１２０は、検索キーワードに合致する文字列を含む文字列ブロックを抽出し、その文字列ブロック（およびその上層文字列ブロック）のみを表示する。これにより、検索結果に合致する文字列ブロックの内容を即座に把握することができる。
【００４２】
＜実施の形態３＞
本発明の実施形態３においては、テキスト表示プログラム１２０がプレーンテキストファイル１４１のテキスト構造を解析し、その解析結果を保存する構成例について説明する。その他の構成は実施形態１〜２と同様である。
【００４３】
図７は、本実施形態３に係るテキスト表示プログラム１２０を実行するコンピュータ１００およびその周辺構成を示す図である。本実施形態３において、プレーンテキストファイル１４１は２つのフォルダ内にそれぞれ１つずつ配置されている。
【００４４】
テキスト表示プログラム１２０は、ユーザから各プレーンテキストファイル１４１を指定する指定入力を受け取り、各プレーンテキストファイル１４１に対して実施形態１〜２と同様の処理を実施する。プレーンテキストファイル１４１と同じフォルダ内に定義データ１３０が存在する場合はその定義データを用いてプレーンテキストファイル１４１のテキスト構造を解析し、存在しない場合はテキスト表示プログラム１２０が規定で保持している定義データ１３０を用いて解析する。
【００４５】
図８は、本実施形態３におけるテキスト表示プログラム１２０の画面イメージを示す図である。２つのプレーンテキストファイル１４１それぞれに対応する２つのルートノードが画面表示されている。
【００４６】
テキスト表示プログラム１２０は、各プレーンテキストファイル１４１のテキスト構造をいったん解析すると、そのテキスト構造を表現する階層表示ビューの内容および各階層に対応する文字列ブロックの位置を、階層構造保存ファイルとして記憶装置１４０内に保存することができる。この保存は例えばユーザからの指示にしたがって実施してもよいし、定期的に自動実施してもよい。
【００４７】
階層構造保存ファイルは、階層表示ビューの各ノードの階層関係（階層構造、各ノードのタイトルなど）、各ノードに対応するプレーンテキストファイル１４１のファイルパスおよび文字列ブロックの開始行番号、などのデータ項目を記録することができる。テキスト表示プログラム１２０は、以前保存した階層構造保存ファイルをオープンすると、保存されている階層表示ビューを復元して画面左側に表示する。ユーザがいずれかのノードを選択すると、実施形態１で説明したように選択されたノードに対応する文字列ブロックを画面右側に表示する。
【００４８】
＜実施の形態３：まとめ＞
以上のように、本実施形態３に係るテキスト表示プログラム１２０は、階層表示ビューの各ノード、および各ノードと各プレーンテキストファイル１４１内の文字列ブロックとの間の対応関係を保存し、これを再読み込みして復元する。これにより、いったんプレーンテキストファイル１４１のテキスト構造を解析した後は、改めてこれを再解析する必要がなくなり、処理負荷を軽減することができる。特に多数のプレーンテキストファイル１４１を読み込む場合において、再読み込み時間を大幅に短縮することができる。
【００４９】
＜実施の形態４＞
図９は、本発明の実施形態４におけるプレーンテキストファイル１４１の例を示す図である。実施形態１〜３においては、各プレーンテキストファイル１４１は単一の文書を記述していることを前提としたが、単一のプレーンテキストファイル１４１が複数の文書を記述している場合においても本発明を適用することができる。図９に示す例は、複数の電子メールのソースをテキストベースで連結して単一のプレーンテキストファイル１４１としたものである。
【００５０】
図１０は、本実施形態４における定義データ１３０の例を示す図である。１行目において、文書の先頭を示すタグ「ＳＰ」が追加されており、その他は図３と同様である。図１０に示すタグ「ＳＰ」は、文字列「Ｆｒｏｍ」で開始する部分は文書の区切りとみなすことを定義している。したがってテキスト表示プログラム１２０は、複数の電子メールをテキスト連結したプレーンテキストファイル１４１を解析すると、各電子メールを１つの文書として取り出すことができる。各文書は、例えば図８と同様に各文書の先頭をルートノードとする複数のツリーによって表示することができる。
【００５１】
＜本発明の変形例＞
以上の実施形態において、定義データ１３０が定義する各タグの例を示したが、各タグの文字列自体は例示したものに限られるものではなく、同じ意味を表すことができればタグの文字そのものは何でもよい。例えば文書の先頭を表すタグは「ＳＰ」でなくともよい。
【００５２】
図３や図１０の例において、下層文字列ブロックを表すタグの前にインデントを設けているが、このインデントは見易さのために付与したものであり、階層の深さを表すものではない。各タグの意味づけはタグそのものによって定義される。
【００５３】
以上の実施形態において、階層表示ビューの例としてツリービューを例示したが、ノード間の階層関係を表現することができるその他の階層表示ビューを用いることもできる。
【符号の説明】
【００５４】
１００：コンピュータ、１１０：ＣＰＵ、１２０：テキスト表示プログラム、１３０：定義データ、１４０：記憶装置、１４１：プレーンテキストファイル。
【図１】
2016004539.tif 000003
【図２】
2016004539.tif 000004
【図３】
2016004539.tif 000005
【図４】
2016004539.tif 000006
【図５】
2016004539.tif 000007
【図６】
2016004539.tif 000008
【図７】
2016004539.tif 000009
【図８】
2016004539.tif 000010
【図９】
2016004539.tif 000011
【図１０】
2016004539.tif 000012