以下、本実施形態について、図面を参照しながら詳細に説明する。
図1は、複数のユーザの間の通信で使用される語句の分布の例を説明する図である。図1(a)は、3人のユーザA〜Cが通信するときに用いられる語句の分布の例を示す。ユーザAが用いる語句の集合をW1の円で示す。同様に、ユーザBが用いる語句の集合をW2、ユーザCが用いる語句の集合をW3の円で示す。ユーザAとユーザBは、お互いに電子メールの送受信などのコミュニケーションをとるときには、ユーザAとユーザBに共通した語句を用いる。そこで、ユーザAとユーザBの間で送受信される電子メールには、W1とW2の共通部分であるW12とW123に含まれる語句が用いられると予測できる。同様に、ユーザAとユーザCの間で送受信される電子メールには、W13とW123に含まれる語句が用いられると予測できる。さらに、ユーザBとユーザCの間で送受信される電子メールには、W23とW123に含まれる語句が用いられると予測できる。ここで、W123に含まれている語句は、例えば、曜日などユーザA〜Cのいずれもが電子メールに記載する可能性がある語句である。すなわち、W123に含まれる語句は、ユーザAがユーザB、Cのいずれに送信する電子メールに含まれていても良いため、W123の語句に基づいてユーザA〜Cのいずれに送信される電子メールであるかを判定することはできない。
そこで、ある実施形態に係る通信装置では、多数のユーザが共通して使用する語句(共通語句)を電子メールの宛先が適切であるかの判定に用いる語句から削除する。共通語句は、多数のユーザによって使用される語句であり、例えば、閾値以上の数のユーザによって使用されている語句とすることができる。共通語句の決定方法などについては後述する。図1の例では、共通語句はW123に含まれる語句であるとする。共通語句を除くと、図1(a)に示す語句の集合からW123に含まれる語句が除かれるので、コミュニケーションに用いられる語句は、図1(b)に示すように分布する。従って、通信装置は、例えば、ユーザAからユーザBに送信される電子メールに、W1bとW2bの共通部分であるW12の語句が含まれるかを確認する。ここでは、通信端末は複数のユーザ端末間でのメールの送受信を中継するサーバである場合を例として述べる。
まず、通信装置は、送受信が行われた電子メールに含まれている語句を、その電子メールが送受信されたユーザに対応付けて記憶する。例えば、W12に含まれる語句をユーザAとユーザBに対応付けて記憶する。通信装置は、同様に、W13に含まれる語句をユーザAとユーザC、W23に含まれる語句をユーザBとユーザC、および、W123に含まれる語句をユーザA〜Cに対応付けて記憶する。
次に、通信装置が、送信元にユーザA、宛先にユーザBが指定されており、宛先に送信される対象となっている電子メール(対象電子メール)を受信したとする。通信装置は、対象電子メールの本文を語句ごとに分割することにより、対象電子メールに含まれている語句を取得する。さらに、通信装置は、取得した語句からW123に含まれている語句を除いた語句を、処理の対象とする語句(対象語句)とする。ここで、通信装置は、予め、W123に含まれる語句を記録した共通語句データベースを記憶しているものとする。通信装置は、対象語句の各々について、W12に含まれているかを確認することにより、ユーザAとユーザBとの間での通信に用いられる語句であるかを確認する。通信装置は、対象語句であり、かつ、W12に含まれている語句の数を求める。W12に含まれている対象語句の数が閾値を下回った場合、通信装置は、対象電子メールの送信は誤送信であると判定する。そこで、通信装置は、誤送信の警告をユーザAに使用されている端末に通知する。
このように、ユーザによらずに良く用いられる語句を、誤送信の判定の際に用いないことにより、いずれのユーザにも用いられる語句の数を含めないで、対象電子メールの送信者と受信者との間で共通に用いられる語句の数を計数する。従って、いずれのユーザにも用いられる語句が多い電子メールについても、誤送信の可能性があるかを精度良く判定することができる。
<装置構成>
通信端末は、送受信を中継するサーバに限られず、例えば、ユーザ端末として実現される場合もある。以下、通信端末が、あるユーザの端末である場合について説明する。
図2は、通信装置10の構成の一例を示す図である。通信装置10は、受信部11、送信部12、電子メール作成部13、電子メール分割部14、送信確認部15、タイマ16、記憶部20、判定部40、および、データベース更新部50を備える。判定部40は、本文誤り判定部41とアドレス誤り判定部42を備える。記憶部20は、語句データベース21、共通語句データベース22、関連性データベース23、辞書データ31、データ32、および、プログラム33を記憶している。データベース更新部50は、語句データベース更新部51、共通語句データベース更新部52、および、関連性データベース更新部53を備える。
通信装置10は、受信部11を介して、受信メールなどのデータを受信する。受信部11は、受信した電子メールを電子メール分割部14に出力する。通信装置10は、送信部12を介して、通信装置10で生成されたデータなどを、通信装置10の通信先の端末等に送信する。タイマ16は、語句データベース更新部51や関連性データベース更新部53などの要求に応じて、時刻情報を通知する。
電子メール作成部13は、電子メールの入力画面や宛先の選択画面などを、通信装置10が備える表示部(図示せず)に表示する。また、適宜、電子メールの送信や受信に関する情報やエラーメッセージなどを、表示部に表示する。さらに、送信確認部15から、電子メールの送信を要求されると、電子メール作成部13は、送信が要求された電子メールを送信部12に出力する。なお、電子メール作成部13で生成された電子メールには、個々の電子メールを一意に識別することができる識別子が付されているものとする。識別子は、例えば、作成時刻を表す文字列や通し番号などとすることができる。電子メール作成部13は、電子メール分割部14に電子メールを出力するときに、その電子メールを識別する識別子を合わせて通知するものとする。
電子メール分割部14は、通信装置10が受信した電子メールや電子メール作成部13で作成された電子メールを、複数のパラグラフに分割する。例えば、電子メール分割部14は、電子メールを挨拶文、引用文、署名、本文の4つに分割することができる。さらに、電子メール分割部14は、分割されたパラグラフごとに、含まれている語句を特定する。電子メール分割部14は、通信装置10が受信したメールを分割して得られた語句を、電子メールの送信元アドレスおよび宛先アドレスに対応付けて、語句データベース更新部51に出力する。また、通信装置10が受信したメールの送信元アドレスと宛先アドレスも、関連性データベース更新部53に出力する。
一方、電子メール作成部13で作成された電子メールを分割して得られた語句については、電子メール分割部14は、電子メールの送信元アドレス、宛先アドレス、および、電子メールの識別子に対応付けて、本文誤り判定部41に出力する。また、電子メール作成部13で作成された電子メールの送信元アドレスと宛先アドレスを、電子メールの識別子に対応付けて、アドレス誤り判定部42に出力する。電子メール分割部14の動作については、後で詳しく説明する。
図3は、語句データベース21の例を示す図である。語句データベース更新部51は、電子メール分割部14で特定された語句の各々を語句データベース21に記録する。図3に示す例では、電子メール分割部14に特定された語句は、その語句が含まれるパラグラフの種類、2つの電子メールアドレスの組み合わせ、ランク、更新日に対応付けて記録される。ここで、図3の例では、ある語句を含む電子メールの送信元アドレスと宛先アドレスの組み合わせに対応づけてその語句が登録され、2つのアドレスのうちのいずれが送信元アドレスであっても1つの情報に登録される。例えば、「迷惑メール」という語句がt-tanaka@xx-network.co.jpからsuzuki@ghi.co.jpに送信される電子メールに含まれている場合に、図3の矢印で示した情報が更新される。さらに、「迷惑メール」という語句がsuzuki@ghi.co.jpからt-tanaka@xx-network.co.jpに送信される電子メールに含まれている場合にも、図3の矢印で示した情報が更新される。
情報が更新される際には、ランクの値が変更される。ここで、ランクは、ある語句が送信元アドレスと宛先アドレスの間で送受信される電子メールに出現する可能性の大きさを表す数値であり、語句の出現頻度を示す数値でもある。ランクの決定方法や更新方法については後述する。なお、図3は、語句データベース21の例であり、語句データベース21に含まれる情報の種類などは、実装に応じて変更されることがある。
共通語句データベース22は、図1のW123に含まれている語句のように、閾値以上の数のユーザに共通して用いられている語句を記録する。共通語句データベース22は、前述のように、予め、通信装置10に記憶されている場合もあるが、通信装置10が生成することもできる。本実施形態では、共通語句データベース22は、共通語句データベース更新部52により生成され、更新もされるものとする。
共通語句データベース更新部52は、例えば、語句データベース21で対応付けられている宛先アドレスの数と送信元アドレスの数の合計が閾値よりも大きい語句を、共通語句データベース22に記録する。図4は、共通語句データベース22の例を示す図である。なお、図4は、共通語句データベース22の例であり、実装に応じて、共通語句データベース22に含まれる情報の種類は変更されることがある。例えば、共通語句データベース22は、語句に対応付けて、その語句が含まれる電子メールの宛先アドレスの数と送信元アドレスの数の合計数を記録することもできる。共通語句データベース更新部52は、語句データベース21が更新されると、共通語句データベース22を更新することができる。
本文誤り判定部41は、共通語句データベース22を参照することにより、電子メール分割部14から入力された語句のうちで共通語句データベース22に含まれていない対象語句を抽出する。さらに、対象語句の各々について、送信元アドレスと宛先アドレスに対応付けられているランクの値を語句データベース21から取得し、取得したランクを第2の閾値と比較する。ここで、ランクが第2の閾値よりも大きい場合は、送信元アドレスと宛先アドレスの間で送受信される電子メール中に、その対象語句が含まれていることにより、そのメールが誤送信である可能性が小さくなることを示す。本文誤り判定部41は、ランクの値が第2の閾値よりも大きい対象語句が、その電子メール中にいくつ含まれているかを計数する。第2の閾値よりもランクの値が大きい対象語句の値が、第3の閾値未満の場合、本文誤り判定部41は、電子メールの文面から誤送信であると判定する。誤送信の可能性があると判定した場合、本文誤り判定部41は、送信確認部15に誤送信の可能性があることを通知する。一方、第2の閾値よりもランクの値が大きい対象語句の値が、第3の閾値よりも大きい場合、本文誤り判定部41は、電子メールの文面から誤送信でないと判定する。すると、本文誤り判定部41は、送信確認部15に誤送信ではないという判定結果を通知する。本文誤り判定部41は、後述するように、送信確認部15から電子メールを送信した旨の通知を受けると、送信されたメールに含まれている対象語句を、送信元アドレスと宛先アドレスに対応付けて、データベース更新部51に出力する。
図5は、関連性データベース23の例を示す図である。図5の例では、関連性データベース23には、2つのメールアドレスとそれらのメールアドレス間について計算された関連係数を記録している。ここで、関連係数は、2つのメールアドレスの間で電子メールが送受信される可能性を表すものとする。関連係数は0から1までの任意の数とすることができる。関連係数の計算方法と使用方法については、後述する。関連性データベース更新部53は、電子メール分割部14から通知されたアドレスから関連係数を計算し、関連性データベース23に記録する。また、関連性データベース更新部53は、関連性データベース23を更新した履歴も関連性データベース23に記録する。図5の例では、メールアドレスの組合せごとに、過去3回の送受信の記録が、関連性データベース23に記録されている。
アドレス誤り判定部42は、関連性データベース23を参照することにより、電子メール分割部14から入力された2つのアドレスの組合せに対応付けられた関連係数の大きさを関連閾値と比較する。ここで、関連閾値は、電子メール分割部14から入力された2つのアドレスの間で電子メールの送受信が行われる可能性があるかを判定するための閾値であり、関連性が関連閾値以上の場合、電子メールの送受信が行われると判定される。例えば、関連閾値は、同一の電子メールが同報される可能性がある2つのアドレスに対応付けられる最小値に設定される場合がある。アドレス誤り判定部42は、関連係数が関連閾値未満の値である場合、宛先アドレスが誤っていると判定する。複数のアドレスに同報される電子メールである場合は、個々の宛先アドレスについて判定が行われる。誤送信の可能性があると判定した場合、アドレス誤り判定部42は、送信確認部15に誤送信の可能性があることを通知する。一方、アドレス誤り判定部42は、関連係数が関連閾値以上の値である場合、送信元アドレスおよび宛先アドレスに含まれているアドレスの組合せからは、誤送信であると判定しない。アドレス誤り判定部42は、後述するように、送信確認部15から、メールを送信した旨の通知を受け取ると、送信されたメールに含まれている送信元アドレスと宛先アドレスを、関連性データベース更新部53に出力する。アドレス誤り判定部42の動作については、後で詳しく説明する。
送信確認部15は、本文誤り判定部41やアドレス誤り判定部42から、誤送信の可能性があると通知されると、通信装置10の表示部(図示せず)に、エラーメッセージと送信を行うかの指示の入力を要求する確認画面を表示する。送信確認部15は、確認画面を介して、ユーザからメールの送信を指示されると、指示された電子メールを宛先アドレスに送信し、送信したことを本文誤り判定部41とアドレス誤り判定部42に通知する。また、送信確認部15は、本文誤り判定部41とアドレス誤り判定部42の両方が誤送信であると判定しない電子メールについて、その電子メールの送信を電子メール作成部13に指示する。さらに、電子メールを送信したことを、その電子メールを識別する識別子と共に、本文誤り判定部41とアドレス誤り判定部42に通知する。
辞書データ31は、電子メール分割部14が電子メールを語句やパラグラフに分割する際に参照される。辞書データ31は、語句に対応付けてその語句の品詞が記録されているものとする。さらに、人名や挨拶などのパラグラフ分割の判断材料となる語句も辞書データ31に記録されているものとする。図6に辞書データ31の例を示す。辞書データ31は、任意の辞書データを用いることができ、例えば、IPA(Information-technology Promotion Agency, Japan、情報処理推進機構)などで文書の解析用に作成されているデータを用いることができる。
通信装置10は、さらに、記憶部20に、データ32とプログラム33も記憶している。通信装置10に備えられているCentral Processing Unit(CPU、図7を参照)は、プログラム33を読み込むことにより、受信部11、送信部12、電子メール作成部13、電子メール分割部14、送信確認部15、判定部40、および、データベース更新部50として動作する。データ32には、例えば、閾値の値、修正前語句テーブル(図17)、ランク変更量テーブル(図18)などが含まれるものとする。修正前語句テーブルとランク変更量テーブルについては後で詳しく説明する。また、記憶部20は、適宜、通信装置10の動作に用いられるデータなどを記録することができる。
図7は、通信装置10のハードウェア構成の例を説明する図である。通信装置10は、CPU61、メモリ62、入力装置63、出力装置64、外部記憶装置65、媒体駆動装置66、ネットワーク接続装置68、および、バス69を備える。CPU61は、前述のとおり、受信部11、送信部12、電子メール作成部13、電子メール分割部14、送信確認部15、判定部40、および、データベース更新部50として動作する。メモリ62は、記憶部20として動作する。
通信装置10は、キーボードやマウスなどの入力装置63を備える。ユーザは、入力装置63を介して、電子メールを作成することができる。また、ユーザは、入力装置63を介して、電子メールを送信するかの指示を入力することができる。通信装置10は、ディスプレイなどの出力装置64を備える。電子メール作成部13は、電子メールの作成画面を出力装置64に表示することができる。また、送信確認部15は、出力装置64にエラーメッセージや、電子メールの送信を行うかの指示をユーザに要求する確認画面を表示する。
外部記憶装置65は、通信装置10で用いられるデータを、適宜、記憶することができる。媒体駆動装置66は、可搬記憶媒体67を読み込むことにより、データやプログラムなどを取得する。通信装置10は、媒体駆動装置66を介して、可搬記憶媒体67に記憶されているデータ等を取得することができる。CPU61は、可搬記憶媒体67に格納されているプログラムを実行することにより、受信部11、送信部12、電子メール作成部13、電子メール分割部14、送信確認部15、判定部40、および、データベース更新部50として動作する場合もある。この場合には、媒体駆動装置66を介して、通信装置10がプログラムを読み込む。なお、可搬記憶媒体67は、例えば、Compact Disc Read Only Memory(CD−ROM)、Universal Serial Bus(USB)メモリ、フラッシュメモリなどとすることができる。ネットワーク接続装置68は、ネットワーク70への接続処理を行う。
<第1の実施形態>
以下、第1の実施形態について説明する。通信装置10は、通信装置10の受信メールから語句やアドレスの関連性を学習して語句データベース21や関連性データベース23を作成し、得られたデータベースを用いて、通信装置10で作成されたメールが誤送信であるかを判定する。誤送信ではないと判定した場合、通信装置10は、送信メールからも、語句やアドレスの関連性を学習することにより、語句データベース21や関連性データベース23を更新する。誤送信であると判定した場合でも、ユーザから送信指示があると、通信装置10は、送信メールを宛先アドレスに向けて送信する。さらに、ユーザからの送信指示があったメールについても、語句やアドレスの関連性を学習する。そこで、まず、受信メールからの学習について説明する。
〔受信メールからの学習〕
図8は、受信メールの分割方法の例を説明する図である。ここで、図8(a)の受信メールは、受信部11を介して受信され、電子メール分割部14に入力されたものとする。また、電子メール分割部14には、受信部11から受信メールの文面とともに、送信元アドレスと宛先アドレスが通知されているものとする。さらに、宛先アドレスの各々について宛先(To)と同報の宛先(CC、Carbon Copy)のいずれが指定されているかについても通知するものとする。例えば、図8の受信メールの場合、suzuki@ghi.co.jpは、Toに指定された宛先アドレスであることが通知され、sato@ghi.co.jpは、CCが指定された宛先アドレスであることが電子メール分割部14に通知される。以下、図8を参照しながら、受信メールの分割と、受信メールからの語句やアドレスの学習方法について説明する。
電子メール分割部14は、入力された受信メールをパラグラフごとに分割する。例えば電子メール分割部14は、2つの空白行の間にある文字列を、1つのパラグラフと判定することができる。図8(a)の例では、電子メール分割部14は、受信メールをP1〜P8の8個のパラグラフに分割する。
次に、電子メール分割部14は、パラグラフに含まれている文字列や記号などを用いて、パラグラフに記載されている内容を判定する。電子メール分割部14は、各パラグラフに辞書データ31で人名、挨拶として登録された語句、記号などが含まれているかと、それぞれが含まれている電子メール全体の中での位置を確認し、得られた結果に応じて、パラグラフに記載されている内容を判定する。例えば、電子メール分割部14は、パラグラフに人名もしくは挨拶に用いられる語句が含まれていて、かつ、記号を含まないパラグラフを、挨拶文に分類する。また、パラグラフに含まれている行の最初の1文字が記号である場合、電子メール分割部14は、そのパラグラフを引用に分類する。さらに、記号が複数連続して記載されていて、人名を含むパラグラフを、署名に分類する。最後に、挨拶文、引用、署名のいずれにも分類されていないパラグラフを、本文に分類する。
パラグラフの分類の例を、図8(a)の受信メールのパラグラフが分類される場合を例として説明する。電子メール分割部14は、例えば、図6に示す辞書データ31を参照することにより、パラグラフP1には、「鈴木」という人名が含まれているが記号を含んでいないと認識する。そこで、電子メール分割部14は、パラグラフP1を挨拶文に分類する。さらに、パラグラフP2には、「田中」という人名と、「お世話になって」という挨拶語句が含まれている。そこで、電子メール分割部14は、パラグラフP2も挨拶文に分類する。また、パラグラフP3、P4、P6、P7はいずれも、人名、挨拶に用いられる語句、記号を含まないので、本文に分類される。パラグラフP5は、行の最初が記号「>」であるので、引用に分類される。パラグラフP8は、記号「−」が2つ以上連続した文字列を含み、「田中」という人名も含んでいるため、署名に分類される。従って、パラグラフP1〜P8は、図8(b)のテーブルに示すように分類される。
図9は、電子メール分割部14の動作の例を説明するフローチャートである。電子メール分割部14は、電子メールの先頭にポインタを移動する(ステップS1)。次に、ポインタの現在の位置から、ポインタよりも後でポインタから最も近い空白行までをstrに取り出し、ポインタをその空白行の次の行に移動する(ステップS2、S3)。例えば、図8の例では、電子メール分割部14は、電子メールの先頭から次の空白行Xまでを、パラグラフP1とし、ポインタをXの次の行に移動する。次に、電子メール分割部14は、strに取り出したパラグラフに挨拶に用いられる語句が含まれているかを確認する(ステップS4)。挨拶に用いられる語句が含まれていない場合、電子メール分割部14は、パラグラフに人名が含まれているかも確認する(ステップS5)。パラグラフに人名が含まれていない場合、電子メール分割部14は、パラグラフに含まれている行の最初の文字が記号であるかを確認する(ステップS6)。パラグラフに含まれている行の最初の文字が記号ではない場合、電子メール分割部14は、そのパラグラフを「本文」に分類する(ステップS6でNo、ステップS7)。一方、パラグラフに含まれている行の最初の文字が記号である場合、電子メール分割部14は、そのパラグラフを「引用」に分類する(ステップS6でYes、ステップS8)。また、挨拶に用いられる語句がパラグラフに含まれていることが場合、電子メール分割部14は、そのパラグラフを「挨拶文」に分類する(ステップS4でYes、ステップS11)。挨拶に用いられる語句が含まれておらず、人名が含まれるパラグラフについては、電子メール分割部14は、記号が複数連続した文字列が含まれているかを確認する(ステップS5でYes、ステップS9)。記号が複数連続した「----」などの文字列が含まれている場合、電子メール分割部14は、パラグラフを「署名」に設定する(ステップS9でYes、ステップS10)。一方、記号が複数連続した文字列が含まれていない場合、電子メール分割部14は、パラグラフを「挨拶文」に設定する(ステップS9でNo、ステップS11)。さらに、電子メール分割部14は、ポインタの位置が電子メールの末尾であるかを確認し、ポインタが電子メールの末尾に来るまでステップS2〜S12を繰り返す(ステップS12)。
次に、電子メール分割部14は、各パラグラフを語句単位に分割する。このとき、電子メール分割部14は、適宜、辞書データ31を参照することができる。電子メール分割部14は、分割した個々の語句を、その語句を含む電子メールの送信元アドレス、宛先アドレス、および、その語句が含まれていたパラグラフが分類された種類に対応付けて、語句データベース更新部51に出力する。語句データベース更新部51は、電子メール分割部14から入力されたデータに基づいて、語句データベース21に含まれているランクの値と更新日を変更する。
図10は、語句データベース21の更新方法の例を説明する図である。図10の例では、語句データベース更新部51は、送信元アドレスと宛先アドレスの関係に応じて、図10(a)に示す加算値を、語句データベース21に記録されているランクの値に加算するものとする。宛先アドレスが宛先Toに指定されている場合、ランクの加算値は3であり、宛先アドレスがCCに指定されている場合、ランクの加算値は2である。例えば、図8に示したメールの本文から「迷惑メール」という語句が特定されて、語句データベース更新部51に出力されたとする。すると、語句データベース更新部51は、図3に示した語句データベース21のランクを図10(b)に示すように、変更する。また、語句データベース更新部51は、タイマ16に時刻情報を要求し、得られた時刻情報を更新日の欄に記録する。このように、受信メールから特定された語句について、送信元アドレスと宛先アドレスに対応付けられたランクの値が加算される。従って、ある語句のランクが正の値であることは、その語句と対応付けられているアドレスの組み合わせにおいて、その語句が使用されることが妥当であることを示す。
なお、語句データベース21の更新方法は、実装に応じて変更することができる。例えば、語句データベース更新部51は、前述の更新方法に加えて、さらに、特定のアドレスの間でよく用いられる語句について、他のアドレスでのランクの値を小さくすることもできる。この場合、語句データベース更新部51は、更新を加えた語句について、語句データベース21に登録されている全てのアドレスの組み合わせに対応付けられているランクの平均値(ランク平均値)を求める。ランク平均値が正であれば、語句データベース更新部51は、ランク平均値と、ランクを更新したアドレスの組み合わせについての更新後のランクとの差を求める。得られた差が、予め記憶されている閾値を越えていた場合、語句データベース更新部51は、ランクを加算したアドレスの組み合わせ以外の全てのアドレスに対して、その語句のランクを1減算する。
例えば、「IMAP」という語句について、ユーザDとユーザEのアドレスの組み合わせ、ユーザEとユーザFの組み合わせ、ユーザGとユーザHの組み合わせでのランクが、語句データベース21に登録されているとする。また、ユーザDがユーザEから受信したメールに「IMAP」という語句が含まれているとする。この場合、語句データベース更新部51は、ユーザDとユーザEのアドレスの組み合わせに対応付けられた「IMAP」のランクを加算する。次に、語句データベース更新部51は、「IMAP」の登録のあるアドレスの組み合わせの全てについて登録されているランクの平均値(ランク平均値)を求める。ここで、ランク平均値が正であれば、ユーザDとユーザEのアドレスの組み合わせの「IMAP」のランクの値とランク平均値の差が閾値以上であるかが判定される。差が閾値以上であれば、「IMAP」という語句がユーザDとユーザEの間で使われる可能性は、ユーザEとユーザFの間、および、ユーザGとユーザHの間で使われる可能性よりも大きいと考えられる。そこで、語句データベース更新部51は、「IMAP」という語句について、ユーザEとユーザFの組み合わせでのランクと、ユーザGとユーザHの組み合わせでのランクを、それぞれ1つずつ減算する。なお、データベース更新部51は、ランク平均値が正のときにこの処理を行うことにより、特定のアドレス間でのある語句のランクの値が異常に大きな値もしくは小さな値となることを防いでいる。
語句データベース21が予め決められた回数だけ更新されると、共通語句データベース更新部52は、共通語句データベース22を更新する。例えば、語句データベース21が100回更新されたときに、共通語句データベース更新部52は、語句データベース21を参照し、登録されている語句が何種類のアドレスに対応付けられているかを確認する。このとき、共通語句データベース更新部52は、アドレス1とアドレス2のいずれに登録されていても、同一のメールアドレスは1種類と数えるものとする。また、ランクの値の大きさは参照しない。ある語句に対応付けられているアドレスの数が閾値よりも大きな値となると、共通語句データベース更新部52は、その語句を共通語句データベース22に登録する。一方、共通語句データベース22に登録されている語句についても語句データベース21を参照して、対応付けられているアドレスの数を確認する。対応付けられているメールアドレスの数が閾値未満になると、共通語句データベース更新部52は、その語句を共通語句データベース22から削除する。なお、共通語句データベース更新部52が共通語句データベース22を更新するまでに行われる語句データベース21の更新の回数や、共通語句データベース更新部52が用いる閾値の値は、実装に応じて任意に設定することができる。
次に、関連性データベース23の更新について説明する。図8(a)に示す受信メールについて、電子メール分割部14は、送信元アドレス、宛先アドレス、宛先アドレスの種類を関連性データベース更新部53に通知する。関連性データベース更新部53は、電子メール分割部14から通知された情報を元にして、受信メールについてそれぞれのアドレスの関連性を計算する。アドレスの関連性は、受信したメールの各々から得られるアドレスの関連性と、各々の受信メールを受信した時刻から現在の時刻までの時間の長さとから算出される。例えば、ある受信メールにJ個のアドレスが含まれているとする。この場合、関連性データベース更新部53は、i番目のメールアドレスとj番目のメールアドレスについての、その受信メールでの関連性(Rij)を、次式から計算する。
Rij=Ci×Cj
ここで、Ciはi番目のメールアドレスの区分係数であり、Cjはj番目のメールアドレスの区分係数である。区分係数は、メールアドレスが送信元アドレス、Toに指定された宛先アドレス、CCで指定された宛先アドレスのいずれであるかによって決定される値である。以下の説明では、区分係数は次のとおりであるとする。なお、区分係数の値は実装に応じて任意に変更することができる。
送信元アドレス(From)の区分係数 :1
宛先アドレス(To)の区分係数 :1
宛先アドレス(CC)の区分係数 :0.5
例えば、図8(a)の電子メールについて、関連性データベース更新部53は、1番目のメールアドレスをt-tanaka@xx-network.co.jp、2番目のメールアドレスをsuzuki@ghi.co.jpに設定したとする。すると、通知されたアドレスの1番目のメールアドレスが送信元アドレスで、2番目のメールアドレスがToに指定された宛先アドレスであるので、関連性を次のように計算することができる。
R12=1×1=1
関連性データベース更新部53は、受信メールから算出した関連性の値を用いて、関連性を算出したアドレスの間の記録を更新する。このとき、過去の送信履歴を関連性に反映させるために、処理対象のアドレスの組み合わせについて以下の式から算出される加重平均値を関連性データベース23に記録する。
Rij×Wcal+Rij_data×Wdata ・・・(1)
ここで、Rij_dataは関連性データベース23に登録されている関連性の値であり、Rijは処理対象の受信メールに基づいて算出された関連性の値である。また、Wdataは、関連性データベース23に記録されている関連性の値の重み係数であり、Wcalは、処理対象の受信メールに基づいて関連性データベース更新部53が算出した関連性の値の重み係数である。関連性データベース更新部53は、処理対象のアドレスの組み合わせで電子メールの送受信が行われた頻度と、最終の送受信が行われてから現在までの時間を用いて、以下のように、重み係数を算出する。
Wcal=T1/(T1+T2)
Wdata=T2/(T1+T2)
ここで、T1は、処理対象の2つのアドレスの間で行われた電子メールの送受信のうち、関連性データベース23に記録されている最新の送受信が行われた時刻から、現在の時刻までの時間である。T2は、関連性データベース23に記録されている最新の送受信から一定の回数前の送受信までの間に、処理対象の2つのアドレスの間で行われた送受信の平均周期を表す。
図11は、重み係数の算出方法の例を説明する図である。図11を参照しながら、処理対象のアドレスの間でN回目の電子メールの送受信が行われた場合の重み係数の計算について述べる。関連性データベース23には、1〜N−1回の電子メールの送受信から求められた関連性が記録されているとする。また、図5に示すように、関連性データベース23には過去3回の電子メールの送信履歴が記録されているとする。すなわち、N−1回目からN−3回目の送受信が行われた時刻が関連性データベース23に記録されているものとする。以下、処理対象のメールアドレスがt-tanaka@xx-network.co.jpとsuzuki@ghi.co.jpである場合について述べる。
図11に示すように、N回目のメールの送受信が2010年7月9日に行われたとする。N−1回目のメールの送受信が2010年7月5日であると、T1は4日間である。さらに、N−2回目とN−3回目の送受信は、2010年7月2日と2010年7月1日に行われているので、N−1回目の送受信からN−2回目の送受信までの期間は3日、N−2回目の送受信からN−3回目の送受信までの期間は1日である。従って、N−1回目からN−3回目の送受信までの送受信の平均周期は、2日であり、T2は2日になる。すると、重み係数は以下のようになる。
Wcal=4日/(2日+4日)=2/3
Wdata=2日/(2日+4日)=1/3
処理対象のメールアドレスについて関連性データベース23に記録されている関連性の値(Rij_data)は、0.75である。そこで、次式から、関連性の更新値が求められる。
Rij×Wcal+Rij_data×Wdata=1×2/3+0.75×1/3=0.92
重み係数は、関連性データベース23に登録されている関連性と、新たに受信したメールから得られた関連性のどちらに重点をおいて関連性データベース23を更新するかを示す係数である。この例では、平均送受信周期よりも、最終の送受信時刻から現在までの期間が長い場合には、新たに学習した関連性の重みを強くしている。一方、最終の送受信時刻から現在の期間までの時間が平均送受信周期よりも短い場合、データベースに登録された関連性の重みを強くしている。なお、重み係数の設定方法は、一例であり、実装に応じて、様々に変更することができる。
図12は、関連性データベース23の更新に際して行われる動作の例を説明するフローチャートである。このフローチャートでは、i、jの2つの変数が用いられ、iとjはいずれも正の整数である。受信部11を介して電子メールが受信されると、電子メール分割部14から受信されたメールに含まれるアドレスの情報が関連性データベース更新部53に通知される(ステップS21)。関連性データベース更新部53は、送信元アドレス、Toに指定された宛先アドレス、CCに指定された宛先アドレスの総数Jを取得する(ステップS22)。関連性データベース更新部53は、変数iを1に設定し、jをiより1つ大きい数に設定する(ステップS23、S24)。関連性データベース更新部53は、J個のアドレスのうちのi番目のメールアドレスとj番目のメールアドレスの区分係数の積を求め、i番目のメールアドレスとj番目のメールアドレスの組み合わせについて、関連性データベース23を更新する(ステップS25、S26)。その後、関連性データベース更新部53は、jの値を1だけインクリメントし、jがJより大きい値であるかを確認する(ステップS27、S28)。関連性データベース更新部53は、jがJより大きい値になるまで、ステップS25〜S28を繰り返す。jがJより大きくなると、関連性データベース更新部53は、iの値を1だけインクリメントし、iの値がJ−1よりも大きいかを確認する(ステップS29、S30)。iの値がJ−1よりも大きくなるまで、関連性データベース更新部53は、ステップS24〜S30の処理を繰り返す。
〔送信メールの誤送信判定〕
次に、送信メールについて行われる誤送信かの判定について説明する。送信メールは、電子メール作成部13で生成され、ユーザから送信の指示が出されたものとする。送信メールには、送信メールを識別する識別子81、および、送信元アドレスや宛先アドレスなどのアドレス情報82が付加されている。図13(a)に、電子メール作成部13で生成された送信メールの例を示す。電子メール作成部13は、送信の指示を取得すると、送信メールのデータを識別子と共に電子メール分割部14に出力する。ここでは、送信メールに「201007091000」という識別子が付されているものとする。
電子メール分割部14は、電子メール作成部13から入力された送信メールを、受信メールと同様に分割する。図13(a)の例では、送信メールは、パラグラフP11〜P16に分割されたものとする。また、図9を参照しながら説明した方法により、図13(b)に示すように、各パラグラフが分類されているものとする。電子メール分割部14は、送信メールに含まれる各パラグラフを分類すると、パラグラフごとに、含まれている語句を特定する。電子メール分割部14は、特定した語句を、送信メールの識別子、パラグラフの種類、送信元アドレス、宛先アドレス、各宛先アドレスの種類に対応付けて、本文誤り判定部41に出力する。本文誤り判定部41は、電子メール分割部14から送られたデータを記憶部20に記憶する。
本文誤り判定部41は、共通語句データベース22を参照して、「本文」または「引用」に分類されたパラグラフに含まれている語句について対象語句を求める。本文誤り判定部41は求めた対象語句が、送信元アドレスと宛先アドレスの間で送受信された過去の電子メールに含まれているかを確認する。電子メールが2人のユーザの間で繰り返し送受信されている場合、送信者と受信者との間で共通のテーマについて連絡を取り合っていることが考えられる。従って、宛先メールアドレスが誤っていない場合、送信メールには、過去に送信者と受信者の間で送受信された電子メールに含まれていた対象語句が含まれている可能性が高い。
例えば、図8(a)の受信メールで引用されているパラグラフP5は、株式会社GHIの鈴木氏からXXネットワーク株式会社の田中氏に送られた電子メールの一部であるとする。田中氏からの返信には、図8(a)のパラグラフP3などに示すように、IMAPサーバの回線速度についての記載が含まれている。さらに、図8(a)の受信メールには「迷惑メールフィルタ」や「迷惑メール」などの対象語句が含まれている。図8(a)の受信メールに対する返信が図13(a)であるとすると、図13(a)の送信メールには、図8(a)のメールに含まれている「迷惑メールフィルタ」などの対象語句が含まれていることが考えられる。
そこで、本文誤り判定部41は、送信メールの「本文」または「引用」に分類されたパラグラフに含まれている対象語句が語句データベース21に含まれているかを確認する。なお、ここで、語句データベース21のうち、処理対象のメールの送信元メールアドレスと宛先メールアドレスに対応付けられている語句が対象語句と比較される。本文誤り判定部41は、各パラグラフについて含まれている対象語句のうち、語句データベース21のランクの値が閾値以上である対象語句の数を確認する。本文誤り判定部41は、各パラグラフについて含まれている対象語句のうち、処理対象のメールの送信元メールアドレスと宛先メールアドレスに対応付けられているランクの値が閾値以上である対象語句の数(T)を求める。さらに、本文誤り判定部41は、求めた対象語句の数Tと対象語句の総数の比を求める。得られた比が許可閾値(ThOK)以上である場合、本文誤り判定部41は、そのパラグラフからは誤送信ではないと判定する。なお、本文誤り判定部41は、予め、ランクの値と比較される閾値や許可閾値を記憶しているものとする。送信メールに含まれているいずれのパラグラフからも、誤送信でないと判定されると場合、本文誤り判定部41は、誤送信ではないと判定する。一方、1つ以上のパラグラフで誤送信と判定されると、本文誤り判定部41は、その送信メールについて誤送信であると判定する。
なお、以上の説明は、本文誤り判定部41の動作の一例について述べており、本文誤り判定部41の動作は、実装に応じて変形されることがある。例えば、本文誤り判定部41は、許可閾値の代わりに、エラー閾値(ThNG)を記憶する場合もある。この場合、本文誤り判定部41は、各パラグラフについて含まれている対象語句の総数と、語句データベース21に含まれているランクが閾値未満の対象語句の数との比がエラー閾値以上である場合、本文誤り判定部41は、そのメールが誤送信であると判定する。なお、本文誤り判定部41は、語句データベース21に含まれていない対象語句のランクを0とするものとする。さらに、本文誤り判定部41は、許可閾値とエラー閾値を併用して誤送信の判定を行うこともできる。
図14Aと図14Bは、電子メール分割部14と本文誤り判定部41の動作の例を説明するフローチャートである。図14AのステップS41、S42、S44、S45は電子メール分割部14の動作である。また、ステップS43とS46〜S58は、本文誤り判定部41の動作である。図14A、図14Bのフローチャートには、定数N、Mが含まれる。ここで、Nは送信メールに含まれるパラグラフの総数、Mはあるパラグラフに含まれる対象語句の数である。また、図14A、図14Bのフローチャートでは、n、m、t、fの4つの変数が用いられる。nとmは正の整数であり、tとfは0か正の整数である。nは電子メール作成部13が処理したパラグラフの計数に用いられる変数であり、mは電子メール作成部13が処理した対象語句の数を計数に用いられる変数である。また、tは、ランクの値が閾値以上の対象語句の数を計数するために使用される変数、fは、ランクの値が閾値未満の対象語句の数を計数するための変数である。図14A、図14Bの例では、閾値が1の場合について示す。すなわち、ランクが正の値の対象語句が1つ処理されるとtが1つ加算され、ランクが0か負の値の対象語句が処理されるとfが1つ加算される。
電子メール分割部14は、パラメータ設定部13から送信メールを受信すると、送信メールをパラグラフごとに分類する(ステップS41、S42)。電子メール分割部14は、送信メールに含まれるパラグラフの総数Nを取得し、本文誤り判定部41に通知する。
本文誤り判定部41は、変数nとmを1に設定し、tとfを0に設定する(ステップS43)。電子メール分割部14は、電子メール分割部14からn番目のパラグラフを取得すると、そのパラグラフが「本文」か「引用」のいずれかに分類されているかを確認する(ステップS44)。取得したパラグラフが「本文」か「引用」に分類されていない場合、そのパラグラフについての処理を行わずに次のパラグラフを処理する(ステップS44でNo、ステップS56)。従って、例えば、電子メール分割部14は、P11についての処理を行わずに、パラグラフP12を処理対象とする。パラグラフP12も、図13(b)に示すように「挨拶文」に分類されているため、電子メール分割部14は、パラグラフP12の処理を行わずに、パラグラフP13を処理対象とする。
「本文」もしくは「引用」に分類されたパラグラフの情報を取得すると、電子メール分割部14は、そのパラグラフを語句に分割する(ステップS45)。電子メール分割部14は、分割して得られた語句を本文誤り判定部41に出力する。本文誤り判定部41は、共通語句データベース22を参照し、入力された語句から共通語句データベース22に含まれている語句を削除する。本文誤り判定部41は、残った名詞を対象語句とする。また、本文誤り判定部41は、そのパラグラフに含まれている対象語句の数Mを求める(ステップS46)。本文誤り判定部41は、対象語句が1つ以上含まれている場合、m番目の語句について、宛先アドレスと送信元アドレスの組み合わせに対応付けられているランクの値が正の値であるかを確認する(ステップS47でYes、ステップS48)。確認されたランクの値が0か負の値であれば、本文誤り判定部41は、変数fを1つインクリメントする(ステップS49)。一方、確認されたランクの値が正の数であれば、本文誤り判定部41は、変数tを1つインクリメントする(ステップS50)。変数tもしくはfのいずれかがインクリメントされると、本文誤り判定部41は、変数mを1つインクリメントし、mの値をMと比較する(ステップS51、S52)。mがMより大きくなるまで、本文誤り判定部41は、ステップS48〜S52を繰り返す。例えば、P13の処理において、m=1のときに、本文誤り判定部41は、「ゲートウェイ」を対象語句としたとする。「ゲートウェイ」という語句は図3の語句データベース21では、ランクの値が正である。そこで、本文誤り判定部41は、tを1インクリメントする。
処理対象のパラグラフに含まれている対象語句についての処理が終了すると、本文誤り判定部41は、そのパラグラフの処理結果に基づいて誤送信かを判定する。図14のフローチャートでは、本文誤り判定部41は、変数fとMの比がエラー閾値(ThNG)以上であるかを判定する(ステップS53)。ここで、変数fとMの比は、対象語句の総数に対する、送信元アドレスと宛先アドレスの間で送受信されたことがない対象語句の数の割合である。変数fとMの比がエラー閾値以上の場合、本文誤り判定部41は、本文に誤りがあると判定して、その送信メールの処理を終了する(ステップS55)。
一方、変数fとMの比がエラー閾値(ThNG)未満の場合、さらに、変数tとMの比が許可閾値以上であるかを判定する(ステップS54)。ここで、変数tとMの比は、対象語句の総数に対する、送信元アドレスと宛先アドレスの間で送受信されたことがある対象語句の数の割合である。変数tとMの比がThOKより小さい場合、本文誤り判定部41は、本文に誤りがあると判定してその送信メールの処理を終了する(ステップS55)。一方、f/MがThNG未満で、かつ、t/MがThOK以上の場合、本文誤り判定部41は、nの値を1つインクリメントして、次のパラグラフを処理する。このとき、m=1に設定すると共に、tとfの値を0に設定する(ステップS56)。さらに、本文誤り判定部41は、nの値をNと比較し、nがNより大きくなるまで、ステップS44〜S57を繰り返す(ステップS57)。ステップS57でnがNより大きいと判定されると、本文誤り判定部41は、送信メールが誤送信ではないと判定する(ステップS58)。なお、ステップS47でMが0個である場合、本文誤り判定部41はステップS48〜S54の処理を行わずにステップS56の処理を行う。
次に、アドレス誤り判定部42による誤送信の判定について説明する。アドレス誤り判定部42は、送信元アドレスから宛先アドレスにメールが送信される可能性を確認する。さらに、宛先アドレスが複数含まれている場合、アドレス誤り判定部42は、宛先アドレスの間の関連性に基づいて、電子メールが同報される可能性があるかを確認する。アドレス誤り判定部42は、送信メールの宛先に記載されているアドレスか送信元アドレスに指定されているメールアドレスから2つのメールアドレスを組み合わせ、各々の組み合わせについて関連性の大きさを確認して、誤送信の可能性があるかを判定する。ここで、アドレス誤り判定部42は、送信元アドレスから宛先アドレスに電子メールが送られる可能性を、関連性データベース23に記録されている関連性の値であるとする。
過去に電子メールの送受信が行われている電子メールアドレス間では、メールの送受信が繰り返される可能性が大きいと考えられる。例えば、図8(a)のメールは、t-tanaka@xx-network.co.jpからsuzuki@ghi.co.jpに送信されている。従って、図8(a)の電子メールに対する返信や追加の情報を含むメールなどがt-tanaka@xx-network.co.jpとsuzuki@ghi.co.jpの間で送受信される可能性は高いと考えられる。例えば、アドレス誤り判定部42は、関連閾値を記憶している。関連閾値は、0から1までの間の任意の値とすることができるが、アドレス誤り判定部42が誤送信を正しく検出できる程度に実装に応じて調整される。以下の説明では、例えば、アドレス誤り判定部42は、関連閾値を0.5に設定されているものとする。一方、例えば、電子メールの送受信の履歴がないアドレスに向けて電子メールの送信が指示された場合、アドレス誤り判定部42は、誤送信の可能性があると判定する。
図13(a)に示すメールに含まれているアドレスが通知された場合のアドレス誤り判定部42の動作について説明する。図13(a)に示すメールが作成されると、アドレス誤り判定部42には、以下の3つのアドレスが通知される。
送信元アドレス:suzuki@ghi.co.jp
Toに指定された宛先アドレス:t-tanaka@xx-network.co.jp
CCに指定された宛先アドレス:sato@ghi.co.jp
そこで、アドレス誤り判定部42は、関連性データベース23を参照して関連性の値を取得する。ここでは図5に示す関連性データベース23が用いられるものとする。すると、関連性データベース23にt-tanaka@xx-network.co.jpとsato@ghi.co.jpの関連性は記録されていないので、アドレス誤り判定部42は、関連性の値を0とする。得られた関連性の値を関連閾値と比較すると、t-tanaka@xx-network.co.jpとsato@ghi.co.jpの関連性は関連閾値より小さい。
次に、アドレス誤り判定部42は、署名の関連性を検討する。メールの送信者がメールを同報する場合、送信者と同報メールの受取人は、同報メールの内容に関連する業務を行っている可能性が高い。署名の欄には、会社名、部署名、グループ名などが記載されている。従って、アドレス同士の関連性が小さくても、会社名、部署名、グループ名が送信者と共通している場合、宛先は誤っていない可能性がある。そこで、アドレス誤り判定部42は、語句データベース21を参照して、関連性が小さいと判定された組み合わせに含まれるアドレスに対応付けて記録されている語句を取得する。アドレス誤り判定部42は、取得した対象語句同士を比較して、共通している語句の数を計数する。アドレス誤り判定部42は、共通している語句の数を、宛先類似閾値と比較する。共通する語句の数が宛先類似閾値以上の場合、署名が類似していると判定する。署名が類似している場合は、関連性が関連閾値よりも小さくても、アドレス誤り判定部42は、アドレスに誤りがあると判定しない。一方、関連性が関連閾値よりも小さく、さらに、署名が類似していない場合は、アドレス誤り判定部42は、宛先が誤っている可能性があると判定する。
例えば、アドレス誤り判定部42は、t-tanaka@xx-network.co.jpに関連付けられたメールの署名から得られた対象語句を取得する。図8に示した語句データベース21が用いられている場合、t-tanaka@xx-network.co.jpに関連付けて「XXネットワーク」、「田中」、「太郎」、「サポート部」、「03-1122-3344」、「1234-5678」の6種類の語句が記録されている。また、アドレス誤り判定部42は、sato@ghi.co.jpに対応付けられたメールの署名欄から得られた対象語句も取得する。例えば、sato@ghi.co.jpに対応付けて「サポート部」、「GHI株式会社」、「佐藤」の3種類の語句が記録されていたとする。この場合、t-tanaka@xx-network.co.jpとsato@ghi.co.jpの両者に対応付けられた語句のうちでは、「サポート部」が共通する。従って、共通する語句の数は1つである。類似閾値が3であるとすると、アドレス誤り判定部42は、t-tanaka@xx-network.co.jpとsato@ghi.co.jpの署名の類似性は低いと判定し、さらに、送信メールの宛先が誤っている可能性があると判定する。
図15は、アドレス誤り判定部42の動作の例を説明するフローチャートである。以下、図15を参照しながら、アドレス誤り判定部42の動作について説明する。アドレス誤り判定部42は、電子メール分割部14から送信メールの送信元アドレスと宛先アドレスを取得する(ステップS61)。ここで、送信元アドレスと宛先アドレスの合計数は、K個であるとする。アドレス誤り判定部42は、変数pを1に設定する(ステップS62)。さらに、アドレス誤り判定部42は、変数qをpよりも1つ大きな値に設定する(ステップS63)。アドレス誤り判定部42は、p番目のメールアドレスとq番目のメールアドレスについて、関連性データベース23を参照して、関連性の値を取得する(ステップS64)。アドレス誤り判定部42は、得られた関連性を関連閾値と比較する(ステップS65)。関連性が関連閾値以上の場合、アドレス誤り判定部42は、qの値を1つインクリメントしてKと比較する(ステップS65〜S67)。qの値がKよりも大きくなるまで、アドレス誤り判定部42は、ステップS64〜S67を繰り返す。
一方、ステップS65において、p番目のメールアドレスとq番目のメールアドレスの組み合わせについて関連性データベース23に記録されている関連性が、関連閾値よりも小さいと判定されると、アドレス誤り判定部42は、語句データベース21を参照する。アドレス誤り判定部42は、語句データベース21からp番目のメールアドレスと「署名」に対応付けられている語句を取得する。さらに、アドレス誤り判定部42は、語句データベース21からq番目のメールアドレスと「署名」に対応付けられている語句を取得する(ステップS68)。アドレス誤り判定部42は、各々のメールアドレスに対応付けられた語句を比較して、共通している語句の数を計数する。アドレス誤り判定部42は、共通している語句の数が、宛先類似閾値以上の場合、署名が類似していると判定する(ステップS69)。一方、アドレス誤り判定部42は、共通している語句の数が、宛先類似閾値よりも少ない場合、署名が類似していないと判定し、誤送信の恐れがあると判定して処理を終了する(ステップS69、S70)。
変数qの値がKより大きくなるまで、誤送信の恐れがあるメールアドレスの組み合わせが検出されなかった場合、アドレス誤り判定部42は、pの値を1つインクリメントする(ステップS71)。アドレス誤り判定部42は、pの値をKと比較し、pがKよりも大きくなるまでステップS63〜S72を繰り返す。pの値がKより大きくなるまで誤送信の恐れがあるメールアドレスの組み合わせが検出されなかった場合、アドレス誤り判定部42は、誤送信ではないと判定して、処理を終了する(ステップS73)。
〔送信メールの処理と通信装置から送信されたメールを用いた学習〕
次に、送信メールの処理について述べる。以下、送信確認部15は、送信する電子メールが修正されているかを示す語句修正フラグを参照できるものとする。また、以下の説明では、語句修正フラグが1の場合に電子メールが修正されていることを示すものとし、送信メールの処理を開始するときに語句修正フラグは0に初期化されているものとする。
まず、新たに生成された送信メールが修正されずに送信される場合について説明する。本文誤り判定部41とアドレス誤り判定部42の判定結果は、送信確認部15に出力される。送信確認部15は、本文誤り判定部41とアドレス誤り判定部42の両方が誤送信ではないと判定すると、電子メール作成部13に送信メールを送信部12に出力することを要求する。このとき、送信確認部15は、送信メールの識別子を電子メール作成部13に通知する。電子メール作成部13は、送信部12に送信メールを出力し、電子メール作成部13から送信部12に出力されたメールは、宛先アドレスに向けて送信される。さらに、送信されたメールに基づいて、語句データベース21や関連性データベース23が更新される。データベースの更新については後述する。
一方、本文誤り判定部41とアドレス誤り判定部42のうちの1つ以上が誤送信と判定した場合、送信確認部15は、誤送信と判定された送信メールとその送信メールを送信するかを確認する確認画面を、ディスプレイ等に表示する。図16に、送信メールを送信するかを確認する確認画面の例を示す。ユーザは、表示された送信メールを確認して、メールに誤りが無いと判定すると、確認画面のメール送信ボタン75を押し下す。メール送信ボタン75が押し下された場合、送信確認部15は、送信メールの識別子を電子メール作成部13に通知する。電子メール作成部13は、送信部12に送信メールを出力し、メールの送信が行われる。また、後述するように、語句データベース21や関連性データベース23の更新も行われる。
表示されているメールに誤りがある場合、ユーザは、送信中止ボタン76を押し下す。例えば、送信確認部15は、本文誤り判定部41が送信メールに誤りがあると判定している場合、語句修正フラグを1に設定する。さらに、送信確認部15は、送信メールの識別子と共に送信の中止を電子メール作成部13に通知する。電子メール作成部13は、送信確認部15から通知された識別子で識別される電子メールの修正画面をディスプレイに表示し、ユーザからの入力を待つ。ここで、修正画面で修正されるメールは、修正前のメールに付された識別子が付されるものとする。例えば、201007091030の識別子のメールが修正された場合、修正後のメールの識別子も201007091030が用いられる。
また、電子メール作成部13は、通知された識別子を本文誤り判定部41に通知する。本文誤り判定部41は、通知された識別子に対応付けられている対象語句を修正前語句テーブルに記録する。図17は修正前語句テーブルの例を示す図である。修正前語句テーブルには、対象語句に対応付けて、送信元アドレス、宛先アドレス、宛先アドレスの種類、対象語句が含まれているパラグラフの種類などが記録される。なお、この場合、語句データベース21や関連性データベース23は更新されない。ユーザによって修正が行われ、修正後のメールについて送信の指示が行われると、通信装置10は、指示された送信メールについて、前述のとおりに誤送信かを判定する。
図18は、ランク変更量テーブルの例を示す図である。ランク変更量テーブルは、語句データベース21のランクの変更量を記録している。ランク変更量テーブルは、対象語句に対応付けられているアドレスの種類と、語句データベース更新部51が語句データベース21の更新に用いるランクの加算値を示している。ランクの加算値は、宛先アドレスの種類やメールが過去に修正されているかによって変動する。
図18のNo.1〜6は、誤送信であるかの判定が開始されてから修正が行われずに送信されたメールに含まれている対象語句に適用されるランクの加算値を示している。例えば、No.1は、対象語句に対応付けられた2つのアドレスが送信元アドレスとToに指定された宛先アドレスの場合である。No.7〜24は、誤送信であると判定された後で修正が行われ、修正後に送信されたメールに含まれている対象語句に適用されるランクの加算値を示している。No.7〜12は、修正の前後で共通して用いられている対象語句のランクの加算値である。No.13〜18は、修正の前には用いられていなかったが修正後に用いられている対象語句のランクの加算値である。No.19〜24は、修正の前には用いられていたが修正後に用いられていない対象語句のランクの加算値である。
図18に示すランクの加算値を用いて語句データベース21が修正される場合、語句データベース更新部51は、修正前の本文に誤って記載されていた対象語句のランクの加算値を、図10(a)に示したような、受信メールによる学習の値よりも小さくする。例えば、語句データベース更新部51は、誤って記載されていた対象語句についてのランクの加算値を負の値とすることができる。一方、修正により加えられた対象語句については、語句データベース更新部51は、ランクの加算値を大きくする。以下、語句データベース更新部51が用いるランクの加算値の選択方法と語句データベース21の更新方法について述べる。
本文誤り判定部41とアドレス誤り判定部42の両方が誤送信ではないと判定すると、送信メールは修正されずに出力される。送信確認部15は、送信する電子メールが修正されているかを示す語句修正フラグを確認する。送信確認部15は、メールの送信を電子メール作成部13に指示する際に、送信メールの識別子と送信メールの語句修正フラグの値を電子メール作成部13に通知する。電子メール作成部13は、送信メールを送信部12に出力し、さらに、送信メールの識別子と語句修正フラグの値を本文誤り判定部41に通知する。本文誤り判定部41は、通知された識別子に対応付けられている対象語句と、語句修正フラグの値を、語句データベース更新部51に出力する。
語句データベース更新部51は、本文誤り判定部41から入力されたデータを語句データベース21に記録されているデータと比較する。対象語句、送信メールの識別子、パラグラフの種類、送信元アドレス、宛先アドレスの組み合わせが一致するデータが語句データベース21に記録されている場合、語句データベース更新部51は、語句データベース21のランクの値を変更する。語句修正フラグの値が0の場合、語句データベース更新部51は、アドレスの種類に合わせて図18のNo.1〜6から選択された値を、語句データベース21のランクに加算する。なお、語句データベース21に登録されていない対象語句は、語句データベース更新部51により、新たに語句データベース21に登録される。このときも図18のNo.1〜6に記録された加算値が用いられる。
一方、ユーザによって修正が行われ、修正後のメールに誤りがないと判定されると、語句修正フラグは1に設定されている。この場合、語句データベース更新部51は、送信メールに含まれている対象語句と、修正前語句テーブルに含まれている語句を比較する。対象語句が送信メールと修正前語句テーブルの両方に含まれている場合、語句データベース更新部51は、図18のNo.7〜12に指定されたランクを用いて語句データベース21を更新する。送信メールに含まれていて修正前語句テーブルに含まれていない対象語句について、語句データベース更新部51は、図18のNo.13〜18に指定されたランクを用いて語句データベース21を更新する。また、送信メールに含まれておらず、修正前語句テーブルに含まれている対象語句について、語句データベース更新部51は、図18のNo.19〜24に指定されたランクを用いて語句データベース21を更新することにより、ランクの値を小さくする。なお、この場合も、送信されたメールに含まれている対象語句のうちで、語句データベース21に登録されていない対象語句は、語句データベース更新部51により、新たに語句データベース21に登録される。
このように、誤っているメールに記載されているが修正後の送信メールに記載されていない修正語句は、そのメールの送信元アドレスと宛先アドレスの間での通信に用いられる可能性を表すランクの値が小さく変更される。一方、修正後の送信メールに含まれる対象語句は、そのメールの送信元アドレスと宛先アドレスの間での通信に用いられる可能性を表すランクの値が大きく変更される。
図19は、関連性データベースの更新に際して行われる動作の例を説明するフローチャートである。図19を参照しながら、誤送信ではないと判定されたメール、もしくは、ユーザから送信が指示された送信メールに含まれているアドレスに基づいて、関連性データベース23が更新されるときの関連性データベース更新部53の動作について説明する。
メールが送信されると、関連性データベース更新部53は、アドレス誤り判定部42から送信されたメールの送信元アドレスと宛先アドレス、および、各宛先アドレスの種類と、アドレスの総数Kを取得する(ステップS81、S82)。ここで、ステップS82において、関連性データベース更新部53は、アドレス誤り判定部42から、送信元アドレス、Toに指定された宛先アドレス、CCに指定された宛先アドレス、BCCに指定された宛先アドレスを通知される。また、定数Kは、送信元アドレス、Toに指定された宛先アドレス、CCに指定された宛先アドレス、BCCに指定された宛先アドレスの総数であるとする。ステップS83〜S87の処理は、図12を参照しながら説明したステップS23〜S27と同様である。ただし、ステップS85においてアドレスの関連性(Rij)の算出に用いられる区分係数は、以下に示すように、BCCの宛先には、CCに指定された宛先より小さい値が割り当てられるものとする。
送信元アドレス(From)の区分係数 :1
宛先アドレス(To)の区分係数 :1
宛先アドレス(CC)の区分係数 :0.5
宛先アドレス(BCC)の区分係数 :0.25
また、ステップS88とS90では、変数i、jは、定数Kと比較されるものとする。
なお、共通語句データベース更新部52の動作は、受信メールについての学習と同様に行われる。共通語句データベース更新部52により、共通語句データベース22は、適宜、更新される。
図20A〜図20Dは、送信メールに基づくデータベースの更新方法の例を説明するフローチャートである。以下の例では、語句修正フラグ、本文誤りフラグ、アドレス誤りフラグの3種類のフラグが用いられる。本文誤りフラグは、本文誤り判定部41が、送信メールに含まれているパラグラフのいずれかに誤りがある可能性があると判定したことを示す。アドレス誤りフラグは、アドレス誤り判定部42が、宛先アドレスのいずれかが誤っている可能性があると判定したことを示す。なお、図20A〜図20Dは、通信装置10の動作の一例であり、例えば、通信装置10は、本文の誤りをチェックする前にアドレスの関連性による誤送信の検出を行うこともできる。すなわち、ステップS103〜S105の処理は、ステップS106の判定の後に行われる場合がある。また、前述のように、ステップS128とS129の順序を変更することもできる。さらに、以下の例では、送信確認部15は、確認画面を介して入力された情報を、本文誤り判定部41、アドレス誤り判定部42、電子メール作成部13に通知するものとする。
送信メールが電子メール作成部13から電子メール分割部14に出力されると、送信確認部15は、語句修正フラグを0に設定する(ステップS101)。また、本文誤り判定部41は本文誤りフラグを0に設定し、アドレス誤り判定部42はアドレス誤りフラグを0に設定する(ステップS102)。本文誤り判定部41は、パラグラフごとに対象語句を抽出し、語句データベース21に記録されているランクに基づいて、送信メールの本文に誤りがあるかを判定する(ステップS103、S104)。本文誤り判定部41は、送信メールの本文に誤りがあると判定すると、本文誤りフラグを1に設定する(ステップS104、S105)。一方、本文誤り判定部41が本文に誤りがないと判定した場合、本文誤りフラグは0に設定されたままになる。
次に、アドレス誤り判定部42は、送信メールに含まれている宛先アドレスと送信元アドレスの関連係数を関連閾値と比較する。関連係数が関連閾値よりも低い場合、アドレス誤り判定部42は、語句データベース21を参照する。アドレス誤り判定部42は、関連閾値が低い2つのメールアドレスに対応付けて署名の欄に記録されている対象語句を取得する。両者に共通する語句の数が類似閾値以上であれば、署名の類似性が高いと判定する。署名の類似性が高い場合、アドレス誤り判定部42は、誤送信と判定しない(ステップS106でNo)。送信確認部15は、アドレス誤り判定部42で誤りと判定されない場合、本文誤りフラグを確認することにより、本文誤り判定部41の判定結果を確認する(ステップS107)。本文誤りフラグが0であれば、本文とアドレスのいずれにも誤りが無いため、通信装置10は、送信メールを宛先アドレスに向けて送信する(ステップS108)。
送信確認部15は、メールを送信する旨を電子メール作成部13に通知した後、語句修正フラグが1になっているかを確認する(ステップS109)。語句修正フラグが0である場合、送信されたメールは本文の語句が修正されていないことを示す。そこで、語句データベース更新部51は、本文誤り判定部41から通知された対象語句の情報に基づいて、語句データベース21を更新する(ステップS110)。また、関連性データベース更新部53は、関連性データベース23を更新する(ステップS111)。
一方、語句修正フラグが1の場合、送信メールの識別子に対応付けられた修正前語句テーブルが生成されている。そこで、語句データベース更新部51は、修正前語句テーブルと本文誤り判定部41から通知された対象語句を比較する(ステップS112)。語句データベース更新部51は、送信メールに含まれている対象語句のランクに正の値を加える。一方、送信メールに含まれずに修正前語句テーブルに含まれている対象語句については、対象語句のランクの値を小さくする(ステップS113)。
ステップS107において、本文誤りフラグが1であると判定された場合、図20Bに示す処理が行われる。送信確認部15は、図16に示すような確認画面を生成し、ユーザからの入力を待つ(ステップS121)。ユーザが確認画面において送信を指示すると、送信確認部15はメールの送信を電子メール作成部13に通知する。電子メール作成部13は、送信部12を介して送信メールを送信する(ステップS122)。その後、ステップS123〜S127の処理により、語句データベース21、関連性データベース23が更新される。ステップS123〜S127は、ステップS109〜S113と同様である。
一方、ユーザから送信の中止が指示されると、送信確認部15は、その旨を電子メール作成部13と本文誤り判定部41に通知する。本文誤り判定部41は、対象語句を修正前語句テーブルに格納する(ステップS121でNo、ステップS128)。次に、送信確認部15は、語句修正フラグを1に設定する(ステップS129)。電子メール作成部13は、送信メールの修正画面を表示する(ステップS130)。修正画面でメールが修正され、ユーザから再度、送信が指示されると、図20Aに示すステップS102以降の処理が行われる(ステップS131)。
ステップS106において、関連性が関連閾値未満で、さらに、署名の類似性が低いアドレスの組み合わせがある場合、アドレス誤り判定部42は、アドレスに誤りがある可能性があると判定する。そこで、アドレス誤り判定部42は、アドレス誤りフラグを1に設定する(ステップS114)。次に、送信確認部15は、本文誤りフラグの値を確認する(ステップS115)。本文誤りフラグが0の場合の処理を図20Cに示す。送信確認部15は、確認画面を出力して、ユーザからの入力を待つ。ユーザからメールの送信が指示されると、送信確認部15は、メールの送信が指示されたことと送信が指示されたメールを識別する識別子を、電子メール作成部13、本文誤り判定部41、アドレス誤り判定部42に通知する(ステップS141でYes)。電子メール作成部13がメールを送信部12に出力することにより、送信メールが宛先アドレスに向けて送信される(ステップS142)。関連性データベース更新部53は、アドレス誤り判定部42から取得した送信元メールアドレス、宛先メールアドレス、宛先メールアドレスの種類に応じて、関連性データベース23を更新する(ステップS143)。ステップS144〜S146の処理は、ステップS123〜S126の処理と同様である。
一方、ユーザからメールを送信しないことを通知されると、送信確認部15は、メールの識別子とメールを送信しないことを電子メール作成部13に通知する(ステップS141でNo)。電子メール作成部13は、メールの修正画面を表示する(ステップS148)。修正画面でメールが修正され、ユーザから再度、送信が指示されると、図20Aに示すステップS102以降の処理が行われる(ステップS149)。
ステップS115で本文誤りフラグが1である場合の処理を図20Dに示す。ステップS151〜S157の処理は、図20Cを参照しながら説明したステップS141〜S147の処理と同様である。また、ステップS158〜S161の処理は、図20Bを参照しながら説明したステップS128〜S131の処理と同様である。
このように、本実施形態では、共通語句データベース22に記録されている語句を除いた対象語句の出現頻度を用いて誤送信であるかを判定する。従って、通信装置10は、同業者に良く用いられる語句や挨拶文などを判定対象とした影響によって判定結果が正常値に偏りがちになることを防ぎ、誤送信の検出精度を向上することができる。
さらに、本実施形態では、メールの修正により加えられた対象語句のランクの加算値は、修正前のメールと修正後のメールの両方に含まれている対象語句のランクの加算値よりも大きい。このため、語句データベース更新部51は、ユーザの修正内容に合わせて語句データベース21を更新することができる。さらに、本実施形態では、メールの修正により修正後のメールから削除された対象語句は、そのメールに記載することが望ましくない対象語句である可能性が高いため、対応するランクの値が小さく変更される。すなわち、誤送信の判断基準となる語句データベース21がユーザの修正結果に基づいて変更されるので、ユーザの使用回数が増加するほど、通信装置10の誤送信判定の結果は、ユーザの判定に近づく可能性が高い。
また、通信装置10は、送信メールの誤送信の判定を行う際に、本文や引用文など、宛先に応じて内容が変動する可能性が大きなパラグラフに記載されている内容について判定を行う。このため、挨拶文など宛先が変化しても同じ語句が使われる可能性が高いパラグラフの判定結果によって誤送信の検出に失敗する可能性が低くなる。
<第2の実施形態>
第2の実施形態に係る通信装置10は、通信装置10が本文に誤りがあると判定しても、ユーザが誤送信ではないと判定した場合と、通信装置10とユーザの判定が一致した場合で、語句データベース更新部51の処理が異なる。第2の実施形態にかかる通信装置10は、2種類のランク変更量テーブルを備える。一方のランク変更量テーブルは、他方に比べて、送信されたメールに含まれている対象語句のランクの加算値が大きい。
例えば、通信装置10は、図18に示すランク変更量テーブルと図21に示すランク変更量テーブルを備えることができる。図21のランク変更量テーブルでは、図18のランク変更量テーブルと比べて、送信されたメールに含まれている対象語句のランクの加算値(No.1〜18)が大きくなっている。語句データベース更新部51は、図18に示すランク変更量テーブルと図21に示すランク変更量テーブルを併用する。本文誤り判定部41で本文に誤りがあると判定されていないメールが送信される場合、語句データベース更新部51は、図18に示すランク変更量テーブルを用いて語句データベース21を更新する。すなわち、ステップS110、S113、S146、S147の場合、語句データベース更新部51は、図18に示すランク変更量テーブルを用いて語句データベース21を更新する。
一方、本文誤り判定部41で本文に誤りがあると判定されたメールが、ユーザが確認画面を確認して誤送信ではないと判定し、送信を指示した場合、語句データベース更新部51は、図21に示すランク変更量テーブルを用いて語句データベース21を更新する。すなわち、ステップS125、S126、S156、S157の場合、語句データベース更新部51は、図21に示すランク変更量テーブルを用いて語句データベース21を更新する。
通信装置10は、本文誤り判定部41が本文に誤りがあると判定したメールについて、ユーザにより誤送信ではないと判定されたとき、送信されたメールに含まれている対象語句のランクの加算値が大きいランク変更量テーブルを用いる。その結果、通信装置10により本文に誤りがあると判定されてもユーザにより誤りが無いと判定された場合、送信メールに含まれている対象語句についての加算値は、通信装置10とユーザの判断が一致した場合に比べて大きな値となる。従って、第2の実施形態によると、ユーザの判断と通信装置10の判断のずれを小さくすることができる。
<第3の実施形態>
第3の実施形態に係る通信装置10は、宛先アドレスの修正が行われた場合、関連性データベース更新部53は、修正の内容を反映するように関連性データベース23を更新する。修正によって追加されたアドレスは、ユーザによって宛先アドレスとすることが明示的に示されたアドレスである。すなわち、修正によって追加されたアドレスは、他の宛先アドレスや送信元アドレスとの関連性が高いことがユーザから明示的に示されたアドレスである。従って、関連性データベース更新部53は、修正によって追加されたアドレスについて、関連性の値を1に近づける。例えば、関連性データベース更新部53は、追加されたアドレスについての関連性を、関連性データベース23に記録されている関連性の値と1との平均値に変更する。一方、修正によって削除されたアドレスは、ユーザによって宛先アドレスとすることが明示的に否定されたアドレスである。そこで、関連性データベース更新部53は、修正によって削除されたアドレスについて、他の宛先アドレスとの関連性の値を0に近づける。第3の実施形態では、データ32には、修正前アドレステーブル(図22)も含まれる。
関連性データベース更新部53は、宛先アドレスが修正されているかを、アドレス修正フラグを確認することにより特定する。アドレス修正フラグが1に設定されている場合、誤送信の判定が開始された後に送信メールの宛先アドレスが修正されていることを示す。一方、アドレス修正フラグが0の場合、送信メールについて誤送信の判定が開始されてから宛先アドレスが修正されていないことを示す。送信確認部15は、アドレスに誤りがあると判定され、ユーザから送信を中止する旨の指示を受け取ったメールについて、そのメールの識別子に対応付けられたアドレス修正フラグの値を1に設定する。さらに、送信確認部15は、アドレス誤り判定部42に、送信を中止したメールの識別子を通知し、その識別子に対応付けられている宛先アドレスを修正前アドレステーブルに格納するように要求する。修正前アドレステーブルの例を図22に示す。修正前アドレステーブルには、送信の中止が指示された送信メールの識別子と宛先アドレスが対応付けて記録される。
図23は、第3の実施形態に係る関連性データベース更新部53の処理の例を説明する図である。例えば、修正前のメールの宛先アドレスはx1、x2、x3であるとする。一方、修正後の宛先アドレスは、x1、x3、x4であるとする。また、関連性データベース23に記録されているx1〜x4の関連性は、次のとおりであるものとする。
x1とx2の関連性:0.58
x1とx3の関連性:0.75
x1とx4の関連性:0.60
x2とx3の関連性:0.22
x2とx4の関連性:0.03
x3とx4の関連性:0.84
ここで、修正によって追加された宛先アドレスは、x4である。従って、x4は、x1やx3と同じメールを受信する可能性は高い。そこで、関連性データベース更新部53は、図23のNo.3とNo.6に示すように、x4とx1の関連性およびx4とx3の関連性を1に近づける。このとき、関連性データベース更新部53は、関連性データベース23に記録されている関連性と1の平均値を更新後の関連性の値とする。x1とx4の関連性は0.60であることが関連性データベース23に記録されている。そこで、関連性データベース更新部53は、(0.60+1)/2=0.80より、x1とx4の関連性を0.80に変更する。同様に、関連性データベース更新部53は、x3とx4の関連性や、x4と送信元アドレスの間の関連性も更新する。
一方、修正により削除された宛先アドレスはx2である。従って、x2は、x1やx3と同じメールを受信する可能性は低い。そこで、関連性データベース更新部53は、図23のNo.1とNo.4に示すように、関連性を0に近づける。このとき、関連性データベース更新部53は、関連性データベース23に記録されている関連性と0の平均値を更新後の関連性の値とする。x1とx2の関連性は0.58であることが関連性データベース23に記録されている。そこで、関連性データベース更新部53は、(0.58+0)/2=0.29より、x1とx2の関連性を0.29に変更する。同様に、関連性データベース更新部53は、x2とx3の関連性や、x2と送信元アドレスの間の関連性も更新する。なお、図23を参照しながら述べた計算は、関連性データベース更新部53の動作の例であり、関連性データベース更新部53の行う計算は、実装に応じて変更されることがある。
図24は、第3の実施形態に係る関連性データベース更新部53の動作の例を説明する図である。なお、図24は動作の例を表しており、関連性データベース更新部53の動作は、実装に応じて変更されることがある。例えば、ステップS173、S174の処理をステップS176の後で行われる場合もある。
メールが送信されたことが通知されると、関連性データベース更新部53は、送信されたメールの識別子に対応付けられたアドレス修正フラグの値を確認する(ステップS171、S172)。アドレス修正フラグが1である場合、関連性データベース更新部53は修正によって加えられた宛先アドレスを取得する(ステップS172でYes、ステップS173)。次に、関連性データベース更新部53は、修正により追加された宛先アドレスと、送信メールの他の宛先アドレスや送信元アドレスとの間の関連性の値を1に近づける(ステップS174)。さらに、関連性データベース更新部53は、修正により削除された宛先アドレスを取得する(ステップS175)。関連性データベース更新部53は、削除された宛先アドレスについて、送信メールの他の宛先アドレスや送信元アドレスとの間の関連性の値を0に近づける(ステップS176)。
一方、アドレス修正フラグが0である場合、関連性データベース更新部53は、送信メールの宛先アドレスと送信元アドレスを取得する(ステップS172でNo、ステップS177)。さらに、関連性データベース更新部53は、取得したアドレスについて、図19を参照しながら説明したように、区分係数を用いて計算した関連性と関連性データベース23に記録されている値に基づいて、関連性データベース23を更新する(ステップS178)。
図25A〜Dは、第3の実施形態で行われるデータベースの更新方法の例を説明するフローチャートである。送信メールが電子メール作成部13から電子メール分割部14に出力されると、送信確認部15は、語句修正フラグとアドレス修正フラグを0に設定する(ステップS201)。ステップS202〜S215は、図20Aを参照しながら説明したステップS102〜S115と同様である。
ステップS215で本文誤りフラグが0である場合の動作を図25Bに示す。図25Bは、メールの本文からは誤送信と判定されず、アドレスの関連性から誤送信の可能性があると判定された場合の動作を表している。ユーザが誤送信であると判断すると、送信確認部15は、メールの送信先アドレスを、メールの識別子と関連付けて修正前アドレステーブルに格納し、アドレス修正フラグを1に設定する(ステップS221でNo、ステップS228、S229)。さらに、送信確認部15は、メールの修正画面を表示する(ステップS230)。メールの修正が行われユーザからの送信指示があると、ステップS202以降の処理が行われる(ステップS231)。ユーザが誤送信ではないと判断した場合のステップS222〜S227の動作は、図20Cを参照しながら説明したステップS142〜S147の動作と同様である。
図25AのステップS215で本文誤りフラグが1である場合の動作を図25Cに示す。図25Cは、メールの本文から誤送信と判定され、アドレスの関連性からも誤送信の可能性があると判定された場合の動作を表している。ユーザが誤送信であると判断すると、送信確認部15は、メールの送信先アドレスを、メールの識別子と関連付けて修正前アドレステーブルに格納し、アドレス修正フラグを1に設定する(ステップS241でNo、ステップS248、S249)。ステップS250〜S253の動作は、図20Dを参照しながら説明したステップS158〜S161と同様である。なお、メールの修正が行われた後でユーザからの送信指示があると、ステップS202以降の処理が行われる(ステップS253)。ユーザが誤送信ではないと判断した場合のステップS242〜S247の動作は、図20Dを参照しながら説明したステップS152〜S157の動作と同様である。
図25AのステップS207で本文誤りフラグが1である場合の処理を図25Dに示す。ステップS261〜S271の動作は、図20Bを参照しながら説明したステップS121〜131と同様である。ただし、ステップS271でユーザからの送信指示があると、ステップS202以降の処理が行われる。
このように、第3の実施形態に係る通信装置10は、宛先アドレスの修正が行われた場合、関連性データベース更新部53は、修正の内容を反映してデータベースを修正する。したがって、本実施形態によると、宛先アドレスの判断について、通信装置10の判断結果とユーザとの判断結果のずれを小さくすることができる。
<第4の実施形態>
メールサーバ、ゲートウェイ装置などが、送信メールについての誤送信の判定や語句データベース21などの更新を実施することもできる。第4の実施形態の場合は、誤送信判定装置90を備える装置は、メールの送信元の通信装置とメールの受信先の通信装置の間で送受信されるメールを中継する。誤送信判定装置90を備える装置は、メールを中継する際に、メールの送信元アドレスと宛先アドレスの関係やメールに含まれている対象語句に基づいて、メールが誤送信である可能性があるかを判定する。
誤送信判定装置90は、メールサーバ、ゲートウェイ装置などに搭載され、誤送信判定装置90は、第1〜第3の実施形態で説明した誤送信防止方法を実施する。図26は、第4の実施形態に係るネットワークの例を示す。図26(a)に示すネットワーク70は、ユーザ端末91(91a〜91c)、Message Transfer Agent(MTA)92、ゲートウェイ93を備える。図26(a)の例では、MTA92が、誤送信判定装置90を含んでいる。また、図26(b)に示すように、ゲートウェイ93が誤送信判定装置90を含むこともできる。図26(c)には、誤送信判定装置90がインターネット94の誤送信防止サービスサーバ95に搭載されている場合の例を示す。ユーザ端末91(91d〜91f)から送られた送信メールは、誤送信防止サービスサーバ95で処理されることにより、誤送信であるかの判定が行われる。
図27は、第4の実施形態に係る誤送信判定装置90の例を示す図である。送信判定装置90は、受信部17、送信部12、電子メール分割部14、送信確認部18、タイマ16、記憶部20、判定部40、データベース更新部50を備える。判定部40は、本文誤り判定部41とアドレス誤り判定部42を備える。記憶部20は、語句データベース21、共通語句データベース22、関連性データベース23、辞書データ31、データ34、プログラム33を備える。データベース更新部50は、語句データベース更新部51、共通語句データベース更新部52、および、関連性データベース更新部53を備える。電子メール分割部14、タイマ16、判定部40、データベース更新部50の動作は、第1〜第3の実施形態のいずれかと同様である。また、語句データベース21、共通語句データベース22、関連性データベース23、辞書データ31、プログラム33も第1〜第3の実施形態のいずれかと同様である。
誤送信判定装置90では送信メールが作成されないので、誤送信判定装置90は、受信部17を介して受信した電子メールに基づいて、誤送信の判定やデータベースの更新を行う。誤送信判定装置90は、データ34にアドレス情報を記憶している。アドレス情報は、誤送信判定装置90が誤送信の判定を行う対象となる送信元メールアドレスである。受信部17は、データ34を参照して、誤送信判定装置90が搭載されているメールサーバ等で受信されたメールのうち、アドレス情報に記録されているアドレスが送信元アドレスか宛先アドレスであるメールを取得する。アドレス情報に記録されているアドレスが送信元アドレスであるメールは、第1〜第3の実施形態での送信メールと同様に用いられる。すなわち、誤送信判定装置90は、アドレス情報に記録されているアドレスが送信元アドレスであるメールについて誤送信の判定を行い、判定結果に基づいてメールの送信後のデータベースの更新を行う。一方、宛先アドレスにアドレス情報に記録されているアドレスが含まれているメールについて、誤送信判定装置90は、第1〜第3の実施形態での受信メールと同様の処理を行う。すなわち、宛先アドレスにアドレス情報に記録されているアドレスが含まれているメールについては誤送信の判定を行わずに、データベースの更新に使用する。
送信確認部18は、送信メールが誤送信であるかを本文誤り判定部41とアドレス誤り判定部42の判定結果に基づいて判定し、得られた結果を送信者に通知する。図28は、送信メールが誤送信であると判定された場合のユーザへの通知方法の例を説明するフローチャートである。送信確認部18は、誤送信と判定されたメールについて、誤送信の可能性があることと、誤送信と判定した理由を記述した通知メールを作成し、送信部12を介して、判定対象となったメールの送信元アドレスに送信する(ステップS281)。なお、ここで、送信確認部18は、誤送信と判定した電子メールを識別する識別子を付し、その識別子を、通知メールに含めるものとする。送信確認部18は、通知メールを送信してからタイマ16がタイムアップするまで待機する。ユーザ端末91に通知メールが届くと、ユーザにより誤送信かの判断が行われる。その後、ユーザの判断に基づいてユーザ端末91から、メールの送信を指示するメッセージか、送信を中止する旨を通知するメッセージが誤送信判定装置90を含む装置に送信される。ここで、これらのメッセージには、誤送信と判定されたメールを特定するための識別子が含まれているものとする。
送信確認部18は、識別子を用いて、ユーザ端末91から通知メールに対する返信のメッセージを受信したかを確認する(ステップS282)。送信確認部18は、返信のメッセージを受信すると、ユーザの判断を確認する(ステップS285)。ユーザからのメッセージが送信を中止することを通知している場合、送信確認部18は、本文誤り判定部41とアドレス誤り判定部42に送信の中止を通知する。本文誤り判定部41は、判定対象のメールに含まれていた対象語句、宛先アドレス、送信元アドレス等を修正前語句テーブルに記録する。同様に、アドレス誤り判定部42は、判定対象のメールに含まれていた宛先アドレス、宛先アドレスの種類、送信元アドレス等を修正前アドレステーブルに記録する。また、送信確認部18は、本文誤り判定部41が誤送信の可能性があると判定している場合は、語句修正フラグを1に設定する。また、アドレス誤り判定部42が誤送信の可能性があると判定している場合は、アドレス修正フラグを1に設定する。(ステップS286)。ユーザは、送信が中止されたメールの識別子に対応づけて、修正後のメールを、誤送信判定装置90を含む装置に送信する。修正後のメールが誤送信と判定されない場合や、ユーザからの送信指示に基づいて送信される場合、メールの送信後に行われるデータベースの更新では、修正前語句テーブルや修正前アドレステーブルが用いられる。データベースの更新方法は、第1〜第3の実施形態で説明した方法と同様である。
一方、ユーザからメールを送信する旨のメッセージを受信した場合、誤送信判定装置90は、判定対象のメールを宛先アドレスに向けて送信する(ステップS287)。また、第1〜第3の実施形態で説明したように、データベースの更新が行われる。
タイマ16がタイムアウトする前に誤送信判定装置90がユーザからの指示を含むメッセージを受信しない場合、送信確認部18は、ユーザが電子メールの送信を中止したとみなす。そこで、送信確認部18は、送信部12を介して、対象電子メールの送信を中止したことを通知するメールを、送信元アドレスに向けて送信する(ステップS283)。また、このとき、判定対象となった送信メールを送信元アドレスに送信する。その後、送信確認部18は、本文誤り判定部41とアドレス誤り判定部42に、判定対象の電子メールについて記憶している対象語句、宛先アドレス、宛先アドレスの種類、送信元アドレスなどのデータと、判定結果を破棄するように要求する(ステップS284)。その結果、誤送信判定装置90は、対象の電子メールの送信や対象電子メールに基づくデータベースの更新を行わない。
このように、本実施形態によると、メールサーバなどが、送信メールについての誤送信の判定などを実施することもできるため、メールサーバなどに誤送信判定装置90を搭載することにより、誤送信の判定を行うことができる。従って、ユーザ端末91に改変を加えることなく、電子メールの誤送信判定を行うことができ、第1〜第3の実施形態に比べて、システムの導入が容易である。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
例えば、語句データベース更新部51は、一定期間以上使われていない対象語句のランクを0に近づけるように変形される場合がある。例えば、語句データベース更新部51は、語句データベース21に含まれている語句とアドレスアドレスの組合せの各々について、最終更新日を確認する。語句データベース更新部51は、最終更新日から一定の期間以上、登録されたアドレスの間で対応付けられた語句が使用されていない場合、その語句について、語句データベース21に記録されたランクを1ずつ0に近づくように修正する。すなわち、語句データベース更新部51は、ランクの値が正の値であれば、ランクの値を1つ小さくし、ランクの値が負であれば、ランクの値を1だけ大きくする。
ここで、一定の期間を語句ごとに決定することもできる。例えば、語句データベース更新部51は、ユーザAとユーザBのメールアドレスに対応付けて記憶されている対象語句aについて、ランクの値が更新された履歴を参照して、ランクの値の更新が行われる周期(更新周期)を求めることができる。語句データベース更新部51は、求めた更新周期よりも長い時間にわたってランクが更新されていない場合、語句データベース更新部51は、対象語句aのランクの値を1だけ0に近づくように変更する。その後、語句データベース更新部51は、更新周期ごとに対象語句aのランクが更新されているかを確認し、対象語句aのランクが更新されていない期間が更新周期よりも長くなると、対象語句aのランクを1だけ0に近づける。
このように変形することにより、過去に頻繁に使用された語句が使用されなくなった場合に、語句データベース更新部51は、使用される語句の変遷を反映して語句データベース21を更新することができる。
また、共通語句データベース22をオペレータなどが予め決定しておいて、記憶部20に読み込むことができる。この場合は、共通語句データベース22は固定されているので、通信装置10もしくは誤送信判定装置90は、共通語句データベース更新部52を備えない。
アドレス誤り判定部42は、署名が類似しているかを判定する際に、2つのアドレスに共通している語句の数が2つのアドレスに関連付けて登録されている対象語句の総数に占める割合を用いることもできる。例えば、2つのアドレスに共通する語句の数をXcomとする。また、一方のアドレスに関連付けて登録されている対象語句の数をX1、他方のアドレスに関連付けて登録されている対象語句の数をX2とする。アドレス誤り判定部42は、次式から類似度Sを算出する。
S=2×Xcom/(X1+X2)
アドレス誤り判定部42は、類似度Sの値を類似閾値と比較する。類似度Sが類似閾値以上の場合、署名が類似していると判定する。一方、類似度Sが類似閾値未満の場合、署名が類似していないと判定する。判定後のアドレス誤り判定部42の動作は、第1〜第4の実施形態と同様である。
上述の第1〜第4実施形態を含む各実施形態に対し、さらに以下の付記を開示する。
(付記1)
送信もしくは受信された電子メールに含まれている語句の出現頻度を、前記電子メールの宛先アドレスおよび送信元アドレスと対応付けて、語句データベースに記憶し、
送信される対象電子メールに含まれている語句のうちで、複数の電子メールに共通して用いられる語句を記録する共通語句データベースに含まれていない語句である対象語句を抽出すると共に、前記対象語句の総数を取得し、
前記対象語句の各々について、前記対象電子メールの宛先アドレスと対応付けて前記語句データベースに記憶されている前記出現頻度を第1の閾値と比較し、前記出現頻度が前記第1の閾値よりも大きい対象語句の数を取得し、
前記出現頻度が前記第1の閾値よりも大きい対象語句の数の前記総数に対する割合が第2の閾値未満の場合に、前記対象電子メールの送信は誤送信と判定する
処理をコンピュータに実行させることを特徴とする判定プログラム。
(付記2)
誤送信の可能性があると判定された第1の対象電子メールから抽出された対象語句を、前記第1の対象電子メールの宛先アドレスである第1のアドレスと、前記第1の対象電子メールの送信元アドレスである第2のアドレスとに対応付けて、修正前語句テーブルに記憶し、
前記第1の対象電子メールを修正して作成された第2の対象電子メールの送信が誤送信と判定されていない場合、
前記第2の対象電子メールから抽出された対象語句のうちで、前記修正前語句テーブルに記憶されている対象語句の出現頻度を大きくし、
前記第2の対象電子メールから抽出された対象語句ではなく、前記修正前語句テーブルに記憶されている対象語句の出現頻度を小さくする
処理を前記コンピュータにさらに実行させることを特徴とする付記1に記載の判定プログラム。
(付記3)
第1の対象語句を含むメールが前記第1のアドレスで送信もしくは受信された時刻の履歴から、前記第1の対象語句の前記第1のアドレスに対応付けられた出現頻度が更新された後で、再度前記第1の対象語句の前記第1のアドレスに対応付けられた出現頻度が更新されるまでにかかる時間を表す更新周期を算出し、
前記第1の対象語句の出現頻度が最後に更新された時刻から前記更新周期が経過しても、前記第1の対象語句が含まれているメールが前記第1のアドレスで送信もしくは受信されていない場合、前記第1の対象語句の前記第1のアドレスに対応付けられた出現頻度を小さくする
処理を前記コンピュータにさらに実行させことを特徴とする付記2に記載の判定プログラム。
(付記4)
第1の宛先と第2の宛先とに同一の電子メールが送信される可能性を表す関連係数を、関連データベースに記憶し、
前記第1の宛先に送信される対象電子メールが前記第2の宛先にも送信される場合、前記関連係数が関連閾値以上であるかを確認し、
前記関連係数が前記関連閾値未満の場合、前記対象電子メールの送信は誤送信であると判定する
処理を前記コンピュータにさらに実行させることを特徴とする付記1〜3のいずれかに記載の判定プログラム。
(付記5)
前記第1および第2の宛先を含む第1の対象電子メールの送信が誤送信と判定されると、前記第1の対象電子メールの宛先を修正前アドレステーブルに記憶し、
前記第1の対象電子メールを修正して作成された第2の対象電子メールの送信が誤送信と判定されていない場合、前記修正前アドレステーブルに記録されている前記第1の対象電子メールの宛先と、第2の対象電子メールの宛先を比較し、
前記修正前アドレステーブルに記録され、かつ、前記第2の対象電子メールの宛先に含まれていない宛先と、前記修正前アドレステーブルと前記第2の対象電子メールに共通する宛先との間の関連係数を小さくする
処理を前記コンピュータにさらに実行させることを特徴とする付記4に記載の判定プログラム。
(付記6)
前記第2の対象電子メールの宛先に含まれ、かつ、前記修正前アドレステーブルに記録されていない宛先と、前記修正前アドレステーブルと前記第2の対象電子メールに共通する宛先との間の関連係数を大きくする
処理を前記コンピュータにさらに実行させることを特徴とする付記5に記載の判定プログラム。
(付記7)
前記コンピュータに、前記語句に対応付けられている宛先アドレスの数と送信元アドレスの数の合計が第3の閾値より大きい場合、前記語句を前記共通語句データベースに記憶する
処理をさらに実行させることを特徴とする付記1〜6のいずれかに記載の判定プログラム。
(付記8)
送信もしくは受信された電子メールに含まれている語句の出現頻度を、前記電子メールの宛先アドレスおよび送信元アドレスと対応付けて、語句データベースに記憶し、
送信される対象電子メールに含まれている語句のうちで、複数の電子メールに共通して用いられる語句を記録する共通語句データベースに含まれていない語句である対象語句を抽出すると共に、前記対象語句の総数を取得し、
前記対象語句の各々について、前記対象電子メールの宛先アドレスと対応付けられている前記出現頻度を第1の閾値と比較し、前記出現頻度が前記第1の閾値よりも大きい対象語句の数を取得し、
前記出現頻度が前記第1の閾値よりも大きい対象語句の数の前記総数に対する割合が第2の閾値未満の場合に、前記対象電子メールの送信は誤送信と判定する
処理をコンピュータが実行することを特徴とする判定方法。
(付記9)
送信または受信された電子メールに含まれている語句の出現頻度を、前記語句が含まれているメールの宛先アドレスおよび送信元アドレスと対応付けて記憶する語句データベースと、
複数の電子メールに共通して用いられる語句を記録する共通語句データベースと、
送信される対象電子メールに含まれている語句から前記共通語句データベースに含まれる語句を除いて得られた対象語句を抽出し、
前記対象語句の総数を取得し、
前記対象電子メールの宛先アドレスおよび前記対象電子メールの送信元アドレスと対応付けられている前記出現頻度が第1の閾値よりも大きい対象語句の数を取得すると共に、
前記出現頻度が前記第1の閾値よりも大きい対象語句の数の前記総数に対する割合が第2の閾値未満の場合に、前記対象電子メールは誤送信される可能性があると判定する判定部
を備えることを特徴とする通信装置。