JP6260234B2 - 文書解析装置、文書解析方法および文書解析プログラム - Google Patents

文書解析装置、文書解析方法および文書解析プログラム Download PDF

Info

Publication number
JP6260234B2
JP6260234B2 JP2013249069A JP2013249069A JP6260234B2 JP 6260234 B2 JP6260234 B2 JP 6260234B2 JP 2013249069 A JP2013249069 A JP 2013249069A JP 2013249069 A JP2013249069 A JP 2013249069A JP 6260234 B2 JP6260234 B2 JP 6260234B2
Authority
JP
Japan
Prior art keywords
mail
citation
text information
document
display target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013249069A
Other languages
English (en)
Other versions
JP2015106337A (ja
Inventor
晃平 上田
晃平 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013249069A priority Critical patent/JP6260234B2/ja
Publication of JP2015106337A publication Critical patent/JP2015106337A/ja
Application granted granted Critical
Publication of JP6260234B2 publication Critical patent/JP6260234B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、特定の文書を解析・整形する文書解析装置、文書解析方法および文書解析プログラムに関する。特に、電子メールの本文を解析・整形する文書解析装置、文書解析方法および文書解析プログラムに関する。
近年、電子メールの利用はますます拡大しており、大量に受信したメールを効率的に処理することが必要になっている。大量に受信したメールを利用者が読み進めていく際には、個々のメールの判読性を確保することが求められる。
メールの本文中には、メール本文に新たに加える通常の文である平文と、過去のメール文を引用した文である引用文とを含む。平文と引用文とを区別するためには、引用文の行頭に「>」や「|」などの引用記号を付与することが一般的である。
引用記号は、電子メールの作成や送受信、送受信メールの保存・管理を行うためのソフトウェア(以下、メールソフト)によって自動的に付与される場合が多い。例えば、メールの送信時に一行のデータ長がある閾値(例えば、文字数や桁数)を超えた場合に、データ長が閾値を超えた箇所に自動的に改行データを付与する自動改行機能を持つメールソフトがある。引用記号は、改行データの前または後に自動的に付与されることになる。引用記号の自動付加機能は、メールの過去のやりとりを把握しやすくするとともに、メール作成作業を効率化する機能となる。
あるメールに返信を行う場合、メールソフトが返信元メールの本文の各行頭に引用記号を付加したものが返信メールの初期状態となる。メール作成者は、その初期状態のメールに返信文を作成していくことになる。例えば、メール最上部に平文だけで返信文を記載することもあれば(図22)、引用文の一部をメール上部にコピーし、この直後の行にその引用文に対する返信文を記載することもあれば(図23)、メール下部の引用文の間に直接返信文を記載する場合もある(図24)。なお、図22〜図24などのメール文を含む図面において、枠内の文はメール文を示し、枠外左側に記した数字はメール文の行数を示す。
ところで、引用文が自動改行されると、自動改行直後の行頭には引用記号が付与されず、自動改行データが挿入された行と、その直後の行とで行頭の引用記号の数(引用階層)が変わってしまうことがある。その場合、元々は一つの引用文であるにも関わらず、自動改行後の文が別の文のように見えてしまう。このように、自動改行機能によって文の途中で改行され、改行された行頭に意図しない引用記号が挿入されてしまう現象を引用階層ずれと呼称する。引用階層ずれが発生すると、メール送信者の意図していない箇所で改行が行われるため、メールの判読性が低下するという問題がある。
引用階層ずれの例を図25と図26に示す。図25は、2行目と7行目に自動改行データが挿入され、それぞれ3行目と8行目との間に引用階層ずれが発生した例である。図26は、メールのやりとりが繰り返されるうちに同一箇所(1行目)で自動改行が複数回発生し、階段状の引用階層ずれ(複合的引用階層ずれ)が発生した例である。メール送信者が意識して修正しない限り、一度発生した引用階層ずれは解消されない。そのため、何度もやりとりが続いているメールは、図26のような状態になって判読性が大きく低下する。
引用階層ずれの問題に対処する技術が、特許文献1および2に開示されている。
特許文献1のデータ処理装置は、まず、メール本文を先頭から順に読み出し、改行データを検出したときに、改行データの前後の文字の種類から、メールソフトによって自動的に挿入された自動改行データであるか否かを判別する。そして、自動改行データであると判定された改行データを削除し、直後の行を同じ引用文の一部として整形する。一方、改行データがメール送信者によって意図的に挿入されたものであると判断したときは、改行データの削除・整形を行わない。
特許文献1のデータ処理装置では、改行データの直後の文字(行頭文字)が、「 」(スペース)、「(」(開き括弧)、「?」(疑問符)、「数字」、「・」(中黒)のいずれでもない場合、その改行データは自動的に挿入された改行データであると判断される。また、改行データの直前の文字が、「句読点」、「)」(閉じ括弧)のいずれでもない場合も、その改行データは自動的に挿入された改行データであると判断される。一方、改行データの前後の文字が、上述のいずれかの文字に該当する場合、その改行データは意図的に挿入されたものと判断される。
しかしながら、上述の文字が前後に存在する箇所で自動改行が発生することもあり得る。その場合、自動改行データを意図的改行データと誤判定することになり、引用階層ずれが整形されないという問題が発生する。逆に、メール作成者が意図的に挿入した改行データの前後に、上述の文字が存在しない場合もあり得る。この場合、意図した改行データを自動改行データと誤判定し、誤った改行データの削除と整形が行われ、メールの判読性が大きく低下したり、内容が意味不明になったりするという問題がある。
特許文献2の文書解析装置は、改行データ前後の文字の種類ではなく、各行の文字数に注目して引用階層ずれを整形することによって、上述の特許文献1の問題点を解決する。
特許文献2の文書解析装置は、まず、メール本文における各行の引用階層と各行のデータ長を計算し、引用階層の最大値をn、データ長の最大値をMAXとする。次に、文書解析装置は、各行のデータを一行単位で読み込んでいき、読み込んだ「i行目の文字列Sのデータ長」が「データ長最大値MAXの近似範囲」に入っているかどうかを判定する。このとき、文書解析装置は、補正値を±2(変更可能)に設定し、「Sの長さ」が「MAX−補正値」よりも大きい場合、「i行目の文字列Sのデータ長」が「データ長最大値MAXの近似範囲」に入っていると判定する。「i行目の文字列Sのデータ長」が「データ長最大値MAXの近似範囲」に入っている場合、文書解析装置は、i+1行目の文字列Si+1と引用階層Li+1を取得する。
次に、特許文献2の文書解析装置は、以下の2つの判定条件によって自動改行データであるか否かを判定する。一つは、「Sの引用階層L」が「Si+1の引用階層Li+1」よりも大きいか否かである。もう一つは、「データSから引用記号部分を取り除いた部分のデータ長」と「データSi+1から引用記号部分を取り除いた部分のデータ長」とを足したものが、データ長最大値MAXの近似範囲に入っているか否かである。この2つの判定条件を満たした場合、文書解析装置は、i行目の改行データは自動改行データであるとみなし、改行データの削除・整形を行う。以上の処理を各行に対して行っていき、メール本文の最終行まで処理を行ったら、一行目に戻って同様の処理をn回繰り返す。
特開平11−184775号公報 特開2011−159311号公報
上述した特許文献2の文書解析装置では、i行目のデータSのデータ長がデータ長最大値MAXの近似範囲に入っていることが、i行目の改行データを自動改行データとして判定するための前提条件になっている。つまり、データ長最大値MAXの近似範囲に入らないようなデータ長の小さい行における自動改行データは意図的改行データと誤判定されるため、引用階層ずれの整形が十分に行われない場合があるという問題点があった。
また、データSのデータ長がデータ長最大値MAXの近似範囲に含まれていて、かつ、i行目に意図的な改行が行われ、i+1行目に空行や短い返信文が挿入された場合、i行目の改行データが自動改行データと誤判定されてしまう。そうなると、誤った引用階層ずれの整形が行われるため、メールの判読性が大きく低下したり、内容が意味不明になったりするという問題点があった。
また、メールのやりとりが繰り返される過程において、複数種類のメールソフトを経由したメールを処理する可能性がある。メールソフトの自動改行機能の有無、自動改行するデータ長はメールソフト毎に様々であるため、仮に特許文献2の文書解析装置において近似範囲の補正値を変更しても、上述の問題には対処できない。
以上のように、特許文献1および2を含む関連技術では、引用階層ずれを整形したいメールの本文に注目し、各行の引用階層や文字列長、文字種別などを元に改行データの判定を行い、自動改行データと判定された場合に改行データの削除と整形を行っていた。しかしながら、いずれの方法であっても、判定条件が不十分で正しい整形ができないという問題点があった。判定条件が不十分だったのは、過去のメールのやりとりで引用階層が発生したときの状況を考慮せずに、整形したいメール本文にだけ注目して、引用階層ずれを判定しようとしたためである。
本発明の目的は、上述した課題を解決する文書解析装置、文書解析方法および文書解析プログラムを提供することにある。
本発明の文書解析装置は、表示対象文書の属性情報を基に表示対象文書によって引用される引用対象文書の本文情報を抽出する引用文書抽出手段と、表示対象文書の本文情報と引用対象文書の本文情報とを比較して表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には表示対象文書の本文情報中の引用階層ずれを整形する引用文書解析手段と、表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、引用階層ずれを整形した本文情報を元の表示対象文書の本文情報に反映させる文書整形手段とを備える。
本発明の文書解析方法においては、表示対象文書の属性情報を基に表示対象文書によって引用される引用対象文書の本文情報を抽出し、表示対象文書の本文情報と引用対象文書の本文情報とを比較して表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には表示対象文書の本文情報中の引用階層ずれを整形し、表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、引用階層ずれを整形した本文情報を元の表示対象文書の本文情報に反映させる。
本発明の文書解析プログラムは、表示対象文書の属性情報を基に表示対象文書によって引用される引用対象文書の本文情報を抽出する処理と、表示対象文書の本文情報と引用対象文書の本文情報とを比較して表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には表示対象文書の本文情報中の引用階層ずれを整形する処理と、表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、引用階層ずれを整形した本文情報を元の表示対象文書の本文情報に反映させる処理とをコンピュータに実行させる。
本発明の文書解析装置、文書解析方法および文書解析プログラムによれば、引用文を含む文書に発生する引用階層ずれを高い精度で整形することができる。
本発明の実施形態に係る文書解析装置の機能構成を示すブロック図である。 本発明の実施形態に係る文書解析装置のメール整形処理部によるメール整形処理に関するフローチャートである。 本発明の実施形態に係る文書解析装置のメール整形処理部によるメール整形処理に含まれる引用階層ずれ判定処理に関するフローチャートの一部である。 本発明の実施形態に係る文書解析装置のメール整形処理部によるメール整形処理に含まれる引用階層ずれ判定処理に関するフローチャートの一部である。 本発明の実施形態に係る文書解析装置で処理するメール文中における前方一致の例を示す図である。 本発明の実施形態に係る文書解析装置で処理するメール文中における部分一致の例を示す図である。 本発明の実施形態に係る文書解析装置を実現するためのハードウェア構成の一例を示す機能ブロック図である。 引用階層ずれが発生したメール文の一例である。 引用階層ずれを解消させたメール文の一例である。 引用階層ずれを解消させた後に引用記号を整えたメール文の一例である。 複合的引用階層ずれが発生したメール文の一例である。 複合的引用階層ずれを解消させたメール文の一例である。 複合的引用階層ずれを解消させた後に引用記号を整えたメール文の一例である。 引用階層ずれが発生していないメール文の一例である。 引用階層ずれを解消させたメール文の一例である。 実施例における最も古いメール(mail(3))の一例である。 実施例における2番目に古いメール(mail(2))の一例である。 実施例における最新メール(mail(1))の一例である。 実施例において最新メール(mail(1))を管理する縮小管理テーブルの一例である。 実施例1において引用メールの文面を縮小表示した一例である。 実施例1において引用メールの縮小表示された文面のうち一つを展開した一例である。 一般的な電子メールの返信文の作成例である。 一般的な電子メールの返信文の作成例である。 一般的な電子メールの返信文の作成例である。 一般的な電子メールにおいて起こる引用階層ずれの発生例である。 一般的な電子メールにおいて起こる複合的引用階層ずれの発生例である。
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態および実施例を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
以下の実施形態および実施例においては、電子メールを特定の文書として説明しているが、本発明で対象とする特定の文書は電子メールに限定されない。本発明で対象とする特定の文書とは、本文に含有される引用文に何らかの引用記号を付加し、その引用記号によって引用文を判別できる形式を含む文書であればよい。
また、以下の実施形態および実施例において、改行データとは、メールデータ中に付与される改行位置を示すデータであって、引用記号が挿入される位置の基準となる。改行データは、通常はメール本文を表示した際に記号として表示されるものではないが、設定によっては何らかの記号として表示することもできる。
(構成)
まず、本発明の実施形態の構成について図面を参照して詳細に説明する。図1は、本実施形態に係る文書解析装置1の機能構成を示すブロック図である。
文書解析装置1は、メール抽出部10、メール保存部20、メール整形処理部30、メール表示用整形部40、メール表示部50を備える。メール整形処理部30は、引用メール抽出部31、引用メール解析部32、メール整形部33を含む。
メール抽出部10は、任意のメールを画面に表示する指示を受け、メール保存部20に格納されている最新メール(表示対象メール)のヘッダー情報(属性情報)と本文情報とを抽出するメール抽出手段である。メール抽出部10は、例えば、ユーザーインターフェース上の入力手段等を介して、特定のメールを画面に表示させる指示を受ける。なお、メール抽出手段は、メールを含む任意の文書を抽出する文書抽出手段の下位概念である。
なお、最新メールとは、表示部(図示しない)に表示しようとする表示対象メールが引用する引用メールに対して最新であることを意味する。そして、その最新メールを含む一連のメールのやり取りの中で、最新メールが引用する過去のメールを表示対象メールとするときは、その過去のメールがそれ以前の引用メールに対する最新メール(表示対象メール)として処理されることになる。
メール保存部20は、過去に送受信されたメールを保存する文書保存手段である。メール保存部20には、過去に送受信されたメールが全て格納されており、指定された条件のもとで条件に合致するメールを高速に検索でき、かつ、それらのメールに対する各種処理も高速に行えるビッグデータ環境を想定している。なお、メール保存手段は、メールを含む任意の文書を保存する文書保存手段の下位概念である。
メール保存部20には様々な形態が考えられる。例えば、ハードディスクなどの補助記憶装置、磁気ディスクや光ディスクなどの記録媒体などのローカルディスクで構成してもよいし、ネットワーク上のネットワークストレージで構成してもよい。また、ローカルディスクやネットワークストレージを複合した記憶装置で構成してもよい。
メール整形処理部30は、メール抽出部10で得られた最新メールのヘッダー情報と本文情報を元に、最新メールの判読性を向上するための一連の処理を行う文書整形処理手段である。メール整形処理部30における処理は、引用メール抽出部31、引用メール解析部32、メール整形部33によって実行される。なお、メール整形処理手段は、メールを含む任意の文書を整形処理する文書整形処理手段の下位概念である。
引用メール抽出部31は、メール抽出部10で得られた最新メール(表示対象文書)のヘッダー情報(属性情報)を元に、過去の全ての引用メールの本文情報(文書情報)を、メール保存部20から抽出する引用メール抽出手段である。ここで、引用メールとは、引用メール抽出部31によって抽出された、最新メールに引用されているメールである。引用メール抽出部31は、最新メールに至るまでにやりとりされてきた過去の全ての引用メールの本文情報(文書情報)を、時系列順に抽出する。なお、引用メール抽出手段は、メールを含む任意の引用文書を抽出する引用文書抽出手段の下位概念である。
引用メール抽出部31は、最新メールに引用された全ての引用メールを抽出することが望ましい。しかしながら、既に削除されているなどの理由によってメール保存部20から抽出できない引用メールがあったとしても、本実施形態に係る文書解析装置1によれば、抽出された範囲内で最大限有効な引用階層ずれの整形を行うことができる。
引用メール解析部32は、「最新メールの本文情報」をメール抽出部10から受け取り、「抽出できた全ての引用メールの本文情報」を引用メール抽出部31から受け取る。そして、引用メール解析部32は、受け取ったメール本文中で引用階層ずれが発生している部分の判定と整形を行う引用メール解析手段である。
引用メール解析部32は、まず、受け取ったメールの中から最も古いメールと二番目に古いメールの本文の文字列を行単位で比較し、二番目に古いメール上に発生している引用階層ずれを検出する。引用階層ずれを検出されたら、次に、メール整形部33は、二番目に古いメール上でその整形を行う。次に、整形を行った二番目に古いメールと三番目に古いメールの本文の文字列を比較し、同様の検出と整形を行う。この一連の処理を、最新メールでの検出と整形を行うまで繰り返す。
メール整形部33は、最新メールのヘッダー情報をメール抽出部10から取得し、整形後の最新メールの本文情報を引用メール解析部32から取得し、メール保存部20に格納されている実際の最新メールに整形後の本文情報を反映するメール整形手段である。
メール表示用整形部40は、最新メールのヘッダー情報と、整形済みの最新メールの本文情報を基に、メール表示用のレイアウトを行い、そのレイアウト結果をメール表示部50に渡すメール表示用整形手段である。
メール表示部50は、メール表示用整形部40によってレイアウトされたレイアウト結果を基に、メールを表示装置(図示しない)に出力して表示させるメール表示手段である。
以上が、本実施形態に係る文書解析装置1の構成に関する説明である。
(動作)
次に、図2〜図4のフローチャートを用いて、本発明の実施形態に係る文書解析装置1の動作(文書解析方法)について詳細に説明する。
図2は、本実施形態に係る文書解析装置1のメール整形処理部30によって実行される処理の概要を示したフローチャートである。
まず、図2において、引用メール抽出部31は、メール抽出部10によって取得された最新メールのヘッダー情報を参照し、最新メールに至るまでにやりとりされてきた全ての引用メールの本文情報をメール保存部20から抽出する(ステップS1)。引用メール抽出部31は、ヘッダーに記録されている引用メールのMessage−IDを用いることによって全ての引用メールを抽出することができる(ID:Identification)。
次に、引用メール抽出部31は、各メールの本文情報に呼称を設定する(ステップS2)。具体的には、引用メール抽出部31は、最新メールの本文情報についてはmail(1)と設定し、引用メールの本文情報についてはメールの作成順番が新しい順にmail(2)、mail(3)、・・・、mail(N)と設定する。すなわち、引用メールに関しては、括弧内の引数が大きいほど古いメールとなる。
ここで、ループ変数iの初期値としてNを格納する(ステップS3)。
次に、ループ変数iにNが格納されていることを受け、引用メール解析部32は、mail(N)とmail(N−1)とを比較し、mail(N−1)上に発生した引用階層ずれの発生箇所を判定する引用階層ずれ判定処理を実行する(ステップS4)。
次に、ステップS4の引用階層ずれ判定処理において得られた情報を元に、引用メール解析部32は、mail(N−1)の引用階層ずれを整形する(ステップS5)。
次に、ループ変数iを1減じる(ステップS6)。
ここで、iが1でなければ(ステップS7でNo)、ステップS4に戻る。そして、引用メール解析部32は、mail(N−1)とmail(N−2)を比較してmail(N−2)上に発生した引用階層ずれの発生箇所の判定し(ステップS4)、mail(N−2)の整形を行う(ステップS5)。引用メール解析部32は、以上のステップS3〜S7の処理をiが1になるまで繰り返す。
以上のように、メールの本文情報中に引用階層ずれの発生を検出したら、検出したメール上ですぐに引用階層ずれを整形し、以降の判定処理ではこの整形後の本文情報を使用する。そのため、引用階層ずれが複雑化する前に、メールの本文情報を整形することが可能になる。そして、最終的には、最新メールmail(1)上の引用階層ずれも高い精度で整形できるようになる。
最新メールに対応するmail(1)の整形が完了し、ステップS7でループ変数iは1になる(ステップS7でYes)。
ステップS7でループ変数iが1になると(ステップS7でYes)、最後に、メール整形部33は、mail(1)の整形済み本文情報を、メール保存部20に存在する実際の指定メール上に反映する(ステップS8)。
以上が、本実施形態に係る文書解析装置1によって実行される処理の概要に関する説明である。
(引用階層ずれ判定処理)
次に、図3および図4を用いて、図2のステップS4の引用階層ずれ判定処理の詳細について説明する。引用階層ずれ判定処理では、mail(i)とmail(i−1)の本文を行単位で比較することによって、mail(i−1)の各行の改行データが、引用階層ずれを発生させる自動改行データか、それ以外の改行データかを判定する。
まず、図3のフローチャートにおいて、mail(i−1)の各行を確認するためのループ変数jに初期値1を代入する(ステップS411)。
図3および図4のフローチャートの処理においては、jの値を1ずつ増じていくことによって、mail(i−1)の1行目から最終行の一つ手前の行(最終行−1行目)までの判定を行っていく。なお、最終行の判定を行わないのは、最終行に自動改行データは存在し得ないからである。
ここで、引用メール解析部32は、mail(i−1)のj行目の引用階層が1以上であるか否かを判定する(ステップS412)。
mail(i−1)のj行目の引用階層が1以上である場合(ステップS412でYes)、引用メール解析部32は、mail(i−1)のj行目の引用階層をqに設定する(ステップS413)。
次に、引用メール解析部32は、mail(i−1)のj+1行目の引用階層がq未満であるか否かを判定する(ステップS414)。
mail(i−1)のj+1行目の引用階層がq未満である場合(ステップS414でYes)、引用メール解析部32は、mail(i−1)のj行目に、引用記号と改行データ以外のデータが存在するか否かを判定する(ステップS415)。
mail(i−1)のj行目に、引用記号と改行データ以外のデータが存在する場合(ステップS415でYes)、図4のステップS418に進む(図4のA)。
ところで、ステップS412、ステップS414およびステップS415のいずれかにおいて判定がNoであった場合、jの値を1増じる(ステップS416)。
そして、jの値がmail(i−1)の行数と等しくなければ(ステップS417でNo)、ステップS412に戻って次の行の判定に進む。一方、jの値がmail(i−1)の行数と等しければ(ステップS417でYes)、図3のフローを終了とする。ここで、後述する図4のフローチャートを経て削除予約された改行データと引用記号が見つかった場合は、図2のステップS5において引用階層ずれを整形することになる。
このように、jループの最初のステップS412〜S415では、mail(i−1)の各行の改行データが、引用階層ずれを発生させる自動改行データの前提条件を満たすかどうかを判定する。ステップS412〜S415の条件をどれか一つでも満たさない場合は、その行の判定を終了し、jを1増じてmail(i−1)の次の行の判定に移ることになる。
続いて、図3のステップS412〜S415の条件を全て満たした場合について、図4のステップS418に進んで説明する。
図3のステップS415でYesであった場合、mail(i)の各行を確認するためのループ変数kに初期値1を代入する(図4のステップS418)。
図4のフローチャートの処理においては、kの値を1ずつ増じていくことによって、mail(i−1)のj行目の文字列と、mail(i)の各行の文字列とを比較・判定していく(ステップS419〜S429)。
次に、kループの最初の処理として、引用メール解析部32は、mail(i−1)のj行目から行頭の引用記号群を削除した文字列を文字列A(第1の文字列)に設定する。そして、引用メール解析部32は、mail(i)のk行目から行頭の引用記号群を削除した文字列を文字列B(第2の文字列)に設定する(ステップS419)。なお、行頭に引用記号が存在しない場合は、その行の文字列がそのまま文字列Aや文字列Bになる。また、メールのやりとりが続いて行頭に複数の引用記号が存在する場合は、それらの引用記号を全て削除したものが文字列Aや文字列Bになる。
次に、引用メール解析部32は、文字列Bの前半に文字列Aが含まれるかどうか(前方一致するかどうか)を判定する(ステップS420)。
ここで、ステップS420における前方一致の判定について、図5および図6の例で説明する。図5において、文字列A「従来は紙でお知らせしていた中古市場価」は、文字列B「従来は紙でお知らせしていた中古市場価格レポートですが、」の前半部分に含まれる(前方一致する)。それに対し、図6の例では、文字列A「紙でお知らせしていた中古市場価」は、文字列B「従来は紙でお知らせしていた中古市場価格レポートですが、」に含まれるものの、文字列Bの前半部分に含まれているわけではない(前方一致しない)。すなわち、ステップS420について、図5の例は前方一致の条件を満たすが、図6の例では前方一致の条件を満たさないことになる。
さて、文字列Bの前半に文字列Aが含まれない場合(ステップS420でNo)、文字列Bの行(mail(i)のk行目)に自動改行データが挿入されて、文字列Aの行(mail(i−1)のj行目)になった可能性は無い。この場合、kを1増じる(ステップS422)。
そして、kがmail(i−1)の行数よりも大きくない場合は(ステップS423でNo)、mail(i)の次の行の確認に移る(ステップS419に戻る)。一方、kがmail(i−1)の行数よりも大きい場合は(ステップS423でYes)、mail(i)の全行を確認したことになるため、図3のステップS416に戻り、mail(i−1)の次の行の確認に進む(図3のB)
一方、文字列Bの前半に文字列Aが含まれる場合は(ステップS420でYes)、文字列Bの行(mail(i)のk行目)に自動改行データが挿入されて、文字列Aの行(mail(i−1)のj行目)になった可能性が考えられる。そこで、ステップS420でYesである場合、ステップS421〜S427において、mail(i−1)のj+1行目以降の複数の行が、mail(i)のk行目に自動改行データが挿入されることによって作られた行であるかどうかを判定する。
まず、引用メール解析部32は、文字列Bから文字列Aを削除した文字列を新たな文字列Bとする(ステップS421)。図5の例では、「格レポートですが、」が新たな文字列B(以下、文字列Bと記載)となる。
次に、引用メール解析部32は、文字列Bに改行データ以外のデータが無いかどうかを判定する(ステップS424)。
文字列Bに改行データ以外のデータがある場合(ステップS424でNo)、引用メール解析部32は、mail(i−1)のj+1行目の引用階層がq以上であるか否かを判定する(ステップS425)。なお、S413において、確認したmail(i−1)のj行目の引用階層がqに設定されている。
ここで、mail(i−1)のj+1行目の引用階層がq以上でない場合(ステップS425でNo)について説明する。ステップS425でNoである場合、引用メール解析部32は、mail(i−1)のj+1行目の文字列から引用記号を削除した文字列を新たな文字列A(以下、文字列Aと記載)とする(ステップS426)。
次に、引用メール解析部32は、文字列Bの前半に文字列Aが含まれるか否か(前方一致するか否か)を判定する(ステップS427)。
ここで、文字列Bの前半に文字列Aが含まれる場合(ステップS427でYes)、mail(i−1)のj行目の改行データは引用階層ずれを発生させる自動改行データと考えられる。そのため、引用メール解析部32は、mail(i−1)のj行目の改行データと、mail(i−1)のj+1行目のデータの行頭の引用記号群との削除予約を行う(ステップS428)。
ステップS428で削除予約されると、jを1増じ(ステップS429)、ステップS421に戻る。以降、条件を満たす限り、ステップS421、S424〜S429の処理を繰り返す。処理が繰り返されるのは、mail(i)のk行目のデータが自動改行によってmail(i−1)上の複数行に分割されている場合である。
ところで、ステップS424およびS425で判定がYesであった場合、ならびにステップS427で判定がNoであった場合、mail(i−1)のj行目の改行データは引用階層ずれを発生させる自動改行データとは考えられない。そのため、図3のステップ416に進んでjを1増じ、mail(i−1)の次の行の確認に進む。
そして、jの値がmail(i−1)と等しくなければ(ステップS417でNo)、ステップS412に戻って次の行の判定に進む。
一方、jの値がmail(i−1)の行数と等しければ(ステップS417でYes)、ステップS426において削除予約された改行データと引用記号の情報を保持した状態で図3のフローを終了とする。そして、図2のステップS5に進み、mail(i−1)上で削除予約した箇所を全て削除する。
以上のように、本実施形態によれば、図2〜図4に示したフローチャートの処理により、mail(i−1)上の引用階層ずれを整形することができる。
すなわち、図3および図4において、引用メール解析部32は、最新メールと引用メールとを含む一連のメール群に対して、メールをやり取りした順番(メール交換順)が判別できるように各メールに名称を付ける。引用メール解析部32は、最も古いメールから順番に、メール交換順が連続する2つのメール間で引用階層ずれがあるか否かを判定する引用メール階層ずれ判定処理を実行する。引用階層ずれがあった場合、引用メール解析部32は、比較している2つのメールのうち新しい方のメールの本文情報において、引用階層ずれを整形する引用階層ずれ整形処理を実行する。引用メール解析部32は、この引用メール階層ずれ判定処理と引用階層ずれ整形処理とを、一連のメール群に含まれる全てのメールの全ての行について実行することによって、最新メールの引用階層ずれを解消させる。
以上のように、本発明の実施形態の文書解析装置は、受信した電子メールの本文中から、メールソフトの機能によって自動的に挿入された自動改行データを検出する。そして、自動改行データが検出された場合は、その改行データの削除とそれに伴う整形処理を行う手段を用意する。その結果、メールの判読性を高め、利用者の使いやすさを向上させるシステムが提供される。
ここで、本実施形態の文書解析装置による文書解析方法の特徴について簡単にまとめる。
本実施形態の文書解析方法では、引用階層ずれを判定するときに、引用階層ずれを整形したいメール(最新メール)だけでなく、その最新メールに至るまでにやりとりされてきた全ての過去メール(引用メール)の状態も考慮に入れるように処理する。
まず、これらのメールの中から最も古いメールと二番目に古いメールの本文の文字列を行単位で比較し、二番目に古いメール上に発生している引用階層ずれを検出する。引用階層ずれを検出したら、二番目に古いメール上でその整形を行う。次に、整形を行った二番目に古いメールと三番目に古いメールの本文の文字列を比較し、同様の検出と整形を行う。これを最新メールでの検出と整形を行うまで繰り返す。
このように、引用階層ずれの発生を検出したら、検出したメール上ですぐに引用階層ずれを整形し、以降の判定処理ではその整形済みの情報を使うため、引用階層ずれが複雑化する前に引用階層ずれを整形することが可能になる。その結果、最新メール上に存在する引用階層ずれを高い精度で整形できるようになる。
関連技術においては、メール作成者の意図した改行データを自動改行データとして誤判定することによって誤った引用階層ずれの整形を行い、メールの判読性が大きく低下したり、内容が意味不明になったりする問題が発生していた。
それに対し、本実施形態においては、メール作成者の意図した改行データを自動改行データとして誤判定することはなく、正しい判定がなされる。なぜならば、本実施形態においては、最新メールだけでなく、その最新メールに至るまでにやりとりされてきた全ての引用メールの状態も考慮し引用階層ずれを判定するためである。
また、関連技術においては、自動改行データをメール作成者の意図した改行データと誤判定することによって引用階層ずれが十分に整形されず、判読性が高くならない問題が発生していた。
それに対し、本実施形態においては、自動改行データをメール作成者の意図した改行データと誤判定することはなく、正しい判定がなされる。なぜならば、本実施形態においては、最新メールだけではなく、その最新メールに至るまでにやりとりされてきた全ての引用メールの状態も考慮し引用階層ずれを判定するためである。
また、本実施形態においては、万一、削除された等の理由で抽出できない引用メールがあったとしても、抽出できた範囲で最大限効果的な引用階層ずれの整形が行える。なぜならば、本実施形態においては、抽出できたいずれかの引用メール中に、整形したい引用階層ずれが発生する前(自動改行データ挿入前)の行の状態が分かるメールが一通でも含まれていれば、問題無く引用階層ずれの整形ができる判定条件にしているからである。
さらに、本実施形態においては、最新メールの画面表示用のレイアウトを正しく作成できる。なぜならば、本実施形態においては、レイアウトの元になるデータとして、引用階層ずれが整形済みの最新メールの本文データを使うためである。
ここで、本実施形態に係る文書解析装置1を実現するためのハードウェア構成の一例を図7に示す。図7の情報処理装置100は、プロセッサ101、主記憶装置102、補助記憶装置103、入力インターフェース104、表示制御装置105、リーダライタ106、通信インターフェース107を備える。これらの構成要素は、バス108を介してデータ授受可能に接続される。また、情報処理装置101には、入力装置114、表示装置115、記録媒体116が接続されるとともに、通信インターフェース107を介してネットワークと接続される。ネットワークとしては、インターネットなどの外部ネットワークであってもよいし、社内の業務システムにおけるイントラネットであってもよいし、複数の通信形態が混成されたネットワークであってもよい。情報処理装置100は、例えば一般的なコンピュータ、携帯電話、スマートフォン、タブレットPCなどとして実現される(PC:Personal Computer)。
プロセッサ101は、補助記憶装置103等に格納された本実施形態に係る文書解析プログラムを主記憶装置102に展開し、その文書解析プログラムを実行する。なお、本実施形態に係る文書解析プログラムは、情報処理装置100にインストールされたソフトウェアプログラムを用いる構成とすればよい。また、ネットワーク経由でアクセスできるストレージなどに格納されていたソフトウェアプログラムを文書解析プログラムとして用いる構成としてもよい。
主記憶装置102は、例えばDRAM等の揮発性メモリとすればよい(DRAM:Dynamic Random Access Memory)。また、MRAM等の不揮発性メモリを主記憶装置102として構成してもよい(MRAM:Magnetoresistive Random Access Memory)。主記憶装置102には、本実施形態の文書解析プログラムが展開される。
補助記憶装置103は、ハードディスク、フラッシュメモリ等のローカルディスクによって構成される。なお、補助記憶装置103は、情報処理装置100に接続された外部記憶装置としてもよいし、ネットワークを経由して接続されたネットワークストレージとしてもよい。
入力装置114は、キーボードやマウス、タッチパネルなどといった入力機器である。入力装置114は、メール文章の入力やメールソフトを操作するために使用される。なお、タッチパネルを入力装置114として用いる場合は、表示装置115が入力機器を兼ねる構成となる。入力インターフェース104は、プロセッサ101と入力装置114との間のデータ授受を仲介する。
表示制御装置105は、表示装置115に接続され、表示装置115の表示を制御する。本実施形態においては、メール表示部50(図1)によって、表示装置115の表示部にメール文等が表示される。リーダライタ106は、プロセッサ101と記録媒体116(プログラム記録媒体)との間のデータ授受を仲介し、記録媒体116からのデータ・プログラムの読み出し、情報処理装置100の処理結果の記録媒体116への書き込みを実行する。通信インターフェース107は、ネットワーク上の情報処理装置等とプロセッサ101との間のデータ授受を仲介する。
記録媒体116は、例えばSDカード等の半導体記録媒体などで実現できる(SD:Secure Digital)。また、記録媒体116は、フレキシブルディスク等の磁気記録媒体、CDやDVD等の光学記録媒体によって実現してもよい(CD:Compact Disk、DVD:Digital Versatile Disc)。
なお、図7のハードウェア構成は、本実施形態に係る文書解析装置1を実現するためハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、本実施形態に係る文書解析装置の処理をコンピュータに実行させる文書解析プログラムも本発明の範囲に含まれ、その文書解析プログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。
本実施形態の文書解析装置1は、図7のようなハードウェア構成を備えるコンピュータや携帯電話、スマートフォンなどの情報処理装置100のプロセッサ101において、本実施形態に係る文書解析プログラムを実行することによって実現される。
次に、本実施形態に係る文書解析装置によるメール文書の解析・整形処理について、実施例を挙げて詳細に説明する。なお、以下の例においては、図1の文書解析装置1の構成、図3〜図5のフローチャートの手順を基に説明する。
(実施例1)
図8〜図10には、引用階層ずれが含まれるmail(i−1)を整形した例について示す。図8のmail(i−1)は、1行目に自動改行データが挿入されたことにより、2行目の「大丈夫ですか。」が、あたかも1行目の引用文に対する返信文のように見えてしまう引用階層ずれが発生した例である。なお、本実施例においては、改行を受けた文となる1行目の末尾に改行データが付加され、折り返された文となる2行目の先頭に引用記号が付加されるものとする。
図3および図4のフローチャートに沿って、本実施形態の文書解析装置1による処理を説明する。
まず、図3のステップS411においてj=1とする。mail(i−1)の1行目の引用階層は3であるため、引用メール解析部32は、ステップS412においてYesと判定し、ステップS413でqを3に設定する。
mail(i−1)の2行目の引用階層は1であり、q未満(3未満)であるため、引用メール解析部32は、ステップ414においてYesと判定する。
次に、図4のステップ418においてkは1に設定される。引用メール解析部32は、mail(i−1)の1行目から3つの引用記号「>」を削除し、「質問A:前回の会議で検討したアーキテクチャの件」を文字列Aに設定する。そして、mail(i)の1行目から2つの引用記号「>」を削除し、「質問A:前回の会議で検討したアーキテクチャの件大丈夫ですか。」を文字列Bに設定する。なお、この段階では、mail(i)の各行は整形済みであるため、図9に示したメール本文となっている。
引用メール解析部32は、ステップS420において、文字列Aと文字列Bとが前方一致すると判定する。そして、引用メール解析部32は、文字列Bから文字列Aを削除した「大丈夫ですか。」を新たな文字列B(以下、文字列Bと記載)に設定する。
ここで、文字列Bに改行データ以外のデータが含まれるため、引用メール解析部32は、ステップS424においてNoと判定する。そして、mail(i−1)の2行目の引用回数は1であり、q以上(3以上)ではないため、引用メール解析部32は、ステップS425においてNoと判定する。
引用メール解析部32は、ステップS426において、mail(i−1)の2行目の「>大丈夫ですか。」から引用記号を削除した「大丈夫ですか。」を新たなる文字列Aに設定する(以下、文字列Aと記載)。
引用メール解析部32は、文字列Aと文字列Bとが前方一致すると判定し(ステップS427)、mail(i−1)の1行目の改行データと、2行目の引用記号とを削除予約する(ステップS428)。
さらに、引用メール解析部32は、mail(i)のk行目とmail(i−1)のj行目との比較・判定を繰り返す。なお、図8の例では、1行目と2行目の間以外については引用階層ずれが存在しないため、mail(i−1)の引用階層ずれの削除予約としては、1行目の改行データ削除予約と、2行目の引用記号削除予約とがなされる。
以上の削除予約を受けて、引用メール解析部32は、図10に示すようにmail(i−1)の引用解消ずれを整形する。
以上のように、図8のようなmail(i−1)の引用階層ずれは解消される。
(実施例2)
次に、図11〜図13を用いて、複雑化した引用階層ずれが解消される例を実施例2として説明する。実施例2は、過去のメールのやりとりにおいて、1行目の「・評価の階層見直しを・・・(中略)・・・多重障害レベルで)」という行に複数回自動改行データが挿入されたことにより発生した階段状の引用階層ずれ(複合的引用階層ずれ)を解消する例である。複合的引用階層ずれが発生すると、図11のように判読性が大きく低下することになる。なお、本実施例においては、改行を受けた文となる1〜3行目の末尾に改行データが付加され、折り返された文となる2〜4行目の先頭に引用記号が付加されるものとする。
実施例1と同様に、図3および図4のフローチャートに沿って、本実施形態の文書解析装置1による処理を説明する。
まず、図3のステップS411においてj=1とする。mail(i−1)の1行目の引用階層は8であるため、引用メール解析部32は、ステップS412においてYesと判定し、ステップS413でqを8に設定する。
mail(i−1)の2行目の引用階層は2であり、q未満(8未満)であるため、引用メール解析部32は、ステップ414においてYesと判定する。
次に、図4のステップ418においてkは1に設定される。引用メール解析部32は、mail(i−1)の1行目から8つの引用記号「>」を削除し、「・評価の階層見直しを再検討(障害A、障害B、障害Cの多重障害」を文字列Aに設定する。そして、mail(i)の1行目から7つの引用記号「>」を削除し、「・評価の階層見直しを再検討(障害A、障害B、障害Cの多重障害レベルで)」を文字列Bに設定する。なお、この段階では、mail(i)の各行は整形済みであるため、図12に示したメール本文となっている。
引用メール解析部32は、ステップS420において、文字列Aと文字列Bとが前方一致すると判定する。そして、引用メール解析部32は、文字列Bから文字列Aを削除した「レベルで)」を新たな文字列B(以下、文字列Bと記載)に設定する。
ここで、文字列Bに改行データ以外のデータが含まれるため、引用メール解析部32は、ステップS424においてNoと判定する。そして、mail(i−1)の2行目の引用回数は1であり、q以上(8以上)ではないため、引用メール解析部32は、ステップS425においてNoと判定する。
引用メール解析部32は、ステップS426において、mail(i−1)の2行目の「>>レ」から引用記号「>」を削除した「レ」を新たなる文字列A(以下、文字列Aと記載)に設定する。
引用メール解析部32は、文字列Aと文字列Bとが前方一致すると判定し(ステップS427)、mail(i−1)の1行目の改行データと、2行目の引用記号とを削除予約する(ステップS428)。
ここで、jを1増じて2に設定し(ステップS429)、ステップS421に戻ると、引用メール解析部32は、文字列Bから文字列Aを削除した「ベルで)」を新たなる文字列B(以下、文字列Bと記載)に設定する。引用メール解析部32は、ステップS424とS425ではNoと判定し、mail(i−1)の3行目の「>>>ベ」から引用記号「>」を削除した「ベ」を新たなる文字列A(以下、文字列Aと記載)に設定する。
引用メール解析部32は、文字列Aと文字列Bとが前方一致すると判定し(ステップS427)、mail(i−1)の2行目の改行データと、3行目の引用記号とを削除予約する(ステップS428)。
ここで、jを1増じて3に設定し(ステップS429)、ステップS421に戻ると、引用メール解析部32は、文字列Bから文字列Aを削除した「ルで)」を新たなる文字列B(以下、文字列Bと記載)に設定する。引用メール解析部32は、ステップS424とS425ではNoと判定し、mail(i−1)の3行目の「>>>>ルで)」から引用記号「>」を削除した「ルで)」を新たなる文字列A(以下、文字列Aと記載)に設定する。
引用メール解析部32は、文字列Aと文字列Bとが前方一致すると判定し(ステップS427)、mail(i−1)の3行目の改行データと、4行目の引用記号とを削除予約する(ステップS428)。
さらに、引用メール解析部32は、mail(i)のk行目とmail(i−1)のj行目との比較・判定を繰り返す。なお、図11の例では、1〜4行目の間以外については引用階層ずれが存在しないため、mail(i−1)の引用階層ずれの削除予約としては、1〜3行目の改行データ削除予約と、2〜4行目の引用記号削除予約とがなされる。
以上の削除予約を受けて、引用メール解析部32は、図13に示すようにmail(i−1)の引用解消ずれを整形する。
以上のように、実施例1と同様に、図11のようなmail(i−1)の複合的引用階層ずれも解消される。
さて、引用メール抽出部31が最新メールに関連する全ての引用メールを抽出できたと仮定すると、最も古い引用メールmail(N)には引用階層ずれが存在しない。このとき、mail(N−1)に引用階層ずれが発生していたとすると、その引用階層ずれはmail(N)を送信したタイミングにおいて、メールソフトが挿入した改行データによって発生したものである。このmail(N−1)に発生した引用階層ずれは、mail(N)側から改行データ挿入前の行の状態を参照できる。そのため、本発明の実施形態および実施例の判定・整形処理によって、mail(N−1)上に存在する全ての引用階層ずれを解消可能である。本発明の実施形態および実施例の判定・整形処理を繰り返すことによって、最終的に、最新メール上の全ての引用階層を解消可能である。なお、メールが削除された等の理由で抽出できない引用メールがあったとしても、抽出できたいずれかの引用メール中に、自動改行データが挿入される前の行の状態が分かるメールが含まれていれば、問題無く、最新メールの引用階層ずれを整形可能である。
ここで、整形されたメールをレイアウトする例について、実施例3および4を挙げて説明する。メールのレイアウトは、メール表示用整形部40によって実行される。メール表示用整形部40は、整形済みの最新メールの本文情報を元に、メール表示用のレイアウトを行い、結果をメール表示部50に渡す。メール表示部50は、メール表示用整形部40から取得したメールの内容を何らかの画面に表示する。
レイアウト方法に関しては様々な実装が考えられるが、最新メールの引用階層ずれはメール整形部33によって整形済みのため、どのようにレイアウト方法を実装したとしても、関連技術と比べれば判読しやすいレイアウトにできることが期待される。
(実施例3)
ここで、図14と図15を用いて、メール表示用整形部40による表示レイアウトの一例を実施例3として示す。
表示用のフォントサイズ、表示領域の大きさなどから一行に表示できる範囲は決まる。例えば、表示領域の端に到達した行は、その行の以降の文字列を次の行に折り返し表示し、画面端に到達した行の行頭の引用記号の連続数をMとし、折り返した行の冒頭にM個の引用記号を付加するという方法が表示レイアウトの一例として考えられる。
ある表示したいメールデータが図14であり、これをある表示領域内に表示した例を図15に示す。図15においては、四角の枠が表示領域を示している。
図14のメール本文において、5行目および25行目の「評価の階層見直しを再検・・・」と、7行目および27行目の「議事録の承認申請を・・・」とが、図15の表示領域の横幅に収まらない。
そのため、実施例3において、メール表示用整形部40は、図14のメール文の5行目、7行目、25行目、27行目のそれぞれの行について次の行に折り返しを実行し、図15に示したような折り返し表示を行う。図15においては、図14の折り返し元の行の引用階層が2であったために、折り返し先の行の冒頭にも2つの引用記号を付加している。すなわち、図14の5行目および25行目の末尾の「の多重障害レベルで)」という文字列は、図15ではそれぞれ6行目および28行目として折り返されるとともに、文頭に引用記号「>」が2つ付加されている。同様に、図14の7行目および27行目の末尾の「ること。」という文字列は、図15ではそれぞれ9行目および31行目として折り返されるとともに、文頭に引用記号「>」が2つ付加されている。
以上のように、実施例3においては、ある行において表示領域からはみ出る文字列の末尾を折り返し、折り返された行の文頭の引用記号の数と同じ数の引用記号を折り返された文字列の文頭に付加する。
すなわち、実施例3において、メール表示用整形部40は、最新メール(表示対象メール)に含まれるある行(第1の行)が表示画面の表示領域からはみ出る場合、表示領域からはみ出る部分を第1の行とは異なる別の行(第2の行)に改行する。そして、メール表示用整形部40は、第1の行に付された引用記号を第2の行に付加する。
その結果、メールの表示領域の制限を受けて、メール本文のある行が意図しない箇所で折り返さざるを得ない場合であっても、引用階層ずれ状態になることはない。そのため、メール本文の判読性を低下させずに引用階層ずれを解消することが可能となる。
(実施例4)
次に、メール表示用整形部40による「縮小表示レイアウト」の作成方法例を実施例4として説明する。実施例4として示した縮小表示レイアウトでは、メール整形処理部30によって作成された縮小管理テーブルによって引用メールの本文情報を管理する。
引用メール解析部32の処理を終えた段階で、引用階層ずれが整形されたメール群mail(1)、mail(2)・・・mail(N)が得られる。実施例4において、メール整形処理部30は、これらのメール群から最新メールmail(1)の縮小表示のために必要な情報を抽出して縮小管理テーブルを作成する。そして、メール整形処理部30は、最新メールのヘッダー情報と、整形済みの最新メールの本文情報とをメール表示用整形部40に渡すときに、縮小管理テーブルも合わせて渡す。メール表示用整形部40は、縮小管理テーブルを参照することによって、メール表示用整形部40は縮小表示レイアウトを作成する。
メール整形処理部30は、引用階層ずれが整形済みの一連のメール群mail(1)・・・mail(N)から、mail(1)の縮小管理テーブルを作成する。まず、メール整形処理部30は、mail(1)内に、mail(2)・・・mail(N)の文字列が含まれているかどうかを判定する。このとき、メール整形処理部30は、各行頭の引用記号群は無いものとして判定する。mail(1)に含まれている部分をもつメールは、便宜上、その部分を含有部と呼称する。含有部が存在した場合、メール整形処理部30は、mail(1)中における含有部の開始行数、含有部の終了行数、含有部の最低引用階層、含有部の引用元となるメールの等情報を縮小管理テーブルに記録する。
ここで、図16〜図21を用いて、実施例4の具体例について説明する。
図16〜図18はメールのやりとりの例である。図16のメールに対する返信メールが図17、図17のメールに対する返信メールが図18である。すなわち、図16はmail(3)、図17はmail(2)、図18はmail(1)となる。なお、実施例4の縮小表示レイアウトを行う対象のメールは、全て引用階層ずれが解消されているものとする。
まず、メール整形処理部30は、mail(1)の中にmail(2)が含まれるかどうかを判定する。
各行頭の引用記号を考慮しない場合、図18のmail(1)の9行目から36行目に、図17のmail(2)と同じ文字列が含まれている。そのため、mail(2)が含有部であり、含有部の最低引用階層は1となる。
同様に、メール整形処理部30は、mail(1)にmail(3)が含まれるかどうかを判定する。
各行頭の引用記号を考慮しない場合、図18のmail(1)の25行目から33行目に、図17のmail(3)と同じ文字列が含まれている。そのため、mail(3)が含有部であり、含有部の最低引用階層は2となる。
実施例4において、以上のメール整形処理部30による判定結果は、図19に示した縮小管理テーブル400によって管理する。縮小管理テーブル400には、含有部開始行数、含有部終了行数、最低引用階層および含有メールが記録される。
図20は、メール表示用整形部40によって作成された縮小表示レイアウトを、メール表示部50によって表示させた一例である。
メール表示用整形部40は、図19の縮小管理テーブル400を参照する。mail(2)はmail(1)の9行目から36行目に含まれているので、メール表示用整形部40は、mail(1)の9行目から36行目に文字列を表示する代わりに、縮小表示のためのボタンG1を表示するようにレイアウトする。メール表示用整形部40は、mail(2)の本文が含まれていることが把握できるように、mail(2)の基本的なヘッダー情報(受信日時や件名、送信者、宛先など)をG1上に表示するようにレイアウトする。また、メール表示用整形部40は、この含有部(mail(2))の最低引用階層は1であるため、G1の左側(最新メール本文中)に引用記号を1つずつ表示するようにレイアウトする。引用記号を付加することによって、各ボタンがどの引用階層のやりとりに属するものなのかを分かりやすくする。
同様に、メール表示用整形部40は、mail(3)についても縮小表示(G2)を行うようにレイアウトする。この含有部(mail(3))の引用階層は2であるため、メール表示用整形部40は、G2の左側(G1ボタン中)に引用記号を2つ表示するようにレイアウトする。
実施例4のように、複数の含有部が存在する場合、縮小管理テーブル400の開始行数と終了行数を参照すれば各含有部同士の包含関係が分かる。そのため、メール表示用整形部40は、その包含関係を考慮して縮小表示を行うレイアウトをする。実施例4の場合、図18のmail(1)において、mail(2)は9行目から36行目、mail(3)は25行目から33行目に含有され、mail(3)はmail(2)の一部であることが分かる。そのため、縮小表示でも、mail(3)のG2ボタンがmail(2)のG1ボタンに含まれるように表示を行っている。
図20の縮小表示レイアウトにおいては、ボタンに対して何らかのアクション(例えばクリック操作等)が行われたときに、縮小表示を解除し、元の文字列を表示するようにする。また、再度アクションを行うことによって縮小表示に戻せるようにする。図21には、G2に対してアクションを起こし、縮小表示を解除したときの表示例を示す。図21は、G2ボタンの枠内に、図16のmail(3)が表示される例である。
縮小管理テーブル400は、先述した通り、引用階層ずれが解消されたmail(1)・・・mail(N)を元にして作成する必要がある。なぜならば、未整形のmail(1)・・・mail(N)を使うと、改行データの挿入位置がメール毎に異なる可能性があるため、本来含有部として判定されるべき部分が含有部として判定されず、正しい縮小表示ができなくなる場合があるためである。つまり、本発明の実施形態・実施例の方法によってmail(1)・・・mail(N)の引用階層ずれの整形を行うからこそ、本縮小表示が実施可能であると言える。
縮小表示の方法としては、例えば、ボタンに対してアクションが起こされたときに、メール保存部20に格納されている対応メールを別ウインドウで開くようにする実装も考えられる。これを実現するには、縮小管理テーブル400の各行に、メール保存部20に格納されている対応メールへのリンク情報を追加すればよい。リンク情報としては、各メールのMessage−IDを使う方法が考えられる。
ボタンによる縮小表示を行う機能、および、利用者の必要に応じて縮小表示を解除してメールの原文を表示する機能により、メール本文中に含まれる様々な階層の引用文間の関係が把握しやすくなる。
表示領域が限られた画面にメールを表示する場合、縮小表示をしないとメールが縦に長く表示されて各引用文を固まりとして把握することが難しくなる。しかしながら、本実施例に係る方法を用いれば、縮小表示をすることによって判読性の低下を防止できる。
また、縮小表示部に対応するメールを別ウインドウで開く方法によれば、最新のmail(1)ではなく引用メールmail(2)・・・mail(N)に対して返信をしたい場合に、それらの引用メールを個別に探すことなく返信することができるようになる。
また、メールのヘッダー情報を元にして、最新メールと引用メール群とをリスト形式やツリー形式で一覧表示(スレッド表示)し、互いに関連があるメールであることを示す機能をもつメールソフトが存在する。これらのメールソフトと同様に、実施例4の縮小表示は、メール間の関連を分かりやすくすることを狙っているものの、メールのヘッダー情報だけでなく、メール本文の状態も考慮して表示レイアウトを行う。そのため、メール間の関連はより分かりやすいものになることが期待できる。
実施例4によれば、縮小表示により、メール本文中に含まれる様々な階層の引用文間の関係が把握しやすくなる。特に、携帯電話、スマートフォン、タブレットPCなどのように表示領域が限られる画面にメールを表示するときに効果が期待できる。実施例4によれば、メールのヘッダー情報だけでなく本文情報の状態も考慮して表示を行うため、様々な階層の引用文間の関係をより把握しやすくなる。
以上のように、本発明の実施形態および実施例の文書解析装置、文書解析方法および文書解析プログラムによれば、電子メールの本文に発生する引用階層ずれを高い精度で整形することが可能となる。
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明の文書解析装置、文書解析方法および文書解析プログラムは、電子メールを扱う様々な端末上で利用可能である。また、本発明の文書解析装置、文書解析方法および文書解析プログラムは、電子メールのみならず、引用文に何らかの引用記号を付加し、その引用記号によって含有される引用文を明示するような書式を含む文書の全てを対象とすることができる。
10 メール抽出部
20 メール保存部
30 メール整形処理部
40 メール表示用整形部
50 メール表示部
31 引用メール抽出部
32 引用メール解析部
33 メール整形部
100 情報処理装置
101 プロセッサ
102 主記憶装置
103 補助記憶装置
104 入力インターフェース
105 表示制御装置
106 リーダライタ
107 通信インターフェース
108 バス
114 入力装置
115 表示装置
116 記録媒体

