(57)【特許請求の範囲】
【請求項１】
文書データを検索するための情報処理装置であって、
新規作成中または編集中の文書データを、所定のタイミングでログとして記録するデータ記録部と、
前記データ記録部に記録された複数の文書データのうちの１つが選択されたことに応答して、当該１つの文書データの指定された時点におけるログに含まれる文字列と、当該１つの文書データ以外の他の文書データの当該指定された時点におけるログに含まれる文字列とを照合し、文字がどの程度異なっているかを表す距離を求め、前記距離が短い順に決められた数の文書データを当該１つの文書データに関連する文書データとしての候補データとして検索する検索部と、
前記検索部が前記候補データを検索する前に、計測された所定の操作入力の持続時間に応じて、当該候補データの数を決定する入力部とを含む、情報処理装置。
【請求項２】
前記検索部は、前記１つの文書データの全てのログに含まれる文字列と、前記他の文書データの全てのログに含まれる文字列とを、前記データ記録部に記録された順に照合を行い、各時点における前記距離を累積して累積距離を求め、前記累積距離が短い順に前記候補データを検索する、請求項１に記載の情報処理装置。
【請求項３】
前記データ記録部に記録されている前記ログの一部を抽出して前記検索部へ送る抽出部をさらに含む、請求項１または２に記載の情報処理装置。
【請求項４】
前記入力部は、前記持続時間中に入力された空間上の移動量から決定することも可能である、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記文書データを識別するための識別情報を、ハッシュ関数を適用して数値化データを生成し、前記データ記録部に前記文書データの全てのログと関連付けて記録させる生成部をさらに含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
請求項５に記載の前記情報処理装置の複数からネットワークを介して前記ログおよび前記数値化データを受信する受信部と、前記ログおよび前記数値化データを記録するデータ記録部と、所定の情報処理装置から受信した前記数値化データから前記ログを検索する制御部と、検索された前記ログを前記所定の情報処理装置へ送信する送信部とを備える、情報処理サーバ。
【請求項７】
請求項６に記載の前記情報処理サーバへ前記数値化データを送信する送信部と、前記情報処理サーバから前記ログを受信する受信部とをさらに含む、請求項５に記載の情報処理装置。
【請求項８】
請求項６に記載の情報処理サーバと、請求項７に記載の複数の情報処理装置とがネットワークに接続された、情報処理システム。
【請求項９】
文書データを検索する処理を実行させるための情報処理装置により読み取り可能なプログラムであって、
新規作成中または編集中の文書データを、所定のタイミングでログとしてデータ記録部に記録するステップと、
前記データ記録部に記録された複数の文書データのうちの１つが選択されたことに応答して、当該１つの文書データの指定された時点におけるログに含まれる文字列と、当該１つの文書データ以外の他の文書データの当該指定された時点におけるログに含まれる文字列とを照合し、文字がどの程度異なっているかを表す距離を求めるステップと、
計測された所定の操作入力の持続時間に応じて、前記１つの文書データに関連する文書データとしての候補データの数を決定するステップと、
前記距離が短い順に、決められた前記数の前記候補データを検索するステップとを前記情報処理装置に実行させる、プログラム。
【請求項１０】
前記検索するステップは、前記１つの文書データの全てのログに含まれる文字列と、前記他の文書データの全てのログに含まれる文字列とを、前記データ記録部に記録された順に照合を行い、各時点における前記距離を累積して累積距離を求め、前記累積距離が短い順に前記候補データを検索する、請求項９に記載のプログラム。
【請求項１１】
前記データ記録部に記録されている前記ログの一部を抽出するステップをさらに実行させる、請求項９または１０に記載のプログラム。
【請求項１２】
前記決定するステップでは、前記候補データの数を、所定の操作入力の持続時間中に入力された空間上の移動量から決定する、請求項９に記載のプログラム。
【請求項１３】
前記文書データを識別するための識別情報を、ハッシュ関数を適用して数値化データを生成し、前記データ記録部に前記文書データの全てのログと関連付けて記録させるステップをさらに実行させる、請求項９〜１２のいずれか１項に記載のプログラム。
【請求項１４】
請求項１３に記載のプログラムを実行する前記情報処理装置の複数からネットワークを介して前記ログおよび前記数値化データを受信するステップと、前記ログおよび前記数値化データを記録するステップと、所定の前記情報処理装置から受信した前記数値化データから前記ログを検索するステップと、検索された前記ログを前記所定の情報処理装置へ送信するステップとを情報処理サーバに実行させる、前記情報処理サーバにより読み取り可能なプログラム。
【請求項１５】
請求項１４に記載の前記情報処理サーバへ前記数値化データを送信するステップと、前記情報処理サーバから前記ログを受信するステップとをさらに実行させる、請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関連のある文書データを効率的に見つけ出すことができる情報処理装置、その情報処理装置を備える情報処理システムおよびその情報処理装置により読み取り可能なプログラムに関する。
【背景技術】
【０００２】
企業共同体のように利害を共にすることで深く結びついている社会では、プロジェクトの方向性や課題認識を共有するために会議が開かれる。このような会議では出席者が後から決定事項やアクションアイテムを確認できるように議事録が作成される。この議事録は、何らかの都合により、その回の会議を欠席した人が会議の様子を確認したり、上層部への報告にも用いられたりすることがある。
【０００３】
プロジェクトの規模が拡大するにつれて、こういった会議は、回を重ねることになるが、会議時間を節約するために、以前の会議で合意した事項や参照した資料の確認や提示が省略される傾向にある。したがって、会議に毎回出席できない者や、担当者がかわる等して途中から出席することになった者は、現在の経緯を把握したり、過去の資料を参照したいため、過去の議事録を検索し、それを見ることになる。しかしながら、過去の議事録が多いほど、目的の内容を探し出すのに手間がかかるという問題があった。
【０００４】
そこで、議事録を構成する文書ファイルのファイル名を検索できるようにして、目的の議事録を参照することを可能にする技術は既に知られている。しかしながら、この技術を利用した装置では、議事録名等の特定の文書名を入力する必要があった。
【０００５】
文書名の入力ではないが、予め文書名を記憶させておき、記憶された文書名の中から目的の文書名を選択可能にしたシステムが提案されている（例えば、特許文献１〜３参照）。しかしながら、このシステムでも、特定の文書名を選択しなければならない。
【０００６】
例えば、会議が複数回にわたって行われる場合、議事録名は「○○会議（第×回）」という表現が多く用いられている。このような場合、目的の会議を議事録名で検索しようとしても、結果的に目的の会議が行われた回を知らない利用者は、上記の装置やシステムでは、全ての議事録を調べなければならない。これでは、所望の文書を発見することが時間や業務コストの増大につながり、効率が悪いという問題があった。
【０００７】
その他の装置として、会議情報と文書管理システムに対するアクセスログを適用した分析によって、会議での文書利用状況を分析し、会議開催時間と開催メンバーによる文書管理システムへのアクセス状況を解析し可視化して提示する情報分析装置が提案されている（特許文献４参照）。
【０００８】
このような会議中にアクセスした文書等のログを用いる構成により、会議の活用状況や、その後の業務に対する影響の度合い等を知ることができ、様々な会議に対応する文書管理システムの利用度合いを解析することができ、その解析に基づいて個々の会議の効果の推測や改善案の提示が可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の情報分析装置では、提示される文書は、文書名や文書タイプを利用者が事前に指定する必要があり、この場合も、所望の議事録を効率良く見つけ出すことができない。すなわち、所望の文書を見つける時間や業務コストの低減を図ることはできない。
【００１０】
そこで、検索したい会議の議事録を効率良く見つけ出すことができる装置やシステム、その処理を実行させるためのコンピュータ可読なプログラムの提供が望まれていた。
【課題を解決するための手段】
【００１１】
本発明は、「打ち合わせ（第ｎ回）」のように連続的に開催される会議であっても、初回から全ての議事録を参照することなく、効率的に同じ資料や類似の記述をもつ議事録を検索することができるように構成した情報処理装置を提供する。このように、同じ資料や類似の記述をもつ議事録を検索することができるようにすることで、検索したい会議の議事録を絞り込むことができるため、所望の文書を見つける時間や業務コストの低減を図ることができる。
【００１２】
この情報処理装置は、新規作成中または編集中の文書データに関するメタデータを、所定のタイミングでログとして記録するデータ記録部と、データ記録部に記録された複数の文書データのうちの１つが選択されたことに応答して、当該１つの文書データの指定された時点におけるログに含まれる文字列と、当該１つの文書データ以外の他の文書データの当該指定された時点におけるログに含まれる文字列とを照合し、文字がどの程度異なっているかを表す距離を求め、最も距離が短い文書データを当該１つの文書データに関連する文書データとして検索する検索部とを含む構成とされる。
【００１３】
この距離が短いほど、選択した文書データの内容に類似した内容のデータである。また、指定された時点は、新規作成中または編集中のデータ保存処理が行われる任意の時点とすることができ、例えば、その文書データに関して最後にログが保存された時点とすることができる。
【００１４】
検索部は、指定された時点のみならず、当該文書データの全てのログに含まれる文字列と他の文書データの全てのログに含まれる文字列とを、データ記録部に記録された順に照合を行い、各時点における距離を累積して累積距離を求め、最も累積距離が短い文書データを検索することもできる。これにより、より高確度で所望の文書データを検索することができる。
【００１５】
データ記録部に記録されているログの一部を抽出して検索部へ送る抽出部をさらに含むことができる。文書データの内容に類似性や差異が現れやすい部分が予め分かっていれば、一部を抽出し、照合することで、高確度で検索を行うことができ、照合時のデータ量を減らすことができ、検索時間を短くすることができる。
【００１６】
距離が短い順に複数の文書データを、関連する文書データの候補となる候補データとして出力する出力部をさらに含むことができる。これにより、ユーザは、直感的な操作で候補数を選択することができるため、操作の負担を軽減することができる。
【００１７】
候補データの数は、ユーザの操作によって指定することができる。したがって、情報処理装置は、ユーザからの操作入力を受け付ける入力部をさらに備える。入力部は、入力キーであれば、そのキーの押下持続時間、すなわち操作入力の持続時間に応じて候補データの数を決定することができる。また、入力部は、マウスであれば、ドラッグ操作によりポインタが移動し、それによって指定された領域内に一部でも含まれるデータ表示領域の数を、候補データの数として決定することができる。これは、持続時間中に入力された空間上の移動量から決定するものである。
【００１８】
また、情報処理装置は、文書データを識別するための識別情報を、ハッシュ関数を適用して数値化データを生成し、データ記録部に当該文書データの全てのログと関連付けて記録させる生成部をさらに含むことができる。
【００１９】
本発明は、上記の情報処理装置のほか、複数の情報処理装置からネットワークを介してログおよび数値化データを受信する受信部と、ログおよび数値化データを記録するデータ記録部と、所定の情報処理装置から受信した数値化データからログを検索する制御部と、検索されたログを情報処理装置へ送信する送信部とを備える情報処理サーバを提供することもできる。
【００２０】
この情報処理サーバに対し、数値化データを情報処理サーバへ送信する送信部と、情報処理サーバからログを受信する受信部とをさらに含む情報処理装置を提供することができる。
【００２１】
また、これらの情報処理装置と情報処理サーバとを含むシステムも提供可能である。さらに、これらの情報処理装置、情報処理サーバおよびシステムにより可読なプログラムとして構成し、このプログラムを実行させることにより各部として機能させ、文書データの検索処理を実現することも可能である。
【図面の簡単な説明】
【００２２】
【図１】本実施形態の情報処理装置の機能ブロック図。
【図２】情報処理装置が備えるデータ記録部に記録する会議情報のデータ構成を例示した図。
【図３】議事録データ欄に記録されるデータを例示した図。
【図４】議事録データを画面に表示したところを示した図。
【図５】検索処理の１つの流れを示したフローチャート図。
【図６】検索処理の別の流れを示したフローチャート図。
【図７】議事録データから抽出されたデータを例示した図。
【図８】検索処理において議事録データを画面に表示したところを示した図。
【図９】検索処理において候補データの数を決定するために参照される図。
【図１０】情報処理装置と情報処理サーバとを含むシステムの構成例を示した図。
【図１１】情報処理サーバの機能ブロック図。
【図１２】情報処理サーバのデータ変更処理の流れを示したフローチャート図。
【図１３】情報処理サーバが保持するデータを情報処理装置により取得する処理の流れを示した図。
【発明を実施するための形態】
【００２３】
図１は、業務リソースとして会議情報や議事録を扱う情報処理装置の機能ブロック図である。情報処理装置の機能について説明する前に、まず、ハードウェア構成について簡単に説明する。情報処理装置は、会議情報や議事録を文書データとして記録するための記憶装置と、ユーザからの要求を受け付け、その要求に応じて文書データを検索する処理を行うプロセッサと、そのデータの内容等を表示するための表示装置と、ユーザが入力を行うための入力装置と、ネットワークや他の装置と接続するための通信インタフェースとを備えている。このため、この情報処理装置は、パーソナルコンピュータ、ワークステーション、サーバ、PDA、MFP等を挙げることができる。
【００２４】
記憶装置は、ハードウェアと入出力を行うためのBIOSやハードウェアを制御するためのファームウェア等を記憶し、読み出しのみを可能とするROMと、読み出しおよび書き込み可能なRAMと、文書データを記憶するHDDとを備えている。情報処理装置は、必要に応じて、SDカードスロット、CDドライブ、DVDドライブ等を記憶装置として備えることができる。
【００２５】
プロセッサは、ROMに記憶されたBIOSやファームウェア等を読み出し、実行したり、HDDに記憶されたアプリケーションをRAMに読み出し、実行する。入力装置は、キーボード、マウス、タッチパネル、入力キー等とされる。
【００２６】
情報処理装置は、上述したハードウェアを下記の各部として機能させることから、図１に示すような各部を備える構成とされる。
【００２７】
すなわち、情報処理装置は、検索部１０と、データ記録部１１と、制御部１２と、操作入力部１３と、操作表示部１４と、データ入力部１５と、データ出力部１６とを備えるものとされている。
【００２８】
データ入力部１５は、後述する情報処理サーバからデータを受け付ける。データ出力部１６は、データを情報処理サーバへ出力する。このため、データ入力部１５およびデータ出力部１６は、上述した通信インタフェースとして構成される。
【００２９】
操作入力部１３は、ユーザが入力を行うために使用される入力装置として構成される。また、操作表示部１４は、入力された情報の表示や処理結果の表示等を行う表示装置として構成される。検索部１０は、操作入力部１３で選択された文書データに対して他の文書データとの照合を行い、最も類似する文書データを検索する処理を行う。このため、プロセッサに任意のプログラムを実行させることにより、そのプロセッサを検索部１０として機能させることができる。
【００３０】
ここで、最も類似する文書データを検索するのは、検索したい文書データが、会議時間を節約するために省略された以前の会議で合意した事項や参照した資料の確認や提示が多く、その場合、その他の内容については概ね類似しているからである。
【００３１】
データ記録部１１は、会議情報や議事録の文書データに関するメタデータを記録し、HDDをこのデータ記録部１１として機能させることができる。
【００３２】
ここで、会議情報は、図２に示すように、操作入力部１３からSQL(Structured Query Language)文で問い合わせをすることができるようになっている。SQLは、データの操作や定義を行うためのデータベース言語で、関係データベース管理システム(RDBMS)で採用される言語である。
【００３３】
会議情報は、図２（ａ）に示すようなテーブルで表されるデータ構成とされ、そのテーブル名が「meetings」とされたテーブルには、会議コードと、会議名とが記憶されている。会議コードは、会議を一意に表現するための数値コードで、code(id)は、その会議に関する文書データを識別するためのID番号であるidに対する会議コードであることを示している。例えば、ID=1の会議コードは、code(1)で表され、その数値コードは、標準ハッシュ関数を用いて以下のように求めることができる。
【００３４】
【数１】
0005402427.tif 000002
【００３５】
SHA256は、”1”を256ビットのハッシュ値に数値化するハッシュ関数である。ハッシュ関数は、CPUの演算系に適した関数を用いることができ、このSHA256のほか、SHA1、MD5、SHA224、SHA384、SHA512等を用いることも可能である。ちなみに、SHA1は160ビット、MD5は128ビット、SHA224は224ビット、SHA384は384ビット、SHA512は512ビットのハッシュ値にそれぞれ数値化するものである。
【００３６】
また、テーブル名が「meetings」とされたテーブルの会議コードにつき別途テーブルを作成し、そのテーブルに、会議コードに対応する議事録データを記憶する。図２（ｂ）には、会議コード「code(1)」のテーブルが作成され、そのテーブルの中に図３を示す議事録データが記憶されていることを示している。
【００３７】
議事録データは、例えば、図３に示すRDF(Resource Description Framework)で表現されたデータとすることができる。RDFとは、リソースを記述するための標準的な枠組みを提供するもので、リソースの関係を主語、述語、目的語という３つの要素で表現するものである。図３では、xmlで記述されたデータが示されている。ここでは、RDFで表現した議事録データとしているが、メタデータを記述することができれば、他のフレームワークを用いることも可能である。
【００３８】
議事録データは、任意の時刻におけるメタデータとしての議事録データが時間順にログとして記録され、最も大きいID番号の議事録データが最新状態のものとされる。すなわち、図２（ｂ）で言えば、会議コード「code(1)」のテーブルにおいてID=１〜３に議事録データがログとして記録されていることから、ID=3が最新状態のデータであることを示す。
【００３９】
再び図１を参照して、情報処理装置が備える制御部１２は、他の部位の状態を監視し、その状態の変化に応じた処理を行ったり、他の部位に処理を依頼するという処理を行う。部位は、制御部１２以外のデータ記録部１１や検索部１０等である。具体的には、制御部１２は、操作入力部１３から要求を受け付けると、データ記録部１１および検索部１０に処理を依頼し、処理結果の表示を操作表示部１４に依頼する。
【００４０】
操作入力部１３は、キーボードやマウス等から構成され、ユーザからの議事録の内容の入力、所望の議事録である文書データの選択、検索実行等を制御部１２に要求する。操作表示部１４は、検索部１０により求めた議事録の候補データ、操作入力部１３で入力や選択された議事録の文書データを制御部１２からの依頼により表示する。
【００４１】
図４は、操作表示部１４で表示される画面の表示例を示した図である。図４に示す画面では、紙面に向かって左上に「新規作成」、「開く」、「削除」、「保存」というボタンが配置されている。ユーザは、マウスを使用して矢印で表されるポインタを移動し、ボタンの１つを押下（クリック）することにより、各ボタンに対応付けられた機能を実現することができる。
【００４２】
ボタンの下側には、テーブル「meetings」の会議名欄に記載されている会議名がリスト表示されている。このリストは、制御部１２がデータ記録部１１に対して次のSQL文で会議名を問い合わせ、結果を操作表示部１４に依頼することにより表示される。
SELECT 会議名 FROM meetings
【００４３】
図４では、会議名欄の下側に、「検索」ボタンと、検索結果の表示領域とが配置されている。以下、各ボタンが押下された場合の処理を詳細に説明する。
【００４４】
（新規作成ボタン）
「新規作成」ボタンがユーザにより押下され、操作入力部１３がそれを受け付けると、操作入力部１３は、「新規作成」を制御部１２に依頼する。制御部１２は、データ記録部１１に次のSQL文により、テーブル「meetings」に新しい会議情報を追加する。
INSERT INTO meetings(ID,会議コード,会議名) VALUES(NULL,code(id),titleText)
【００４５】
ここで、code(id)は、例えば、図４に示す状態で「新規作成」ボタンが押下された場合、７番目までのIDは使用されているため、次の８番目のIDを追加することになり、code(8)となる。titleTextは、図４に示す向かって右側の領域に表示されている会議名に入力されているテキストであり、制御部１２は、上記のSQL文を実行する前にこのテキストを取得しておく。この時点で会議名に何も入力されていなければテキストは空白のままでもよい。
【００４６】
制御部１２は、次のSQL文により、新しいテーブルの作成を依頼する。
CREAT TABLE IF NOT EXISTS table(ID INTEGER PRIMARY KEY,議事録データ TEXT)
ここで、テーブル名tableには、以前の処理で求めたcode(8)を指定する。このようにして、「新規作成」処理により、テーブル「meetings」に８番目の会議情報が追加されるとともに、８番目の会議に対するテーブルが新たに作成される。
【００４７】
（開く）
「開く」ボタンがユーザにより押下され、操作入力部１３がそれを受け付けると、操作入力部１３は、会議リストを選択してから「開く」を制御部１２に依頼する。制御部１２は、次のSQL文により、選択された議事録の中から最新の議事録データを取得する。
SELECT 議事録データ FROM code(id) WHERE ID=idend
【００４８】
図４に示す実施形態では、「打ち合わせ（第１回）」の項目が選択されているため、code(id)は、code(1)となる。なお、選択された会議名は、背景領域が濃い色で表示され、他の会議名と区別可能にされる。また、idendは、テーブルcode(1)の中から最大ID番号を指定して最新の議事録データを取得する。したがって、ID=3が最大ID番号であれば、ID=3に対応する議事録データを取得する。
【００４９】
制御部１２は、取得した議事録データをXML操作により解析し、その結果を操作表示部１４に表示させる。議事録データの解析は、例えば、XMLパーサーによる構文解析により行うことができる。取得した議事録データが図３に示したデータである場合、制御部１２は、次の処理を行う。
【００５０】
（１）<dc:title>…</dc:title>の要素を取り出し、操作表示部１４の「会議名」の領域に表示させる。
（２）<dc:coverage>…</dc:coverage>の要素を取り出し、操作表示部１４の「場所」の領域に表示させる。
（３）<dc:date>…</dc:date>の要素を取り出し、年月日、開始時刻、終了時刻を文字列操作により抽出して「日時」の領域に表示させる。
（４）<dc:contributor>…</dc:contributor>の要素にアクセスし、<rdf:li>…</rdf:li>の要素を順番に取り出し、「出席者」の領域に表示させる。
（５）<rdf:Seq>…</rdf:Seq>にアクセスし、<rdf:li>…</rdf:li>の要素を順番に取り出す。
【００５１】
<dc:type>…</dc:type>の要素に応じて次の処理を行う。その要素が、decisionである場合、<dc:description>…</dc:description>の要素を「決定事項」の領域に表示させる。agendaである場合、<dc:description>…</dc:description>の要素を「議事」の領域に表示させる。action itemである場合、<dc:description>…</dc:description>の要素を「アクションアイテム」の領域に表示させる。
【００５２】
（６）<dcterms:hasPart>…</dcterms:hasPart>にアクセスし、<dc:source>…</dc:source>の要素を順番に取り出し、「添付資料」の領域に表示させる。
【００５３】
（削除）
「削除」ボタンがユーザにより押下され、操作入力部１３がそれを受け付けると、操作入力部１３は、会議リストの項目を選択してから、「削除」を制御部１２に依頼する。制御部１２は、次のSQL文により、選択された会議情報の削除をデータ記録部１１に依頼する。
DELETE FROM meetings WHERE 会議コード=code(selectedID)
DELETE FROM code(selectedID)
ここで、selectedIDは、選択された項目に対応するテーブル「meetings」のID番号である。
【００５４】
（保存）
「保存」ボタンがユーザにより押下され、操作入力部１３がそれを受け付けると、操作入力部１３は、「保存」を制御部１２に依頼する。制御部１２は、上記「開く」の処理とは反対に、図４に表示されている各領域のテキスト情報をRDFデータのタグ要素に代入する。例えば、「会議名」の領域のテキストが「打ち合わせ（第２回）」であれば、RDFのタグ要素は、<dc:title>打ち合わせ（第２回）</dc:title>とする。全ての領域の要素をRDFデータに代入したら、次のSQL文により、RDF文書をデータ記録部１１が格納しているテーブルに追加する。
INSERT INTO code(selectedID)(ID,議事録データ)VALUES(NULL,RDFデータ)
このような処理により、テーブル「code(selectedID)」の最後のID番号に上述の議事録データが追加される。
【００５５】
上記保存の処理は、ユーザが「保存」ボタンを押下する以外に制御部１２が所定のイベントを取得したときにも実行される。すなわち、図４においてユーザが編集領域を変更したとき、領域が変更された時点で保存の処理を行う。例えば、ユーザは、編集の対象を議事から決定事項へ変更するために、決定事項の編集領域を選択する。制御部１２は、イベント監視しており、マウスが決定事項の編集領域を選択した時点で上記保存の処理を実行する。
【００５６】
上記のような保存の処理を行うことにより、テーブル「code(selectedID)」には議事録の途中経過が所定のタイミングで保存される。したがって、各テーブルの議事録データには、ある会議における議事録の成長具合の特性も含めて保存されていることになる。
【００５７】
（検索）
「検索」ボタンがユーザにより押下され、操作入力部１３がそれを受け付けると、操作入力部１３は、会議リストの項目を選択してから、「検索」を制御部１２に依頼する。制御部１２は、選択された項目以外で類似する議事録データの検索を開始する。図５に示すフローチャートを参照して、検索処理について詳細に説明する。
【００５８】
ステップ５００から検索処理を開始し、ステップ５１０で、制御部１２が、会議リストで選択されている会議データから最新状態（最後番目のID番号をもつ）の議事録データを次のSQL文により依頼し、取得する。
SELECT 議事録データ FROM code(idt) WHERE ID=idend
ここで、code(idt)は、選択されている会議のテーブル名である。また、取得した議事録データをATとする。
【００５９】
ステップ５２０で、制御部１２は、照合対象の会議データが残っているか否かを調べる。図４に示す例では、会議リストの「打ち合わせ（第１回）」を除く、「打ち合わせ（第２回）」から「打ち合わせ（第７回）」の６件が照合対象となる。
【００６０】
ステップ５３０で、制御部１２は、照合対象の会議データが残っている場合、照合対象の議事録データの最新状態を次のSQL文により依頼し、取得する。
SELECT 議事録データ FROM code(idr) WHERE ID=idend
ここで、code(idr)は、照合対象となる会議のテーブル名である。図４に示す例では、code(2)からcode(7)までの議事録データを順番に取得することになる。i番目に取得した議事録データをAiとする。
【００６１】
ステップ５４０で、制御部１２は、ATとAiとの照合を検索部１０に依頼する。検索部１０では、動的計画法により、次式より距離Diを算出する。なお、データATとAiの文字数をそれぞれX、Yとする。
【００６２】
【数２】
0005402427.tif 000003
【００６３】
【数３】
0005402427.tif 000004
【００６４】
【数４】
0005402427.tif 000005
【００６５】
ここで、d(x,y)は、Aiのx番目の文字Si(x)とATのy番目の文字ST(y)との間の距離であり、次式から求めることができる。なお、ｘは、１以上X以下、ｙは、１以上Y以下の自然数である。
【００６６】
【数５】
0005402427.tif 000006
【００６７】
【数６】
0005402427.tif 000007
【００６８】
Di(x,y)は、Aiのx番目およびATのy番目の文字まで照合したときの累積距離である。AiおよびATそれぞれの最後の文字まで照合し、求めた累積距離Di(x,y)をDiと定義する。その後、検索部１０は、次式で表される条件判断式から、最小値をもつDminを求め、保存する。
【００６９】
【数７】
0005402427.tif 000008
【００７０】
なお、d(x,y)は、上述したものに限られるものではなく、類似する文字であるか否かに応じて、０、１以外に０からｎまでの重み付けを行って算出することも可能である。また、上記式３に示す照合パスに限られるものではなく、「L.Rabiner他：音声認識の基礎（上）,NTTアドバンステクノロジ」に開示されているような種々のパスを適用してもよく、また、パスの傾斜に重み付けを行うこともできる。照合対象の会議データがなくなるまで、ステップ５２０〜ステップ５４０までの処理を繰り返す。
【００７１】
照合対象の会議データがなくなったところで、ステップ５５０へ進み、検索部１０は、Dminと照合結果のDminとなったテーブル名code(j)を制御部１２へ返す。
【００７２】
制御部１２は、次のSQL文の実行をデータ記録部１１に依頼し、取得した結果を操作表示部１４の「検索」ボタンの下側の領域に、最も類似する議事録の候補として候補表示させ、ステップ５６０で、この処理を終了する。
SELECT 会議名 FROM meetings WHERE 会議コード=code(j)
【００７３】
このようにして、表示された項目を選択し、「開く」ボタンを押下すれば、「開く」で述べた処理と同様にして、「打ち合わせ（第１回）」に最も類似する議事録が表示される。
【００７４】
上記のステップ５４０では、文字列の並び方の構造を考慮した照合を行っているため、文書のテンプレートが用意されている等、入力される内容に所定の制限がある議事録との照合に対して高確度で検索することができる。
【００７５】
一方、議事録の記載内容の制限が比較的緩い場合には、出現する文字の確率（頻度）を用い、検索対象の議事録データの文字分布が、どの程度取得した議事録データの文字分布に近いかを求めることにより高確度で検索することができる。上記のステップ５４０の他の例として、この文字分布がどの程度近いかを求める処理について以下に詳細に説明する。
【００７６】
この処理を行う場合、予めk番目の議事録に出現する文字wの出現確率Pk(w)を、次式を用いて求め、検索処理を行う前に、データ記憶部に記憶しておく。
【００７７】
【数８】
0005402427.tif 000009
【００７８】
ここで、hk(w)、Nはそれぞれ、k番目の議事録に出現した文字wの回数（ヒストグラム）、全議事録データ中の総文字数である。Pk(w)は、新たに議事録が記憶されるたびに再計算され、データ記憶部に記憶される。
【００７９】
この例では、図５に示すステップ５４０において、制御部１２は、ATとAiとの照合を検索部１０に依頼し、検索部１０は、データ記憶部に記憶された文字の出現確率を読み出し、次式を用いてKullback距離Diを求める。
【００８０】
【数９】
0005402427.tif 000010
【００８１】
その後、検索部１０は、次式で表される条件判断式から、最小値をもつDminを求め、保存する。
【００８２】
【数１０】
0005402427.tif 000011
【００８３】
このような処理を行うことで、議事録の記載内容の制限が比較的緩い場合においても、高確度で検索を行うことができる。上記の例では、文字wの出現確率を用いたが、連鎖確率を用いることも可能である。連鎖確率として、例えば、二重連鎖確率（バイグラム）を用いることができ、この場合、上記式８に代えて、次式を用いて求めることができる。
【００８４】
【数１１】
0005402427.tif 000012
【００８５】
式１１中、Pk(wi|wi-1)、hk(wi|wi-1)はそれぞれ、k番目の議事録においてwi-1が出現した後でwiが出現する確率と回数である。
【００８６】
式１１により計算された連鎖確率を用いることで、式８により計算された出現確率を用いた場合に比較して、計算量は増加するものの、議事録内に出現する単語列の生起確率に近づけることができるため、検索確度もさらに高めることができる。ただし、連鎖確率を用いるためには、出現確率よりも多くの議事録データが必要となるため、どの確率を用いるかについては、情報処理装置の演算能力や、議事録データのデータ量に応じて、適宜決定することができる。
【００８７】
これまでに説明してきたように、情報処理装置は、「打ち合わせ（第ｎ回）」といった連続的に開催される会議があっても、ユーザは初回から全ての議事録を参照することなく、効率的に同じ資料や類似の記述をもつ議事録データを検索することができる。
【００８８】
検索処理の第２の実施形態について、上記の第１の実施形態とほぼ同様であるため、図５に示すフローチャートを参照して説明する。この検索処理は、上記検索処理を変形したものである。ステップ５００から検索処理を開始し、ステップ５１０で、制御部１２が、会議リストで選択されている会議データから議事録データを取得するが、ここでは、全議事録データを次のSQL文により取得する。
SELECT 議事録データ FROM code(idt)
ここで、取得した議事録データをAT(idn)(1≦id,n≦N)とし、Nを選択されている議事録データの数とする。
【００８９】
ステップ５２０で、制御部１２は、照合対象の会議データが残っているか否かを調べる。照合対象の会議データが残っている場合、ステップ５３０で、制御部１２は、照合対象の会議データの全議事録データを次のSQL文により取得する。
SELECT 議事録データ FROM code(idr)
ここで、i番目に取得した議事録データをAi(idm)(1≦idm≦Mi)とし、Miをi番目に取得した議事録データの数とする。
【００９０】
ステップ５４０で、制御部１２は、ATとAiとの照合を検索部１０に依頼する。検索部では、動的計画法により、次式より距離Diを算出する。ここでは、Diをdi(idm,idn)とし、i番目に取得した議事録データでID番号idmに対応するデータと選択された議事録データでID番号idnに対応するデータとを照合したときの累積距離として再定義する。
【００９１】
【数１２】
0005402427.tif 000013
【００９２】
【数１３】
0005402427.tif 000014
【００９３】
【数１４】
0005402427.tif 000015
【００９４】
Di(idm,idn)は、議事録データAiのID番号idmと議事録データATのID番号idnのデータ間の累積距離である。AiおよびATのそれぞれ最後のID番号の議事録データまで照合し、算出した累積距離Di(Mi,N)をDiとする。なお、idmは、１以上Mi以下、idnは、１以上N以下の自然数である。その後、検索部１０は、次式により最小値をもつDminを求め、保存する。
【００９５】
【数１５】
0005402427.tif 000016
【００９６】
照合対象の会議データがなくなるまで、ステップ５２０〜ステップ５４０までの処理を繰り返す。そして、照合対象の会議データをすべて照合したところで、ステップ５５０へ進み、検索部１０は、照合の結果Dminとなったテーブル名code(j)を制御部１２に返す。
【００９７】
制御部１２は、次のSQL文の実行をデータ記録部１１に依頼し、取得した結果を操作表示部１４の「検索」ボタンの下側の領域に、最も類似する議事録の候補として候補表示させ、ステップ５６０で、この処理を終了する。
SELECT 会議名 FROM meetings WHERE 会議コード=code(j)
【００９８】
このように検索処理を変形することで、議事録データの成長具合という時間的な流れの特性を組み込んで照合するため、より高精度で議事録データを検索することができる。
【００９９】
検索処理の第３の実施形態について、図６に示すフローチャートを参照して説明する。図５に示す第１の実施形態および第２の実施形態と異なる点は、選択された議事録データや照合対象の議事録データを取得した後にデータ抽出ステップが追加されていることである。そのため、他のステップは省略し、このデータ抽出ステップについて詳細に説明する。
【０１００】
ステップ６２０、ステップ６５０のデータ抽出ステップでは、制御部１２が、取得した議事録データから所定の部分をXML操作により抽出し、この抽出した後のデータを、ステップ６３０の判断ステップ、ステップ６６０の照合ステップへと渡す。例えば、図３に示す議事録データにおいて、このデータ抽出ステップで<rdf:Seq>…</rdf:Seq>と<determs:hasPart>…</dcterms:hasPart>を抽出し、次の照合ステップで、抽出後のデータに対して照合を行う。
【０１０１】
このようにして抽出したデータの一例を図７に示す。抽出する部分は、選択された議事録データと照合対象の議事録データとで一致させておく必要がある。会議の性質等に応じて、決定事項、議事、アクションアイテム、添付資料の項目に類似性や差異が現れやすいことが予めわかっている場合は、上記のようにしてデータを抽出してから照合を行うことにより、高確度で検索を行うことが可能となる。また、照合時のデータ量を減少させることができ、検索時間をより短縮することができる。
【０１０２】
なお、抽出する項目は、上記のものに限られるものではなく、会議の性質に応じて抽出する項目の種類、数を変更できることは、E4X(ECMAScript for XML)等の仕様に準拠したXML操作の汎用性を考慮すれば明らかである。
【０１０３】
次に、検索結果に関する変形例について説明する。上記の検索処理にて求めたDminは１つであったが、この例では、L個に拡張する。検索部１０は、Lを予め、あるいは検索処理が行われるまでに制御部１２から指定される。Lを3とした場合、距離が小さい順にDmin1、Dmin2、Dmin3として保存する。そして、DiをDmin3からDmin2、Dmin1の順に比較し、Diより大きい距離があれば、そのDiをそのDminの代わりに保存し、Dmin1、Dmin2、Dmin3の順にソートしなおす。
【０１０４】
次に、検索部１０は、Dmin1、Dmin2、Dmin3および対応するテーブル名を制御部１２に返す。ここでは、３つの会議名を取得し、操作表示部１４に表示させる。その表示例が図８である。図８には、「検索」ボタンの下側の領域に、距離が短い順に上から下に向かって距離が短い順に表示される。表示された項目のいずれかを選択し、「開く」ボタンを押下すれば、「開く」処理にて説明したのと同様の「打ち合わせ（第１回）」に類似した議事録が表示される。
【０１０５】
上記では、表示候補数Lは、予め、あるいは検索処理が行われるまでに制御部１２により指定されているが、ユーザの操作により指定することも可能である。この方法について以下、簡単に説明する。
【０１０６】
操作入力部１３が制御部１２に検索を要求したときに、制御部１２は「検索」ボタンの押下持続時間を計測し、この持続時間に応じてLを決定する。例えば、制御部１２が、取得した持続時間をT(秒)とした場合、Lを次式により決定することができる。
【０１０７】
【数１６】
0005402427.tif 000017
【０１０８】
ここで、INTは、小数点以下を切り上げて整数化する処理である。例えば、図８に示す実施形態と同様に、L=3となる条件は、押下持続時間が2<T≦3の範囲である。検索処理は、このLを選択した後、図５および図６に示す実施形態と同様の処理を行うことで実現することができる。
【０１０９】
Lを変更する他の例を、図９を参照して説明する。この図９は、ユーザが「検索」ボタンを押下した後、操作表示部１４によりポインタをドラッグしたところを示した図である。ここで、Y(i)は、y軸方向の位置を示し、i番目の候補とi+1番目の候補が表示される領域の境界を示している。図９に示すようなドラッグ操作が行われた後に、ユーザがマウスボタンの押下をリリースすると、制御部１２は、リリースされた位置yを取得して次式に示す規則により候補数Lを決定する。
【０１１０】
【数１７】
0005402427.tif 000018
【０１１１】
【数１８】
0005402427.tif 000019
【０１１２】
【数１９】
0005402427.tif 000020
【０１１３】
ここで、Kは、表示可能な最大候補数である。iは、２からK-1までの自然数である。上記の規則を適用すると、図９に示すy位置でマウスボタンの押下をリリースした場合はL=3となり、図８に示すように３つの候補が表示される。すなわち、これは、ドラッグ操作によりポインタが移動し、それによって指定された領域内に一部でも含まれるデータ表示領域の数を、候補データの数として決定するもので、持続時間中に入力された空間上の移動量から決定するものである。このような方法を採用することで、ユーザは直感的な操作で候補数を選択することができるため、操作の負担を軽減することができる。
【０１１４】
これまで、PC等の情報処理装置２０として説明してきたが、この情報処理装置２０と情報処理サーバ３０とから構成される情報処理システムとして提供することも可能である。図１０は、その情報処理システムの構成例を示した図である。図１０に示すシステムは、N個の情報処理装置２０と、１つの情報処理サーバ３０とから構成されている。各情報処理装置２０と情報処理サーバ３０とは、社内LAN等のネットワーク４０により接続されている。なお、N個の情報処理装置２０の各々は、図１に示したような構成とされる。
【０１１５】
情報処理サーバ３０は、図１１に示す構成とされ、データ入力部３１、データ出力部３２、制御部３３、データ記録部３４を含んで構成される。データ入力部３１は、情報処理装置２０からのデータ入力を受け付ける。データ出力部３２は、情報処理装置２０へデータを出力する。データ記録部３４は、情報処理装置２０が備えるデータ記録部１１と同様、図２に示したような会議情報を記憶する。
【０１１６】
制御部３３は、データ入力部３１、データ出力部３２、データ記録部３４との仲介を行い、情報処理サーバ３０全体を制御する。
【０１１７】
情報処理装置２０は、上述したように、新規作成、保存、削除といった処理を行い、自身が備えるデータ記憶部のデータを変更するが、そのタイミングで情報処理サーバ３０が備えるデータ記録部３４のデータも変更する。この処理を、図１２を参照して説明する。
【０１１８】
ステップ１２００から処理を開始し、ステップ１２１０で、情報処理装置２０の制御部１２がデータの変更をデータ記録部３４に依頼するために生成したSQL文をデータ出力部１６に渡し、データ出力部１６がそのデータを送出する。このデータは、情報処理サーバ３０へ向けて送出される。
【０１１９】
ステップ１２２０で、情報処理サーバ３０のデータ入力部３１が、そのSQL文を受け付ける。受け付けが完了すると、ステップ１２３０で、情報処理サーバ３０の制御部３３が、そのSQL文を使用してデータの変更をデータ記録部３４に依頼し、変更を行い、ステップ１２４０で処理を終了する。
【０１２０】
この処理により、個々の情報処理装置２０で生成された会議データを情報処理サーバ３０で統一的に管理することができる。ただし、図２に示した会議コードをID番号でハッシュ化してしまうと、情報処理サーバ３０で記憶される会議コードが重複する可能性がある。これを避けるために、会議コードを求める場合は、例えば、情報処理装置番号、ID番号という文字列に対してコード化を行うことが好ましい。具体的には、情報処理装置1のID番号1の会議コードを、SHA256(“1.1”)でコードを生成することにより、一意に求めることができる。
【０１２１】
図１０に示すシステムにおいて、ある情報処理装置に、それ以外のある情報処理装置で作成した会議データを情報処理サーバ３０経由で取得する処理について、図１３を参照しながら詳細に説明する。まず、前提条件として、会議データを取得する情報処理装置２０は何らかの方法で他の会議コードをデータ記録部１１に保存してあるものとする。例えば、管理者、関係者から会議コードを教えてもらう、あるいはUSBメモリ等にコピーしてもらう、等して会議コードを入手し、情報処理装置２０に保存させておく。
【０１２２】
ステップ１３００からこの処理を開始し、ステップ１３１０で、情報処理装置２０の制御部１２が、データ記録部１１に記憶されている会議コードcode(j)を読み出し、データ出力部１６に渡す。次に、ステップ１３２０で、データ出力部１６は、会議コードを送出する。
【０１２３】
ステップ１３３０で、情報処理サーバ３０は、データ入力部３１においてその会議コードを受け付け、ステップ１３４０で、制御部３３が、次のSQL文をデータ記録部３４に依頼し、code(id)をもつ会議名titleTextを取得する。
SELECT 会議名 FROM meetings WHERE 会議コード=code(id)
また、次のSQL文により、テーブルcode(id)の議事録データを取得する。
SELECT 議事録データ FROM code(id)
【０１２４】
ステップ１３５０で、制御部３３は、次のSQL文を生成し、ステップ１３３０で取得した議事録データとともにデータ出力部３２に渡す。
INSERT INTO meetings(ID,会議コード,会議名) VALUES(NULL,code(id),titleText)
ステップ１３６０で、データ出力部３２は、生成したSQL文と議事録データとを送出する。
【０１２５】
ステップ１３７０で、情報処理装置２０のデータ入力部１５は、そのSQL文と議事録データとを受け付ける。それらの受け付けが完了したところで、ステップ１３８０で、情報処理装置２０の制御部１２が、受け付けたSQL文の実行をデータ記録部１１に依頼し、続いて、SQL文の実行を依頼する。
CREATE TABLE IF NOT EXISTS code(id)(ID INTEGER PRIMARY KEY,議事録データ TEXT)
そして、受け付けた議事録データを次のSQL文を1からIまで繰り返すことにより、テーブルcode(id)に追加し、ステップ１３９０で処理を終了する。
INSERT INTO code(id)(ID,議事録データ) VALUE(NULL,i番目の議事録データ)
【０１２６】
このような処理により、並行して行われる会議があり、他の会議に出席できない状況になっても、関係者は他で行われた議事録を参照、検索することができるため、効率的に業務を進めることができる。また、会議コードを知らなければ議事録を入手することができないため、関係者以外に情報が漏洩することなく、安全に議事録の確認や検索を行うことができる。
【０１２７】
これまで本発明を実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。情報処理装置により行われる処理は、プログラムを実行することにより実現することができるため、プログラムとして提供することも可能である。なお、このプログラムは、コンピュータ読み取り可能な媒体であればいかなる媒体に格納して提供することができ、フレキシブルディスク、ＭＤディスク、ＳＤカード、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等に格納して提供することができる。
【符号の説明】
【０１２８】
１０…検索部、１１…データ記録部、１２…制御部、１３…操作入力部、１４…操作表示部、１５…データ入力部、１６…データ出力部、２０…情報処理装置、３０…情報処理サーバ、３１…データ入力部、３２…データ出力部、３３…制御部、３４…データ記録部、４０…ネットワーク
【先行技術文献】
【特許文献】
【０１２９】
【特許文献１】特開２０００−２００１５８号公報
【特許文献２】特開平８−３３５２２１号公報
【特許文献３】特開平８−３３５２１４号公報
【特許文献４】特開２００７−１２２２１９号公報
【図１】
0005402427.tif 000021
【図２】
0005402427.tif 000022
【図３】
0005402427.tif 000023
【図４】
0005402427.tif 000024
【図５】
0005402427.tif 000025
【図６】
0005402427.tif 000026
【図７】
0005402427.tif 000027
【図８】
0005402427.tif 000028
【図９】
0005402427.tif 000029
【図１０】
0005402427.tif 000030
【図１１】
0005402427.tif 000031
【図１２】
0005402427.tif 000032
【図１３】
0005402427.tif 000033