(57)【特許請求の範囲】
【請求項１】
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成する差分抽出手段と、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする対応付け手段と、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する頻出操作判定手段と、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する推定手段と、
を有する修正箇所判別装置。
【請求項２】
前記差分抽出手段は、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする請求項１記載の修正箇所判別装置。
【請求項３】
前記頻出操作判定手段は、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする請求項２記載の修正箇所判別装置。
【請求項４】
前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする請求項２または３のいずれかに記載の修正箇所判別装置。
【請求項５】
前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定することを特徴とする請求項２乃至４のいずれかに記載の修正箇所判別装置。
【請求項６】
コンピュータに、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
処理を実行させることを特徴とする修正箇所判別プログラム。
【請求項７】
コンピュータが、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
ことを特徴とする修正箇所判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文書の修正箇所を判別する修正箇所判別装置、修正箇所判別プログラム、および修正箇所判別方法に関する。
【背景技術】
【０００２】
コンピュータによる文書作成・編集作業では、文書編集を支援するさまざまな技術が考えられている。例えば、過去の訂正パターンを適応的に用いて、特定の単語に対する好適な置き換えを学習するスペル・チェックおよび訂正のためのシステムなどが考えられている。
【０００３】
また、過去に作成された文書を再利用することで、文書作成を効率化することも考えられている。例えば、マニュアルなど類似形式の文書が大量に作成される文書は、過去に作成された文書の再利用を図ることにより、文書作成者の負担の軽減が可能となる。ただし、メーカのマニュアルであれば、ハードウェアまたはソフトウェアの製品数、また、製品によっては製品数に納入顧客数を掛け合わせた数といった大量の文書が作成される。これらの文書は類似しているが、全く同じものはない。そのため、個人個人の判断で文書を再利用するのでは、この違いを見落としなく変更することは容易ではない。そこで、過去に作成された文書を部品化して共有し、部品化された文書を再利用する試みがされている。
【０００４】
なお、単に文書を部品化しただけでは、どれを再利用してよいのか判断することは難しい。そのため、文書と共に文書作成時の操作履歴を記録し、その操作履歴を文書の部品間の関係などに基づいて階層化し、階層化された操作履歴を作成者に参照させることで、文書作成時における作業効率を向上させる文書作成支援装置が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１５９０４４号公報
【特許文献２】特開平１０−２２２５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、文書に対する操作履歴を用いたさまざまな文書作成支援技術が考えられている。ここで、文書編集の際に操作した箇所だけでなく、その操作を行った時刻の情報を用いれば、より高度な文書作成支援が可能である。
【０００７】
しかし、従来は、過去の文書編集で操作された時刻と操作された箇所との両方を取得できない場合があった。例えば、文書操作時のキーボードからの入力内容を入力された時刻と共に記録することで、入力操作により入力文字列と操作時刻とを取得することはできるが、操作された箇所を特定することができない。なお、文書編集ソフトウェアの中には文書の操作履歴を時刻付きで保存する機能を備えたものも存在するが、すべての文書編集ソフトウェアにそのような操作履歴の保存機能が備えられているわけではない。
【０００８】
本発明はこのような点に鑑みてなされたものであり、文書に対する特定の時刻の操作入力の操作対象となった箇所を判別することができる修正箇所判別装置、修正箇所判別プログラム、および修正箇所判別方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、修正箇所判別装置が提供される。修正箇所判別装置は、差分抽出手段、対応付け手段、頻出操作判定手段、および推定手段を有する。差分抽出手段は、元文書と、元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照する。差分抽出手段は、元文書と複数の修正文書それぞれとを比較する。そして差分抽出手段は、元文書に対して挿入された挿入文字列、挿入文字列が挿入された位置から削除された削除文字列、および挿入文字列の修正文書内での位置を含む差分情報を、修正文書ごとに生成する。対応付け手段は、元文書から複数の修正文書それぞれを作成する際に記録された入力文字列、および入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照する。対応付け手段は、操作情報それぞれに対して、操作情報と同じ修正文書の識別情報と、操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付ける。そして対応付け手段は、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする。頻出操作判定手段は、同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択する。次に頻出操作判定手段は、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出する。そして頻出操作判定手段は、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する。推定手段は、未確定操作情報に対応付けられた差分情報のうち、差分情報に含まれる削除文字列と、未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出する。そして推定手段は、検出した差分情報に示される位置を、未確定操作情報を記録した際に操作された位置と推定する。
【００１０】
また上記課題を解決するために、上記修正箇所判別装置と同様の処理をコンピュータに実行させる修正箇所判別プログラムが提供される。
さらに上記課題を解決するために、上記修正箇所装置と同様の処理をコンピュータで実行する修正箇所判別方法が提供される。
【発明の効果】
【００１１】
操作対象の位置を入力文字列から一意に決定できない操作情報について、操作対象となった位置を適切に推定することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の機能を示すブロック図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】文書作成支援装置のハードウェアの一構成例を示す図である。
【図４】雛形を用いた文書作成に対する文書作成支援例を示す図である。
【図５】支援情報の作成手順の概要を示す図である。
【図６】確定操作の例を示す図である。
【図７】未確定操作の例を示す図である。
【図８】直前または直後の確定操作に基づいて未確定操作の操作対象部品の推定例を示す図である。
【図９】直前または直後の確定操作だけに基づいて未確定操作の操作対象部品を推定できない例を示す図である。
【図１０】文書の差分を用いた修正箇所判定処理の前半を示す図である。
【図１１】文書の差分を用いた修正箇所判定処理の後半を示す図である。
【図１２】ユーザ装置の機能を示すブロック図である。
【図１３】文書作成支援装置の機能を示すブロック図である。
【図１４】ユーザ装置に格納される文書と操作ログとの例を示す図である。
【図１５】操作ログ記憶部のデータ構造例を示す図である。
【図１６】文書分割処理の一例を示す図である。
【図１７】修正箇所判定処理の手順を示すフローチャートである。
【図１８】文書差分抽出の一例を示す図である。
【図１９】対応付け処理の手順を示すフローチャートである。
【図２０】操作情報と差分情報との対応付け例を示す図である。
【図２１】仮対応表のデータ構造例を示す図である。
【図２２】頻出連続削除文字列抽出処理の手順を示すフローチャートである。
【図２３】頻出連続削除文字列の抽出例を示す図である。
【図２４】操作対象推定処理の手順を示すフローチャートである。
【図２５】操作対象推定処理の一例を示す図である。
【図２６】セット修正部品の判定例を示す図である。
【図２７】支援情報の表示例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態の機能を示すブロック図である。修正箇所判別装置は、差分抽出手段２、対応付け手段４、頻出操作判定手段５、および推定手段６を有する。また修正箇所判別装置からアクセス可能な場所に、文書記憶手段１と操作情報記憶手段３とが設けられている。文書記憶手段１と操作情報記憶手段３とは、例えば修正箇所判別装置にネットワークを介して接続された装置内に設けることができる。また修正箇所判別装置が文書記憶手段１と操作情報記憶手段３とを有していてもよい。
【００１４】
文書記憶手段１は、元文書１ａと、元文書１ａを修正することで作成された複数の修正文書１ｂ，１ｃ，１ｄとを記憶する。
差分抽出手段２は、文書記憶手段１を参照し、元文書１ａと複数の修正文書１ｂ，１ｃ，１ｄそれぞれとを比較する。そして差分抽出手段２は、元文書１ａに対して挿入された挿入文字列、挿入文字列が挿入された位置から削除された削除文字列、および挿入文字列の修正文書内での位置を含む差分情報を、修正文書ごとに生成する。
【００１５】
操作情報記憶手段３は、元文書１ａから複数の修正文書１ｂ，１ｃ，１ｄそれぞれを作成する際に記録された入力文字列、および入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する。
【００１６】
対応付け手段４は、操作情報記憶手段３を参照し、操作情報それぞれに対して、操作情報と同じ修正文書の識別情報と、操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付ける。そして対応付け手段４は、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする。
【００１７】
頻出操作判定手段５は、同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択する。次に頻出操作判定手段５は、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出する。そして頻出操作判定手段５は、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する。
【００１８】
推定手段６は、差分情報に含まれる削除文字列と、未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組を生成する。推定手段６は、未確定操作情報に対応付けられた差分情報のうち、該当差分情報を用いて生成した削除文字列の組が頻出連続削除文字列と一致する差分情報を検出する。そして推定手段６は、検出した差分情報に示される位置を、未確定操作情報を記録した際に操作された位置と推定する。
【００１９】
このような修正箇所判別装置によれば、対応する差分情報が一意に決定される操作情報については、その差分情報に示される位置によって、操作位置が判定できる。また、差分情報が一意に決定できない操作情報については、連続して削除されることの多い削除文字列の組と同様の削除文字列の組となるような差分情報に示される位置を、その操作情報の操作対象の位置と推定できる。
【００２０】
例えば、「文書１」に対する入力文字列「ボタン」の操作情報に対して対応付ける差分情報が、「文書１」の差分情報から選択される。図１の例では、「文書１」の差分情報のうち入力文字列「ボタン」と同じ文字列を挿入文字列とする差分情報は１つだけである。そこで、「文書１」に対する入力文字列「ボタン」の操作情報に対して、差分情報を１つだけ対応付けることができる。この場合、「文書１」に対する入力文字列「ボタン」の操作情報は、確定操作情報となる。確定操作情報については、対応付けた差分情報に示される位置が、その確定操作情報で示される操作における操作対象の位置として判定できる。
【００２１】
一方、「文書３」に対する入力文字列「スイッチ」の操作情報に対して対応付ける差分情報を、「文書３」の差分情報から選択する場合を考える。この場合、図１の例では、「文書３」の差分情報のうち入力文字列「スイッチ」と同じ文字列を挿入文字列とする差分情報が２つある。そこで、「文書３」に対する入力文字列「スイッチ」の操作情報に対して、差分情報が２つ対応付けられる。この場合、「文書３」に対する入力文字列「スイッチ」の操作情報は、未確定操作情報となる。
【００２２】
未確定操作情報に関しては、頻出連続削除文字列に基づいて、操作対象の位置が推定される。頻出連続削除文字列は、複数の修正文書１ｂ，１ｃ，１ｄの作成時に、連続して削除されることの多い文字列である。図１の例では、「文書１」と「文書２」との両方で、「目印」と「選択肢」との文字列が連続して削除されている。そこで、「目印」と「選択肢」との組が、頻出連続削除文字列と判定される。
【００２３】
「文書３」に対する入力文字列「スイッチ」の未確定操作情報に対応付けられた２つの差分情報のうち、一方は位置「α」の差分情報であり、他方は位置「β」の差分情報である。そこで、未確定操作情報がそれぞれの差分情報で示される位置に対する操作であった場合に、前後の操作との関係における連続削除文字列が生成される。例えば、未確定操作の対象が位置「α」に対する挿入文字列「スイッチ」の差分情報に示される位置であれば、削除文字列「目印」と「選択肢」との組が生成される。この削除文字列の組は、頻出連続削除文字列と一致する。他方、未確定操作の対象が位置「β」に対する挿入文字列「スイッチ」の差分情報に示される位置であれば、削除文字列「矢印」と「セレクト」との組が生成される。この削除文字列の組は、頻出連続削除文字列と一致しない。その結果、「文書３」に対する入力文字列「スイッチ」の操作情報で示される操作の操作対象は、位置「α」であると推定される。
【００２４】
このように、操作情報の入力文字列と、差分情報の挿入文字列との対応付けだけでは、操作対象位置を一意に決定できない場合であっても、適切な操作位置を推定することが可能となる。
【００２５】
ここで、差分情報に示される位置としては、例えば、修正文書を複数に分割して得られる部品を示す情報を用いることができる。その場合、図１に示した修正箇所判別装置によって、各操作情報で示される操作の対象の部品が判定される。例えば複数の部品に挿入された文字列の入力について、その直前・直後の時刻の入力が別の部品への挿入であった場合であっても、他の文書の作成時の操作情報を手がかりに、直前・直後のどちらと同じ部品への挿入だったのか推定することができる。
【００２６】
なお同じ箇所からの文字列の削除でも、挿入される文字列は文書により違うことが多い。第１の実施の形態では修正前後の文書差分に基づいて各時刻に削除されたらしい文字列を推測し、未確定操作情報で示される操作の操作対象箇所を削除文字列によって判断する。すなわち、挿入された文字列は、操作対象箇所の候補の検出にのみ使用され、候補内での操作対象箇所の推定には使用されていない。そのため、文書による挿入文字列の違いの影響を受けずに、適切な修正箇所を推定できる。
【００２７】
〔第２の実施の形態〕
第２の実施の形態は、過去の文書編集時の操作時刻と操作箇所の情報を利用して、セットで編集される可能性の高い複数の箇所をユーザに提示することにより文書作成支援を行うものである。
【００２８】
他の文書を再利用して新たな文書を作成する際の編集作業では、ある文字列から他の文字列への書き換えが行われる。この際、１つの箇所の書き換えに応じて、関連する他の箇所も書き換える場合がある。このように関連性があるために、一方を書き換えれば他方もセットで書き換えることとなるような複数の箇所は、ユーザが異なっても共通していることが多い。そこで、あるユーザがある箇所を書き換えた際に、関連して書き換えられることの多い箇所を他のユーザに示すことができれば、編集漏れを抑止できる。
【００２９】
このようにセットで編集される可能性の高い複数の箇所を特定するには、操作時刻を用いることができる。例えば関連性の高い複数の操作箇所は、一定値以下の短い時間間隔で操作されるものと考えられる。そこで、文書の再利用時に、再利用元となる文書の過去の再利用において短い時間内に操作された複数の箇所をユーザに提示すれば、編集作業の効率化が可能となる。
【００３０】
図２は、第２の実施の形態のシステム構成例を示す図である。文書作成支援装置１００には、ネットワーク１０を介して複数のユーザ装置２００，３００，４００，５００が接続されている。文書作成支援装置１００は、製品のマニュアルなどの文書の雛形を保持している。そして、文書作成支援装置１００は、ユーザ装置２００，３００，４００，５００を使用するユーザが雛形を元にして新たな文書を作成する際に、セットで編集すべき箇所を提示する。
【００３１】
ユーザ装置２００，３００，４００，５００は、ユーザが文書の編集に使用するコンピュータである。
図３は、文書作成支援装置のハードウェアの一構成例を示す図である。文書作成支援装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３２】
ＲＡＭ１０２は、文書作成支援装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３３】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００３４】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、文書作成支援装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３５】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３６】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３７】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３８】
通信インタフェース１０７は、ネットワーク１０に接続されている。通信インタフェース１０７は、ネットワーク１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３９】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、文書作成支援装置１００のハードウェア構成例を示したが、ユーザ装置２００，３００，４００，５００も同様のハードウェア構成で実現できる。
【００４０】
次に、過去の編集時の操作時刻を利用して、ユーザに対してセットで編集すべき箇所を提示する機能の概要について説明する。
図４は、雛形を用いた文書作成に対する文書作成支援例を示す図である。図４の例では、複数のユーザ２１〜２３が、雛形文書３０に基づいて、文書３２，３４，３６を作成する場合を想定している。なおユーザ２１はユーザ装置２００を使用し、ユーザ２２はユーザ装置３００を使用し、ユーザ２３はユーザ装置４００を使用しているものとする。
【００４１】
なおユーザ２３の文書作成作業に先立って、ユーザ２１，２２がそれぞれ文書３２，３４を作成しているものとする。ユーザ２１が文書を作成する際には、雛形文書３０をユーザ装置２００内にコピーして、文書３２を作成する。そしてユーザ２１は、文書３２に文字列の追加や削除の操作を行い、文書３２の内容を目的に沿ったものにする。ユーザ２１が文書３２に対する操作はキーボードなどの入力装置を介して行われる。ユーザ装置２００は、キーボードから入力された文字列とその入力時刻とを採取し、操作ログ３３として保存する。同様に、ユーザ２２が文書３４を作成すると、ユーザ装置３００によって操作ログ３５が保存される。各操作ログ３３，３５には、入力や削除の各操作の内容を示す操作情報が含まれる。
【００４２】
その後、ユーザ２３が雛形文書３０に基づいて文書３６を作成するとき、文書作成支援装置１００は、文書３２，３４および操作ログ３３，３５を解析し、文書作成を支援する支援情報３７を作成する。例えば、ユーザ２２が「１．前処理」の段落と「３．後処理」の段落とを交互に修正した場合、その旨のメッセージを含む支援情報３７が作成される。作成された支援情報３７は、ユーザ２３が使用するユーザ装置４００に送信され、ユーザ装置４００の画面に表示される。ユーザ２３は、支援情報３７を参照することで、文書３６の編集に際し、「１．前処理」の段落を編集した場合には「３．後処理」の編集も検討すべきことを認識できる。
【００４３】
このように、過去にユーザ２１，２２が文書作成時に行った操作の操作情報に基づいて支援情報３７を作成することで、その後、雛形文書３０を用いた文書作成作業を行うユーザ２３の文書作成を支援できる。
【００４４】
次に、支援情報３７の作成手順の概要を説明する。
図５は、支援情報の作成手順の概要を示す図である。文書作成支援装置１００では、雛形文書３０に基づいて部品種類情報４０を作成しておく（ステップＳ１１）。部品種類情報４０は、雛形文書３０に含まれる部品種類の情報である。部品とは、所定の条件に基づいて文書を分割することで得られる部分文書である。例えば文書を、章ごとの部品、節ごとの部品、または段落ごとの部品に分割することができる。部品種類情報４０には、各部品の種類名と、その部品を特徴付けるキーワードが含まれている。図５の例では、雛形文書３０が複数の章で構成されているため、章ごとの部品が作成されている。各部品には、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」といった種類名が付与されている。また、各部品の章のタイトルが、キーワードとして用いられている。各キーワードと同じタイトルを有する部品は、同じ部品種類と判断される。
【００４５】
次に文書作成支援装置１００は、過去に作成された文書３４を部品に分割する（ステップＳ１２）。文書３４を部品に分割することで、被分割文書４２が得られる。被分割文書４２には、各部品のテキストと、そのテキストの文書３４内での範囲を示すオフセットとが設定されている。オフセットは、文書３４内の各部品の範囲を、文書内の行番号によって示している。
【００４６】
次に文書作成支援装置１００は、キーワードに基づいて、部品の種類を同定する（ステップＳ１３）。図５の例では、部品の各テキストの章のタイトルと部品種類情報４０のキーワードとを照合し、対応するキーワードに設定された種類が、その部品の種類となる。そして、文書作成支援装置１００により、部品の種類名を付与した被分割文書４３が生成される。
【００４７】
次に、文書作成支援装置１００は、文書３４の作成時に生成された操作ログ４１に対し、各操作により修正された文書３４の内の箇所を推定する（ステップＳ１４）。第２の実施の形態では、操作箇所は、部品単位で推定される。そして文書作成支援装置１００は、操作ログ４１に対して、操作ごとの操作対象となる部品の種類名を付与した修正履歴４４を生成する。
【００４８】
最後に文書作成支援装置１００は、修正履歴４４を解析し、例えば交互の修正される２つの部品をセットで修正すべき部品と判断する（ステップＳ１５）。図５の例では、部品Ｃの操作の間に部品Ａの操作が行われており、部品Ａと部品Ｃとがセットで修正すべき部品と判定されている。そして文書作成支援装置１００は、セットで修正すべき部品の組を示す支援情報４５を生成する。
【００４９】
このようにして、セットで修正すべき部品の組を特定し、支援情報４５を生成することができる。このとき、ステップＳ１４における修正箇所の推定処理が適格に行われないと、セットで修正すべき部品の組についても、正しい結果が得られない。
【００５０】
ここで、文書３４を作成する際に、ユーザ装置３００において、例えば操作対象となった位置のオフセットが操作情報として採取できれば、修正箇所の推定は容易となる。すなわち、操作の対象となった位置のオフセットを包含する範囲の部品が、操作対象の部品となる。しかし、文書内のオフセットなど、修正中の各時刻に修正された箇所を特定できる情報を得るためには、文書を編集するアプリケーションに固有の機能が用いられる。ユーザが利用している文書編集アプリケーションがこのような機能を有しているとは限らない。
【００５１】
そこで第２の実施の形態では、修正履歴の手がかりとなる情報としては、キーボード操作を監視する操作ログ取得機能を用いる。操作ログ取得機能は、文書編集アプリケーションに入力される前のキーボードからの入力情報を取得し、保存する機能である。
【００５２】
ただし、操作ログ取得機能では、キーボードから入力した文字列と、その入力時刻しかわからない。そのため、文書作成支援装置１００は、各時刻の修正箇所を、入力文字列から推定する。具体的には文書作成支援装置１００は、雛形文書３０と、その雛形文書３０に基づいて作成された文書とを比較し、その差分によって削除された文字列と挿入された文字列とを特定する。そして文書作成支援装置１００は、削除・挿入された文字列と、操作情報の文字列とを比較することで、操作情報に示される各操作の対象とされた部品を推定する。
【００５３】
このとき文書作成支援装置１００は、大別すると２段階に分けて修正箇所の推定処理を行う。修正箇所判定処理の第１段階は、操作ログに記録された操作情報を、確定操作と未確定操作とに分別する処理である。確定操作とは、操作ログに含まれる操作情報のうち、操作対象の部品を一意に対応付けられる操作である。未確定操作とは、操作ログに含まれる操作情報のうち、操作対象の部品を一意に対応付けられない操作である。修正箇所判定処理の第２段階は、未確定操作の操作対象の部品を推定する処理である。
【００５４】
以下、図６、図７を参照して、修正箇所判定処理の第１段階における確定操作と未確定操作との分別例について説明する。
図６は、確定操作の例を示す図である。文書作成支援装置１００は、雛形文書を部品に分割して、被分割雛形文書３１を生成する。また文書作成支援装置１００は、雛形文書を編集して得られた文書を部品に分割して、被分割文書４６を生成する。そして、文書作成支援装置１００は、被分割雛形文書３１と、被分割文書４６との差分を求める。図６の例では、被分割文書４６において、種類「Ｂ」の部品に対して「スイッチ」という文字列が挿入されている。次に、文書作成支援装置１００は、修正によって各部品に挿入された文字列（挿入文字列）と、被分割文書４６の元となる文書を操作したときの操作ログ４７とを対比する。操作ログ４７には、入力文字列「スイッチ」の操作情報が記録されている。ここで、図６の例の被分割文書４６の挿入文字列「スイッチ」は、種類「Ｂ」の部品に対してのみに挿入されているものとする。このような場合、操作ログ４７に示される「スイッチ」の入力操作は、文書「部品Ｂ」に一意に対応付けることができる。従って、操作ログ４７に示された「スイッチ」の入力操作は、確定操作と判定される。
【００５５】
図７は、未確定操作の例を示す図である。図７の例では、被分割文書４８において、種類「Ａ」の部品と、種類「Ｂ」の部品との両方に、文字列「スイッチ」が挿入されている。この場合、操作ログ４７に記録されている入力文字列「スイッチ」の操作情報における操作対象の箇所が、どちらの部品なのか一意に特定することができない。そこで、入力文字列「スイッチ」の入力操作は、未確定操作と判断される。
【００５６】
未確定操作については、操作対象の部品が推定される。操作対象部品の推定では、同じ部品は時間的に連続して修正されることが多いことを利用し、未確定操作の直前または直後の時刻の確定操作と同じ部品に挿入された可能性が高いと判断する。このとき、直前または直後の確定操作と連続した操作か否かの判断は、例えば入力時刻の差が所定時間（例えば５分）以内か否かで判断される。
【００５７】
図８は、直前または直後の確定操作に基づいて未確定操作の操作対象部品の推定例を示す図である。図８の例では、被分割文書４９において、種類「Ａ」の部品に対して文字列「星型」、「スイッチ」が挿入され、種類「Ｂ」の部品に対して文字列「スイッチ」が挿入されている。また、操作ログ５０には、入力文字列「星型」の操作と、入力文字列「スイッチ」の操作とが記録されている。入力文字列「星型」の操作は確定操作であるものとする。また、図７と同様に、入力文字列「スイッチ」は未確定操作である。
【００５８】
文字列「星型」の入力操作は、時刻「２０：２３」に行われ、文字列「スイッチ」の入力操作は時刻「２０：２５」に行われている。すると、文字列「星型」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直前の確定操作と判断できる。文字列「星型」の入力操作の操作対象部品は、種類「Ａ」の部品である。そこで、文字列「スイッチ」の入力操作の操作対象部品は、種類「Ａ」の部品であると推定される。
【００５９】
ここで、未確定操作の直前の確定操作と直後の確定操作とが異なる部品を操作対象としている場合、直前または直後の確定操作だけに基づいて未確定操作の操作対象部品の推定することができない。
【００６０】
図９は、直前または直後の確定操作だけに基づいて未確定操作の操作対象部品を推定できない例を示す図である。図９の例では、被分割文書５１において、種類「Ａ」の部品に対して文字列「星型」、「スイッチ」が挿入され、種類「Ｂ」の部品に対して文字列「ポインタ」、「スイッチ」が挿入されている。操作ログ５２には、入力文字列「星型」の操作、入力文字列「スイッチ」の操作、および入力文字列「ポインタ」の操作が記録されている。入力文字列「星型」の操作と入力文字列「ポインタ」の操作とは確定操作であるものとする。また、図８と同様に、入力文字列「スイッチ」は未確定操作である。
【００６１】
文字列「星型」の入力操作は、時刻「２０：２３」に行われ、文字列「スイッチ」の入力操作は時刻「２０：２５」に行われ、文字列「ポインタ」の入力操作は時刻「２０：２７」に行われている。すると、文字列「星型」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直前の確定操作と判断でき、かつ文字列「ポインタ」の入力操作は、未確定操作である文字列「スイッチ」の入力操作に対する直後の確定操作と判断できる。しかも、文字列「星型」の入力操作の操作対象は種類「Ａ」の部品であり、文字列「ポインタ」の入力操作の操作対象は、種類「Ｂ」の部品である。すると未確定操作の直前と直後との各確定操作の操作対象の部品が相違し、未確定操作の操作対象がどちらの部品なのか推定できない。
【００６２】
そこで、第２の実施の形態に係る文書作成支援装置１００では、未確定操作が行われた文書以外の他の文書に対する操作傾向を参考にして、未確定操作における操作対象の部品を推定する。
【００６３】
すなわち、部品内の複数の箇所の修正は同時期に行われるものと考えられる。そこで、未確定操作の直前（あるいは直後）の時刻に確定操作があったなら、当該未確定操作がその確定操作と同じ部品を修正したと仮定する。このとき、直前（あるいは直後）の確定操作の修正部品と当該未確定操作の修正部品との組み合わせが、一緒に修正されることの多い部品の組み合わせならば、未確定操作の操作対象部品を、直前（あるいは直後）の確定操作の操作対象と同じ部品と推定する。
【００６４】
なお、多くの修正は雛形の一部分を削除して別の文字列で置き換えられる。この場合、置き換え後の文字列は文書によって異なることが多い。そこで、一緒に修正されることの多い部品の組み合わせかどうかは、削除された文字列の組み合わせで判断する。これにより、一緒に修正されることの多い部品の組み合わせの適格な判断が可能となる。
【００６５】
ただし、雛形文書を修正して作成された文書と編集時の操作ログとからは、確定操作に関して、入力した文字列が挿入された箇所は判別可能であるが、その箇所から削除された文字列はわからない。そこで文書作成支援装置１００は、雛形文書と、雛形を修正して作成された文書との差分を用いて、挿入箇所から削除された文字列を推定する。
【００６６】
以下、図１０、図１１を参照し、文書の差分を用いた修正箇所判定処理の概要を説明する。
図１０は、文書の差分を用いた修正箇所判定処理の前半を示す図である。図１０の例では、雛形文書を修正することで、「文書１」、「文書２」、「文書３」の３つの文書が作成されている。そして雛形文書と作成された各文書とが複数の部品に分割され、被分割雛形文書３１と被分割文書５３〜５５が作成されている。
【００６７】
文書作成支援装置１００は、被分割雛形文書３１と、被分割文書５３〜５５それぞれとを比較し、文字列の差分から、各部品に挿入された文字列と、その挿入箇所から削除された文字列を抽出する。そして、文書作成支援装置１００は、被分割文書５３〜５５ごとの文書差分情報５６〜５８を生成する（ステップＳ２１）。文書差分情報５６〜５８には、各文書内の部品ごとに、挿入文字列と削除文字列との組が登録される。
【００６８】
図１１は、文書の差分を用いた修正箇所判定処理の後半を示す図である。文書作成支援装置１００は、全文書の操作ログ６１〜６３に対し、各操作の入力文字列が挿入された部品を同定する。そして文書作成支援装置１００は、入力文字列が挿入された部品が一意に決まる操作を確定操作、決まらない操作を未確定操作とする（ステップＳ２２）。
【００６９】
次に文書作成支援装置１００は、確定操作を用いて、部品ごとに、時間的に連続した操作によって文字列が挿入されることの多い箇所から、削除された文字列の組み合わせを求める。求められた部品の組み合わせは、頻出連続削除文字列６４として出力される（ステップＳ２３）。
【００７０】
そして文書作成支援装置１００は、未確定操作の候補となる部品のうち、未確定操作による挿入箇所から削除された文字列と、直前（あるいは直後）の確定操作による挿入箇所から削除された文字列の組み合わせと、頻出連続削除文字列６４とを比較する。文書作成支援装置１００は、未確定操作で削除された文字列と直前（あるいは直後）の確定操作で削除された文字列との組が、頻出連続削除文字列６４に合致するか否かを判断する。合致した場合、文書作成支援装置１００は、組み合わせた確定操作の操作対象の部品を、未確定操作の操作対象の部品と推定する（ステップＳ２４）。
【００７１】
以上のような修正箇所判定処理を行った上でユーザに対する適切な支援情報３７を提示するのに用いられる各装置の機能について説明する。
図１２は、ユーザ装置の機能を示すブロック図である。ユーザ装置２００は、ユーザインタフェース部２１０、仮名漢字変換部２２０、操作ログ取得部２３０、操作ログ記憶部２４０、文書編集部２５０、文書記憶部２６０、文書・操作ログ送信部２７０、および支援情報取得部２８０を有する。
【００７２】
ユーザインタフェース部２１０は、キーボードなどの入力装置を介したユーザの操作入力を受け付ける。また、ユーザインタフェース部２１０は、文書編集部２５０による文書編集画面をモニタに表示する。さらにユーザインタフェース部２１０は、支援情報取得部２８０が取得した支援情報をモニタに表示する。
【００７３】
仮名漢字変換部２２０は、ユーザインタフェース部２１０を介して入力された文字列をひらがな、カタカナ、漢字などの他の文字に変換する。例えば仮名漢字変換部２２０は、アルファベットの文字列を漢字などの他の文字に変換する。
【００７４】
操作ログ取得部２３０は、入力された文字列をユーザインタフェース部２１０または仮名漢字変換部２２０から取得し、操作ログ記憶部２４０に格納する。その際、操作ログ取得部２３０は、文字列の入力対象となる文書の名称に対応付けて文字列を格納する。また操作ログ取得部２３０は、各文字列に、その文字列の取得時刻を示す時刻情報を付与して、操作ログ記憶部２４０に格納する。
【００７５】
操作ログ記憶部２４０は、操作情報を記憶する。例えばユーザ装置２００のＲＡＭまたはＨＤＤの記憶領域の一部が操作ログ記憶部２４０として使用される。
文書編集部２５０は、ユーザからの操作入力に従って文書を編集する。このとき文書編集部２５０は、文書作成支援装置１００から雛形文書を取得し、雛形文書に修正を加えることで、新たな文書を作成することができる。文書編集部２５０は、作成した文書を、文書記憶部２６０に格納する。
【００７６】
文書記憶部２６０は、文書を記憶する。例えばユーザ装置２００のＲＡＭまたはＨＤＤの記憶領域の一部が、文書記憶部２６０として使用される。
文書・操作ログ送信部２７０は、操作ログ記憶部２４０と文書記憶部２６０とから、それぞれ操作ログと文書とを取得し、文書作成支援装置１００に送信する。例えば文書・操作ログ送信部２７０は、文書作成支援装置１００からの要求に応答して、操作ログと文書とを送信する。また文書・操作ログ送信部２７０は、新たな文書が作成されたとき、または定期的に設定された所定の時刻に、操作ログと文書とを送信してもよい。
【００７７】
支援情報取得部２８０は、文書編集部２５０が編集に使用した雛形文書に関する支援情報を、文書作成支援装置１００から取得する。そして支援情報取得部２８０は、ユーザインタフェース部２１０を介して、取得した支援情報をモニタに表示する。
【００７８】
なお図１２には、ユーザ装置２００の機能について説明したが、他のユーザ装置３００，４００，５００も同様の機能を有している。
図１３は、文書作成支援装置の機能を示すブロック図である。文書作成支援装置１００は、雛形記憶部１１１、雛形・支援情報提供部１１２、文書・操作ログ収集部１２１、操作ログ記憶部１２２、文書分割部１２３、部品種類記憶部１２４、被分割文書記憶部１２５、文書差分抽出部１３１、文書差分記憶部１３２、対応付け部１４１、仮対応表記憶部１４２、頻出連続削除文字列抽出部１５１、頻出操作記憶部１５２、操作対象推定部１６１、対応表記憶部１６２、セット修正部品判定部１７１、およびセット修正部品記憶部１７２を有する。
【００７９】
雛形記憶部１１１は、雛形文書を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が雛形記憶部１１１として使用される。なお、雛形文書は、システムの管理者によって予め作成され、雛形記憶部１１１に格納される。
【００８０】
雛形・支援情報提供部１１２は、ユーザ装置２００，３００，４００，５００に対して、雛形文書または支援情報を送信する。例えば、雛形・支援情報提供部１１２は、ユーザ装置２００の文書編集部２５０から雛形文書の取得要求を受け取ると、指定された雛形文書を雛形記憶部１１１から取得し、ユーザ装置２００に送信する。その際、雛形・支援情報提供部１１２は、送信した雛形文書に対応するセット修正部品情報をセット修正部品記憶部１７２から取得し、取得したセット修正部品情報を含む支援情報をユーザ装置２００に送信してもよい。
【００８１】
文書・操作ログ収集部１２１は、ユーザ装置２００，３００，４００，５００それぞれから、作成された文書と、その文書作成時の操作ログとを取得する。例えば文書・操作ログ収集部１２１は、定期的にユーザ装置２００，３００，４００，５００に対して文書と操作ログとの取得要求を送信し、ユーザ装置２００，３００，４００，５００それぞれから文書と操作ログとを取得することができる。また文書・操作ログ収集部１２１は、所定のタイミングでユーザ装置２００，３００，４００，５００が送信した文書と操作ログとを受け取ることもできる。文書・操作ログ収集部１２１は、取得した文書を文書分割部１２３に渡す。また文書・操作ログ収集部１２１は、取得した操作ログを操作ログ記憶部１２２に格納する。
【００８２】
操作ログ記憶部１２２は、収集した操作ログを記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が操作ログ記憶部１２２として使用される。
文書分割部１２３は、雛形文書、および雛形文書に修正を加えて作成された文書を、所定の基準に従って複数の部品に分割する。例えば文書分割部１２３は、雛形文書または文書を、章ごとの部品、節ごとの部品、または段落ごとの部品に分割する。なお文書分割部１２３は、雛形文書を分割する場合、雛形記憶部１１１から雛形文書を取得する。文書分割部１２３は、雛形文書を分割して得られる被分割雛形文書と、文書を分割して得られる被分割文書とを、被分割文書記憶部１２５に格納する。
【００８３】
また文書分割部１２３は、雛形文書を分割した場合、分割により得られた部品から、その部品の特徴を示すキーワードを抽出する。例えば文書分割部１２３は、章ごとに雛形文書を分割した場合、章のタイトルの文字列をキーワードとして抽出する。そして、文書分割部１２３は、雛形文書から分割して得られる部品に種類名を付与し、各部品の種類名とキーワードとの組を部品種類記憶部１２４に格納する。
【００８４】
部品種類記憶部１２４は、部品種類情報を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が部品種類記憶部１２４として使用される。
被分割文書記憶部１２５は、被分割雛形文書と被分割文書と記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が被分割文書記憶部１２５として使用される。
【００８５】
文書差分抽出部１３１は、被分割雛形文書と各被分割文書とを比較し、差分を抽出する。差分は、部品ごとに抽出される。また差分は、被分割文書に対して挿入された文字列と、その文字列の挿入箇所で削除された文字列との組で表される。文書差分抽出部１３１は、文書ごとの差分情報を文書差分記憶部１３２に格納する。
【００８６】
文書差分記憶部１３２は、文書ごとの差分情報を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が文書差分記憶部１３２として使用される。
対応付け部１４１は、操作ログと差分情報とを参照し、操作ログ内の各操作情報に示される操作に対して、その操作の対象とされた箇所の差分情報を対応付ける。なお、差分情報には、部品の種類が含まれている。そのため、差分情報が対応付けられた操作情報には、その操作情報に示される操作対象箇所を示す部品の種類が対応付けられたこととなる。このとき差分情報を一意に対応付けられる操作は確定操作として認識され、差分情報を一意に対応付けられない操作は未確定操作として認識される。未確定操作の場合、対応付けられた部品の種類は、操作対象の部品の種類の候補を意味する。対応付け部１４１は、各操作に対して対応付けた部品の種類、または操作対象の部品の種類の候補を示す仮対応表を作成し、仮対応表記憶部１４２に格納する。
【００８７】
仮対応表記憶部１４２は、仮対応表を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が仮対応表記憶部１４２として使用される。
頻出連続削除文字列抽出部１５１は、仮対応表を参照し、確定操作の中から連続して削除された２つの文字列の配列を抽出する。そして頻出連続削除文字列抽出部１５１は、連続して削除された回数が所定数以上の文字列の配列を、頻出連続削除文字列とする。頻出連続削除文字列抽出部１５１は頻出連続削除文字列を、頻出操作記憶部１５２に格納する。
【００８８】
頻出操作記憶部１５２は、頻出連続削除文字列を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が頻出操作記憶部１５２として使用される。
操作対象推定部１６１は、仮対応表と頻出連続削除文字列とを参照して、未確定操作による操作対象の部品を推定し、その部品の種類を未確定操作に対応付ける。そして操作対象推定部１６１は、仮対応表内の未確定操作に部品の種類を１つだけ対応付けた対応表を作成し、対応表記憶部１６２に格納する。
【００８９】
対応表記憶部１６２は、対応表を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が対応表記憶部１６２として使用される。
セット修正部品判定部１７１は、対応表を参照し、各文書において、短い時間内に交互に編集された複数の部品の種類をセット修正部品情報として抽出する。セット修正部品判定部１７１は、抽出したセット修正部品情報をセット修正部品記憶部１７２に格納する。
【００９０】
セット修正部品記憶部１７２は、セット修正部品情報を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部がセット修正部品記憶部１７２として使用される。
以上のような機能を有するユーザ装置２００，３００，４００，５００および文書作成支援装置１００によって、雛形文書を利用した文書作成に、支援情報の提示を行うことが可能となる。以下、支援情報を提示するための処理を詳細に説明する。なお以下の説明では、ユーザ装置２００，３００，４００を使用するユーザが過去に作成した文書と、作成時の操作ログを用いて、ユーザ装置５００を使用するユーザに対して支援情報を提示する場合を想定する。
【００９１】
そこで、まず文書作成時に各ユーザ装置２００，３００，４００に格納される情報を説明する。
図１４は、ユーザ装置に格納される文書と操作ログとの例を示す図である。各ユーザ装置２００，３００，４００は、文書作成支援装置１００から、雛形記憶部１１１に格納されている雛形文書１１１ａを取得する。例えばユーザ装置２００の文書編集部２５０から文書作成支援装置１００の雛形・支援情報提供部１１２に対して、雛形文書１１１ａの取得要求が出される。すると雛形・支援情報提供部１１２は、雛形記憶部１１１から雛形文書１１１ａを読み出し、雛形文書１１１ａをユーザ装置２００に送信する。
【００９２】
雛形文書１１１ａを取得した各ユーザ装置２００，３００，４００では、雛形文書１１１ａに修正を加え、それぞれ文書２６１，３６１，４６１を作成する。作成された文書２６１，３６１，４６１は、各ユーザ装置２００，３００，４００の文書記憶部２６０，３６０，４６０に格納される。例えばユーザ装置２００であれば、ユーザインタフェース部２１０を介したユーザからの操作入力が、仮名漢字変換部２２０と操作ログ取得部２３０とを介して文書編集部２５０に通知される。そして、文書編集部２５０が、操作入力に応じて雛形文書１１１ａに文字列の追加や文字列の削除などの編集を加え、文書２６１を生成する。そして文書編集部２５０は、ユーザからの文書保存の指示を受け取ると、作成した文書２６１を文書記憶部２６０に格納する。
【００９３】
なお、図１４の例では、雛形文書１１１ａの名称を「Ｘ」、ユーザ装置２００で作成された文書２６１の名称を「Ｙ１」、ユーザ装置３００で作成された文書３６１の名称を「Ｙ２」、ユーザ装置４００で作成された文書４６１の名称を「Ｙ３」とする。
【００９４】
各ユーザ装置２００，３００，４００における文書２６１，３６１，４６１作成時の操作入力内容は、操作ログとして操作ログ記憶部２４０，３４０，４４０に格納される。図１４の例では、操作ログ記憶部２４０，３４０，４４０には、それぞれ操作ログ管理テーブル２４１，３４１，４４１が格納されている。操作ログ管理テーブル２４１，３４１，４４１には、入力された文字列ごとの操作情報が記録されている。
【００９５】
例えばユーザ装置２００であれば、操作ログ取得部２３０が、ユーザインタフェース部２１０または仮名漢字変換部２２０から、文書編集部２５０に対して入力される文字列を取得する。仮名漢字変換部２２０から取得される文字列は、例えば変換により確定した仮名または漢字の文字列である。操作ログ取得部２３０は、取得した文字列の操作情報を生成し、操作ログ管理テーブル２４１に登録する。
【００９６】
操作ログ管理テーブル２４１には、文書、ＩＤ、時刻、操作、および入力文字列の欄が設けられている。操作ログ管理テーブル２４１内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、１つの操作情報となる。
【００９７】
文書の欄には、操作対象の文書の名称が設定される。ＩＤの欄には、操作情報の識別子（ＩＤ）が設定される。図１４の例では、文書の名称と、その文書に対する操作情報に昇順で設定される識別番号との組が、操作情報のＩＤとして使用されている。時刻の欄には、文字列が入力された時刻（入力時刻）が設定される。操作の欄には、操作の種別が設定される。操作の種別としては、例えば文字列の挿入操作を示す「挿入」がある。入力文字列の欄には、入力された文字列が設定される。
【００９８】
このようにして、各ユーザ装置２００，３００，４００には、雛形文書１１１ａに修正を加えることで作成された文書２６１，３６１，４６１と、修正操作の操作ログが記録された操作ログ管理テーブル２４１，３４１，４４１とが格納される。文書２６１，３６１，４６１と操作ログ管理テーブル２４１，３４１，４４１内の操作ログとは、文書作成支援装置１００の文書・操作ログ収集部１２１によって収集される。ここで、操作ログについては、文書作成支援装置１００内の操作ログ記憶部１２２に格納される。
【００９９】
図１５は、操作ログ記憶部のデータ構造例を示す図である。操作ログ記憶部１２２には、操作ログ管理テーブル１２２ａが格納されている。操作ログ管理テーブル１２２ａには、各ユーザ装置２００，３００，４００から収集した操作ログが含まれる。
【０１００】
一方、文書については、文書分割部１２３によって複数の部品に分割され、被分割文書記憶部１２５に格納される。なお、文書分割部１２３は、雛形文書１１１ａについても複数の部品に分割し、被分割文書記憶部１２５に格納する。雛形文書１１１ａを分割した際には、文書分割部１２３は、分割によって生成された部品の種類を示す部品種類情報を、部品種類記憶部１２４に格納する。
【０１０１】
図１６は、文書分割処理の一例を示す図である。図１６の例では、雛形文書１１１ａと文書２６１，３６１，４６１とを、章ごとに分割している。例えば、雛形文書１１１ａには、「１．前処理」、「２．中間処理」といった章が設けられている。文書分割部１２３は、雛形文書１１１ａを章ごとに分割し、被分割雛形文書１２５ａを作成する。その際、文書分割部１２３は、分割によって生成された各部品の種類を示す識別子を設定する。例えば、図１６の例では、各部品の種別を「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」としている。また、文書分割部１２３は、雛形文書１１１ａを分割して得られた各部品から、その部品の特徴を表すキーワードを抽出する。図１６の例では、章のタイトルの文字列をキーワードとしている。そして、文書分割部１２３は、部品の種類とキーワードとの組を部品種類情報とし、雛形文書１１１ａを分割して得られた部品ごとの部品種類情報を、部品種類記憶部１２４に格納する。
【０１０２】
なお文書分割部１２３は、文書２６１，３６１，４６１を分割した場合、分割により生成された部品から、その部品の特徴を表すキーワードを抽出する。例えば、章のタイトルがキーワードとして抽出される。そして、文書分割部１２３は、抽出したキーワードで部品種類記憶部１２４内の部品種類情報を検索する。文書分割部１２３は、検索でヒットした部品種類情報に示される部品の種類を、該当キーワードを含む部品の種類とする。
【０１０３】
文書分割部１２３は、雛形文書１１１ａまたは文書２６１，３６１，４６１を分割した場合、部品の種別、部品内のテキスト、および文書内での部品の範囲を示すオフセットを、部品の名称に関連付けて、被分割文書記憶部１２５に格納する。図１６の例では、被分割雛形文書１２５ａと被分割文書群１２５ｂとが被分割文書記憶部１２５に格納されている。被分割雛形文書１２５ａは、雛形文書１１１ａを分割したものである。被分割文書群１２５ｂは、文書２６１，３６１，４６１それぞれ分割したものである。被分割文書群１２５ｂ内の文書の名称ごとの情報が、個々の被分割文書である。
【０１０４】
なお、図１６の例では、被分割雛形文書１２５ａと被分割文書群１２５ｂとに関し、種類が「Ａ」、「Ｂ」の部品の情報のみが示されており、種類が「Ｃ」、「Ｄ」の部品の情報は省略されている。
【０１０５】
雛形文書１１１ａおよび収集した文書２６１，３６１，４６１の分割が終了後、操作ログ、部品種類情報、被分割雛形文書、および被分割文書を利用して、修正箇所判定処理が実行される。
【０１０６】
図１７は、修正箇所判定処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］文書差分抽出部１３１は、被分割文書記憶部１２５内の被分割雛形文書および被分割文書を参照し、雛形文書と、雛形文書を修正することで作成された文書それぞれとの差分を、部品ごとに抽出する。文書差分抽出部１３１は、抽出した差分を示す差分情報を、文書差分記憶部１３２に格納する。
【０１０７】
［ステップＳ３２］対応付け部１４１は、操作ログ記憶部１２２内の操作ログと文書差分記憶部１３２内の文書差分情報とを参照し、入力操作ごとの操作情報に対して、文書差分情報を対応付ける。この際の対応付けは、未確定の対応関係を含む仮対応付けである。対応付け部１４１は、仮対応付けの結果から仮対応表を作成し、仮対応表記憶部１４２に格納する。なお、対応付け処理の詳細は、後述する（図１９参照）。
【０１０８】
［ステップＳ３３］頻出連続削除文字列抽出部１５１は、仮対応表記憶部１４２内の仮対応表を参照し、文書作成時に削除された文字列間の関係を解析する。例えば頻出連続削除文字列抽出部１５１は、同一文書内で、時系列上で連続して削除された文字列の組を抽出し、連続削除文字列とする。そして、頻出連続削除文字列抽出部１５１は、連続して削除されることの多い連続削除文字列を検出し、頻出連続削除文字列とする。頻出連続削除文字列抽出部１５１は、検出した頻出連続削除文字列を、頻出操作記憶部１５２に格納する。なお、頻出連続削除文字列抽出処理の詳細は、後述する（図２２参照）。
【０１０９】
［ステップＳ３４］操作対象推定部１６１は、仮対応表記憶部１４２内の仮対応表と、頻出操作記憶部１５２内の頻出連続削除文字列とを参照し、対応関係が未確定の操作情報に関して、操作対象箇所の差分情報を推定する。操作対象推定部１６１は、仮対応表に対して推定結果を反映させて対応表を作成し、作成した対応表を対応表記憶部１６２に格納する。なお、操作対象推定処理の詳細は、後述する（図２４参照）。その後、修正箇所判定処理が終了する。
【０１１０】
次に、文書差分抽出処理について、具体例を用いて説明する。
図１８は、文書差分抽出の一例を示す図である。例えば被分割雛形文書１２５ａの種類「Ａ」の部品には「目印と選択肢を」というテキストが含まれており、種類「Ｂ」の部品には「矢印は文章のセレクトを」というテキストが含まれている。このような被分割雛形文書１２５ａに修正を加えて複数の文書が作成されている。
【０１１１】
名称が「Ｙ１」の文書では、種類「Ａ」の部品には「ボタンとチョイスを」というテキストが含まれており、種類「Ｂ」の部品には「矢印はテキストの選び方を」というテキストが含まれている。
【０１１２】
名称が「Ｙ２」の文書では、種類「Ａ」の部品には「マークと項目を」というテキストが含まれており、種類「Ｂ」の部品には「矢印は文字列の指定を」というテキストが含まれている。
【０１１３】
名称が「Ｙ３」の文書では、種類「Ａ」の部品には「星型とスイッチを」というテキストが含まれており、種類「Ｂ」の部品には「ポインタは文章のスイッチを」というテキストが含まれている。
【０１１４】
被分割文書群１２５ｂ内の個々の被分割文書と被分割雛形文書１２５ａとが比較され、文書ごとの差分情報が生成される。生成された差分情報は、文書差分記憶部１３２に格納される。
【０１１５】
図１８の例では、文書差分記憶部１３２内に差分情報管理テーブル１３２ａが格納されている。差分情報管理テーブル１３２ａには、修正前文書、修正後文書、部品、挿入文字列、および削除文字列の欄が設けられている。修正前文書の欄には、雛形文書の名称が設定される。修正後文書の欄には、雛形文書を修正することで生成された文書の名称が設定される。部品の欄には、分割処理により生成された部品の種類が設定される。挿入文字列の欄には、各部品に挿入された文字列（挿入文字列）が設定される。削除文字列の欄には、挿入文字列の挿入位置から削除された文字列（削除文字列）が設定される。
【０１１６】
例えば、名称「Ｙ１」の文書の種類「Ａ」の部品では、雛形における「目印と選択肢を」の部分が「ボタンとチョイスを」に修正されている。すると、「目印」の文字列が削除され、代わりに「ボタン」の文字列が挿入されていることが分かる。また「選択肢」の文字列が削除され、「チョイス」の文字列が挿入されていることが分かる。そこで文書差分記憶部１３２は、修正前文書「Ｘ」、修正後文書「Ｙ１」、部品「Ａ」、挿入文字列「ボタン」、削除文字列「目印」という差分情報を生成し、差分情報管理テーブル１３２ａに登録している。また文書差分記憶部１３２は、修正前文書「Ｘ」、修正後文書「Ｙ１」、部品「Ａ」、挿入文字列「チョイス」、削除文字列「選択肢」という差分情報を生成し、差分情報管理テーブル１３２ａに登録している。
【０１１７】
次に、操作情報と差分情報との間の対応付け処理について説明する。
図１９は、対応付け処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１１８】
［ステップＳ４１］対応付け部１４１は、操作ログ記憶部１２２内の操作ログ管理テーブル１２２ａに登録されている未処理の操作情報を１つ選択する。
［ステップＳ４２］対応付け部１４１は、文書差分記憶部１３２内の差分情報管理テーブル１３２ａから、ステップＳ４１で選択した操作情報と文書の名称が同じ差分情報の中で、選択した操作情報の入力文字列と一致する挿入文字列を有する差分情報を検索する。
【０１１９】
［ステップＳ４３］対応付け部１４１は、入力文字列と一致する挿入文字列を有する差分情報が１つだけか否かを判断する。該当する差分情報が１つだけであれば、処理がステップＳ４４に進められる。該当する差分情報が複数あれば、処理がステップＳ４６に進められる。
【０１２０】
［ステップＳ４４］対応付け部１４１は、ステップＳ４２の検索で１つの差分情報のみがヒットした場合、ステップＳ４１で選択した操作情報に、ヒットした差分情報を対応付け、仮対応表に登録する。
【０１２１】
［ステップＳ４５］対応付け部１４１は、仮対応表に登録した操作情報に対して、「確定」を示すフラグを設定する。その後、処理がステップＳ４８に進められる。
［ステップＳ４６］対応付け部１４１は、ステップＳ４２の検索で複数の差分情報がヒットした場合、ステップＳ４１で選択した操作情報に、ヒットした複数の差分情報を対応付け、仮対応表に登録する。
【０１２２】
［ステップＳ４７］対応付け部１４１は、仮対応表に登録した操作情報に対して、「未確定」を示すフラグを設定する。
［ステップＳ４８］対応付け部１４１は、未処理の操作情報が操作ログ記憶部１２２内にあるか否かを判断する。未処理の操作情報があれば、処理がステップＳ４１に進められる。すべての操作情報に対して差分情報の対応付けが完了していれば、対応付け処理が終了する。
【０１２３】
図２０は、操作情報と差分情報との対応付け例を示す図である。図２０の例では、名称「Ｙ３」の文書に着目して、操作情報と差分情報の対応付けを示している。例えば、名称「Ｙ３」の文書に「星型」という文字列が入力されている。差分情報管理テーブル１３２ａ内の修正後文書「Ｙ３」の差分情報のみを検索対象として、挿入文字列が「星型」の差分情報が検索される。図２０の例では、種類「Ａ」の部品に関する１つの差分情報が検索でヒットする。そこで、入力文字列が「星型」の操作情報に対して、差分情報が１つだけ対応付けられる。この場合、対応関係が１対１で決定するため、「確定」のフラグが付与される。同様に、入力文字列が「ポインタ」の操作情報に対しても、１つの差分情報が対応付けられ、「確定」のフラグが付与される。
【０１２４】
一方、入力文字列が「スイッチ」の操作情報に基づいて、「スイッチ」と同じ挿入文字列を検索すると、２つの差分情報がヒットする。そこで、入力文字列が「スイッチ」の操作情報に対して２つの差分情報が対応付けられ、「未確定」のフラグが付与される。
【０１２５】
このような操作情報と差分情報との対応関係が、仮対応表に登録される。
図２１は、仮対応表のデータ構造例を示す図である。仮対応表１４２ａは、操作ログ管理テーブル１２２ａに、部品、削除文字列、および確定フラグの欄を追加した構造となっている。追加された部品の欄には、操作情報に対応付けられた差分情報に示される部品の種類が設定される。削除文字列の欄には、操作情報に対応付けられた差分情報に示される削除文字列が設定される。確定フラグの欄には、操作情報への差分情報の対応付けが確定か、未確定かを示すフラグが設定される。
【０１２６】
図２１の例では、文書の名称「Ｙ３」のＩＤ「Ｙ３−２」の操作情報に対して、複数の差分情報が対応付けられている。そのため、その操作情報に対応付けて、部品の欄に「Ａ」と「Ｂ」との複数の種類が設定されており、削除文字列との欄に「選択肢」と「セレクト」との複数の削除文字列が設定されている。そして、複数の差分情報が対応付けられたＩＤ「Ｙ３−２」の操作情報には、「未確定」のフラグが設定されている。
【０１２７】
このような仮対応表における「確定」のフラグが設定された操作情報に対応付けられた差分情報の削除文字列が解析され、頻出連続削除文字列が抽出される。
図２２は、頻出連続削除文字列抽出処理の手順を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
【０１２８】
［ステップＳ５１］頻出連続削除文字列抽出部１５１は、仮対応表１４２ａから、未処理の１つの文書に関する操作ログと、その操作ログ内の各操作情報に対応付けられた差分情報を取得する。
【０１２９】
［ステップＳ５２］頻出連続削除文字列抽出部１５１は、ステップＳ５１で取得した操作ログから、「確定」のフラグが付与された操作情報（ｏｐ０）を、入力時刻の古いものから順に取得する。
【０１３０】
［ステップＳ５３］頻出連続削除文字列抽出部１５１は、ステップＳ５２で取得した操作情報（ｏｐ０）と同じ部品に対する操作情報（ｏｐ０）と連続の確定操作の操作情報（ｏｐ１）を、仮対応表１４２ａから抽出する。ここで、連続の操作とは、同一文書かつ同一部品に対する操作情報を時系列に並べられたときの操作情報の配列において連続している操作のことである。従って、ステップＳ５２で抽出した操作情報（ｏｐ０）の直前の操作情報と、直後の操作情報とが連続する操作を示す操作情報となる。この際、連続であるための時間の閾値（例えば５分）を設定してもよい。すなわち操作情報（ｏｐ０）の直前または直後の操作情報のうち、操作情報（ｏｐ０）との間の入力時刻の差が閾値以下の操作情報のみを、操作情報（ｏｐ０）と連続の操作を示す操作情報（ｏｐ１）とすることができる。
【０１３１】
［ステップＳ５４］頻出連続削除文字列抽出部１５１は、ステップＳ５２とステップＳ５３とで抽出した各操作情報（ｏｐ０，ｏｐ１）の組み合わせを、連続操作として連続操作管理テーブルに記録する。なお、操作の前後関係は考慮せずに、同じ組み合わせの連続操作が連続操作管理テーブルに登録されていない場合にのみ、新たに登録するようにしてもよい。
【０１３２】
［ステップＳ５５］頻出連続削除文字列抽出部１５１は、ステップＳ５２で抽出した操作情報に連続する操作の操作情報をすべて抽出しかた否かを判断する。連続するすべての操作の操作情報を抽出した場合、処理がステップＳ５６に進められる。未抽出の操作情報があれば、処理がステップＳ５３に進められる。
【０１３３】
［ステップＳ５６］頻出連続削除文字列抽出部１５１は、ステップＳ５２の抽出処理において、ステップＳ５１で取得した１つの文書の操作ログ内のすべての操作情報を抽出したか否かを判断する。該当操作ログ内のすべての操作情報を抽出した場合、処理がステップＳ５７に進められる。未抽出の操作情報がある場合、処理がステップＳ５２に進められる。
【０１３４】
［ステップＳ５７］頻出連続削除文字列抽出部１５１は、ステップＳ５１においてすべての文書の操作ログを取得したか否かを判断する。すべての操作ログを取得していれば、処理がステップＳ５８に進められる。未取得の操作ログがあれば、処理がステップＳ５１に進められる。
【０１３５】
［ステップＳ５８］頻出連続削除文字列抽出部１５１は、連続操作に対応する削除文字列の組み合わせを連続削除文字列とし、各連続削除文字列の出現回数（連続削除回数）を算出する。
【０１３６】
［ステップＳ５９］頻出連続削除文字列抽出部１５１は、連続削除回数が所定の値以上の連続削除文字列を、頻出連続削除文字列として特定する。頻出連続削除文字列抽出部１５１は、特定した頻出連続削除文字列を、頻出操作記憶部１５２に格納する。その後、頻出連続削除文字列抽出処理が終了する。
【０１３７】
図２３は、頻出連続削除文字列の抽出例を示す図である。なお図２３に示す仮対応表１４２ａは、確定フラグが「確定」の操作情報のみを示している。
ここで、名称が「Ｙ１」の文書の操作ログにおいて、ＩＤ「Ｙ１−１」の操作情報とＩＤ「Ｙ１−２」の操作情報とに示される操作は、連続する確定の操作であり、共に種類「Ａ」の部品を対象とした操作である。またＩＤ「Ｙ１−３」の操作情報とＩＤ「Ｙ１−４」の操作情報とに示される操作は、連続する確定の操作であり、共に種類「Ｂ」の部品を対象とした操作である。そこで、名称が「Ｙ１」の文書の操作ログからは、「目印」と「選択肢」との組の連続削除文字列、および「文章」と「セレクト」との組の連続削除文字列も抽出される。名称が「Ｙ２」の文書の操作ログからも、「目印」と「選択肢」との組の連続削除文字列、および「文章」と「セレクト」との組の連続削除文字列が抽出される。
【０１３８】
抽出された連続削除文字列は、連続操作管理テーブル１５１ａに登録される。連続操作管理テーブル１５１ａは、例えばＲＡＭ１０２内に作成されたデータテーブルである。連続操作管理テーブル１５１ａには、連続操作、部品、および連続削除文字列の欄が設けられている。
【０１３９】
連続操作の欄には、連続削除文字列の抽出元となった２つの操作情報それぞれにＩＤが設定される。部品の欄には、連続削除文字列の抽出元となった操作情報に対応付けられた部品の種別が設定される。なお、第２の実施の形態では、連続操作を同一部品内での操作でのみ判断しているため、連続削除文字列の抽出元となった２つの操作情報それぞれの操作対象の部品は共通する。連続削除文字列の欄には、抽出された連続削除文字列が設定される。
【０１４０】
頻出連続削除文字列抽出部１５１は、連続操作管理テーブル１５１ａを参照し、連続削除文字列の出現回数（連続削除回数）を計数する。例えば頻出連続削除文字列抽出部１５１は、連続削除文字列の連続削除回数を集計テーブル１５１ｂに登録する。集計テーブル１５１ｂは、例えばＲＡＭ１０２内に作成されたデータテーブルである。
【０１４１】
図２３の例では、集計テーブル１５１ｂ内に部品、連続削除文字列、および連続削除回数の欄が設けられている。部品の欄には、連続削除文字列の削除操作の対象となった部品の種類が設定される。連続削除文字列の欄には、連続削除文字列が設定される。削除回数の欄には、連続操作管理テーブル１５１ａにおける連続削除文字列の出現回数が設定される。例えば、「目印」と「選択肢」との連続削除文字列は、連続操作管理テーブル１５１ａに２回出現しているため、出現回数（連続削除回数）は２回である。
【０１４２】
連続操作管理テーブル１５１ａは、連続削除回数が所定の閾値以上の連続削除文字列を、頻出連続削除文字列として集計テーブル１５１ｂから抽出する。図２３の例では、閾値を２回としている。この場合、「目印」と「選択肢」との連続削除文字列、および「文書」と「セレクト」との連続削除文字列が、頻出連続削除文字列として抽出される。連続操作管理テーブル１５１ａは、抽出した頻出連続削除文字列を、頻出操作記憶部１５２に格納する。
【０１４３】
図２３の例では、頻出操作記憶部１５２には、頻出操作管理テーブル１５２ａが設けられている。頻出操作管理テーブル１５２ａには、部品と頻出連続削除文字列との欄が設けられている。部品の欄には、頻出連続削除文字列を削除したときの操作対象となった部品の種類が設定される。連続操作削除文字列の欄には、連続操作削除文字列が設定される。
【０１４４】
図２４は、操作対象推定処理の手順を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］操作対象推定部１６１は、仮対応表１４２ａから、未処理の１つの文書に関する操作ログと、その操作ログ内の各操作情報に対応付けられた差分情報を取得する。
【０１４５】
［ステップＳ６２］操作対象推定部１６１は、ステップＳ５１で取得した操作ログから、未確定操作の操作情報（ｏｐ２）を、入力時刻の古いものから順に取得する。
［ステップＳ６３］操作対象推定部１６１は、ステップＳ６２で取得した未確定操作の操作情報に仮に対応付けられた差分情報の１つを仮対応表１４２ａから選択し、選択した差分情報から部品の種類を抽出する。
【０１４６】
［ステップＳ６４］操作対象推定部１６１は、ステップＳ６１で取得した未確定操作に対して、ステップＳ６３で抽出した種類の部品内において時系列で前後の確定操作を抽出する。すなわち操作対象推定部１６１は、ステップＳ６３で抽出した部品の種類で示される部品に対する未確定操作の操作情報（ｏｐ２）と連続の確定操作の操作情報（ｏｐ３）を、仮対応表１４２ａから抽出する。なお、ステップＳ６２で抽出した操作情報（ｏｐ２）の直前の操作情報と、直後の操作情報とが連続する確定操作の操作情報（ｏｐ３）となる。従って、この操作情報の抽出処理では、０〜２個の操作情報が抽出される。この際、連続であるための時間の閾値（例えば５分）を設定してもよい。すなわち操作情報（ｏｐ２）の直前または直後の操作情報のうち、操作情報（ｏｐ２）との間の入力時刻の差が閾値以下の操作情報のみを、操作情報（ｏｐ２）と連続の操作を示す操作情報（ｏｐ３）とすることができる。
【０１４７】
［ステップＳ６５］操作対象推定部１６１は、ステップＳ６４で抽出した確定操作の操作情報（ｏｐ３）のうち、未確定操作の操作情報（ｏｐ２）との組み合わせで頻出連続削除文字列となる操作情報の数を算出する。すなわち、操作対象推定部１６１は、仮対応表１４２ａを参照し、ステップＳ６２で取得した未確定操作の操作情報（ｏｐ２）に仮に対応付けられた差分情報から削除文字列を抽出する。また操作対象推定部１６１は、ステップＳ６４で抽出した確定操作の各操作情報（ｏｐ３）に対応付けられた差分情報から削除文字列を抽出する。そして操作対象推定部１６１は、未確定操作の操作情報（ｏｐ２）に対応する削除文字列と、確定操作の操作情報（ｏｐ３）に対応する削除文字列それぞれとの組を作成する。削除文字列の組は、抽出された操作情報（ｏｐ３）の個数分生成される。操作対象推定部１６１は、作成した削除文字列の組のうち、頻出連続削除文字列に合致する組の数を計数する。そして操作対象推定部１６１は、計数の結果を、頻出連続削除文字列となる適合確定操作数とする。この適合確定操作数は、０〜２の何れかの整数となる。
【０１４８】
［ステップＳ６６］操作対象推定部１６１は、ステップＳ６３において、ステップＳ６２で取得した未確定操作の操作情報に仮に対応付けられたすべての差分情報を選択したか否かを判断する。すべての差分情報を選択した場合、処理がステップＳ６７に進められる。未選択の差分情報がある場合、処理がステップＳ６３に進められる。
【０１４９】
［ステップＳ６７］操作対象推定部１６１は、ステップＳ６２で取得した未確定操作の操作情報に対し、ステップＳ６５で算出した適合確定操作数が最も多い差分情報を対応付ける。すなわち、ステップＳ６５で算出した適合確定操作数が最も多い差分情報で示される種類の部品が、ステップＳ６２で取得した操作情報で示される未確定操作の操作対象と推定される。
【０１５０】
［ステップＳ６８］操作対象推定部１６１は、ステップＳ６２において未確定操作のすべての操作情報を取得したか否かを判断する。未確定操作のすべての操作情報を取得した場合、処理がステップＳ６９に進められる。操作情報を未取得の未確定操作がある場合、処理がステップＳ６２に進められる。
【０１５１】
［ステップＳ６９］操作対象推定部１６１は、ステップＳ６１において、すべての文書の操作ログを取得したか否かを判断する。すべての文書の操作ログを取得した場合、処理がステップＳ７０に進められる。未取得の操作ログがある場合、処理がステップＳ６１に進められる。
【０１５２】
［ステップＳ７０］操作対象推定部１６１は、操作ログ内の各操作情報と、その操作情報に示される操作の対象となった部品の種類との対応関係を示す対応表を作成する。操作対象推定部１６１は、作成した対応表を対応表記憶部１６２に格納する。その後、操作対象推定処理が終了する。
【０１５３】
このようにして、未確定操作の対象の部品を推定することができる。
図２５は、操作対象推定処理の一例を示す図である。図２５の例では、ＩＤ「Ｙ３−２」の操作情報で示される未確定操作の対象を推定している。この未確定操作には、種類「Ａ」の部品から抽出された差分情報と、種類「Ｂ」の部品から抽出された差分情報とが仮に対応委付けられている。ＩＤ「Ｙ３−２」の操作情報の直前の操作を示すＩＤ「Ｙ３−１」の操作情報は、操作の対象が種類「Ａ」の部品である。またＩＤ「Ｙ３−１」の操作情報で示される操作は、確定操作である。また、ＩＤ「Ｙ３−１」の操作情報の時刻とＩＤ「Ｙ３−２」の操作情報の時刻との差が、連続の操作であるための時間の閾値と比較される。例えば時間の閾値を５分とすると、ＩＤ「Ｙ３−１」の操作情報の時刻（２０：２３）と、ＩＤ「Ｙ３−２」の操作情報の時刻（２０：２５）との差（３分）は、閾値以下となる。
【０１５４】
そこでＩＤ「Ｙ３−１」の操作情報に対応付けられた差分情報から削除文字列「目印」が抽出される。またＩＤ「Ｙ３−２」の操作情報に仮に対応付けられた種類「Ａ」の部品の差分情報から、削除文字列「選択肢」が抽出される。図２５の例では、抽出された削除文字列の組が、連続操作管理テーブル１６１ａに設定されている。連続操作管理テーブル１６１ａは、例えばＲＡＭ１０２内に設けられる。
【０１５５】
連続操作管理テーブル１６１ａには、ＩＤ、部品、削除文字列、前後の確定操作、前後の操作の削除文字列、および頻出判定フラグの欄が設定されている。ＩＤの欄には、未確定操作の操作情報のＩＤが設定される。部品の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の部品の種類が設定される。削除文字列の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の削除文字列が設定される。前後の確定操作の欄には、未確定操作に連続する確定操作を示す操作情報のＩＤが設定される。前後の操作の削除文字列の欄には、未確定操作に連続する確定操作における削除文字列が設定される。頻出判定フラグの欄には、未確定操作の操作情報に仮に対応付けられた差分情報の削除文字列と、連続する確定操作の削除文字列との組が、頻出連続削除文字列か否かを示すフラグが設定される。
【０１５６】
連続操作管理テーブル１６１ａに設定された削除文字列の組は、頻出操作管理テーブル１５２ａに設定された頻出連続削除文字列と比較される。連続操作管理テーブル１６１ａに設定された削除文字列の組が頻出連続削除文字列であれば、削除文字列の組に対応付けて、頻出連続削除文字列であることを示すフラグが設定される。例えば図２５に示す連続操作管理テーブル１６１ａでは、頻出連続削除文字列の組に対応付けられた頻出連続削除文字列の欄に、「yes」と設定される。図２５の例では、「目印」と「選択肢」との組は、頻出連続削除文字列である。そのため、ＩＤ「Ｙ３−２」の操作情報に仮に対応付けられた種類「Ａ」の部品から抽出した差分情報の頻出判定フラグが「yes」に設定されている。
【０１５７】
操作対象推定部１６１は、連続操作管理テーブル１６１ａにおける未確定操作のＩＤごとに、未確定操作と削除文字列の組み合わせが頻出連続削除文字列である適合確定操作数を計数する。適合確定操作数の集計は、未確定操作に仮に対応付けられた差分情報の部品の種類ごとに行われる。
【０１５８】
図２５の例では、適合確定操作数の集計結果を、適合確定操作数管理テーブル１６１ｂに設定している。適合確定操作数管理テーブル１６１ｂには、ＩＤ、部品、適合確定操作数、および対応付けフラグの欄が設けられている。ＩＤの欄には、未確定操作の操作情報のＩＤが設定される。部品の欄には、未確定操作の操作情報に仮に対応付けられた差分情報の部品の種類が設定される。適合確定操作数の欄には、未確定操作との削除文字列の組み合わせが頻出連続削除文字列である適合確定操作数が設定される。適合確定操作数は、０〜２のいずれかの整数である。対応付けフラグの欄には、未確定操作の操作情報に部品の種類を対応付けるか否かを示すフラグが設定される。図２５の例では、未確定操作の操作情報に部品の種類を対応付けることを示すフラグが丸印で表されている。
【０１５９】
操作対象推定部１６１は、部品の種類ごとに求められた適合確定操作数が最も大きい部品の種類を、未確定操作の操作情報に対応付ける。図２５の例では、ＩＤ「Ｙ３−２」の操作情報に対して、種類「Ａ」の部品が対応付けられている。
【０１６０】
そして操作対象推定部１６１は、確定操作と、対応する部品の種類を推定した未確定操作に関する対応表１６２ａを作成し、対応表記憶部１６２に格納する。
対応表１６２ａには、ＩＤと部品との欄が設けられている。ＩＤの欄には、操作情報のＩＤが設定される。部品の欄には、操作情報に対応付けられた差分情報に示される部品の種類が設定される。
【０１６１】
このような対応表１６２ａに基づいて、セット修正部品判定部１７１が、同時に編集される可能性の高い部品を、新たに文書を作成するユーザに提示する。
図２６は、セット修正部品の判定例を示す図である。図２６には、操作ログ４１に基づいてセット修正部品を判定する例が示されている。操作ログ４１に含まれる各操作情報には、「Ｙ４−１」、「Ｙ４−２」、「Ｙ４−３」、「Ｙ４−４」のＩＤが付与されている。対応表１６２ａでは、操作情報のＩＤに対応付けて、部品の種類が設定されている。セット修正部品判定部１７１は、操作ログ４１に対して、各操作情報に対応付けられた部品の種類を追加した修正履歴４４を作成する。この修正履歴４４を用いれば、交互に操作された部品の種類が判別できる。例えば、所定の時間内に２つの種類の部品に対する操作が行われていれば、それらの部品の種類の組がセット修正部品１７２ａとされ、セット修正部品記憶部１７２に格納される。
【０１６２】
セット修正部品１７２ａは、例えば、新たに文書を作成するユーザがユーザ装置５００を用いて雛形文書の取得要求を文書作成支援装置１００に出力した際に、雛形・支援情報提供部１１２によって読み出される。雛形・支援情報提供部１１２は、セット修正部品１７２ａの情報を含む支援情報を作成し、雛形文書と支援情報とをユーザ装置５００に送信する。すると、ユーザ装置５００において、支援情報が表示される。
【０１６３】
図２７は、支援情報の表示例を示す図である。図２７には、雛形文書と支援情報とを受け取ったユーザ装置５００において表示される文書編集画面７０の例が示されている。文書編集画面７０は、文書構成表示部７１と編集部７２とを有している。文書構成表示部７１には、文書の各章のタイトルが表示されている。文書構成表示部７１では、編集部７２で編集されている部品とセットで修正する部品のタイトルの文字列が、白黒反転した文字で表示されている。
【０１６４】
編集部７２には、編集対象の文書の内容が表示される。雛形文書を取得した直後は、編集部７２に雛形文書の内容が表示される。ユーザは、編集部７２において文字列の挿入や削除を行うことで雛形文書に修正を加え、新たな文書を作成する。
【０１６５】
図２７の例では、「３．前処理」の章が編集部７２で現在編集されている。そのため、文書構成表示部７１では、「３．前処理」の章とセットと修正すべき他の章として「２．データ構造」、「５．後処理」が反転表示されている。
【０１６６】
以上説明したように、第２の実施の形態では、全文書を用いて、雛形文書内の近い箇所から時間的に連続して削除されることの多い文字列の組み合わせ（頻出連続削除文字列）が抽出される。そして、挿入箇所の候補が複数ある入力については、その時刻に削除された文字列と、直前（あるいは直後）の時刻に削除された文字列の組み合わせが、頻出連続削除文字列となるような箇所に挿入されたと推定される。また、各時刻に雛形文書から削除された文字列は、操作ログからはわからないので、雛形文書との差分から求めた挿入文字列と削除文字列の対応関係から推定される。
【０１６７】
これにより、雛形文書の複数の箇所へ入力された文字列について、その直前と直後との時刻の入力における挿入箇所が文書内で互いに離れていた場合であっても、他の文書の作成時の操作ログを手がかりに、適切な挿入箇所を推定することができる。また、同じ文字列を削除した箇所でも、挿入される文字列は文書により違うことが多いが、第２の実施の形態では各時刻に削除されたらしい文字列を推測し、削除文字列によって判断するため、文書による挿入文字列の違いの影響を受けずにすむ。その結果、適切な操作箇所の推定が可能となる。
【０１６８】
しかも、第２の実施の形態では、雛形文書に基づいて新たな文書を作成する際に、関連して書き換えられることの多い箇所がユーザに提示される。これにより文書作成時の編集漏れを抑止できる。
【０１６９】
〔その他の応用例〕
なお、上記の第２の実施の形態では、操作ログに含まれる各操作の操作情報の操作箇所の判別結果（対応表）を、セットで修正する部品の判定に使用しているが、他の用途に利用することもできる。
【０１７０】
また、上記の第２の実施の形態では、図２２のステップＳ５３や図２４のステップＳ６４時系列で連続する確定操作を抽出する際に、同一部品内の確定操作を対象としているが、連続する確定操作の抽出範囲はこれに限るものではない。例えば、同一の段落内のみを連続する確定操作の抽出対象とすることもできる。
【０１７１】
また上記の処理機能は、コンピュータによって実現することができる。その場合、修正箇所判別装置や文書作成支援装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１７２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１７４】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１７５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１７６】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
（付記１）  元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成する差分抽出手段と、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とする対応付け手段と、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定する頻出操作判定手段と、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する推定手段と、
を有する修正箇所判別装置。
【０１７７】
（付記２）  前記差分抽出手段は、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記１記載の修正箇所判別装置。
【０１７８】
（付記３）  前記頻出操作判定手段は、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記２記載の修正箇所判別装置。
【０１７９】
（付記４）  前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記２または３のいずれかに記載の修正箇所判別装置。
【０１８０】
（付記５）  前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記２乃至４のいずれかに記載の修正箇所判別装置。
【０１８１】
（付記６）  前記頻出操作判定手段は、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記１乃至５のいずれかに記載の修正箇所判別装置。
【０１８２】
（付記７）  前記推定手段は、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記１乃至６のいずれかに記載の修正箇所判別装置。
【０１８３】
（付記８）  コンピュータに、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
処理を実行させることを特徴とする修正箇所判別プログラム。
【０１８４】
（付記９）  差分情報を生成する際には、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記８記載の修正箇所判別プログラム。
【０１８５】
（付記１０）  頻出連続削除文字列を判定する際には、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記９記載の修正箇所判別プログラム。
【０１８６】
（付記１１）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記９または１０のいずれかに記載の修正箇所判別プログラム。
【０１８７】
（付記１２）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記９乃至１１のいずれかに記載の修正箇所判別プログラム。
【０１８８】
（付記１３）  頻出連続削除文字列を判定する際には、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記８乃至１２のいずれかに記載の修正箇所判別プログラム。
【０１８９】
（付記１４）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記８乃至１３のいずれかに記載の修正箇所判別プログラム。
【０１９０】
（付記１５）  コンピュータが、
元文書と、該元文書を修正することで作成された複数の修正文書とを記憶する文書記憶手段を参照し、該元文書と該複数の修正文書それぞれとを比較し、該元文書に対して挿入された挿入文字列、該挿入文字列が挿入された位置から削除された削除文字列、および該挿入文字列の該修正文書内での位置を含む差分情報を、修正文書ごとに生成し、
前記元文書から前記複数の修正文書それぞれを作成する際に記録された入力文字列、および該入力文字列の入力時刻を含む修正文書ごとの操作情報を記憶する操作情報記憶手段を参照し、操作情報それぞれに対して、該操作情報と同じ修正文書の識別情報と、該操作情報の入力文字列と同じ内容の挿入文字列とを含む差分情報を対応付け、差分情報が１つだけ対応付けられた操作情報を確定操作情報、複数の差分情報が対応付けられた操作情報を未確定操作情報とし、
同一の修正文書に対する確定操作情報の中から、入力時刻が時系列で連続する複数の確定操作情報を選択し、選択した複数の確定操作情報それぞれに対応付けられた差分情報の削除文字列の組を連続削除文字列として抽出し、抽出された回数が所定数以上の連続削除文字列を頻出連続削除文字列と判定し、
未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出し、検出した差分情報に示される位置を、該未確定操作情報を記録した際に操作された位置と推定する、
ことを特徴とする修正箇所判別方法。
【０１９１】
（付記１６）  差分情報を生成する際には、修正文書を所定の規則で複数の部品に分割し、挿入文字列を含む部品を、挿入文字列の修正文書内での位置とすることを特徴とする付記１５記載の修正箇所判別方法。
【０１９２】
（付記１７）  頻出連続削除文字列を判定する際には、同一の修正文書および同一の部品に対する確定操作情報の中から、入力時刻が時系列で連続する確定操作情報を選択することを特徴とする付記１６記載の修正箇所判別方法。
【０１９３】
（付記１８）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記１６または１７のいずれかに記載の修正箇所判別方法。
【０１９４】
（付記１９）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書内の同一の部品に対する入力時刻が時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を複数検出した場合、頻出連続削除文字列と一致する削除文字列の組を構成可能な確定操作情報の数が多い差分情報に示される位置を、該未確定の操作情報を記録した際に操作された位置と推定することを特徴とする付記１６乃至１８のいずれかに記載の修正箇所判別方法。
【０１９５】
（付記２０）  頻出連続削除文字列を判定する際には、同一の修正文書に対する確定操作情報の中から、所定時間内の差で入力時刻が時系列で連続する操作情報を選択することを特徴とする付記１５乃至１９のいずれかに記載の修正箇所判別方法。
【０１９６】
（付記２１）  操作された位置を推定する際には、未確定操作情報に対応付けられた差分情報のうち、該差分情報に含まれる削除文字列と、該未確定操作情報と同一の修正文書に対する入力時刻が所定時間内の差の時系列で連続する確定操作情報に対応付けられた差分情報に含まれる削除文字列との組が、頻出連続削除文字列と一致する差分情報を検出することを特徴とする付記１５乃至２０のいずれかに記載の修正箇所判別方法。
【符号の説明】
【０１９７】
１  文書記憶手段
１ａ  元文書
１ｂ，１ｃ，１ｄ  修正文書
２  差分抽出手段
３  操作情報記憶手段
４  対応付け手段
５  頻出操作判定手段
６  推定手段
【図１】
0005585145.tif 000002
【図２】
0005585145.tif 000003
【図３】
0005585145.tif 000004
【図４】
0005585145.tif 000005
【図５】
0005585145.tif 000006
【図６】
0005585145.tif 000007
【図７】
0005585145.tif 000008
【図８】
0005585145.tif 000009
【図９】
0005585145.tif 000010
【図１０】
0005585145.tif 000011
【図１１】
0005585145.tif 000012
【図１２】
0005585145.tif 000013
【図１３】
0005585145.tif 000014
【図１４】
0005585145.tif 000015
【図１５】
0005585145.tif 000016
【図１６】
0005585145.tif 000017
【図１７】
0005585145.tif 000018
【図１８】
0005585145.tif 000019
【図１９】
0005585145.tif 000020
【図２０】
0005585145.tif 000021
【図２１】
0005585145.tif 000022
【図２２】
0005585145.tif 000023
【図２３】
0005585145.tif 000024
【図２４】
0005585145.tif 000025
【図２５】
0005585145.tif 000026
【図２６】
0005585145.tif 000027
【図２７】
0005585145.tif 000028