Claims (10)

  1. 表示対象文書の属性情報を基に前記表示対象文書によって引用される引用対象文書の本文情報を抽出する引用文書抽出手段と、
    前記表示対象文書の本文情報と前記引用対象文書の本文情報とを比較して前記表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には前記表示対象文書の本文情報中の引用階層ずれを整形する引用文書解析手段と、
    前記表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、前記引用階層ずれを整形した本文情報を元の前記表示対象文書の本文情報に反映させる文書整形手段とを備える文書解析装置。
  2. 表示対象メールの属性情報を基に前記表示対象メールによって引用される引用メールの本文情報を抽出する引用メール抽出手段と、
    前記表示対象メールの本文情報と前記引用メールの本文情報とを比較して前記表示対象メールの本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には前記表示対象メールの本文情報中の引用階層ずれを整形する引用メール解析手段と、
    前記表示対象メールの属性情報と引用階層ずれを整形した本文情報とを取得し、前記引用階層ずれを整形した本文情報を元の前記表示対象メールの本文情報に反映させるメール整形手段とを備える文書解析装置。
  3. 過去に送受信されたメールを保存するメール保存手段と、
    前記表示対象メールを表示させる指示に応じて前記表示対象メールの前記属性情報と前記本文情報とを前記メール保存手段から抽出するメール抽出手段と、
    前記メール整形手段によって反映された前記表示対象メールの本文情報と前記属性情報とを基にメール表示用のレイアウトを行うメール表示用整形手段と、
    前記メール表示用整形手段によってレイアウトされたレイアウト結果を基に前記表示対象メールを出力するメール表示手段とをさらに備える請求項2に記載の文書解析装置。
  4. 前記引用メール解析手段は、
    前記表示対象メールと前記引用メールとを含む一連のメール群に対して、最も古いメールから順番にメール交換順が連続する2つのメール間で引用階層ずれがあるか否かを判定し、引用階層ずれがあった場合、比較している前記2つのメールのうち新しい方のメールの本文情報の引用階層ずれを整形する手順を、前記一連のメール群に含まれる全てのメールの全ての行に対して繰り返し、前記表示対象メールの本文情報中の引用階層ずれを解消させる請求項に記載の文書解析装置。
  5. 前記引用メール解析手段は、
    前記2つのメールのうち新しい方のメールの本文情報に含まれる一つの行において引用記号を削除した文字列を第1の文字列に設定し、前記2つのメールのうち古い方のメールの本文情報に含まれる一つの行において引用記号を削除した文字列を第2の文字列に設定し、前記第1の文字列と前記第2の文字列とが前方一致するか否かの判定を前記2つのメールのうち新しい方のメールの全ての行について検証する請求項4に記載の文書解析装置。
  6. 前記メール表示用整形手段は、
    前記表示対象メールに含まれる第1の行が表示領域からはみ出る場合、前記表示領域からはみ出る部分を前記第1の行とは異なる第2の行に改行するとともに、前記第1の行に付された引用記号を前記第2の行に付加する請求項3乃至5のいずれか一項に記載の文書解析装置。
  7. 前記メール整形手段は、
    既に引用階層ずれが整形された前記表示対象メールの本文情報中における前記引用メールの含有部に関して、
    前記含有部の開始行数、終了行数、引用階層、引用元となる引用メールの名称を含む縮小管理テーブルを作成する請求項3乃至6のいずれか一項に記載の文書解析装置。
  8. 前記メール表示用整形手段は、
    前記縮小管理テーブルを基に、前記表示対象メールに引用された前記引用メールの属性情報を表示させたボタンとして前記引用メールを縮小表示させる縮小表示レイアウトを作成する請求項7に記載の文書解析装置。
  9. 表示対象文書の属性情報を基に前記表示対象文書によって引用される引用対象文書の本文情報を抽出し、
    前記表示対象文書の本文情報と前記引用対象文書の本文情報とを比較して前記表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には前記表示対象文書の本文情報中の引用階層ずれを整形し、
    前記表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、
    前記引用階層ずれを整形した本文情報を元の前記表示対象文書の本文情報に反映させる文書解析方法。
  10. 表示対象文書の属性情報を基に前記表示対象文書によって引用される引用対象文書の本文情報を抽出する処理と、
    前記表示対象文書の本文情報と前記引用対象文書の本文情報とを比較して前記表示対象文書の本文情報中の引用階層ずれを検出し、引用階層ずれが検出された場合には前記表示対象文書の本文情報中の引用階層ずれを整形する処理と、
    前記表示対象文書の属性情報と引用階層ずれを整形した本文情報とを取得し、前記引用階層ずれを整形した本文情報を元の前記表示対象文書の本文情報に反映させる処理とをコンピュータに実行させる文書解析プログラム。
