以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示すブロック図である。修正箇所判別装置は、差分抽出手段2、対応付け手段4、頻出操作判定手段5、および推定手段6を有する。また修正箇所判別装置からアクセス可能な場所に、文書記憶手段1と操作情報記憶手段3とが設けられている。文書記憶手段1と操作情報記憶手段3とは、例えば修正箇所判別装置にネットワークを介して接続された装置内に設けることができる。また修正箇所判別装置が文書記憶手段1と操作情報記憶手段3とを有していてもよい。
文書記憶手段1は、元文書1aと、元文書1aを修正することで作成された複数の修正文書1b,1c,1dとを記憶する。
差分抽出手段2は、文書記憶手段1を参照し、元文書1aと複数の修正文書1b,1c,1dそれぞれとを比較する。そして差分抽出手段2は、元文書1aに対して挿入された挿入文字列、挿入文字列が挿入された位置から削除された削除文字列、および挿入文字列の修正文書内での位置を含む差分情報を、修正文書ごとに生成する。
操作情報記憶手段3は、元文書1aから複数の修正文書1b,1c,1dそれぞれを作成する際に記録された入力文字列、および入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する。
対応付け手段4は、操作情報記憶手段3を参照し、操作情報それぞれに対して、操作情報と同じ修正文書の識別情報と、操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付ける。そして対応付け手段4は、差分情報が1つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする。
頻出操作判定手段5は、同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択する。次に頻出操作判定手段5は、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出する。そして頻出操作判定手段5は、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する。
推定手段6は、差分情報に含まれる削除文字列と、未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組を生成する。推定手段6は、未確定操作情報に対応付けられた差分情報のうち、該当差分情報を用いて生成した削除文字列の組が頻出連続削除文字列と一致する差分情報を検出する。そして推定手段6は、検出した差分情報に示される位置を、未確定操作情報を記録した際に操作された位置と推定する。
このような修正箇所判別装置によれば、対応する差分情報が一意に決定される操作情報については、その差分情報に示される位置によって、操作位置が判定できる。また、差分情報が一意に決定できない操作情報については、連続して削除されることの多い削除文字列の組と同様の削除文字列の組となるような差分情報に示される位置を、その操作情報の操作対象の位置と推定できる。
例えば、「文書1」に対する入力文字列「ボタン」の操作情報に対して対応付ける差分情報が、「文書1」の差分情報から選択される。図1の例では、「文書1」の差分情報のうち入力文字列「ボタン」と同じ文字列を挿入文字列とする差分情報は1つだけである。そこで、「文書1」に対する入力文字列「ボタン」の操作情報に対して、差分情報を1つだけ対応付けることができる。この場合、「文書1」に対する入力文字列「ボタン」の操作情報は、確定操作情報となる。確定操作情報については、対応付けた差分情報に示される位置が、その確定操作情報で示される操作における操作対象の位置として判定できる。
一方、「文書3」に対する入力文字列「スイッチ」の操作情報に対して対応付ける差分情報を、「文書3」の差分情報から選択する場合を考える。この場合、図1の例では、「文書3」の差分情報のうち入力文字列「スイッチ」と同じ文字列を挿入文字列とする差分情報が2つある。そこで、「文書3」に対する入力文字列「スイッチ」の操作情報に対して、差分情報が2つ対応付けられる。この場合、「文書3」に対する入力文字列「スイッチ」の操作情報は、未確定操作情報となる。
未確定操作情報に関しては、頻出連続削除文字列に基づいて、操作対象の位置が推定される。頻出連続削除文字列は、複数の修正文書1b,1c,1dの作成時に、連続して削除されることの多い文字列である。図1の例では、「文書1」と「文書2」との両方で、「目印」と「選択肢」との文字列が連続して削除されている。そこで、「目印」と「選択肢」との組が、頻出連続削除文字列と判定される。
「文書3」に対する入力文字列「スイッチ」の未確定操作情報に対応付けられた2つの差分情報のうち、一方は位置「α」の差分情報であり、他方は位置「β」の差分情報である。そこで、未確定操作情報がそれぞれの差分情報で示される位置に対する操作であった場合に、前後の操作との関係における連続削除文字列が生成される。例えば、未確定操作の対象が位置「α」に対する挿入文字列「スイッチ」の差分情報に示される位置であれば、削除文字列「目印」と「選択肢」との組が生成される。この削除文字列の組は、頻出連続削除文字列と一致する。他方、未確定操作の対象が位置「β」に対する挿入文字列「スイッチ」の差分情報に示される位置であれば、削除文字列「矢印」と「セレクト」との組が生成される。この削除文字列の組は、頻出連続削除文字列と一致しない。その結果、「文書3」に対する入力文字列「スイッチ」の操作情報で示される操作の操作対象は、位置「α」であると推定される。
このように、操作情報の入力文字列と、差分情報の挿入文字列との対応付けだけでは、操作対象位置を一意に決定できない場合であっても、適切な操作位置を推定することが可能となる。
ここで、差分情報に示される位置としては、例えば、修正文書を複数に分割して得られる部品を示す情報を用いることができる。その場合、図1に示した修正箇所判別装置によって、各操作情報で示される操作の対象の部品が判定される。例えば複数の部品に挿入された文字列の入力について、その直前・直後の時刻の入力が別の部品への挿入であった場合であっても、他の文書の作成時の操作情報を手がかりに、直前・直後のどちらと同じ部品への挿入だったのか推定することができる。
なお同じ箇所からの文字列の削除でも、挿入される文字列は文書により違うことが多い。第1の実施の形態では修正前後の文書差分に基づいて各時刻に削除されたらしい文字列を推測し、未確定操作情報で示される操作の操作対象箇所を削除文字列によって判断する。すなわち、挿入された文字列は、操作対象箇所の候補の検出にのみ使用され、候補内での操作対象箇所の推定には使用されていない。そのため、文書による挿入文字列の違いの影響を受けずに、適切な修正箇所を推定できる。
〔第2の実施の形態〕
第2の実施の形態は、過去の文書編集時の操作時刻と操作箇所の情報を利用して、セットで編集される可能性の高い複数の箇所をユーザに提示することにより文書作成支援を行うものである。
他の文書を再利用して新たな文書を作成する際の編集作業では、ある文字列から他の文字列への書き換えが行われる。この際、1つの箇所の書き換えに応じて、関連する他の箇所も書き換える場合がある。このように関連性があるために、一方を書き換えれば他方もセットで書き換えることとなるような複数の箇所は、ユーザが異なっても共通していることが多い。そこで、あるユーザがある箇所を書き換えた際に、関連して書き換えられることの多い箇所を他のユーザに示すことができれば、編集漏れを抑止できる。
このようにセットで編集される可能性の高い複数の箇所を特定するには、操作時刻を用いることができる。例えば関連性の高い複数の操作箇所は、一定値以下の短い時間間隔で操作されるものと考えられる。そこで、文書の再利用時に、再利用元となる文書の過去の再利用において短い時間内に操作された複数の箇所をユーザに提示すれば、編集作業の効率化が可能となる。
図2は、第2の実施の形態のシステム構成例を示す図である。文書作成支援装置100には、ネットワーク10を介して複数のユーザ装置200,300,400,500が接続されている。文書作成支援装置100は、製品のマニュアルなどの文書の雛形を保持している。そして、文書作成支援装置100は、ユーザ装置200,300,400,500を使用するユーザが雛形を元にして新たな文書を作成する際に、セットで編集すべき箇所を提示する。
ユーザ装置200,300,400,500は、ユーザが文書の編集に使用するコンピュータである。
図3は、文書作成支援装置のハードウェアの一構成例を示す図である。文書作成支援装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、文書作成支援装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、文書作成支援装置100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、文書作成支援装置100のハードウェア構成例を示したが、ユーザ装置200,300,400,500も同様のハードウェア構成で実現できる。
次に、過去の編集時の操作時刻を利用して、ユーザに対してセットで編集すべき箇所を提示する機能の概要について説明する。
図4は、雛形を用いた文書作成に対する文書作成支援例を示す図である。図4の例では、複数のユーザ21〜23が、雛形文書30に基づいて、文書32,34,36を作成する場合を想定している。なおユーザ21はユーザ装置200を使用し、ユーザ22はユーザ装置300を使用し、ユーザ23はユーザ装置400を使用しているものとする。
なおユーザ23の文書作成作業に先立って、ユーザ21,22がそれぞれ文書32,34を作成しているものとする。ユーザ21が文書を作成する際には、雛形文書30をユーザ装置200内にコピーして、文書32を作成する。そしてユーザ21は、文書32に文字列の追加や削除の操作を行い、文書32の内容を目的に沿ったものにする。ユーザ21が文書32に対する操作はキーボードなどの入力装置を介して行われる。ユーザ装置200は、キーボードから入力された文字列とその入力時刻とを採取し、操作ログ33として保存する。同様に、ユーザ22が文書34を作成すると、ユーザ装置300によって操作ログ35が保存される。各操作ログ33,35には、入力や削除の各操作の内容を示す操作情報が含まれる。
その後、ユーザ23が雛形文書30に基づいて文書36を作成するとき、文書作成支援装置100は、文書32,34および操作ログ33,35を解析し、文書作成を支援する支援情報37を作成する。例えば、ユーザ22が「1.前処理」の段落と「3.後処理」の段落とを交互に修正した場合、その旨のメッセージを含む支援情報37が作成される。作成された支援情報37は、ユーザ23が使用するユーザ装置400に送信され、ユーザ装置400の画面に表示される。ユーザ23は、支援情報37を参照することで、文書36の編集に際し、「1.前処理」の段落を編集した場合には「3.後処理」の編集も検討すべきことを認識できる。
このように、過去にユーザ21,22が文書作成時に行った操作の操作情報に基づいて支援情報37を作成することで、その後、雛形文書30を用いた文書作成作業を行うユーザ23の文書作成を支援できる。
次に、支援情報37の作成手順の概要を説明する。
図5は、支援情報の作成手順の概要を示す図である。文書作成支援装置100では、雛形文書30に基づいて部品種類情報40を作成しておく(ステップS11)。部品種類情報40は、雛形文書30に含まれる部品種類の情報である。部品とは、所定の条件に基づいて文書を分割することで得られる部分文書である。例えば文書を、章ごとの部品、節ごとの部品、または段落ごとの部品に分割することができる。部品種類情報40には、各部品の種類名と、その部品を特徴付けるキーワードが含まれている。図5の例では、雛形文書30が複数の章で構成されているため、章ごとの部品が作成されている。各部品には、「A」、「B」、「C」、「D」といった種類名が付与されている。また、各部品の章のタイトルが、キーワードとして用いられている。各キーワードと同じタイトルを有する部品は、同じ部品種類と判断される。
次に文書作成支援装置100は、過去に作成された文書34を部品に分割する(ステップS12)。文書34を部品に分割することで、被分割文書42が得られる。被分割文書42には、各部品のテキストと、そのテキストの文書34内での範囲を示すオフセットとが設定されている。オフセットは、文書34内の各部品の範囲を、文書内の行番号によって示している。
次に文書作成支援装置100は、キーワードに基づいて、部品の種類を同定する(ステップS13)。図5の例では、部品の各テキストの章のタイトルと部品種類情報40のキーワードとを照合し、対応するキーワードに設定された種類が、その部品の種類となる。そして、文書作成支援装置100により、部品の種類名を付与した被分割文書43が生成される。
次に、文書作成支援装置100は、文書34の作成時に生成された操作ログ41に対し、各操作により修正された文書34の内の箇所を推定する(ステップS14)。第2の実施の形態では、操作箇所は、部品単位で推定される。そして文書作成支援装置100は、操作ログ41に対して、操作ごとの操作対象となる部品の種類名を付与した修正履歴44を生成する。
最後に文書作成支援装置100は、修正履歴44を解析し、例えば交互の修正される2つの部品をセットで修正すべき部品と判断する(ステップS15)。図5の例では、部品Cの操作の間に部品Aの操作が行われており、部品Aと部品Cとがセットで修正すべき部品と判定されている。そして文書作成支援装置100は、セットで修正すべき部品の組を示す支援情報45を生成する。
このようにして、セットで修正すべき部品の組を特定し、支援情報45を生成することができる。このとき、ステップS14における修正箇所の推定処理が適格に行われないと、セットで修正すべき部品の組についても、正しい結果が得られない。
ここで、文書34を作成する際に、ユーザ装置300において、例えば操作対象となった位置のオフセットが操作情報として採取できれば、修正箇所の推定は容易となる。すなわち、操作の対象となった位置のオフセットを包含する範囲の部品が、操作対象の部品となる。しかし、文書内のオフセットなど、修正中の各時刻に修正された箇所を特定できる情報を得るためには、文書を編集するアプリケーションに固有の機能が用いられる。ユーザが利用している文書編集アプリケーションがこのような機能を有しているとは限らない。
そこで第2の実施の形態では、修正履歴の手がかりとなる情報としては、キーボード操作を監視する操作ログ取得機能を用いる。操作ログ取得機能は、文書編集アプリケーションに入力される前のキーボードからの入力情報を取得し、保存する機能である。
ただし、操作ログ取得機能では、キーボードから入力した文字列と、その入力時刻しかわからない。そのため、文書作成支援装置100は、各時刻の修正箇所を、入力文字列から推定する。具体的には文書作成支援装置100は、雛形文書30と、その雛形文書30に基づいて作成された文書とを比較し、その差分によって削除された文字列と挿入された文字列とを特定する。そして文書作成支援装置100は、削除・挿入された文字列と、操作情報の文字列とを比較することで、操作情報に示される各操作の対象とされた部品を推定する。
このとき文書作成支援装置100は、大別すると2段階に分けて修正箇所の推定処理を行う。修正箇所判定処理の第1段階は、操作ログに記録された操作情報を、確定操作と未確定操作とに分別する処理である。確定操作とは、操作ログに含まれる操作情報のうち、操作対象の部品を一意に対応付けられる操作である。未確定操作とは、操作ログに含まれる操作情報のうち、操作対象の部品を一意に対応付けられない操作である。修正箇所判定処理の第2段階は、未確定操作の操作対象の部品を推定する処理である。
以下、図6、図7を参照して、修正箇所判定処理の第1段階における確定操作と未確定操作との分別例について説明する。
図6は、確定操作の例を示す図である。文書作成支援装置100は、雛形文書を部品に分割して、被分割雛形文書31を生成する。また文書作成支援装置100は、雛形文書を編集して得られた文書を部品に分割して、被分割文書46を生成する。そして、文書作成支援装置100は、被分割雛形文書31と、被分割文書46との差分を求める。図6の例では、被分割文書46において、種類「B」の部品に対して「スイッチ」という文字列が挿入されている。次に、文書作成支援装置100は、修正によって各部品に挿入された文字列(挿入文字列)と、被分割文書46の元となる文書を操作したときの操作ログ47とを対比する。操作ログ47には、入力文字列「スイッチ」の操作情報が記録されている。ここで、図6の例の被分割文書46の挿入文字列「スイッチ」は、種類「B」の部品に対してのみに挿入されているものとする。このような場合、操作ログ47に示される「スイッチ」の入力操作は、文書「部品B」に一意に対応付けることができる。従って、操作ログ47に示された「スイッチ」の入力操作は、確定操作と判定される。
図7は、未確定操作の例を示す図である。図7の例では、被分割文書48において、種類「A」の部品と、種類「B」の部品との両方に、文字列「スイッチ」が挿入されている。この場合、操作ログ47に記録されている入力文字列「スイッチ」の操作情報における操作対象の箇所が、どちらの部品なのか一意に特定することができない。そこで、入力文字列「スイッチ」の入力操作は、未確定操作と判断される。
未確定操作については、操作対象の部品が推定される。操作対象部品の推定では、同じ部品は時間的に連続して修正されることが多いことを利用し、未確定操作の直前または直後の時刻の確定操作と同じ部品に挿入された可能性が高いと判断する。このとき、直前または直後の確定操作と連続した操作か否かの判断は、例えば入力時刻の差が所定時間(例えば5分)以内か否かで判断される。
図8は、直前または直後の確定操作に基づいて未確定操作の操作対象部品の推定例を示す図である。図8の例では、被分割文書49において、種類「A」の部品に対して文字列「星型」、「スイッチ」が挿入され、種類「B」の部品に対して文字列「スイッチ」が挿入されている。また、操作ログ50には、入力文字列「星型」の操作と、入力文字列「スイッチ」の操作とが記録されている。入力文字列「星型」の操作は確定操作であるものとする。また、図7と同様に、入力文字列「スイッチ」は未確定操作である。
文字列「星型」の入力操作は、時刻「20:23」に行われ、文字列「スイッチ」の入力操作は時刻「20:25」に行われている。すると、文字列「星型」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直前の確定操作と判断できる。文字列「星型」の入力操作の操作対象部品は、種類「A」の部品である。そこで、文字列「スイッチ」の入力操作の操作対象部品は、種類「A」の部品であると推定される。
ここで、未確定操作の直前の確定操作と直後の確定操作とが異なる部品を操作対象としている場合、直前または直後の確定操作だけに基づいて未確定操作の操作対象部品の推定することができない。
図9は、直前または直後の確定操作だけに基づいて未確定操作の操作対象部品を推定できない例を示す図である。図9の例では、被分割文書51において、種類「A」の部品に対して文字列「星型」、「スイッチ」が挿入され、種類「B」の部品に対して文字列「ポインタ」、「スイッチ」が挿入されている。操作ログ52には、入力文字列「星型」の操作、入力文字列「スイッチ」の操作、および入力文字列「ポインタ」の操作が記録されている。入力文字列「星型」の操作と入力文字列「ポインタ」の操作とは確定操作であるものとする。また、図8と同様に、入力文字列「スイッチ」は未確定操作である。
文字列「星型」の入力操作は、時刻「20:23」に行われ、文字列「スイッチ」の入力操作は時刻「20:25」に行われ、文字列「ポインタ」の入力操作は時刻「20:27」に行われている。すると、文字列「星型」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直前の確定操作と判断でき、かつ文字列「ポインタ」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直後の確定操作と判断できる。しかも、文字列「星型」の入力操作の操作対象は種類「A」の部品であり、文字列「ポインタ」の入力操作の操作対象は、種類「B」の部品である。すると未確定操作の直前と直後との各確定操作の操作対象の部品が相違し、未確定操作の操作対象がどちらの部品なのか推定できない。
そこで、第2の実施の形態に係る文書作成支援装置100では、未確定操作が行われた文書以外の他の文書に対する操作傾向を参考にして、未確定操作における操作対象の部品を推定する。
すなわち、部品内の複数の箇所の修正は同時期に行われるものと考えられる。そこで、未確定操作の直前(あるいは直後)の時刻に確定操作があったなら、当該未確定操作がその確定操作と同じ部品を修正したと仮定する。このとき、直前(あるいは直後)の確定操作の修正部品と当該未確定操作の修正部品との組み合わせが、一緒に修正されることの多い部品の組み合わせならば、未確定操作の操作対象部品を、直前(あるいは直後)の確定操作の操作対象と同じ部品と推定する。
なお、多くの修正は雛形の一部分を削除して別の文字列で置き換えられる。この場合、置き換え後の文字列は文書によって異なることが多い。そこで、一緒に修正されることの多い部品の組み合わせかどうかは、削除された文字列の組み合わせで判断する。これにより、一緒に修正されることの多い部品の組み合わせの適格な判断が可能となる。
ただし、雛形文書を修正して作成された文書と編集時の操作ログとからは、確定操作に関して、入力した文字列が挿入された箇所は判別可能であるが、その箇所から削除された文字列はわからない。そこで文書作成支援装置100は、雛形文書と、雛形を修正して作成された文書との差分を用いて、挿入箇所から削除された文字列を推定する。
以下、図10、図11を参照し、文書の差分を用いた修正箇所判定処理の概要を説明する。
図10は、文書の差分を用いた修正箇所判定処理の前半を示す図である。図10の例では、雛形文書を修正することで、「文書1」、「文書2」、「文書3」の3つの文書が作成されている。そして雛形文書と作成された各文書とが複数の部品に分割され、被分割雛形文書31と被分割文書53〜55が作成されている。
文書作成支援装置100は、被分割雛形文書31と、被分割文書53〜55それぞれとを比較し、文字列の差分から、各部品に挿入された文字列と、その挿入箇所から削除された文字列を抽出する。そして、文書作成支援装置100は、被分割文書53〜55ごとの文書差分情報56〜58を生成する(ステップS21)。文書差分情報56〜58には、各文書内の部品ごとに、挿入文字列と削除文字列との組が登録される。
図11は、文書の差分を用いた修正箇所判定処理の後半を示す図である。文書作成支援装置100は、全文書の操作ログ61〜63に対し、各操作の入力文字列が挿入された部品を同定する。そして文書作成支援装置100は、入力文字列が挿入された部品が一意に決まる操作を確定操作、決まらない操作を未確定操作とする(ステップS22)。
次に文書作成支援装置100は、確定操作を用いて、部品ごとに、時間的に連続した操作によって文字列が挿入されることの多い箇所から、削除された文字列の組み合わせを求める。求められた部品の組み合わせは、頻出連続削除文字列64として出力される(ステップS23)。
そして文書作成支援装置100は、未確定操作の候補となる部品のうち、未確定操作による挿入箇所から削除された文字列と、直前(あるいは直後)の確定操作による挿入箇所から削除された文字列の組み合わせと、頻出連続削除文字列64とを比較する。文書作成支援装置100は、未確定操作で削除された文字列と直前(あるいは直後)の確定操作で削除された文字列との組が、頻出連続削除文字列64に合致するか否かを判断する。合致した場合、文書作成支援装置100は、組み合わせた確定操作の操作対象の部品を、未確定操作の操作対象の部品と推定する(ステップS24)。
以上のような修正箇所判定処理を行った上でユーザに対する適切な支援情報37を提示するのに用いられる各装置の機能について説明する。
図12は、ユーザ装置の機能を示すブロック図である。ユーザ装置200は、ユーザインタフェース部210、仮名漢字変換部220、操作ログ取得部230、操作ログ記憶部240、文書編集部250、文書記憶部260、文書・操作ログ送信部270、および支援情報取得部280を有する。
ユーザインタフェース部210は、キーボードなどの入力装置を介したユーザの操作入力を受け付ける。また、ユーザインタフェース部210は、文書編集部250による文書編集画面をモニタに表示する。さらにユーザインタフェース部210は、支援情報取得部280が取得した支援情報をモニタに表示する。
仮名漢字変換部220は、ユーザインタフェース部210を介して入力された文字列をひらがな、カタカナ、漢字などの他の文字に変換する。例えば仮名漢字変換部220は、アルファベットの文字列を漢字などの他の文字に変換する。
操作ログ取得部230は、入力された文字列をユーザインタフェース部210または仮名漢字変換部220から取得し、操作ログ記憶部240に格納する。その際、操作ログ取得部230は、文字列の入力対象となる文書の名称に対応付けて文字列を格納する。また操作ログ取得部230は、各文字列に、その文字列の取得時刻を示す時刻情報を付与して、操作ログ記憶部240に格納する。
操作ログ記憶部240は、操作情報を記憶する。例えばユーザ装置200のRAMまたはHDDの記憶領域の一部が操作ログ記憶部240として使用される。
文書編集部250は、ユーザからの操作入力に従って文書を編集する。このとき文書編集部250は、文書作成支援装置100から雛形文書を取得し、雛形文書に修正を加えることで、新たな文書を作成することができる。文書編集部250は、作成した文書を、文書記憶部260に格納する。
文書記憶部260は、文書を記憶する。例えばユーザ装置200のRAMまたはHDDの記憶領域の一部が、文書記憶部260として使用される。
文書・操作ログ送信部270は、操作ログ記憶部240と文書記憶部260とから、それぞれ操作ログと文書とを取得し、文書作成支援装置100に送信する。例えば文書・操作ログ送信部270は、文書作成支援装置100からの要求に応答して、操作ログと文書とを送信する。また文書・操作ログ送信部270は、新たな文書が作成されたとき、または定期的に設定された所定の時刻に、操作ログと文書とを送信してもよい。
支援情報取得部280は、文書編集部250が編集に使用した雛形文書に関する支援情報を、文書作成支援装置100から取得する。そして支援情報取得部280は、ユーザインタフェース部210を介して、取得した支援情報をモニタに表示する。
なお図12には、ユーザ装置200の機能について説明したが、他のユーザ装置300,400,500も同様の機能を有している。
図13は、文書作成支援装置の機能を示すブロック図である。文書作成支援装置100は、雛形記憶部111、雛形・支援情報提供部112、文書・操作ログ収集部121、操作ログ記憶部122、文書分割部123、部品種類記憶部124、被分割文書記憶部125、文書差分抽出部131、文書差分記憶部132、対応付け部141、仮対応表記憶部142、頻出連続削除文字列抽出部151、頻出操作記憶部152、操作対象推定部161、対応表記憶部162、セット修正部品判定部171、およびセット修正部品記憶部172を有する。
雛形記憶部111は、雛形文書を記憶する。例えばRAM102またはHDD103の記憶領域の一部が雛形記憶部111として使用される。なお、雛形文書は、システムの管理者によって予め作成され、雛形記憶部111に格納される。
雛形・支援情報提供部112は、ユーザ装置200,300,400,500に対して、雛形文書または支援情報を送信する。例えば、雛形・支援情報提供部112は、ユーザ装置200の文書編集部250から雛形文書の取得要求を受け取ると、指定された雛形文書を雛形記憶部111から取得し、ユーザ装置200に送信する。その際、雛形・支援情報提供部112は、送信した雛形文書に対応するセット修正部品情報をセット修正部品記憶部172から取得し、取得したセット修正部品情報を含む支援情報をユーザ装置200に送信してもよい。
文書・操作ログ収集部121は、ユーザ装置200,300,400,500それぞれから、作成された文書と、その文書作成時の操作ログとを取得する。例えば文書・操作ログ収集部121は、定期的にユーザ装置200,300,400,500に対して文書と操作ログとの取得要求を送信し、ユーザ装置200,300,400,500それぞれから文書と操作ログとを取得することができる。また文書・操作ログ収集部121は、所定のタイミングでユーザ装置200,300,400,500が送信した文書と操作ログとを受け取ることもできる。文書・操作ログ収集部121は、取得した文書を文書分割部123に渡す。また文書・操作ログ収集部121は、取得した操作ログを操作ログ記憶部122に格納する。
操作ログ記憶部122は、収集した操作ログを記憶する。例えばRAM102またはHDD103の記憶領域の一部が操作ログ記憶部122として使用される。
文書分割部123は、雛形文書、および雛形文書に修正を加えて作成された文書を、所定の基準に従って複数の部品に分割する。例えば文書分割部123は、雛形文書または文書を、章ごとの部品、節ごとの部品、または段落ごとの部品に分割する。なお文書分割部123は、雛形文書を分割する場合、雛形記憶部111から雛形文書を取得する。文書分割部123は、雛形文書を分割して得られる被分割雛形文書と、文書を分割して得られる被分割文書とを、被分割文書記憶部125に格納する。
また文書分割部123は、雛形文書を分割した場合、分割により得られた部品から、その部品の特徴を示すキーワードを抽出する。例えば文書分割部123は、章ごとに雛形文書を分割した場合、章のタイトルの文字列をキーワードとして抽出する。そして、文書分割部123は、雛形文書から分割して得られる部品に種類名を付与し、各部品の種類名とキーワードとの組を部品種類記憶部124に格納する。
部品種類記憶部124は、部品種類情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部が部品種類記憶部124として使用される。
被分割文書記憶部125は、被分割雛形文書と被分割文書と記憶する。例えばRAM102またはHDD103の記憶領域の一部が被分割文書記憶部125として使用される。
文書差分抽出部131は、被分割雛形文書と各被分割文書とを比較し、差分を抽出する。差分は、部品ごとに抽出される。また差分は、被分割文書に対して挿入された文字列と、その文字列の挿入箇所で削除された文字列との組で表される。文書差分抽出部131は、文書ごとの差分情報を文書差分記憶部132に格納する。
文書差分記憶部132は、文書ごとの差分情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部が文書差分記憶部132として使用される。
対応付け部141は、操作ログと差分情報とを参照し、操作ログ内の各操作情報に示される操作に対して、その操作の対象とされた箇所の差分情報を対応付ける。なお、差分情報には、部品の種類が含まれている。そのため、差分情報が対応付けられた操作情報には、その操作情報に示される操作対象箇所を示す部品の種類が対応付けられたこととなる。このとき差分情報を一意に対応付けられる操作は確定操作として認識され、差分情報を一意に対応付けられない操作は未確定操作として認識される。未確定操作の場合、対応付けられた部品の種類は、操作対象の部品の種類の候補を意味する。対応付け部141は、各操作に対して対応付けた部品の種類、または操作対象の部品の種類の候補を示す仮対応表を作成し、仮対応表記憶部142に格納する。
仮対応表記憶部142は、仮対応表を記憶する。例えばRAM102またはHDD103の記憶領域の一部が仮対応表記憶部142として使用される。
頻出連続削除文字列抽出部151は、仮対応表を参照し、確定操作の中から連続して削除された2つの文字列の配列を抽出する。そして頻出連続削除文字列抽出部151は、連続して削除された回数が所定数以上の文字列の配列を、頻出連続削除文字列とする。頻出連続削除文字列抽出部151は頻出連続削除文字列を、頻出操作記憶部152に格納する。
頻出操作記憶部152は、頻出連続削除文字列を記憶する。例えばRAM102またはHDD103の記憶領域の一部が頻出操作記憶部152として使用される。
操作対象推定部161は、仮対応表と頻出連続削除文字列とを参照して、未確定操作による操作対象の部品を推定し、その部品の種類を未確定操作に対応付ける。そして操作対象推定部161は、仮対応表内の未確定操作に部品の種類を1つだけ対応付けた対応表を作成し、対応表記憶部162に格納する。
対応表記憶部162は、対応表を記憶する。例えばRAM102またはHDD103の記憶領域の一部が対応表記憶部162として使用される。
セット修正部品判定部171は、対応表を参照し、各文書において、短い時間内に交互に編集された複数の部品の種類をセット修正部品情報として抽出する。セット修正部品判定部171は、抽出したセット修正部品情報をセット修正部品記憶部172に格納する。
セット修正部品記憶部172は、セット修正部品情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部がセット修正部品記憶部172として使用される。
以上のような機能を有するユーザ装置200,300,400,500および文書作成支援装置100によって、雛形文書を利用した文書作成に、支援情報の提示を行うことが可能となる。以下、支援情報を提示するための処理を詳細に説明する。なお以下の説明では、ユーザ装置200,300,400を使用するユーザが過去に作成した文書と、作成時の操作ログを用いて、ユーザ装置500を使用するユーザに対して支援情報を提示する場合を想定する。
そこで、まず文書作成時に各ユーザ装置200,300,400に格納される情報を説明する。
図14は、ユーザ装置に格納される文書と操作ログとの例を示す図である。各ユーザ装置200,300,400は、文書作成支援装置100から、雛形記憶部111に格納されている雛形文書111aを取得する。例えばユーザ装置200の文書編集部250から文書作成支援装置100の雛形・支援情報提供部112に対して、雛形文書111aの取得要求が出される。すると雛形・支援情報提供部112は、雛形記憶部111から雛形文書111aを読み出し、雛形文書111aをユーザ装置200に送信する。
雛形文書111aを取得した各ユーザ装置200,300,400では、雛形文書111aに修正を加え、それぞれ文書261,361,461を作成する。作成された文書261,361,461は、各ユーザ装置200,300,400の文書記憶部260,360,460に格納される。例えばユーザ装置200であれば、ユーザインタフェース部210を介したユーザからの操作入力が、仮名漢字変換部220と操作ログ取得部230とを介して文書編集部250に通知される。そして、文書編集部250が、操作入力に応じて雛形文書111aに文字列の追加や文字列の削除などの編集を加え、文書261を生成する。そして文書編集部250は、ユーザからの文書保存の指示を受け取ると、作成した文書261を文書記憶部260に格納する。
なお、図14の例では、雛形文書111aの名称を「X」、ユーザ装置200で作成された文書261の名称を「Y1」、ユーザ装置300で作成された文書361の名称を「Y2」、ユーザ装置400で作成された文書461の名称を「Y3」とする。
各ユーザ装置200,300,400における文書261,361,461作成時の操作入力内容は、操作ログとして操作ログ記憶部240,340,440に格納される。図14の例では、操作ログ記憶部240,340,440には、それぞれ操作ログ管理テーブル241,341,441が格納されている。操作ログ管理テーブル241,341,441には、入力された文字列ごとの操作情報が記録されている。
例えばユーザ装置200であれば、操作ログ取得部230が、ユーザインタフェース部210または仮名漢字変換部220から、文書編集部250に対して入力される文字列を取得する。仮名漢字変換部220から取得される文字列は、例えば変換により確定した仮名または漢字の文字列である。操作ログ取得部230は、取得した文字列の操作情報を生成し、操作ログ管理テーブル241に登録する。
操作ログ管理テーブル241には、文書、ID、時刻、操作、および入力文字列の欄が設けられている。操作ログ管理テーブル241内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つの操作情報となる。
文書の欄には、操作対象の文書の名称が設定される。IDの欄には、操作情報の識別子(ID)が設定される。図14の例では、文書の名称と、その文書に対する操作情報に昇順で設定される識別番号との組が、操作情報のIDとして使用されている。時刻の欄には、文字列が入力された時刻(入力時刻)が設定される。操作の欄には、操作の種別が設定される。操作の種別としては、例えば文字列の挿入操作を示す「挿入」がある。入力文字列の欄には、入力された文字列が設定される。
このようにして、各ユーザ装置200,300,400には、雛形文書111aに修正を加えることで作成された文書261,361,461と、修正操作の操作ログが記録された操作ログ管理テーブル241,341,441とが格納される。文書261,361,461と操作ログ管理テーブル241,341,441内の操作ログとは、文書作成支援装置100の文書・操作ログ収集部121によって収集される。ここで、操作ログについては、文書作成支援装置100内の操作ログ記憶部122に格納される。
図15は、操作ログ記憶部のデータ構造例を示す図である。操作ログ記憶部122には、操作ログ管理テーブル122aが格納されている。操作ログ管理テーブル122aには、各ユーザ装置200,300,400から収集した操作ログが含まれる。
一方、文書については、文書分割部123によって複数の部品に分割され、被分割文書記憶部125に格納される。なお、文書分割部123は、雛形文書111aについても複数の部品に分割し、被分割文書記憶部125に格納する。雛形文書111aを分割した際には、文書分割部123は、分割によって生成された部品の種類を示す部品種類情報を、部品種類記憶部124に格納する。
図16は、文書分割処理の一例を示す図である。図16の例では、雛形文書111aと文書261,361,461とを、章ごとに分割している。例えば、雛形文書111aには、「1.前処理」、「2.中間処理」といった章が設けられている。文書分割部123は、雛形文書111aを章ごとに分割し、被分割雛形文書125aを作成する。その際、文書分割部123は、分割によって生成された各部品の種類を示す識別子を設定する。例えば、図16の例では、各部品の種別を「A」、「B」、「C」、「D」としている。また、文書分割部123は、雛形文書111aを分割して得られた各部品から、その部品の特徴を表すキーワードを抽出する。図16の例では、章のタイトルの文字列をキーワードとしている。そして、文書分割部123は、部品の種類とキーワードとの組を部品種類情報とし、雛形文書111aを分割して得られた部品ごとの部品種類情報を、部品種類記憶部124に格納する。
なお文書分割部123は、文書261,361,461を分割した場合、分割により生成された部品から、その部品の特徴を表すキーワードを抽出する。例えば、章のタイトルがキーワードとして抽出される。そして、文書分割部123は、抽出したキーワードで部品種類記憶部124内の部品種類情報を検索する。文書分割部123は、検索でヒットした部品種類情報に示される部品の種類を、該当キーワードを含む部品の種類とする。
文書分割部123は、雛形文書111aまたは文書261,361,461を分割した場合、部品の種別、部品内のテキスト、および文書内での部品の範囲を示すオフセットを、部品の名称に関連付けて、被分割文書記憶部125に格納する。図16の例では、被分割雛形文書125aと被分割文書群125bとが被分割文書記憶部125に格納されている。被分割雛形文書125aは、雛形文書111aを分割したものである。被分割文書群125bは、文書261,361,461それぞれ分割したものである。被分割文書群125b内の文書の名称ごとの情報が、個々の被分割文書である。
なお、図16の例では、被分割雛形文書125aと被分割文書群125bとに関し、種類が「A」、「B」の部品の情報のみが示されており、種類が「C」、「D」の部品の情報は省略されている。
雛形文書111aおよび収集した文書261,361,461の分割が終了後、操作ログ、部品種類情報、被分割雛形文書、および被分割文書を利用して、修正箇所判定処理が実行される。
図17は、修正箇所判定処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS31]文書差分抽出部131は、被分割文書記憶部125内の被分割雛形文書および被分割文書を参照し、雛形文書と、雛形文書を修正することで作成された文書それぞれとの差分を、部品ごとに抽出する。文書差分抽出部131は、抽出した差分を示す差分情報を、文書差分記憶部132に格納する。
[ステップS32]対応付け部141は、操作ログ記憶部122内の操作ログと文書差分記憶部132内の文書差分情報とを参照し、入力操作ごとの操作情報に対して、文書差分情報を対応付ける。この際の対応付けは、未確定の対応関係を含む仮対応付けである。対応付け部141は、仮対応付けの結果から仮対応表を作成し、仮対応表記憶部142に格納する。なお、対応付け処理の詳細は、後述する(図19参照)。
[ステップS33]頻出連続削除文字列抽出部151は、仮対応表記憶部142内の仮対応表を参照し、文書作成時に削除された文字列間の関係を解析する。例えば頻出連続削除文字列抽出部151は、同一文書内で、時系列上で連続して削除された文字列の組を抽出し、連続削除文字列とする。そして、頻出連続削除文字列抽出部151は、連続して削除されることの多い連続削除文字列を検出し、頻出連続削除文字列とする。頻出連続削除文字列抽出部151は、検出した頻出連続削除文字列を、頻出操作記憶部152に格納する。なお、頻出連続削除文字列抽出処理の詳細は、後述する(図22参照)。
[ステップS34]操作対象推定部161は、仮対応表記憶部142内の仮対応表と、頻出操作記憶部152内の頻出連続削除文字列とを参照し、対応関係が未確定の操作情報に関して、操作対象箇所の差分情報を推定する。操作対象推定部161は、仮対応表に対して推定結果を反映させて対応表を作成し、作成した対応表を対応表記憶部162に格納する。なお、操作対象推定処理の詳細は、後述する(図24参照)。その後、修正箇所判定処理が終了する。
次に、文書差分抽出処理について、具体例を用いて説明する。
図18は、文書差分抽出の一例を示す図である。例えば被分割雛形文書125aの種類「A」の部品には「目印と選択肢を」というテキストが含まれており、種類「B」の部品には「矢印は文章のセレクトを」というテキストが含まれている。このような被分割雛形文書125aに修正を加えて複数の文書が作成されている。
名称が「Y1」の文書では、種類「A」の部品には「ボタンとチョイスを」というテキストが含まれており、種類「B」の部品には「矢印はテキストの選び方を」というテキストが含まれている。
名称が「Y2」の文書では、種類「A」の部品には「マークと項目を」というテキストが含まれており、種類「B」の部品には「矢印は文字列の指定を」というテキストが含まれている。
名称が「Y3」の文書では、種類「A」の部品には「星型とスイッチを」というテキストが含まれており、種類「B」の部品には「ポインタは文章のスイッチを」というテキストが含まれている。
被分割文書群125b内の個々の被分割文書と被分割雛形文書125aとが比較され、文書ごとの差分情報が生成される。生成された差分情報は、文書差分記憶部132に格納される。
図18の例では、文書差分記憶部132内に差分情報管理テーブル132aが格納されている。差分情報管理テーブル132aには、修正前文書、修正後文書、部品、挿入文字列、および削除文字列の欄が設けられている。修正前文書の欄には、雛形文書の名称が設定される。修正後文書の欄には、雛形文書を修正することで生成された文書の名称が設定される。部品の欄には、分割処理により生成された部品の種類が設定される。挿入文字列の欄には、各部品に挿入された文字列(挿入文字列)が設定される。削除文字列の欄には、挿入文字列の挿入位置から削除された文字列(削除文字列)が設定される。
例えば、名称「Y1」の文書の種類「A」の部品では、雛形における「目印と選択肢を」の部分が「ボタンとチョイスを」に修正されている。すると、「目印」の文字列が削除され、代わりに「ボタン」の文字列が挿入されていることが分かる。また「選択肢」の文字列が削除され、「チョイス」の文字列が挿入されていることが分かる。そこで文書差分記憶部132は、修正前文書「X」、修正後文書「Y1」、部品「A」、挿入文字列「ボタン」、削除文字列「目印」という差分情報を生成し、差分情報管理テーブル132aに登録している。また文書差分記憶部132は、修正前文書「X」、修正後文書「Y1」、部品「A」、挿入文字列「チョイス」、削除文字列「選択肢」という差分情報を生成し、差分情報管理テーブル132aに登録している。
次に、操作情報と差分情報との間の対応付け処理について説明する。
図19は、対応付け処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS41]対応付け部141は、操作ログ記憶部122内の操作ログ管理テーブル122aに登録されている未処理の操作情報を1つ選択する。
[ステップS42]対応付け部141は、文書差分記憶部132内の差分情報管理テーブル132aから、ステップS41で選択した操作情報と文書の名称が同じ差分情報の中で、選択した操作情報の入力文字列と一致する挿入文字列を有する差分情報を検索する。
[ステップS43]対応付け部141は、入力文字列と一致する挿入文字列を有する差分情報が1つだけか否かを判断する。該当する差分情報が1つだけであれば、処理がステップS44に進められる。該当する差分情報が複数あれば、処理がステップS46に進められる。
[ステップS44]対応付け部141は、ステップS42の検索で1つの差分情報のみがヒットした場合、ステップS41で選択した操作情報に、ヒットした差分情報を対応付け、仮対応表に登録する。
[ステップS45]対応付け部141は、仮対応表に登録した操作情報に対して、「確定」を示すフラグを設定する。その後、処理がステップS48に進められる。
[ステップS46]対応付け部141は、ステップS42の検索で複数の差分情報がヒットした場合、ステップS41で選択した操作情報に、ヒットした複数の差分情報を対応付け、仮対応表に登録する。
[ステップS47]対応付け部141は、仮対応表に登録した操作情報に対して、「未確定」を示すフラグを設定する。
[ステップS48]対応付け部141は、未処理の操作情報が操作ログ記憶部122内にあるか否かを判断する。未処理の操作情報があれば、処理がステップS41に進められる。すべての操作情報に対して差分情報の対応付けが完了していれば、対応付け処理が終了する。
図20は、操作情報と差分情報との対応付け例を示す図である。図20の例では、名称「Y3」の文書に着目して、操作情報と差分情報の対応付けを示している。例えば、名称「Y3」の文書に「星型」という文字列が入力されている。差分情報管理テーブル132a内の修正後文書「Y3」の差分情報のみを検索対象として、挿入文字列が「星型」の差分情報が検索される。図20の例では、種類「A」の部品に関する1つの差分情報が検索でヒットする。そこで、入力文字列が「星型」の操作情報に対して、差分情報が1つだけ対応付けられる。この場合、対応関係が1対1で決定するため、「確定」のフラグが付与される。同様に、入力文字列が「ポインタ」の操作情報に対しても、1つの差分情報が対応付けられ、「確定」のフラグが付与される。
一方、入力文字列が「スイッチ」の操作情報に基づいて、「スイッチ」と同じ挿入文字列を検索すると、2つの差分情報がヒットする。そこで、入力文字列が「スイッチ」の操作情報に対して2つの差分情報が対応付けられ、「未確定」のフラグが付与される。
このような操作情報と差分情報との対応関係が、仮対応表に登録される。
図21は、仮対応表のデータ構造例を示す図である。仮対応表142aは、操作ログ管理テーブル122aに、部品、削除文字列、および確定フラグの欄を追加した構造となっている。追加された部品の欄には、操作情報に対応付けられた差分情報に示される部品の種類が設定される。削除文字列の欄には、操作情報に対応付けられた差分情報に示される削除文字列が設定される。確定フラグの欄には、操作情報への差分情報の対応付けが確定か、未確定かを示すフラグが設定される。
図21の例では、文書の名称「Y3」のID「Y3−2」の操作情報に対して、複数の差分情報が対応付けられている。そのため、その操作情報に対応付けて、部品の欄に「A」と「B」との複数の種類が設定されており、削除文字列との欄に「選択肢」と「セレクト」との複数の削除文字列が設定されている。そして、複数の差分情報が対応付けられたID「Y3−2」の操作情報には、「未確定」のフラグが設定されている。
このような仮対応表における「確定」のフラグが設定された操作情報に対応付けられた差分情報の削除文字列が解析され、頻出連続削除文字列が抽出される。
図22は、頻出連続削除文字列抽出処理の手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS51]頻出連続削除文字列抽出部151は、仮対応表142aから、未処理の1つの文書に関する操作ログと、その操作ログ内の各操作情報に対応付けられた差分情報を取得する。
[ステップS52]頻出連続削除文字列抽出部151は、ステップS51で取得した操作ログから、「確定」のフラグが付与された操作情報(op0)を、入力時刻の古いものから順に取得する。
[ステップS53]頻出連続削除文字列抽出部151は、ステップS52で取得した操作情報(op0)と同じ部品に対する操作情報(op0)と連続の確定操作の操作情報(op1)を、仮対応表142aから抽出する。ここで、連続の操作とは、同一文書かつ同一部品に対する操作情報を時系列に並べられたときの操作情報の配列において連続している操作のことである。従って、ステップS52で抽出した操作情報(op0)の直前の操作情報と、直後の操作情報とが連続する操作を示す操作情報となる。この際、連続であるための時間の閾値(例えば5分)を設定してもよい。すなわち操作情報(op0)の直前または直後の操作情報のうち、操作情報(op0)との間の入力時刻の差が閾値以下の操作情報のみを、操作情報(op0)と連続の操作を示す操作情報(op1)とすることができる。
[ステップS54]頻出連続削除文字列抽出部151は、ステップS52とステップS53とで抽出した各操作情報(op0,op1)の組み合わせを、連続操作として連続操作管理テーブルに記録する。なお、操作の前後関係は考慮せずに、同じ組み合わせの連続操作が連続操作管理テーブルに登録されていない場合にのみ、新たに登録するようにしてもよい。
[ステップS55]頻出連続削除文字列抽出部151は、ステップS52で抽出した操作情報に連続する操作の操作情報をすべて抽出しかた否かを判断する。連続するすべての操作の操作情報を抽出した場合、処理がステップS56に進められる。未抽出の操作情報があれば、処理がステップS53に進められる。
[ステップS56]頻出連続削除文字列抽出部151は、ステップS52の抽出処理において、ステップS51で取得した1つの文書の操作ログ内のすべての操作情報を抽出したか否かを判断する。該当操作ログ内のすべての操作情報を抽出した場合、処理がステップS57に進められる。未抽出の操作情報がある場合、処理がステップS52に進められる。
[ステップS57]頻出連続削除文字列抽出部151は、ステップS51においてすべての文書の操作ログを取得したか否かを判断する。すべての操作ログを取得していれば、処理がステップS58に進められる。未取得の操作ログがあれば、処理がステップS51に進められる。
[ステップS58]頻出連続削除文字列抽出部151は、連続操作に対応する削除文字列の組み合わせを連続削除文字列とし、各連続削除文字列の出現回数(連続削除回数)を算出する。
[ステップS59]頻出連続削除文字列抽出部151は、連続削除回数が所定の値以上の連続削除文字列を、頻出連続削除文字列として特定する。頻出連続削除文字列抽出部151は、特定した頻出連続削除文字列を、頻出操作記憶部152に格納する。その後、頻出連続削除文字列抽出処理が終了する。
図23は、頻出連続削除文字列の抽出例を示す図である。なお図23に示す仮対応表142aは、確定フラグが「確定」の操作情報のみを示している。
ここで、名称が「Y1」の文書の操作ログにおいて、ID「Y1−1」の操作情報とID「Y1−2」の操作情報とに示される操作は、連続する確定の操作であり、共に種類「A」の部品を対象とした操作である。またID「Y1−3」の操作情報とID「Y1−4」の操作情報とに示される操作は、連続する確定の操作であり、共に種類「B」の部品を対象とした操作である。そこで、名称が「Y1」の文書の操作ログからは、「目印」と「選択肢」との組の連続削除文字列、および「文章」と「セレクト」との組の連続削除文字列も抽出される。名称が「Y2」の文書の操作ログからも、「目印」と「選択肢」との組の連続削除文字列、および「文章」と「セレクト」との組の連続削除文字列が抽出される。
抽出された連続削除文字列は、連続操作管理テーブル151aに登録される。連続操作管理テーブル151aは、例えばRAM102内に作成されたデータテーブルである。連続操作管理テーブル151aには、連続操作、部品、および連続削除文字列の欄が設けられている。
連続操作の欄には、連続削除文字列の抽出元となった2つの操作情報それぞれにIDが設定される。部品の欄には、連続削除文字列の抽出元となった操作情報に対応付けられた部品の種別が設定される。なお、第2の実施の形態では、連続操作を同一部品内での操作でのみ判断しているため、連続削除文字列の抽出元となった2つの操作情報それぞれの操作対象の部品は共通する。連続削除文字列の欄には、抽出された連続削除文字列が設定される。
頻出連続削除文字列抽出部151は、連続操作管理テーブル151aを参照し、連続削除文字列の出現回数(連続削除回数)を計数する。例えば頻出連続削除文字列抽出部151は、連続削除文字列の連続削除回数を集計テーブル151bに登録する。集計テーブル151bは、例えばRAM102内に作成されたデータテーブルである。
図23の例では、集計テーブル151b内に部品、連続削除文字列、および連続削除回数の欄が設けられている。部品の欄には、連続削除文字列の削除操作の対象となった部品の種類が設定される。連続削除文字列の欄には、連続削除文字列が設定される。削除回数の欄には、連続操作管理テーブル151aにおける連続削除文字列の出現回数が設定される。例えば、「目印」と「選択肢」との連続削除文字列は、連続操作管理テーブル151aに2回出現しているため、出現回数(連続削除回数)は2回である。
連続操作管理テーブル151aは、連続削除回数が所定の閾値以上の連続削除文字列を、頻出連続削除文字列として集計テーブル151bから抽出する。図23の例では、閾値を2回としている。この場合、「目印」と「選択肢」との連続削除文字列、および「文書」と「セレクト」との連続削除文字列が、頻出連続削除文字列として抽出される。連続操作管理テーブル151aは、抽出した頻出連続削除文字列を、頻出操作記憶部152に格納する。
図23の例では、頻出操作記憶部152には、頻出操作管理テーブル152aが設けられている。頻出操作管理テーブル152aには、部品と頻出連続削除文字列との欄が設けられている。部品の欄には、頻出連続削除文字列を削除したときの操作対象となった部品の種類が設定される。連続操作削除文字列の欄には、連続操作削除文字列が設定される。
図24は、操作対象推定処理の手順を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS61]操作対象推定部161は、仮対応表142aから、未処理の1つの文書に関する操作ログと、その操作ログ内の各操作情報に対応付けられた差分情報を取得する。
[ステップS62]操作対象推定部161は、ステップS51で取得した操作ログから、未確定操作の操作情報(op2)を、入力時刻の古いものから順に取得する。
[ステップS63]操作対象推定部161は、ステップS62で取得した未確定操作の操作情報に仮に対応付けられた差分情報の1つを仮対応表142aから選択し、選択した差分情報から部品の種類を抽出する。
[ステップS64]操作対象推定部161は、ステップS61で取得した未確定操作に対して、ステップS63で抽出した種類の部品内において時系列で前後の確定操作を抽出する。すなわち操作対象推定部161は、ステップS63で抽出した部品の種類で示される部品に対する未確定操作の操作情報(op2)と連続の確定操作の操作情報(op3)を、仮対応表142aから抽出する。なお、ステップS62で抽出した操作情報(op2)の直前の操作情報と、直後の操作情報とが連続する確定操作の操作情報(op3)となる。従って、この操作情報の抽出処理では、0〜2個の操作情報が抽出される。この際、連続であるための時間の閾値(例えば5分)を設定してもよい。すなわち操作情報(op2)の直前または直後の操作情報のうち、操作情報(op2)との間の入力時刻の差が閾値以下の操作情報のみを、操作情報(op2)と連続の操作を示す操作情報(op3)とすることができる。
[ステップS65]操作対象推定部161は、ステップS64で抽出した確定操作の操作情報(op3)のうち、未確定操作の操作情報(op2)との組み合わせで頻出連続削除文字列となる操作情報の数を算出する。すなわち、操作対象推定部161は、仮対応表142aを参照し、ステップS62で取得した未確定操作の操作情報(op2)に仮に対応付けられた差分情報から削除文字列を抽出する。また操作対象推定部161は、ステップS64で抽出した確定操作の各操作情報(op3)に対応付けられた差分情報から削除文字列を抽出する。そして操作対象推定部161は、未確定操作の操作情報(op2)に対応する削除文字列と、確定操作の操作情報(op3)に対応する削除文字列それぞれとの組を作成する。削除文字列の組は、抽出された操作情報(op3)の個数分生成される。操作対象推定部161は、作成した削除文字列の組のうち、頻出連続削除文字列に合致する組の数を計数する。そして操作対象推定部161は、計数の結果を、頻出連続削除文字列となる適合確定操作数とする。この適合確定操作数は、0〜2の何れかの整数となる。
[ステップS66]操作対象推定部161は、ステップS63において、ステップS62で取得した未確定操作の操作情報に仮に対応付けられたすべての差分情報を選択したか否かを判断する。すべての差分情報を選択した場合、処理がステップS67に進められる。未選択の差分情報がある場合、処理がステップS63に進められる。
[ステップS67]操作対象推定部161は、ステップS62で取得した未確定操作の操作情報に対し、ステップS65で算出した適合確定操作数が最も多い差分情報を対応付ける。すなわち、ステップS65で算出した適合確定操作数が最も多い差分情報で示される種類の部品が、ステップS62で取得した操作情報で示される未確定操作の操作対象と推定される。
[ステップS68]操作対象推定部161は、ステップS62において未確定操作のすべての操作情報を取得したか否かを判断する。未確定操作のすべての操作情報を取得した場合、処理がステップS69に進められる。操作情報を未取得の未確定操作がある場合、処理がステップS62に進められる。
[ステップS69]操作対象推定部161は、ステップS61において、すべての文書の操作ログを取得したか否かを判断する。すべての文書の操作ログを取得した場合、処理がステップS70に進められる。未取得の操作ログがある場合、処理がステップS61に進められる。
[ステップS70]操作対象推定部161は、操作ログ内の各操作情報と、その操作情報に示される操作の対象となった部品の種類との対応関係を示す対応表を作成する。操作対象推定部161は、作成した対応表を対応表記憶部162に格納する。その後、操作対象推定処理が終了する。
このようにして、未確定操作の対象の部品を推定することができる。
図25は、操作対象推定処理の一例を示す図である。図25の例では、ID「Y3−2」の操作情報で示される未確定操作の対象を推定している。この未確定操作には、種類「A」の部品から抽出された差分情報と、種類「B」の部品から抽出された差分情報とが仮に対応委付けられている。ID「Y3−2」の操作情報の直前の操作を示すID「Y3−1」の操作情報は、操作の対象が種類「A」の部品である。またID「Y3−1」の操作情報で示される操作は、確定操作である。また、ID「Y3−1」の操作情報の時刻とID「Y3−2」の操作情報の時刻との差が、連続の操作であるための時間の閾値と比較される。例えば時間の閾値を5分とすると、ID「Y3−1」の操作情報の時刻(20:23)と、ID「Y3−2」の操作情報の時刻(20:25)との差(3分)は、閾値以下となる。
そこでID「Y3−1」の操作情報に対応付けられた差分情報から削除文字列「目印」が抽出される。またID「Y3−2」の操作情報に仮に対応付けられた種類「A」の部品の差分情報から、削除文字列「選択肢」が抽出される。図25の例では、抽出された削除文字列の組が、連続操作管理テーブル161aに設定されている。連続操作管理テーブル161aは、例えばRAM102内に設けられる。
連続操作管理テーブル161aには、ID、部品、削除文字列、前後の確定操作、前後の操作の削除文字列、および頻出判定フラグの欄が設定されている。IDの欄には、未確定操作の操作情報のIDが設定される。部品の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の部品の種類が設定される。削除文字列の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の削除文字列が設定される。前後の確定操作の欄には、未確定操作に連続する確定操作を示す操作情報のIDが設定される。前後の操作の削除文字列の欄には、未確定操作に連続する確定操作における削除文字列が設定される。頻出判定フラグの欄には、未確定操作の操作情報に仮に対応付けられた差分情報の削除文字列と、連続する確定操作の削除文字列との組が、頻出連続削除文字列か否かを示すフラグが設定される。
連続操作管理テーブル161aに設定された削除文字列の組は、頻出操作管理テーブル152aに設定された頻出連続削除文字列と比較される。連続操作管理テーブル161aに設定された削除文字列の組が頻出連続削除文字列であれば、削除文字列の組に対応付けて、頻出連続削除文字列であることを示すフラグが設定される。例えば図25に示す連続操作管理テーブル161aでは、頻出連続削除文字列の組に対応付けられた頻出連続削除文字列の欄に、「yes」と設定される。図25の例では、「目印」と「選択肢」との組は、頻出連続削除文字列である。そのため、ID「Y3−2」の操作情報に仮に対応付けられた種類「A」の部品から抽出した差分情報の頻出判定フラグが「yes」に設定されている。
操作対象推定部161は、連続操作管理テーブル161aにおける未確定操作のIDごとに、未確定操作と削除文字列の組み合わせが頻出連続削除文字列である適合確定操作数を計数する。適合確定操作数の集計は、未確定操作に仮に対応付けられた差分情報の部品の種類ごとに行われる。
図25の例では、適合確定操作数の集計結果を、適合確定操作数管理テーブル161bに設定している。適合確定操作数管理テーブル161bには、ID、部品、適合確定操作数、および対応付けフラグの欄が設けられている。IDの欄には、未確定操作の操作情報のIDが設定される。部品の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の部品の種類が設定される。適合確定操作数の欄には、未確定操作との削除文字列の組み合わせが頻出連続削除文字列である適合確定操作数が設定される。適合確定操作数は、0〜2のいずれかの整数である。対応付けフラグの欄には、未確定操作の操作情報に部品の種類を対応付けるか否かを示すフラグが設定される。図25の例では、未確定操作の操作情報に部品の種類を対応付けることを示すフラグが丸印で表されている。
操作対象推定部161は、部品の種類ごとに求められた適合確定操作数が最も大きい部品の種類を、未確定操作の操作情報に対応付ける。図25の例では、ID「Y3−2」の操作情報に対して、種類「A」の部品が対応付けられている。
そして操作対象推定部161は、確定操作と、対応する部品の種類を推定した未確定操作に関する対応表162aを作成し、対応表記憶部162に格納する。
対応表162aには、IDと部品との欄が設けられている。IDの欄には、操作情報のIDが設定される。部品の欄には、操作情報に対応付けられた差分情報に示される部品の種類が設定される。
このような対応表162aに基づいて、セット修正部品判定部171が、同時に編集される可能性の高い部品を、新たに文書を作成するユーザに提示する。
図26は、セット修正部品の判定例を示す図である。図26には、操作ログ41に基づいてセット修正部品を判定する例が示されている。操作ログ41に含まれる各操作情報には、「Y4−1」、「Y4−2」、「Y4−3」、「Y4−4」のIDが付与されている。対応表162aでは、操作情報のIDに対応付けて、部品の種類が設定されている。セット修正部品判定部171は、操作ログ41に対して、各操作情報に対応付けられた部品の種類を追加した修正履歴44を作成する。この修正履歴44を用いれば、交互に操作された部品の種類が判別できる。例えば、所定の時間内に2つの種類の部品に対する操作が行われていれば、それらの部品の種類の組がセット修正部品172aとされ、セット修正部品記憶部172に格納される。
セット修正部品172aは、例えば、新たに文書を作成するユーザがユーザ装置500を用いて雛形文書の取得要求を文書作成支援装置100に出力した際に、雛形・支援情報提供部112によって読み出される。雛形・支援情報提供部112は、セット修正部品172aの情報を含む支援情報を作成し、雛形文書と支援情報とをユーザ装置500に送信する。すると、ユーザ装置500において、支援情報が表示される。
図27は、支援情報の表示例を示す図である。図27には、雛形文書と支援情報とを受け取ったユーザ装置500において表示される文書編集画面70の例が示されている。文書編集画面70は、文書構成表示部71と編集部72とを有している。文書構成表示部71には、文書の各章のタイトルが表示されている。文書構成表示部71では、編集部72で編集されている部品とセットで修正する部品のタイトルの文字列が、白黒反転した文字で表示されている。
編集部72には、編集対象の文書の内容が表示される。雛形文書を取得した直後は、編集部72に雛形文書の内容が表示される。ユーザは、編集部72において文字列の挿入や削除を行うことで雛形文書に修正を加え、新たな文書を作成する。
図27の例では、「3.前処理」の章が編集部72で現在編集されている。そのため、文書構成表示部71では、「3.前処理」の章とセットと修正すべき他の章として「2.データ構造」、「5.後処理」が反転表示されている。
以上説明したように、第2の実施の形態では、全文書を用いて、雛形文書内の近い箇所から時間的に連続して削除されることの多い文字列の組み合わせ(頻出連続削除文字列)が抽出される。そして、挿入箇所の候補が複数ある入力については、その時刻に削除された文字列と、直前(あるいは直後)の時刻に削除された文字列の組み合わせが、頻出連続削除文字列となるような箇所に挿入されたと推定される。また、各時刻に雛形文書から削除された文字列は、操作ログからはわからないので、雛形文書との差分から求めた挿入文字列と削除文字列の対応関係から推定される。
これにより、雛形文書の複数の箇所へ入力された文字列について、その直前と直後との時刻の入力における挿入箇所が文書内で互いに離れていた場合であっても、他の文書の作成時の操作ログを手がかりに、適切な挿入箇所を推定することができる。また、同じ文字列を削除した箇所でも、挿入される文字列は文書により違うことが多いが、第2の実施の形態では各時刻に削除されたらしい文字列を推測し、削除文字列によって判断するため、文書による挿入文字列の違いの影響を受けずにすむ。その結果、適切な操作箇所の推定が可能となる。
しかも、第2の実施の形態では、雛形文書に基づいて新たな文書を作成する際に、関連して書き換えられることの多い箇所がユーザに提示される。これにより文書作成時の編集漏れを抑止できる。
〔その他の応用例〕
なお、上記の第2の実施の形態では、操作ログに含まれる各操作の操作情報の操作箇所の判別結果(対応表)を、セットで修正する部品の判定に使用しているが、他の用途に利用することもできる。
また、上記の第2の実施の形態では、図22のステップS53や図24のステップS64時系列で連続する確定操作を抽出する際に、同一部品内の確定操作を対象としているが、連続する確定操作の抽出範囲はこれに限るものではない。例えば、同一の段落内のみを連続する確定操作の抽出対象とすることもできる。
また上記の処理機能は、コンピュータによって実現することができる。その場合、修正箇所判別装置や文書作成支援装置100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) 元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成する差分抽出手段と、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が1つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする対応付け手段と、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する頻出操作判定手段と、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する推定手段と、
を有する修正箇所判別装置。
(付記2) 前記差分抽出手段は、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記1記載の修正箇所判別装置。
(付記3) 前記頻出操作判定手段は、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記2記載の修正箇所判別装置。
(付記4) 前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記2または3のいずれかに記載の修正箇所判別装置。
(付記5) 前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記2乃至4のいずれかに記載の修正箇所判別装置。
(付記6) 前記頻出操作判定手段は、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記1乃至5のいずれかに記載の修正箇所判別装置。
(付記7) 前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記1乃至6のいずれかに記載の修正箇所判別装置。
(付記8) コンピュータに、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が1つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
処理を実行させることを特徴とする修正箇所判別プログラム。
(付記9) 差分情報を生成する際には、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記8記載の修正箇所判別プログラム。
(付記10) 頻出連続削除文字列を判定する際には、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記9記載の修正箇所判別プログラム。
(付記11) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記9または10のいずれかに記載の修正箇所判別プログラム。
(付記12) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記9乃至11のいずれかに記載の修正箇所判別プログラム。
(付記13) 頻出連続削除文字列を判定する際には、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記8乃至12のいずれかに記載の修正箇所判別プログラム。
(付記14) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記8乃至13のいずれかに記載の修正箇所判別プログラム。
(付記15) コンピュータが、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が1つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
ことを特徴とする修正箇所判別方法。
(付記16) 差分情報を生成する際には、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記15記載の修正箇所判別方法。
(付記17) 頻出連続削除文字列を判定する際には、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記16記載の修正箇所判別方法。
(付記18) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記16または17のいずれかに記載の修正箇所判別方法。
(付記19) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記16乃至18のいずれかに記載の修正箇所判別方法。
(付記20) 頻出連続削除文字列を判定する際には、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記15乃至19のいずれかに記載の修正箇所判別方法。
(付記21) 操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記15乃至20のいずれかに記載の修正箇所判別方法。