(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-18
(45)【発行日】2024-03-27
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06F 40/134 20200101AFI20240319BHJP
G06F 40/14 20200101ALI20240319BHJP
G06F 40/194 20200101ALI20240319BHJP
【FI】
G06F40/134
G06F40/14
G06F40/194
(21)【出願番号】P 2019220555
(22)【出願日】2019-12-05
【審査請求日】2022-11-22
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】小林 真之
(72)【発明者】
【氏名】沼田 賢一
(72)【発明者】
【氏名】原田 祐志
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2009-134580(JP,A)
【文献】特開2003-281118(JP,A)
【文献】特開2016-001399(JP,A)
【文献】特開2015-184749(JP,A)
【文献】特開2015-032293(JP,A)
【文献】宮部 泰成 外2名,異なる文書中の文間関係の特定 ,情報処理学会研究報告 2005-NL-168 自然言語処理,日本,社団法人情報処理学会 ,2005年07月22日,第2005巻 第73号,pp.35-42
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
(57)【特許請求の範囲】
【請求項1】
第1文書要素と第2文書要素との内容の類似性の特徴を示す特徴情報と、前記第1文書要素の属性と、前記第2文書要素の属性と、を含む入力情報を取得する取得手段と、
前記入力情報から前記第1文書要素と前記第2文書要素の関係を表す関係情報を生成することを予め機械学習により学習したAIによって、前記取得手段が取得した前記入力情報に対応する前記関係情報を生成する生成手段と、
を備え、
前記第1文書要素及び前記第2文書要素の内容はそれぞれ1以上の部分から構成され、
前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアの類似性を示す類似性情報に基づき求められたものである、
ことを特徴とする情報処理装置。
【請求項2】
前記ペアの前記類似性情報は、前記ペアを構成する前記部分同士の内容の類似度
である、請求項1に記載の情報処理装置。
【請求項3】
前記ペアの前記類似性情報は、前記ペアを構成する前記部分同士の内容の類似度に基づいた評価値である、請求項1に記載の情報処理装置。
【請求項4】
前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアから選ばれた1以上の代表ペアについての前記評価値に基づいている、請求項3に記載の情報処理装置。
【請求項5】
前記代表ペアは、前記評価値が高い順に選ばれる、
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記代表ペアは、前記評価値が特定の条件を満たす前記ペアの中から選ばれる、ことを特徴とする請求項4に記載の情報処理装置。
【請求項7】
前記各ペアの前記類似性情報を記憶する記憶手段と、
前記第1文書要素の前記部分に変更があった場合に、前記第1文書要素のうち前記変更があった前記部分を含む各ペアについては前記類似性情報を計算し直し、前記第1文書要素のうち前記変更があった部分以外の部分を含む各ペアについては前記記憶手段に記憶されている前記類似性情報を用いて、前記変更があった後の前記第1文書要素と、前記第2文書要素と、についての前記特徴情報を求める手段と、
をさらに備える請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
前記文書要素の前記属性は、前記文書要素の格納場所の情報を含む、請求項1~7のいずれか1項に記載の情報処理装置。
【請求項9】
前記第1文書要素が変更された場合に、前記第2文書要素に対して、前記第1文書要素と前記第2文書要素との前記関係情報に応じた処理を実行する実行手段、
を更に備える請求項1~8のいずれか1項に記載の情報処理装置。
【請求項10】
前記第1文書要素と前記第2文書要素との前記関係情報が、前記第1文書要素と前記第2文書要素との類似度が0より大きい所定の第1閾値以上であるという第1種類の関係を表している場合、前記処理は、前記第2文書要素の関与者に前記第1文書
要素が変更された旨を通知する通知処理である、請求項9に記載の情報処理装置。
【請求項11】
前記通知処理は、変更された前記第1文書要素と、前記第1文書要素に関係付けられた一以上の前記第2文書要素と、の関係を示す表示画面において、一以上の前記第2文書要素のうち、前記第1文書要素の変更後に変更されていない前記第2文書要素を、前記第1文書要素の変更後に変更された前記第2文書要素とは異なる表示態様で表示する処理である、請求項
10に記載の情報処理装置。
【請求項12】
コンピュータを、
第1文書要素と第2文書要素との内容の類似性の特徴を示す特徴情報と、前記第1文書要素の属性と、前記第2文書要素の属性と、を含む入力情報を取得する取得手段、
前記入力情報から前記第1文書要素と前記第2文書要素の関係を表す関係情報を生成することを予め機械学習により学習したAIによって、前記取得手段が取得した前記入力情報に対応する前記関係情報を生成する生成手段、
として機能させるためのプログラムであって、
前記第1文書要素及び前記第2文書要素の内容はそれぞれ1以上の部分から構成され、
前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアの類似性を示す類似性情報に基づき求められたものである、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、文書間の関連を求めるための装置が開示されている。この装置において文書間関連抽出部の関連元箇所抽出部は、関連元文書記憶部に記憶された関連元文書の文書種類に合致する文書間関連抽出ルールを文書間関連抽出ルール記憶部から選択する。関連元箇所抽出部は、関連元文書の文中からルールの関連元箇所抽出条件に合致する箇所を関連元箇所として抽出する。関連先文書検索条件生成部は、ルールに従い、関連元箇所に含まれる語句から関連先文書検索条件を生成する。関連先文書検索部は、関連先文書記憶部に記憶される関連先文書のうち、当該文書の種類がルールで定めた関連先文書種類に合致し、かつ、ルールにおける関連先文書検索条件を満たす関連先文書を検索し、関連元文書と関連先文書の関連を記憶装置の文書間関連記憶部に記憶する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、文書間の関係を求めることを目的とする。
【課題を解決するための手段】
【0005】
請求項1に係る発明は、第1文書要素と第2文書要素との内容の類似性の特徴を示す特徴情報と、前記第1文書要素の属性と、前記第2文書要素の属性と、を含む入力情報を取得する取得手段と、前記入力情報から前記第1文書要素と前記第2文書要素の関係を表す関係情報を生成することを予め機械学習により学習したAIによって、前記取得手段が取得した前記入力情報に対応する前記関係情報を生成する生成手段と、を備え、前記第1文書要素及び前記第2文書要素の内容はそれぞれ1以上の部分から構成され、前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアの類似性を示す類似性情報に基づき求められたものである、ことを特徴とする情報処理装置である。
【0006】
請求項2に係る発明は、前記ペアの前記類似性情報は、前記ペアを構成する前記部分同士の内容の類似度である、請求項1に記載の情報処理装置である。
【0007】
請求項3に係る発明は、前記ペアの前記類似性情報は、前記ペアを構成する前記部分同士の内容の類似度に基づいた評価値である、請求項1に記載の情報処理装置である。
【0008】
請求項4に係る発明は、前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアから選ばれた1以上の代表ペアについての前記評価値に基づいている、請求項3に記載の情報処理装置である。
【0009】
請求項5に係る発明は、前記代表ペアは、前記評価値が高い順に選ばれる、ことを特徴とする請求項4に記載の情報処理装置である。
【0010】
請求項6に係る発明は、前記代表ペアは、前記評価値が特定の条件を満たす前記ペアの中から選ばれる、ことを特徴とする請求項4に記載の情報処理装置である。
【0011】
請求項7に係る発明は、前記各ペアの前記類似性情報を記憶する記憶手段と、前記第1文書要素の前記部分に変更があった場合に、前記第1文書要素のうち前記変更があった前記部分を含む各ペアについては前記類似性情報を計算し直し、前記第1文書要素のうち前記変更があった部分以外の部分を含む各ペアについては前記記憶手段に記憶されている前記類似性情報を用いて、前記変更があった後の前記第1文書要素と、前記第2文書要素と、についての前記特徴情報を求める手段と、をさらに備える請求項1~6のいずれか1項に記載の情報処理装置である。
【0012】
請求項8に係る発明は、前記文書要素の前記属性は、前記文書要素の格納場所の情報を含む、請求項1~7のいずれか1項に記載の情報処理装置である。
【0013】
請求項9に係る発明は、前記第1文書要素が変更された場合に、前記第2文書要素に対して、前記第1文書要素と前記第2文書要素との前記関係情報に応じた処理を実行する実行手段、を更に備える請求項1~8のいずれか1項に記載の情報処理装置である。
【0014】
請求項10に係る発明は、前記第1文書要素と前記第2文書要素との前記関係情報が、前記第1文書要素と前記第2文書要素との類似度が0より大きい所定の第1閾値以上であるという第1種類の関係を表している場合、前記処理は、前記第2文書要素の関与者に前記第1文書要素が変更された旨を通知する通知処理である、請求項9に記載の情報処理装置である。
【0015】
請求項11に係る発明は、前記通知処理は、変更された前記第1文書要素と、前記第1文書要素に関係付けられた一以上の前記第2文書要素と、の関係を示す表示画面において、一以上の前記第2文書要素のうち、前記第1文書要素の変更後に変更されていない前記第2文書要素を、前記第1文書要素の変更後に変更された前記第2文書要素とは異なる表示態様で表示する処理である、請求項10に記載の情報処理装置である。
【0016】
請求項12に係る発明は、コンピュータを、第1文書要素と第2文書要素との内容の類似性の特徴を示す特徴情報と、前記第1文書要素の属性と、前記第2文書要素の属性と、を含む入力情報を取得する取得手段、前記入力情報から前記第1文書要素と前記第2文書要素の関係を表す関係情報を生成することを予め機械学習により学習したAIによって、前記取得手段が取得した前記入力情報に対応する前記関係情報を生成する生成手段、として機能させるためのプログラムであって、前記第1文書要素及び前記第2文書要素の内容はそれぞれ1以上の部分から構成され、前記特徴情報は、前記第1文書要素と前記第2文書要素との間の前記部分同士のペアの類似性を示す類似性情報に基づき求められたものである、ことを特徴とするプログラムである。
【発明の効果】
【0017】
請求項1、2、3又は12に係る発明によれば、文書間の関係を求めることができる。
【0018】
請求項4、5又は6に係る発明によれば、文書要素同士の全体としての内容の類似性が低い場合も、それら文書要素間の部分同士の中に類似性が高いものがあれば、それら文書要素同士の内容の類似性が高いことを示す特徴情報を生成することができる。
【0019】
請求項7に係る発明によれば、第1文書要素の部分に変更があった場合に、第1文書要素と第2文書要素の間の部分同士のすべてのペアについての類似性情報を再計算する場合よりも、計算の負荷を軽減することができる。
【0020】
請求項8に係る発明によれば、文書要素の格納場所を考慮しない方式よりも、文書要素同士の関係情報をより的確に求めることができる。
【0021】
請求項9に係る発明によれば、第1文書要素が変更された場合に第2文書要素に関して行う処理を、第1文書要素と第2文書要素との関係の種類によらず一律なものとした場合と比べて、一律な処理が行われることによる弊害を低減することができる。
【0022】
請求項10に係る発明によれば、第1文書要素に対して関係を持つ第2文書要素が、第1文書要素の変更に応じて変更済みでない場合に、第2文書要素の関与者にその旨を知らせることができる。
【0023】
請求項11に係る発明によれば、第1文書要素に対して関係を持つ第2文書要素が、第1文書要素の変更に応じて変更済みか否かを、表示画面における第2文書要素の表示態様の違いによりユーザに知らせることができる。
【図面の簡単な説明】
【0024】
【
図1】文書サービスシステムを含む全体システムの構成を例示する図である。
【
図2】
図1のシステムにおける文書作成作業の例を説明するための図である。
【
図3】文書サービスシステムが実装されたコンピュータのハードウエア構成を例示する図である。
【
図4】文書サービスシステムが実行する、データベースの構築及び保守の処理手順を例示する図である。
【
図6】データベース中の文書プロパティのデータ構造を例示する図である。
【
図7】データベース中の要素プロパティのデータ構造を例示する図である。
【
図8】データベース中の関係情報を例示する図である。
【
図9】文書サービスシステムが提供する情報提供画面の一例を示す図である。
【
図10】文書サービスシステムが実行する、情報提供画面の生成のための処理手順を例示する図である。
【
図11】文書サービスシステムが提供する情報提供画面の別の一例を示す図である。
【
図12】文書サービスシステムが実行する、情報提供画面の生成のための処理手順の別の例を示す図である。
【
図13】文書サービスシステムが提供する情報提供画面の更に別の一例を示す図である。
【
図14】文書サービスシステムが実行する、情報提供画面の生成のための処理手順の更に別の例を示す図である。
【
図15】文書サービスシステムが提供するグラフ表示の一例を示す図である。
【
図16】文書サービスシステムが実行する通知処理の手順の一部を例示する図である。
【
図17】文書要素同士の関係の種類を判定するAIを学習させる手順を例示する図である。
【
図18】文書要素間の段落同士の類似度を総当たりで求める処理を説明するための図である。
【
図19】データベース内の段落同士の類似度の情報を例示する図である。
【
図20】文書要素内の関係の種類を、AIを用いて判定する手順の例を示す図である。
【
図21】文書要素内の関係の種類を、AIを用いて判定する手順の別の例を示す図である。
【発明を実施するための形態】
【0025】
<全体システムの例>
図1に、本発明に係る情報処理装置の一実施形態である文書サービスシステム100を含んだ文書利用のための全体システムを例示する。
【0026】
この例では、文書サービスシステム100は、ある会社の社内ネットワーク40に接続されている。社内ネットワーク40には、設計書管理システム10や社内規定管理システム20のように、社内の各種文書を管理するための1以上の文書管理システムが接続されている。また社内ネットワーク40には、ユーザが操作するパーソナルコンピュータ等のクライアント30が接続されている。
【0027】
インターネット50上には、法令管理システム60や「XX」技術の標準文書を管理するXX標準管理システム70等の、各種の文書管理システムが存在する。社内ネットワーク40上の文書サービスシステム100やクライアント30等の装置は、それらインターネット50上の文書管理システムが持つ文書にアクセス可能である。
【0028】
文書サービスシステム100は、設計書管理システム10等の社内の文書管理システム内の文書に関係する他文書に変更があった場合に、その文書に関してその他文書の変更に対応したサービス(例えば関係者へのその変更の通知)を提供する。
【0029】
図2に例示するように、会社内のあるユーザが、ある製品の設計書Aを作成して設計書管理システム10に登録し、保守している場合を考える。製品は、各種の法令や各種の社内規定を満たすように設計される必要があるため、設計書Aもそれら法令や社内規定等といった他の文書を参照しながら作成される。例えば、設計書Aは、法令管理システム60の法令DB62に登録されている道路運送車両法と、社内規定管理システム20の社内規定DB22に登録されている完成検査実施規定とを参照して作成されている。法令DB62内の各法令も社内規定DB22内の各規定も、改正に追従して随時更新されている。
【0030】
道路運送車両法と完成検査実施規定が改正されると、設計書Aの内容を更新する必要が出てくる場合があるが、必ず更新が必要とは限らない。例えば、法令等の改正された部分が、設計書Aの内容が依拠している部分と異なる場合には、設計書Aの内容の更新は不要である。
【0031】
また、設計書Aが法令のある部分に依拠して作成されているとしても、その依拠の仕方は様々である。例えば、設計書A内に法令の一節がそのままコピーする形で引用されている場合もあれば、法令の関係箇所を確認しつつ設計書A内のある部分を記載しただけで両者間に用語の一致が見られる程度にすぎない場合もある。前者の場合は、法令のその一節が改正されるのに応じて、設計書A内の引用箇所を修正する必要性は高い。これに対して、後者の場合、法令の関係箇所の改正に応じた設計書A側での対応の必要度合いは、前者の場合より低い。
【0032】
そこで本実施形態の文書サービスシステム100は、この設計書Aの管理担当者等の文書の関与者に対して、その文書に関係する他文書の変更に応じてその文書を変更する必要があるかどうか判断する作業を支援する等のサービスを提供する。
【0033】
ここで、「文書」とは、何らかのデータ形式のデータであり、そのデータ形式は特に限定されない。例えば、文書は、テキストデータ形式のデータであってもよいし、PDF形式等の各種の文書ファイル形式であってもよい。また文書は、様々なイメージデータ形式の画像データであってもよいし、動画データであってもよいし、HTML(HyperText Markup Language)形式やXML(eXtensible Markup Language)形式等のような構造化文書形式のデータであってもよい。
【0034】
またこの明細書では、文書にとっての「関与者」とは、その文書の内容の保守に関与している個人又はユーザグループである。関与者は、例えば、その文書の内容の保守の担当者であってもよいし、その担当者に対してその保守の実行を促す役割のものであってもよい。例えば、文書を作成したユーザや文書を更新したユーザが、関与者の代表例である。また、文書が複数の文書要素から構成され、文書要素ごとに関与者が設定されている場合もあり得る。
【0035】
<ハードウエア構成の例>
文書サービスシステム100は、コンピュータにそのシステムの機能を表すプログラムを実行させることにより実現される。
【0036】
ここで、文書サービスシステム100のベースとなるコンピュータは、例えば、
図3に示すように、ハードウエアとして、プロセッサ102、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)104、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)等の補助記憶装置106を制御するコントローラ、各種の入出力装置108とのインタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース110等が、例えばバス112等のデータ伝送路を介して接続された回路構成を有する。文書サービスシステム100の各機能の処理内容が記述されたプログラムが、ネットワーク等を経由してコンピュータにインストールされ、補助記憶装置106に保存される。補助記憶装置106に記憶されたプログラムが、プロセッサ102によりメモリ104を用いて実行されることにより、文書サービスシステム100の各機能が実現される。
【0037】
ここでプロセッサ102とは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0038】
また、プロセッサ102の動作は、1つのプロセッサ102によってなすのみでなく、物理的に離れた位置に存在する複数のプロセッサ102が協働してなすものであってもよい。また、プロセッサ102の各動作は、以下の実施形態において説明する順序のみに限定されるものではなく、適宜に変更してもよい。
【0039】
なお、設計書管理システム10、社内規定管理システム20、クライアント30等の他の装置も、文書サービスシステム100と同様、コンピュータをベースとして構成されている。
【0040】
<データベース構築>
図4~
図8を参照して、文書サービスシステム100がサービス提供のために用いるデータベースの構築処理の例を説明する。このデータベースは、文書サービスシステム100が備える補助記憶装置106内に構築される。
【0041】
文書サービスシステム100は、設計書管理システム10、社内規定管理システム20、法令管理システム60等、社内外の所定の文書管理システムを例えば定期的に巡回し、それら各文書管理システムに登録されている文書群を取得して解析する。この場合、文書サービスシステム100は、通知された情報を解析する。
図4に示す手順は、文書サービスシステム100が、いずれかの文書管理システムから1つの文書を取得(S10)したときに実行する処理を示している。
【0042】
この場合、文書サービスシステム100のプロセッサ102は、取得した文書の構造を解析することにより、その文書を文書要素の単位に分割する(S12)。構造解析は、例えば、文書をHTML形式に変換する処理により行う。HTML変換のための多種多様なツールが存在しており、S12では、その文書のファイル形式にあったツールを用いればよい。または、文書内容から見出しや、章、節、段落等の構造を認識する既存技術を用いて構造解析を行ってもよい。また、取得した文書が既にXML形式等の構造化文書である場合は、S12は省略してもよい。
【0043】
次にプロセッサ102は、S10で取得した文書と同一の文書のデータがデータベース内に登録されているか否かを判定する(S14)。ここで言う「同一」とは、文書の内容全体が同一ということではなく、文書同士が同一の識別情報を持つということである。文書の識別情報のことを文書IDと呼ぶ。S14では、取得した文書の同じ文書IDを持つ文書の情報がデータベース内にあるか否かを判定する。
【0044】
文書IDとしては、例えば、その文書の取得元の文書管理システム(例えば社内規定管理システム20や法令管理システム60)の識別情報と、その文書管理システムでのその文書の識別情報との組合せを用いてもよい。例えば、文書管理システム内にあるその文書のURL(Uniform Resource Locator)をその文書の文書IDとする等である。
【0045】
S14の判定結果がNoの場合、S10で取得した文書は、プロセッサ102が初めて出会った文書である。この場合、プロセッサ102は、S10で取得した文書の情報と、S12の構造解析により得られた各文書要素の情報をデータベースに登録する(S16)。
【0046】
次にプロセッサ102は、それら文書要素ごとに、データベース内に登録された他の文書要素との間での内容の類似度を計算し、得られた類似度をデータベースに登録する(S17)。文書要素同士の内容の類似度は、例えば、それら個々の文書要素に含まれる文字列をベクトル化し、得られた文書要素のベクトル同士の類似度合いを公知の手法(例えばコサイン類似度)で計算することで求めればよい。文書要素の文字列をベクトル化する方法としては、TF-IDF(Term Frequency-Inverse Document Frequency)やdoc2vec等の既存の手法を用いればよい。
【0047】
ここで、S12で求めた文書要素との類似度を求める相手である「他の文書要素」は、典型的には、データベースに登録されている他の文書の文書要素である。ただし、これに限らず、S12で求めた文書要素同士の間の類似度を更に計算してもよい。
【0048】
次にプロセッサ102は、S10で取得した文書と、データベースに登録されている他の文書との間の類似度を計算し、計算結果の類似度をデータベースに登録する(S18)。例えば、S12の構造解析において得られる文書内の章、節の見出しの文字列をその出現順に並べてマージした文字列を、その文書の特徴を示す文字列とし、その文字列をベクトル化する。このようにして得られた文書の特徴を示す文字列のベクトル同士の類似度を、それら文書間の類似度として求める。なお、文書間の類似度の計算方式はこれに限らない。この他に、例えば、文書内の文書要素(例えば章、節、段落)が構成するツリー構造をその文書の特徴とし、その特徴同士の類似度を、文書間の類似度としてもよい。
【0049】
S14の判定結果がYesの場合、S10で取得した文書のデータは、文書サービスシステム100のデータベース内に登録されている。この場合、プロセッサ102は、S10で取得した文書、及びS12で求めた各文書要素が、データベース内に登録されている文書及び文書要素から変更されているか否かを調べる(S20)。このステップでは、例えば、S12で求めた文書要素ごとに、その文書要素の内容(すなわち文字列)を、データベース内の同じ文書要素(すなわち識別情報が同じ文書要素)の内容と比較し、両者が一致すればその文書要素は変更なし、不一致ならばその文書要素は変更有りと判定する。また、S12で求めた文書要素と同じ文書要素がデータベース内にない場合や、データベース内にある文書要素と同じ文書要素がS12の構造解析結果にない場合も、その文書要素に変更がある場合の例である。そして、いずれか1以上の文書要素について変更有りと判定された場合は文書全体について変更があるということであり、変更有りと判定された文書要素が1つもなければ文書全体について変更がないということである。
【0050】
プロセッサ102は、S20で文書、文書要素についての変更を検出したかどうかを判定し(S22)、変更を検出した場合は、検出した変更の情報をデータベースに反映する(S24)。例えば、ある文書要素の内容が変更されていた場合、データベース内のその文書要素の内容を、その変更後の内容に更新する。変更が検出されなかった文書要素については、データベースに登録されている情報は変更不要である。また、文書内の文書要素の変更が検出された場合、データベース内のその文書の更新日時等の情報を変更する。
【0051】
またプロセッサ102は、S20で内容の変更が検出された文書要素について、データベース内の他の文書要素との間での内容の類似度を計算する。そして、データベースに登録されている、それら文書要素間の類似度の値を、その計算により得られた値へと更新する(S26)。なお、S20で検出された文書要素がデータベース内にない新規の文書要素である場合は、その文書要素とデータベース内の他の文書要素との類似度を計算し、その類似度をデータベースに登録する。また、データベース内にある文書要素がなくなったことがS20で検出された場合は、そのなくなった文書要素と他の文書要素との類似度の情報をデータベースから削除してもよい。なお、変更が検出されなかった文書要素については、S26の処理は行わない。
【0052】
また、プロセッサ102は、S10で取得した文書とデータベース内の他の文書との類似度を、S18の場合と同様に計算し、データベース内の該文書と他の文書との類似度をその計算結果に応じて更新する(S28)。
【0053】
図5~
図8を参照して、文書サービスシステム100内のデータベースに登録される情報の例を説明する。
【0054】
図5に、データベースに登録されている2つの文書200及び210の、HTML化による構造解析結果の情報を例示する。文書200は、H1要素(例えば当該文書のタイトル)を子の文書要素(以下、子要素と呼ぶ)として持ち、そのH1要素は子要素として2つのH2要素を持ち、それらH2要素はそれぞれ2つ及び1つのH3要素を子要素として持つ。このように文書200の構造情報は、図示のツリー構造により表現される。文書及び各文書要素にはそれぞれ一意な識別情報が割り当てられている。データベースには、文書の構造情報として、その文書の識別情報に対応付けて、図示のツリー構造を表現するデータが登録される。
【0055】
また、データベースには、文書200及び210のそれぞれについてのプロパティデータ(「文書プロパティ」と呼ぶ)と、個々の文書要素についてのプロパティデータ(「要素プロパティ」と呼ぶ)が登録される。
【0056】
また、文書200と文書210との間の、文書間の類似度が計算され、データベースに登録される。また、この文書要素同士の間の内容の類似度が計算され、データベースに登録される。
【0057】
図6は、データベースに登録されている文書プロパティのデータ構造の一例を示す。
図6に例示した文書の文書プロパティには、該文書の文書ID、文書名、文書特徴、作成者、作成日時、最終更新者、更新日時、取得日時、格納場所の各項目が含まれる。文書名は、例えば該文書のファイル名である。また、文書特徴は、該文書の特徴を示すデータであり、例えば前述した該文書内の章、節の見出しの文字列をその出現順に並べてマージした文字列がその一例である。またこの文字列をベクトル化したものを文書特徴として用いてもよい。作成者は、該文書を最初に作成したユーザのユーザIDを示し、作成日時はその作成の日時を示す。また最終更新者は、該文書を最後に更新したユーザのユーザIDを示し、更新日時はその更新の日時を示す。これら作成者、作成日時、最終更新者、更新日時の情報は、例えば、その文書のファイルの属性データから取得すればよい。また、取得日時は、プロセッサ102が、社内規定管理システム20や法令管理システム60等の文書管理システムから該文書を最後に取得した日時を示す。格納場所は、該文書が元々格納されていた文書管理システムを特定する情報(例えばその文書管理システムのURL)である。
【0058】
前述した
図4の手順のS18及びS26では、このような文書プロパティの情報と、S12で求めた該文書のツリー構造の情報をデータベースに登録する。
【0059】
図7は、データベースに登録されている要素プロパティのデータ構造の一例を示す。
図7に例示した文書要素の要素プロパティには、該文書要素の要素ID、要素名、要素内容、内容特徴、作成者、作成日時、最終更新者、更新日時、取得日時、格納場所の各項目が含まれる。要素IDは、該文書要素の識別情報である。例えば、該文書要素が含まれている文書の文書IDと、該文書内で該文書要素に一意に割り当てた番号との組を、要素IDとしてもよい。要素名は、該文書要素の名前である。例えば、該文書要素が見出しを含む場合はその見出しを要素名としてもよい。また該文書要素が見出しを含まない場合は、該文書要素の先頭の所定文字数の文字列を要素名としてもよい。要素内容は、該文書要素の内容のデータである。例えば該文書要素がテキストであれば、要素内容はそのテキストの文字列である。要素特徴は、該文書要素の特徴を示すデータであり、例えば前述した該文書要素の文字列をベクトル化したものである。作成者は、該文書を最初に作成したユーザのユーザIDを示し、作成日時はその作成の日時を示す。元の文書のファイル(又はこれを管理している文書管理システム)が、文書要素単位で作成者や作成日時の情報を有している場合は、それらの情報が要素プロパティの作成者及び作成日時の項目に登録される。元の文書のファイルが、文書単位での作成者及び作成日時しか持たない通常のケースでは、該文書に含まれる文書要素の要素プロパティの作成者及び作成日時には、該文書の作成者及び作成日時が登録される。
【0060】
最終更新者は、該文書要素を最後に更新したユーザのユーザIDを示し、更新日時はその更新の日時を示す。元の文書のファイル(又はこれを管理している文書管理システム)が、文書要素単位で最終更新者や更新日時の情報を有している場合は、それらの情報が要素プロパティの最終更新者及び更新日時の項目に登録される。元の文書のファイルが、文書単位での最終更新者や更新日時しか持たない通常のケースでは、該文書に含まれる文書要素の要素プロパティの最終更新者や更新日時の項目には、該文書要素の内容が変更されたことを検知したときの文書の最終更新者や更新日時の値が登録される。なお、文書要素の内容が変更されたか否かは、S12で得た文書要素の要素内容又は内容特徴と、これと同じ要素IDを持つデータベース内の文書要素の要素内容又は内容特徴とを比較することで判定すればよい。
【0061】
また、取得日時は、プロセッサ102が、該文書要素を最後に取得した日時である。この取得日時は、該文書要素が含まれる文書の取得日時と同じである。格納場所は、該文書要素が元々格納されていた文書管理システムを特定する情報であり、該文書要素が含まれる文書の格納場所と同じである。
【0062】
前述した
図4の手順のS16では、このような要素プロパティの各項目の情報をデータベースに登録する。またS24では、変更が検知された文書要素の要素プロパティの各項目の値を、その変更の内容に応じた値に更新する。
【0063】
なお、文書が外部(例えば社内ネットワーク40の外)の文書管理システムから取得されたものである場合、その文書については
図6及び
図7に例示した文書プロパティ及び要素プロパティのうちの全ての項目の情報が取得できない場合がある。そのような項目は空値とするか、又は他の情報に基づき文書サービスシステム100が求めた値を設定する。例えば、法令管理システム60から取得した文書については、作成者、作成日時、最終更新者、更新日時の情報が、その文書又は法令管理システム60から入手できないことが考えられる。その場合、作成者、作成日時、最終更新者の項目は空値としておいてもよい。また、取得した文書内の文書要素に
図4の手順のS20で変更を検知した場合、文書サービスシステム100は、その文書要素及びその文書の更新日時に、その取得の日時を設定すればよい。
【0064】
図6及び
図7に例示した文書プロパティ及び要素プロパティの項目群はあくまで一例に過ぎない。文書プロパティ及び要素プロパティは、図示した項目の全てを含んでいる必要はないし、また図示していない項目を含んでいてもよい。
【0065】
図8に、データベースに登録されている文書要素同士の関係情報を例示する。
図8に例示した関係情報は、2つの文書要素の要素IDのペアに対応付けて、それら2つの文書要素の内容の類似度の値と、その値から判定されるそれら文書要素同士の関係の種類とを含んでいる。この例では、文書要素同士の関係の種類を、文書要素同士の内容の類似度の大きさに応じていくつかに分類している。例えば、文書要素同士の内容の類似度が0.95(すなわち95%)以上の場合は、それら文書要素同士の関係の種類を「引用」と名付ける。また、文書要素同士の内容の類似度が0.80以上0.95未満の場合の関係の種類を「類似」と名付け、0.60以上0.80未満の場合の関係の種類を「参照」と名付ける。また、類似度が0.60未満場合は、それら2つの文書要素は無関係と判断する。
【0066】
また、
図8では省略したが、類似度や関係の種類を判定した日時を更に関係情報に登録してもよい。
【0067】
図4の手順のS17及びS26では、文書要素同士の類似度と、その類似度に対応する関係の種類を判定し、それらの値を
図8に例示した関係情報に登録する。
【0068】
なお、
図8に例示した関係情報はあくまで例示的なものにすぎない。関係情報としては、類似度は含むが関係の種類を含まないものを用いてもよいし、その逆に類似度は含まないが関係の種類は含むものを用いてもよい。
【0069】
<文書サービスシステムが提供するサービス>
構築されたデータベースを用いて文書サービスシステム100が提供するサービスの例を説明する。
【0070】
図9に、文書サービスシステム100がユーザに提供する情報提供画面300を例示する。この情報提供画面300は、ユーザから指定された文書320の中で変更があった文書要素322及び324に関係がある文書要素332及び342の情報を提供する。その情報は、それら文書320や文書要素322,324,332,342の関係のグラフ310の形で提供される。
【0071】
なお、この情報提供画面300には、変更があった文書要素322及び324に関係がある全ての文書要素が示されるのではなく、そのうちそのユーザが関与者(例えばその文書要素の作成又は更新を行った者等)である文書要素のみが表示される。そのユーザが関与者である文書要素は、文書要素322及び324の変更に応じた変更作業をそのユーザが行うものと期待されるので、そのユーザにその文書要素の情報を提供するのである。これに対して、ユーザが関与者でない文書要素は、そのユーザに対して情報提供しても、そのユーザが修正等の対応作業を行えない可能性が高いので、情報提供を行わない。
【0072】
なお、ここでは文書要素の関与者として、文書要素の要素プロパティに含まれる作成者又は更新者を例示したが、この他に、その文書要素又はその文書要素の含む文書に対して編集権限を持っているユーザやユーザグループを、その文書要素の関与者としてもよい。
【0073】
図示例では、ユーザから指定された文書は「サービス品質保証ガイド」という文書名の文書であり、そのうち「規定第7項」という要素名の文書要素322と、「規定第11項」という要素名の文書要素324とが、変更があった文書要素として検出されている。文書要素に変更があったかどうかは、例えば現在から所定長さ(例えば1ヶ月)だけ遡る期間内にその文書要素が更新されているか否かにより判定すればよい。すなわち、文書要素の最終更新日時がその期間内であれば「変更があった」と判定し、最終更新日時がその期間より前であれば、「変更はなかった」と判定すればよい。なお、その期間の長さをユーザが指定できるようにしてもよい。また、その期間の始期と終期の両方をユーザが指定できるようにしてもよい。情報提供画面300の右下の「期間」の指定欄は、このために用いられる。
【0074】
また図示例では、変更があった文書要素322に対して「参照」の関係を持つ文書要素332が見つかっている。この文書要素332は、「ファミリー動作環境.docx」という文書名の文書330に属する文書要素であり、「3.動作仕様」という要素名を持つ。また、変更があった文書要素324に対して「参照」の関係を持つ文書要素342が見つかっている。この文書要素342は、「品質点検結果報告書.xlsx」という文書名の文書340に属する文書要素であり、「4.実施対象」という要素名を持つ。
【0075】
また図示例では、文書320の文書要素群のうち、互いに「類似」の関係にある文書要素326及び328が示されている。
【0076】
グラフ310には、それら文書320、330、340を示すノード群と、文書要素322~328、332、342を示すノード群と、それらノード間の関係を示すエッジ群が示される。各エッジの近くには、そのエッジが示す関係の種類を示す文字列が表示されている。例えば、文書要素322、332間の関係を示すエッジには「参照」という文字列が、文書要素326、328間の関係を示すエッジには「類似」という文字列が示されている。また、例えば、文書要素322から文書320へと延びる矢印状のエッジには、「親」という文字列が示されている。これは文書320は文書要素322からみてツリー構造上の親であることを示す。
【0077】
グラフ310のうち、変更があった文書320及び文書要素322、324のノードは、変更があったことを表す特別な表示態様で強調表示されている。
【0078】
また、変更のあった文書要素322、324と関係がある文書要素332、342と、この文書要素332、342の親である文書330、340のノードも、別の表示態様で強調表示されている。図示例では、文書要素322、332間の関係と、文書要素324、342間の関係は共に「参照」なので、文書要素332と文書要素342の強調表示の表示態様は同じである。これに対して、仮にそれら2つの関係の種類が異なる場合には、文書要素332と文書要素342の強調表示の表示態様は異なったものとなる。例えば、後述する
図13に示すように、変更された文書要素324に対して「引用」関係を持つ文書要素352のノードは、「参照」関係よりも目立つ表示態様で表示する。「参照」よりも「引用」の方が両文書要素間の内容の類似度がはるかに高いので、変更された文書要素に対応して内容を修正する必要性は、「引用」の方がはるかに高いと考えられるからである。
【0079】
図9に示す情報提供画面300を作成する処理手順の例を、
図10に示す。
【0080】
図10の手順では、文書サービスシステム100のプロセッサ102は、クライアント30に対して検索条件等を入力するための入力画面を例えばウェブページの形態で提供し、ユーザから検索条件等の入力を受け付ける(S30)。次にプロセッサ102は、入力された検索条件に合致する文書をデータベース内から検索し(S32)、検索結果の文書のリストを示す画面をクライアント30に提供し、ユーザから注目文書の選択を受け付ける(S34)。
図9は、注目文書として文書320「サービス品質保証ガイド」をユーザが選択した場合の例である。
【0081】
次にプロセッサ102は、ユーザから選択された注目文書に属する各文書要素の要素プロパティを調べることで、所定期間内に変更があった文書要素を特定し、変更があった文書要素の有無を判定する(S36)。注目文書内に変更があった文書要素がない場合は、プロセッサ102は、その旨を示す画面を生成し、クライアント30に表示させる(S38)。
【0082】
S36の判定結果がYesの場合、プロセッサ102は、特定した変更ありの文書要素に関係のある文書要素をデータベース内の関係情報(
図8参照)から求め、求めた文書要素のうちそのユーザが関与者である文書要素を抽出する(S40)。この抽出は、求めた文書要素の要素プロパティを参照して行えばよい。そして、プロセッサ102は、S36で求めた変更のあった文書要素とその文書要素が属する文書、及びS40で抽出した文書要素とその文書要素が属する文書の関係を示すグラフ310を生成する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42)。プロセッサ102は、グラフ310に表示する各文書要素のノードの表示形態を、該文書要素の変更の有無や、該文書要素と変更のあった文書要素との関係の種類に応じて決定する。
【0083】
図11に、文書サービスシステム100がユーザに提供する情報提供画面300の別の例を示す。
【0084】
図11に示すグラフ310では、注目文書320内の変更があった文書要素322、324に関係のある、該ユーザが関与者である文書要素332、342のうち、その変更の後に内容に変更が加えられていない文書要素332が強調表示されている。これに対し、変更があった文書要素324に関係する文書要素342は、その変更の後に内容が変更済みなので、強調表示はされていない。
【0085】
文書要素322が変更されると、これに応じてその文書要素322に関係がある文書要素を変更する必要があるか確認し、必要ならば変更を行うこととなる。そこで、変更のあった文書要素と関係する文書要素のうち、未変更のものを強調表示することにより、ユーザに確認を促すのである。
【0086】
図11に示す情報提供画面300を作成する処理手順の例を、
図12に示す。
図12の手順のうち、
図10の手順と同様の処理を行うステップには同一符号を付し、説明を省略する。
【0087】
図12の手順では、プロセッサ102は、S40で抽出した文書要素が、対応する変更された文書要素の変更の後に変更されているか否かを判定する(S50)。例えば、判定対象の文書要素の最終更新日時が、対応する変更された文書要素の最終更新日時より後であれば、S50では変更済みと判定され、そうでなければS50では未変更と判定される。
図10の例でいえば、文書要素332の最終更新日時は、対応する変更のあった文書要素322の最終更新日時より前なので、文書要素332は未変更と判定される。
【0088】
プロセッサ102は、グラフ310を生成すると共に、そのグラフ310のうち、S50で未変更と判定された文書要素のノードを、未変更の旨を知らせるための特別な表示態様で強調表示する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42A)。
【0089】
ユーザは、クライアント30に表示されるその情報提供画面300上で、変更があった文書要素322と、強調表示された未変更の文書要素332のノードとを選択する。これに応じて、文書サービスシステム100のプロセッサ102は、それら選択された文書要素の最新の内容を表示する画面を、クライアント30に提供する。ユーザは、その画面でそれら各文書要素の内容を確認し、文書要素332の内容に変更が必要か判断する。そして、文書要素332の変更が必要と判断すると、ユーザは、その文書要素332の内容に必要な変更を加える。この変更に応じて、プロセッサ102は、データベース内の文書要素332の要素プロパティ(
図7参照)の要素内容や内容特徴を変更する。また、プロセッサ102は、その要素プロパティ内の格納場所の情報を用いて、その文書要素332が属する文書を管理している文書管理システムにアクセスし、その文書のオリジナルにおける文書要素332に対応する部分に、その変更を反映する。
【0090】
なお、文書要素に変更があった後、その文書要素に関係のある文書要素をその変更に応じて変更するかをユーザが確認した結果、変更不要と判断する場合もある。この場合、後者の文書要素の内容は変更されていないが、必要な確認は済んでいるので、グラフ310において強調表示すると、無駄な確認をユーザに求めてしまうことになる。そこで、文書サービスシステム100のプロセッサ102は、情報提供画面300上で選択された文書要素の内容を表示する画面にて、その内容の編集を受け付けるだけでなく、その内容の確認の有無の指定を受け付ける。そして、ユーザから確認ありの指定があれば、その文書要素の最終更新日時を、その指定がなされた時刻に変更する。これにより、その後の情報提供画面300で、その文書要素が未変更として強調表示されることはない。
【0091】
図13に、文書サービスシステム100がユーザに提供する情報提供画面300の更に別の例を示す。
【0092】
図13に示すグラフ310には、
図9に示したノード群に加え、変更があった文書要素322に関係のある、該ユーザが関与者である別の文書要素352と、その文書要素352の親である文書350(文書名「機能仕様書.xlsx」)のノードが表示されている。文書要素352は、変更があった文書要素324に対して「引用」の関係を持っている。すなわち、文書要素352の内容は、文書要素324の内容と同一であるか又は非常に近い。他の文書要素342も同じ文書要素324に関係を持つが、その関係は「引用」よりも文書要素の内容同士の類似度がかなり低い「参照」である。このため、文書要素352のノードは、「引用」の関係を表す表示態様で強調表示されており、この表示態様は「参照」の関係を表す表示態様よりも目立ちやすい態様である。
【0093】
また、この例では、文書サービスシステム100は、変更があった文書要素322に対して「引用」関係を持つ文書要素352を検出した場合、その文書要素352の内容を、変更があった文書要素322の内容に合わせて更新する。すなわち、例えば、文書要素352に対して変更後の文書要素322の内容を上書きする。
【0094】
この更新は、文書サービスシステム100のデータベース内の文書要素352の要素内容(
図7参照)に対して行う。更に、その文書要素352を含む文書350を管理している文書管理システム(図示省略)内の、その文書350のオリジナルのデータに対しても同様の更新を実行する。
【0095】
また、この更新は、文書サービスシステム100が、ユーザの確認を待たずに自動的に実行してもよい。また、別の例として、その更新を行うか否かの確認をユーザに求め、更新を行う旨の指示をユーザから得た場合に、文書サービスシステム100がその更新を実行してもよい。
【0096】
図13の例における文書サービスシステム100の処理手順の例を、
図14に示す。
図12の手順のうち、
図10の手順と同様の処理を行うステップには同一符号を付し、説明を省略する。
【0097】
図14の手順では、プロセッサ102は、S40で抽出した文書要素の中に、変更のあった文書要素(変更要素と呼ぶ)に対して「引用」関係を持つ文書要素(対象要素と呼ぶ)があるかどうか調べる。対象要素があれば、文書サービスシステム100内のデータベースのその対象要素の要素内容、及びその対象要素を含む文書を管理している文書管理システム内のその文書を、その変更要素の変更後の内容に合わせて更新する(S55)。この更新にともない、そのデータベース内のその対象要素の要素プロパティの内容特徴、最終更新者、更新日時等、及び、その対象要素を含む文書の文書プロパティ(
図6参照)の文書特徴、最終更新者、更新日時等も更新される。
【0098】
なお、プロセッサ102は、対象要素の更新を実行するか否かを問い合わせる画面をクライアント30に提供し、その画面に対して実行する旨を示す指示がユーザからあった場合に、S55を実行してもよい。その画面に対して更新を実行しない旨の指示がユーザから入力された場合には、プロセッサ102は、S55を実行しない。
【0099】
また、プロセッサ102は、グラフ310を生成すると共に、そのグラフ310のうち、変更があった文書要素に対して「引用」関係を持つ文書要素のノードを、「引用」を示す特別の表示態様で強調表示する。そして、そのグラフ310を含む情報提供画面300をクライアント30に提供する(S42B)。
【0100】
以上では、情報提供画面300について
図9、
図11、
図13に示す3つの例を別々に示したが、それら3つの例の表示制御を組み合わせてもよい。例えば、変更があった文書要素に対して関係を持つ文書要素をその関係の種類に応じた表示態様で表示すると共に、後者の文書要素が前者の変更後に未変更であれば、未変更の旨を示す強調表示を後者に追加する。
【0101】
図15に、文書サービスシステム100がユーザに提供する情報提供画面300内のグラフ310の別の例を示す。
【0102】
図15に示したグラフ310は、
図9に示したグラフ310に対して、文書要素334、文書要素A,B,C,D,X,Yの各ノードを追加し、文書要素322と334との関係を「参照」から「類似」に変更したものである。上述のように「類似」は「参照」よりも、文書要素同士の内容の類似度が高い。
【0103】
文書要素334(要素名「4.動作環境」)は、文書330内の文書要素であり、文書320内の変更のあった文書要素322に対して「引用」関係を持っている。文書要素A,B,Cは、その文書要素334に対してそれぞれ「引用」、「類似」、「参照」の関係を持っている。また、文書要素Dは、文書要素Aに対して「引用」の関係を持っている。
【0104】
また、文書要素X,Yは、文書要素332に対してそれぞれ「引用」、「類似」の関係を持っている。
【0105】
このように、
図15のグラフ310には、変更のあった文書要素322に対して直接の関係を持たない文書要素A,B,C,D,X,Yも表示される。変更のあった文書要素に対して直接の関係を持たない文書要素の表示の制御について、以下に説明する。
【0106】
ここで、以下の説明では、ユーザが指定した文書内で変更のあった文書要素を変更要素と呼び、この変更要素に対して直接の関係を持つ文書要素を一次要素と呼ぶ。また、一次要素に対して関係を持つ要素を二次要素と呼び、二次要素に対して関係を持つ文書要素を三次要素と呼ぶ。
図15の例では、文書要素322及び324は変更要素であり、文書要素332,334及び342は一次要素である。また、文書要素A,B,C,X,Yは二次要素であり、文書要素Dは三次要素である。二次要素及び三次要素は、変更要素に対して直接の関係を持たない。また、以下の説明では、変更要素と一次要素との関係を一次関係と、一次要素と二次要素の関係を二次関係、二次要素と三次要素の関係を三次関係と呼ぶ。一般化すると、(n-1)次要素とn次要素との関係がn次関係である(nは1以上の整数)。ただし、この場合、変更要素は0次要素である。
【0107】
まず、文書サービスシステム100のプロセッサ102は、グラフ310に含める、すなわち表示する、二次関係の種類を、対応する一次関係の種類に応じて制限する。すなわち、一次関係の種類が「強い」ほど、対応する二次関係のうちグラフ310に含めるものの種類を多くする。また、「弱い」関係ほど、グラフ310に含まれにくくする。一次関係は、種類によらずグラフ310に含められるが、二次関係は、対応する一次関係の種類に応じて限定された種類のみがグラフ310に含められる。これまでに例示した「引用」、「類似」、「参照」の3つの種類の関係では、「引用」が最も強く、その次が「類似」であり、最も弱いのが「参照」である。この強弱関係は、それら各種類の関係をなす文書要素同士の内容類似度の大小関係を反映している。
【0108】
図15の例では、一次関係が「引用」であれば3種類全ての二次関係を表示し、一次関係が「類似」であれば「引用」と「類似」の2種類の二次関係のみを表示し、一次関係が「参照」であれば「引用」という1種類の二次関係のみを表示している。
【0109】
例えば、変更要素322に対して「引用」という一次関係を持つ一次要素334については、「引用」(すなわち二次要素Aとの関係)、「類似」(すなわち二次要素Bとの関係)、「参照」(すなわち二次要素Cとの関係)の全ての種類の二次関係が表示されている。
【0110】
これに対して、変更要素322に対して「類似」という一次関係を持つ一次要素332については、「引用」(すなわち二次要素Xとの関係)、「類似」(すなわち二次要素Yとの関係)という2種類の二次関係が表示されるのみである。仮に、一次要素332に対して「参照」という種類の二次関係を持つ二次要素が存在していたとしても、その二次関係及び二次要素はグラフ310には表示されない。
【0111】
また、変更要素324に対して「参照」という一次関係を持つ一次要素342については、二次関係及び二次要素はグラフ310に表示されていない。変更要素に「参照」の一次関係を持つ一次要素については、最も強い「引用」の種類の二次関係は表示可能であるが、
図15の例では、一次要素342に対して「引用」の二次関係を持つ二次要素は存在しないので、表示されないのである。仮に一次要素342に「類似」や「参照」の関係を持つ二次要素が存在しても、それはグラフ310には表示されない。
【0112】
また、プロセッサ102は、グラフ310に含めるn次関係のnの上限値を、一次関係の種類に応じて決定してもよい。
【0113】
図15の例では、文書要素322と334との「引用」の一次関係から延びる関係については、最大三次までの関係をグラフ310に含めている。これに対して、「引用」より弱い「類似」の一次関係から延びる関係については、最大二次までしかグラフ310に含めない。文書要素322と332との一次関係は「類似」なので、仮に一次要素332に関係する二次要素Xに対して、「引用」等の強い三次関係を持つ三次要素が存在していたとしても、その三次関係及び三次要素はグラフ310には表示されない。
【0114】
また、
図15の例では、S32で検索した文書内の変更があった文書要素に関係がある文書要素であっても、変更があった文書要素と同じ文書(すなわち検索した文書)に含まれる文書要素については、ユーザに提供するグラフ310中に表示していない。検索した文書又はその中の文書要素に対して、そのユーザが編集権限を持っているとは限らないからである。ただし、変更があった文書要素に関係がある文書要素ごとに、そのユーザが編集権限を持っているかどうかを確認し、編集権限持っている場合には、変更があった文書要素と同じ文書内の文書要素であっても、グラフ310に表示するようにしてもよい。
<サービスの別の例>
【0115】
以上に示した例では、文書サービスシステム100は、文書要素の変更を検知した時点では単にそれをデータベースに記録するのみであった。その変更の情報がユーザに提供されるのは、ユーザがその文書要素を含む文書を指定し、これに応じてその文書に対する情報提供画面300がそのユーザに提供された時点である。
【0116】
これに対する別の例として、以下では、文書サービスシステム100が、ある文書要素の内容が変更されたことを検知した場合に、その文書要素に関係を持つ他の文書要素の関与者に対して通知する処理を説明する。
【0117】
この処理の手順の一例を
図16に示す。
図16の手順は、
図4に示した手順におけるS28の後に続くステップ群を示している。
【0118】
図16の手順では、プロセッサ102は、S22(
図4参照)で変更があった文書要素を検出した場合、その文書要素に対して関係を持っている文書要素群をデータベース内の関係情報(
図8参照)から抽出する(S60)。そして、プロセッサ102は、抽出した文書要素ごとに、その文書要素の関与者の情報をデータベースから求め、その関与者に対して、その変更を知らせる通知を、その関係の種類に応じた通知方式で実行する(S62)。関与者への通知の方式には、例えば関与者が文書サービスシステム100にログインした際に表示するポータルページ上の通知欄に表示する方式や、文書サービスシステム100がその関与者に提供する情報提供画面300等の画面に対してポップアップ画面としてその変更を知らせるメッセージを表示する方式、関与者が文書サービスシステム100に登録している該関与者の電子メールアドレスに対して電子メールで送信する方式等、複数の方式がある。通知欄の表示は、関与者が文書サービスシステム100にログインしない限り表示されないのに対して、電子メールでの通知は関与者が文書サービスシステム100にログインしていない期間でも関与者に届くので、電子メールの方が関与者にとって目立ちやすい。S62では、その関係の種類が強いほど、関与者にとって目立ちやすい方式の通知を行う。例えば、その関係の種類が「参照」及び「類似」であれば、関与者のポータルページ上の通知欄への表示のみを行うのに対し、その関係の種類がそれらより強い「引用」であれば、その通知欄への表示に加え、関与者に対して電子メールによる通知を行う。
【0119】
以上に説明した実施形態はあくまで例示的なものにすぎず、本発明の範囲内で様々な変形があり得る。
【0120】
例えば、上記実施形態では、文書要素同士の関係の種類を、それら文書要素の内容の類似度に応じて定めたが、これは一例に過ぎない。
【0121】
例えば、文書要素を作成又は更新したユーザが、その文書要素に関係を持つ他の文書要素とその関係の種類を文書サービスシステム100に登録してもよい。
【0122】
また、ユーザに文書編集の機能を提供する装置(例えばクライアント30が提供する文書編集アプリケーション)が、ユーザが文書要素を編集中に行った操作に応じて、文書要素間の関係を判定し、文書サービスシステム100に登録してもよい。例えば、ユーザが、装置の画面上に開いた文書A内の文書要素aを、コピー&ペースト操作により、その画面上に開いた別の文書B内の文書要素bにコピーした場合、その装置は、文書要素bが文書要素aに対して「引用」の種類の関係を持つと判定する。そして、その「引用」関係を文書サービスシステム100に登録する。また、例えば、装置は、ユーザが画面上に開いた文書要素cを編集中に、その画面上に別の文書要素dが開かれていた(ただし、文書要素dからcに対してコピー&ペーストは行われなかった)場合、文書要素cが文書要素dに対して「参照」の関係を持つと判定する。
【0123】
<文書要素間の関係付けの実施形態>
以上に説明した例では、文書要素間の関係付け(すなわちそれら両者の関係の種類の判定)の方式として、それら文書要素の内容同士の類似度に基づいて関係の種類を判定する方式を主として説明した。ここで用いられた類似度は、2つの文書要素の全体の内容同士の類似度合いを表すものであった。
【0124】
以下では、文書要素間の関係付けの別の方式を説明する。この方式では、文書要素を複数の部分に分け、文書要素間での部分同士の類似度を求め、部分同士の類似度に基づいて文書要素間の関係の種類を判定する。また、この方式では、文書要素間の関係の種類の判定に、文書要素の属性を反映させる。
【0125】
ここで文書要素を構成する「部分」とは、文書の構造解析により得られるその文書のツリー状の構造において、その文書要素の下位に位置する文書要素のことである。例えば、章のレベルの文書要素に対しては、ツリー状の構造上でその文書要素の子孫に該当する節や段落のレベルの文書要素がその「部分」の例となる。
【0126】
また文書要素間の関係の種類の判定の材料として用いる文書要素の属性には、一つの例では、その文書要素を含む文書の属性をそのまま流用する。文書要素の属性として流用する文書の属性には、格納場所、作成者、作成日時、最終更新者、更新日時、取得日時、その文書に対して人が付与した検索用のタグ、等がある。
【0127】
また、文書要素に固有の属性を文書要素間の関係の判定の材料として用いてもよい。例えば、文書要素ごとにその作成や更新の履歴を管理するシステムであれば、文書要素の作成者、作成日時、更新日時、最終更新者等の属性を記録することができる。
【0128】
文書要素間の関係の種類は、それら文書要素の特定の1つの属性に基づいて判定してもよいし、特定の複数の属性の組(例えば格納場所と作成者の組)に基づいて行ってもよい。
【0129】
また、文書要素同士の関係の種類には、例えば、引用、類似、参照といったものがある。関係の種類は、システムのユーザが自由に定義可能である。また、文書要素同士の間に関係が無いことを、それら文書要素同士の関係の種類(例えば「無関係」と名付けられる種類)の1つとして定義してもよい。
【0130】
この実施形態では、文書要素同士の関係の種類を、AI(人工知能)を用いて判定する。このAIは、2つの文書要素の内容の類似性の特徴を示す特徴情報と、それら2つの文書要素の属性とを含む入力に対して、それら2つの文書要素同士の関係の種類を出力するよう学習したものである。ここで、2つの文書要素の内容の類似性の特徴を示す特徴情報は、それら2つの文書要素の間での部分同士の類似性を示す類似性情報に基づき求められる。部分同士の類似性を示す類似性情報は、例えばそれら部分同士の内容の類似度である。このAI(図示省略)は、文書サービスシステム100(
図1参照)に内蔵されるか、又は文書サービスシステム100と通信可能な装置に内蔵される。このAIの実装方式は特に限定されない。ニューラルネットワーク、サポートベクターマシン等の回帰方式、決定木等の木を用いる方式等、公知のいずれの機械学習方式を用いてよい。このAIは、ソフトウエアとして構成されるものでも、ハードウエア回路として構成されるものでも、ハードウエア回路とソフトウエアの組合せとして構成されるものでもよい。
【0131】
図17に、このAIを文書要素間の関係の種類の判定を機械学習させる処理手順の例を示す。以下では、文書サービスシステム100のプロセッサ102がこの処理手順を実行するものとして説明する。しかしこれはあくまで一例に過ぎず、AIを学習させるための学習システムがこの処理手順を実行してもよい。この場合、学習済みのAIを文書サービスシステム100が利用する。
【0132】
この処理手順では、プロセッサ102は、学習用のサンプルデータを取得する(S70)。サンプルデータには、文書要素のペアが多数含まれ、更にそのペアごとの付随情報が含まれる。付随情報は、そのペアに含まれる各文書要素の属性と、それら文書要素同士の関係の種類の情報と、を含む。この関係の種類の情報は、AIを学習させる際に教師データとして用いるものであり、例えば人間が予めそのペアに対して設定しておく。
【0133】
次にプロセッサ102は、そのペアの各文書要素を段落単位に分割する(S72)。段落は、文書要素を構成する部分の一例である。段落は、1以上の文から構成される。
【0134】
次にプロセッサ102は、そのペアの文書要素間での段落同士の類似度を計算する(S74)。このステップでは、ペアの一方の文書要素の段落と他方の文書要素の段落とのあり得る全ての組合せについての類似度を計算する。
【0135】
例えば、
図18の例では、文書A内の文書要素A-1が3つの段落A-1-1、A-1-2、A-1-3を含み、文書B内の文書要素B-1が3つの段落B-1-1、B-1-2、B-1-3を含んでいる。この例では、文書要素A-1とB-1との間での段落同士の組合せは3×3で9通りあり、S74ではその9通りの組合せのそれぞれについて類似度が計算される。ここで段落同士の類似度は、例えば、それら個々の段落に含まれる文字列をベクトル化し、得られたベクトル同士の類似度合いをコサイン類似度等の公知の手法で計算することで求めればよい。文書要素の文字列をベクトル化する方法としては、TF-IDFやdoc2vec等の様々な手法がある。
図19にこのようにして求められた文書要素間の段落同士の類似度の情報を例示する。
図19において、「段落1」及び「段落2」の欄には2つの段落のIDが登録され、類似度の欄にはそれら2つの段落の類似度が登録される。
図19の例は、9通りの組合せのうちの3つの組合せについての類似度の計算結果の値を示している。
【0136】
次にプロセッサ102は、S74で計算した文書要素間の段落同士の類似度の情報から、それら文書要素同士の類似性を示す特徴情報を生成する(S76)。
【0137】
一つの例では、文書要素間の段落同士の類似度の中から所定の基準に従って選ばれた1以上の代表的な値から、それら文書要素同士の類似性を示す特徴情報を求める。例えば、文書要素間の段落同士の類似度のうちの最大値を代表的な値として選び、その最大値を特徴情報としてもよい。
【0138】
また、別の例として、文書要素間の段落同士の類似度のうち上位所定数個、あるいは閾値以上のもの、を代表的な値として選び、選んだ代表的な値の分布の統計的な特徴量(例えば平均値、中央値、又は最頻値)を特徴情報としてもよい。また、選んだ代表的な値の分布の複数の統計的な特徴量の組(例えば最大値と平均値の組、最大値と半値幅の組等)を特徴情報としてもよい。別の観点からいえば、この例は、文書要素間の段落同士のペアの中から、類似度に基づいていくつかの代表ペアを選び、それら各代表ペアの類似度に基づいて、それら文書要素間の類似性の特徴を示す特徴情報を算出するものである。
【0139】
また別の例として、文書要素間の段落同士の類似度の分布全体についての統計的な特徴量、又はそれら特徴量の組を、それら文書要素同士の類似性を示す特徴情報としてもよい。
【0140】
次にプロセッサ102は、S76で生成した文書要素のペアの特徴情報とそれら各文書要素の所定の1以上の属性とを入力データとして、そのペアの関係の種類を示す情報を教師データとして、それぞれAIに与えることにより、AIを学習させる(S78)。
【0141】
用意したサンプルデータに含まれる文章要素のペアごとにS72~S78のステップを繰り返すことにより、AIは、入力された文書要素のペアの特徴情報とそれら各文書要素の属性から、それら文書要素同士の関係の種類を求めることが可能になる。
【0142】
次に、学習済みのAIを用いて文書要素間の関係の種類を求める処理手順の一例を、
図20を参照して説明する。この処理手順は、文書サービスシステム100のプロセッサ102が実行する。この処理手順は、
図4に示したデーベース構築及び保守の手順におけるS17の詳細な処理の例である。S17では、文書要素同士の内容類似度を計算し、その内容類似度から関係の種類を求めたが、
図20の手順では、関係の種類の判定に学習済みのAIを用いる。
【0143】
図20の手順では、プロセッサ102は、注目文書(すなわち
図4のS10で取得した文書)内の文書要素ごとに、S80~S92の処理を実行する。このS80~S92の処理の対象である文書要素のことを、以下では注目要素と呼ぶ。
【0144】
プロセッサ102は、注目要素に含まれる各段落の情報をデータベースから取得する(S80)。段落は、文書中の文書要素群がなすツリー構造における最下層の文書要素である。そのツリー構造は
図4の手順のS12で求められている。S80では、プロセッサ102は、そのツリー構造においてその注目要素の子孫に該当する各段落の文章等の情報を取得する。
【0145】
次にプロセッサ102は、データベース内の文書要素(以下、相手要素と呼ぶ)ごとに、S82~S92の処理を実行する。この処理では、注目要素と相手要素との関係の種類を求めてデータベースに登録する。
【0146】
より詳しくは、プロセッサ102は、まず相手要素に含まれる段落の情報をデータベースから取得する(S82)。次にプロセッサ102は、注目要素と相手要素との間での段落同士の類似度を計算し(S84)、計算した類似度群から、注目要素と相手要素の類似性を示す特徴情報を生成する(S86)。S84及びS86の処理は、
図17のS74及びS76の処理と同様の処理である。
【0147】
次にプロセッサ102は、S86で生成した特徴情報と、注目要素の所定の1以上の属性と、相手要素の所定の1以上の属性とを、学習済みのAIに入力する(S88)。この入力に応じて、AIは、注目要素と相手要素の関係の種類の情報を出力する。
【0148】
次にプロセッサ102は、AIから出力した関係の種類が、「無関係」以外であるか否かを判定する(S90)。この判定の結果がYesの場合、プロセッサ102は、データベース内の関係情報に、注目要素と相手要素の関係の種類として、そのAIが出力した値を登録する(S92)。ここでの関係情報は、
図8に例示したものとは異なり、類似度の欄は含んでいなくてよい。S90の判定結果がNoの場合、プロセッサ102は、S92をスキップするか、或いは関係情報に対して、注目要素と相手要素の関係の種類として、無関係を示す値を登録する。
【0149】
以上では、
図20の手順が
図4の手順のS17の詳細な手順であるとして説明したが、
図4の手順とは無関係に、入力された2つの文書要素に対して
図20の手順を実行することも可能である。
【0150】
次に、
図21を参照して、文書要素間の関係の種類を判定する手順の別の例を説明する。
【0151】
図20の手順では、注目要素内の全ての段落について、データベース内の文書要素の各段落との類似度を計算したのに対し、
図21の手順では、前回から変更された段落についてのみ、他の文書要素の段落との類似度を再計算する。
図21の処理手順は、
図4に示した手順におけるS26の詳細な処理の例である。
【0152】
図21の手順では、プロセッサ102は、注目文書(すなわち
図4のS10で取得した文書)内の文書要素のうち、
図4のS20で変更有りと判定された文書要素(以下では注目要素と呼ぶ)ごとに、S100~S112の処理を実行する。
【0153】
プロセッサ102は、注目要素に含まれる各段落の情報をデータベースから取得する(S100)。次にプロセッサ102は、注目要素内の段落のうち、前回取得時から変更のある段落を特定する(S101)。S101では、例えば、取得した注目要素内の各段落について、当該段落の内容を、データベースに記憶されている当該段落の内容と比較することにより、当該段落が変更されたかどうかを判定する。
【0154】
次にプロセッサ102は、データベース内の文書要素(以下、相手要素と呼ぶ)ごとに、S102~S112の処理を実行する。
【0155】
より詳しくは、プロセッサ102は、まず相手要素に含まれる段落の情報をデータベースから取得する(S102)。次にプロセッサ102は、注目要素内の段落のうちS101で特定された、変更がある段落について、相手要素の各段落との間の類似度を計算する(S104a)。またプロセッサ102は、注目要素内の段落のうちS101で変更がないと判定された段落については、当該段落と相手要素の各段落との間の類似度をデータベースから取得する(S104b)。データベースには、過去に計算された段落同士の最新の類似度が保存されており(例えば
図19参照)、S104bではその保存された情報から段落同士の類似度を取得する。なお、データベース内の段落同士の類似度の情報のうちS104aで計算し直した類似度の情報については、適切なタイミング(例えば
図21の処理の終了後)で、データベースに反映する。
【0156】
S104aで計算した段落間の類似度とS104bで取得した段落間の類似度とを合わせると、注目要素の段落と相手要素の段落との全ての組合せについての類似度が得られる。プロセッサ102は、S104aで計算した段落間の類似度群とS104bで取得した段落間の類似度群から、注目要素と相手要素の類似性を示す特徴情報を生成する(S106)。S106の処理は、
図20の手順のS86の処理と同様でよい。
【0157】
次にプロセッサ102は、S106で生成した特徴情報と、注目要素の所定の1以上の属性と、相手要素の所定の1以上の属性とを、学習済みのAIに入力し(S108)、この入力に応じてAIが出力する関係の種類の情報を得る。プロセッサ102は、AIから出力した関係の種類が、「無関係」以外であるか否かを判定し(S110)。判定の結果がYesの場合、プロセッサ102は、データベース内の関係情報に、注目要素と相手要素の関係の種類として、そのAIが出力した値を登録する(S112)。S110の判定結果がNoの場合、プロセッサ102は、S112をスキップするか、或いは関係情報に対して、注目要素と相手要素の関係の種類として無関係を示す値を登録する。
【0158】
以上では、
図21の手順が
図4の手順のS26の詳細な手順であるとして説明したが、
図4の手順とは無関係に、入力された2つの文書要素に対して
図21の手順を実行することも可能である。
【0159】
図17、
図20及び
図21に示す手順のS74及びS76、S84及びS86、S104a、S104b及びS106では、段落同士の内容の類似度を用いたが、類似度そのものの代わりに、類似度に基づいた別の評価値を用いてもよい。例えば、2つの段落同士の内容の類似度と、それら2つの段落の属性と、の組合せに基づいてそれら段落同士の類似性を示す評価値を求め、その評価値をそれらステップにおいて類似度の代わりに用いてもよい。これには、例えば、2つの段落同士の類似度とそれら各段落の特定の属性とから評価値を算出する関数を用いればよい。より具体的な例では、類似度と属性「最終更新者」から評価値を求める関数として、類似度が同じでも、2つの段落の最終更新者が同じ場合と違う場合とでは、同じ場合の方が評価値が高くなる関数を用いる、等である。段落の属性としては、その段落を含む文書要素の属性、又はその文書要素を含む文書の属性を用いてもよい。また、段落ごとに、その段落固有の属性があってもよい。
【0160】
以上では、文書要素を構成する部分として段落を用いる場合を例にとって説明したが、これは一例に過ぎない。ある文書要素Aを構成する部分は、文書を構成する文書要素群のツリー構造において、その文書要素Aの子孫である文書要素であればよい。
【0161】
また、
図17~
図21を用いて説明した例では、AIは文書要素同士の関係の種類を求めたが、関係の種類に限らず、文書要素同士の関係を示す何らかの情報、例えば関係の有無の別、関係の強さ、等を求めるものであってもよい。
【0162】
以上に説明した文書要素間の関係付けの方式では、文書要素を構成する部分(例えば段落)同士の類似性から文書要素同士の類似性を示す特徴情報を求める。このため、例えば文書要素全体同士でみれば余り類似していなくても部分同士のペアの中に非常に類似したものがあれば、それら文書要素同士の内容の類似性が高いと判断され得る。また、この方式では、文書要素同士の内容の類似性だけでなく、それら文書要素の属性も考慮に入れて、それら文書要素同士の関係の種類を判定するので、属性を考慮しない場合よりも正確な判定結果が得られると期待される。
【0163】
以上に説明した実施形態において、文書要素は、文書を構成する要素のことである。ここで、文書管理システムが管理する個々の文書を構成要素とするより大きな単位の文書が存在してもよい。この場合、前者の個々の文書は、後者の大きな単位の文書にとっての文書要素である。例えば、ハイパーリンクで結びつけられた複数の文書から構成されるハイパーテキストを大きな単位の文書と捉えた場合、それら複数の文書はそのハイパーテキストから見ると文書要素に当たる。
【符号の説明】
【0164】
10 設計書管理システム、20 社内規定管理システム、30 クライアント、40 社内ネットワーク、50 インターネット、60 法令管理システム、70 XX標準管理システム、100 文書サービスシステム、102 プロセッサ、104 メモリ、106 補助記憶装置、108 入出力装置、110 ネットワークインタフェース、112 バス。