JP2013249069A 2013-12-02 2013-12-02 文書解析装置、文書解析方法および文書解析プログラム Active JP6260234B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013249069A JP6260234B2 (ja) 2013-12-02 2013-12-02 文書解析装置、文書解析方法および文書解析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013249069A JP6260234B2 (ja) 2013-12-02 2013-12-02 文書解析装置、文書解析方法および文書解析プログラム

Publications (2)

Publication Number Publication Date
JP2015106337A JP2015106337A (ja) 2015-06-08
JP6260234B2 true JP6260234B2 (ja) 2018-01-17

Family

ID=53436380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013249069A Active JP6260234B2 (ja) 2013-12-02 2013-12-02 文書解析装置、文書解析方法および文書解析プログラム

Country Status (1)

Country Link
JP (1) JP6260234B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11543944B2 (en) 2018-12-03 2023-01-03 Line Corporation Group message processing method and non-transitory computer readable medium storing program therefor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3899572B2 (ja) * 1997-01-17 2007-03-28 カシオ計算機株式会社 電子メールの表示方法および電子メール表示装置
JP2007066317A (ja) * 2000-12-08 2007-03-15 Fujitsu Ltd 文書処理装置及びコンピュータ・プログラム
US7222299B1 (en) * 2003-12-19 2007-05-22 Google, Inc. Detecting quoted text
JP5368080B2 (ja) * 2008-12-24 2013-12-18 キヤノンソフトウェア株式会社 電子メール表示装置、電子メール表示方法、プログラム、及び、記録媒体。
JP2012203492A (ja) * 2011-03-24 2012-10-22 Mitsubishi Denki Information Technology Corp 電子メール管理装置及び電子メール管理プログラム及び電子メール管理方法
JP2014149577A (ja) * 2013-01-31 2014-08-21 Fujitsu Ltd メール処理プログラム、メール処理方法、及びメール処理装置

Also Published As

Publication number Publication date
JP2015106337A (ja) 2015-06-08

Similar Documents

Publication Publication Date Title
US20090271696A1 (en) Conflict Resolution
CN104598020A (zh) 保留用户输入的情感的方法和装置
US8296785B2 (en) Providing links between application programs
JP5761056B2 (ja) 生成装置、生成プログラム、および生成方法
JP6260234B2 (ja) 文書解析装置、文書解析方法および文書解析プログラム
JP2021089667A (ja) 情報処理装置及びプログラム
JP2016118833A (ja) ナレッジ抽出編集プログラム、ナレッジ抽出編集方法、ナレッジ抽出編集装置およびナレッジ抽出編集システム
CN110852045B (zh) 一种删除文档内容的方法、装置、电子设备及存储介质
AU2013200000B2 (en) Method and apparatus for analyzing a document
US10650098B2 (en) Content analyzer and recommendation tool
JP2017215714A (ja) 情報処理装置及び情報処理プログラム
JP7027696B2 (ja) 情報処理装置及び情報処理プログラム
JPWO2011048672A1 (ja) データ処理装置及びデータ処理方法及びプログラム
JP5803481B2 (ja) 情報処理装置及び情報処理プログラム
JP6918483B2 (ja) 情報処理装置、情報処理方法、プログラム
US20130318082A1 (en) Generation apparatus, generation method, searching apparatus, and searching method
AU2013200005B2 (en) Method and apparatus for analyzing abbreviations in a document
JP2015106715A (ja) 帳票データ管理システム、方法、プログラム、および帳票データ管理装置
JP6044422B2 (ja) 略称生成方法および略称生成装置
JP6260181B2 (ja) 情報処理装置及び情報処理プログラム
JP7052264B2 (ja) メール処理方法、メール処理装置、メール処理システム、およびコンピュータプログラム
JP4595400B2 (ja) ドキュメント処理装置
JP6556091B2 (ja) システム仕様検証支援装置及びシステム仕様検証支援方法
JP2009059332A (ja) 文書情報表示システム
JP2010282415A (ja) スケジュール情報連動メール管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150