(57)【要約】【課題】文章データの検索に用いるトピックを手動で効率的に更新する。【解決手段】文章データを格納するデータベース及び計算機を備える計算機システムであって、計算機は、文章データを特徴付ける単語であって、関連文章データの検索キーとして用いられる単語を管理する単語管理情報を保持し、新規文章データを含む登録要求を受信した場合、単語管理情報を用いて新規文章データを解析し、新規文章データに含まれる単語を特定し、特定された単語の中から検索キーの候補となる単語である候補キーを特定し、候補キーの中から検索キーを選択し、検索キーに選ばれなかった候補キーの中から学習用単語を選択し、学習用単語を表示するための第１表示データを生成し、第１表示データを出力し、検索キーに基づいて関連文章データを検索して、関連文章データを表示するための第２表示データを生成し、第２表示データを出力する。【選択図】図１２
2019023834.tif 000002
【特許請求の範囲】
【請求項１】
文章データを格納するデータベース及び前記データベースを管理する計算機を備える計算機システムであって、
前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、
前記記憶装置は、前記文章データを特徴付ける単語であって、データベースに登録される新規文章データと関連する関連文章データの検索キーとして用いられる単語を管理する単語管理情報を格納し、
前記演算装置は、
前記新規文章データを含む登録要求を受信した場合、前記単語管理情報を用いて前記新規文章データを解析し、前記新規文章データに含まれる単語を特定する第１処理と、
前記特定された単語の中から前記検索キーの候補となる単語である候補キーを特定する第２処理と、
前記候補キーの中から前記検索キーを選択する第３処理と、
前記検索キーに選ばれなかった前記候補キーの中から学習用単語を選択する第４処理と、
前記学習用単語を表示するための第１表示データを生成し、前記第１表示データを出力する第５処理と、
前記検索キーに基づいて前記関連文章データを検索して、前記関連文章データを表示するための第２表示データを生成し、前記第２表示データを出力する第６処理と、を実行することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記記憶装置は、前記学習用単語に対する操作の履歴を管理する履歴情報を保持し、
前記第５処理では、前記演算装置は、
ユーザが操作するユーザ端末に前記第１表示データを出力し、
前記ユーザ端末から前記学習用単語の修正操作を受信し、
対象の学習用単語、前記対象の学習用単語の修正内容、及び前記対象の学習用単語を修正したユーザの識別情報から構成されるエントリを前記履歴情報に登録することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記記憶装置は、前記ユーザのアカウントを管理するユーザ管理情報及び前記データベースを管理するデータベース管理情報を保持し、
前記単語管理情報は、前記単語の識別情報及び前記単語の生成元のデータベースの識別情報から構成されるエントリを含み、
前記ユーザ管理情報は、前記ユーザの識別情報及び前記ユーザの特徴を示す属性情報から構成されるエントリを含み、
前記データベース管理情報は、前記データベースの識別情報及び前記属性情報から構成されるエントリを含み、
前記第４処理では、前記演算装置は、
前記ユーザ管理情報を参照して、前記新規文章データの入力を行うユーザの前記属性情報を取得し、
前記単語管理情報を参照して、前記候補キーの生成元のデータベースの識別情報を取得し、
前記データベース管理情報を参照して、前記候補キーの生成元のデータベースに対応付けられる属性情報を取得し、
前記ユーザ管理情報から取得された前記属性情報が、前記データベース管理情報から取得された前記属性情報に一致する前記候補キーを前記学習用単語として選択することを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
前記第４処理では、前記演算装置は、
前記履歴情報を参照して、前記検索キーに選ばれなかった候補キーに関連するエントリの数を算出し、
前記算出されたエントリの数に基づいて、前記学習用単語を選択することを特徴とする計算機システム。
【請求項５】
請求項２に記載の計算機システムであって、
前記第３処理では、前記演算装置は、
前記新規文章データと前記新規文章データから特定された単語との間の関連性を示す判定値を算出し、
前記判定値に基づいて、前記検索キーを選択し、
前記第４処理では、前記演算装置は、前記判定値に基づいて前記学習用単語を選択することを特徴とする計算機システム。
【請求項６】
請求項２に記載の計算機システムであって、
前記単語管理情報は、前記単語の識別情報及び前記単語の生成元のデータベースの識別情報から構成されるエントリを含み、
前記第３処理では、前記演算装置は、
前記履歴情報を参照して、前記新規文章データの入力を行うユーザが修正した前記学習用単語を特定し、
前記単語管理情報を参照して、前記候補キーの生成元のデータベースの識別情報及び前記特定された学習用単語の生成元のデータベースの識別情報を取得し、
前記候補キーの生成元のデータベースの識別情報が、前記特定された学習用単語の生成元のデータベースの識別情報に一致しない前記候補キーを当該候補キーから除外することを特徴とする計算機システム。
【請求項７】
文章データを格納するデータベース及び前記データベースを管理する計算機を備える計算機システムにおける文章データの検索方法であって、
前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、
前記記憶装置は、前記文章データを特徴付ける単語であって、データベースに登録される新規文章データと関連する関連文章データの検索キーとして用いられる単語を管理する単語管理情報を格納し、
前記文章データの検索方法は、
前記演算装置が、前記新規文章データを含む登録要求を受信した場合、前記単語管理情報を用いて前記新規文章データを解析し、前記新規文章データに含まれる単語を特定する第１のステップと、
前記演算装置が、前記特定された単語の中から前記検索キーの候補となる単語である候補キーを特定する第２のステップと、
前記演算装置が、前記候補キーの中から前記検索キーを選択する第３のステップと、
前記演算装置が、前記検索キーに選ばれなかった前記候補キーの中から学習用単語を選択する第４のステップと、
前記演算装置が、前記学習用単語を表示するための第１表示データを生成し、前記第１表示データを出力する第５のステップと、
前記演算装置が、前記検索キーに基づいて前記関連文章データを検索して、前記関連文章データを表示するための第２表示データを生成し、前記第２表示データを出力する第６のステップと、を含むことを特徴とする文章データの検索方法。
【請求項８】
請求項７に記載の文章データの検索方法であって、
前記記憶装置は、前記学習用単語に対する操作の履歴を管理する履歴情報を保持し、
前記第５のステップは、
前記演算装置が、ユーザが操作するユーザ端末に前記第１表示データを出力するステップと、
前記演算装置が、前記ユーザ端末から前記学習用単語の修正操作を受信するステップと、
前記演算装置が、対象の学習用単語、前記対象の学習用単語の修正内容、及び前記対象の学習用単語を修正したユーザの識別情報から構成されるエントリを前記履歴情報に登録するステップと、を含むことを特徴とする文章データの検索方法。
【請求項９】
請求項８に記載の文章データの検索方法であって、
前記記憶装置は、前記ユーザのアカウントを管理するユーザ管理情報及び前記データベースを管理するデータベース管理情報を保持し、
前記単語管理情報は、前記単語の識別情報及び前記単語の生成元のデータベースの識別情報から構成されるエントリを含み、
前記ユーザ管理情報は、前記ユーザの識別情報及び前記ユーザの特徴を示す属性情報から構成されるエントリを含み、
前記データベース管理情報は、前記データベースの識別情報及び前記属性情報から構成されるエントリを含み、
前記第４のステップは、
前記演算装置が、前記ユーザ管理情報を参照して、前記新規文章データの入力を行うユーザの前記属性情報を取得するステップと、
前記演算装置が、前記単語管理情報を参照して、前記候補キーの生成元のデータベースの識別情報を取得するステップと、
前記演算装置が、前記データベース管理情報を参照して、前記候補キーの生成元のデータベースに対応付けられる属性情報を取得するステップと、
前記演算装置が、前記ユーザ管理情報から取得された前記属性情報が、前記データベース管理情報から取得された前記属性情報に一致する前記候補キーを前記学習用単語として選択するステップと、を含むことを特徴とする文章データの検索方法。
【請求項１０】
請求項８に記載の文章データの検索方法であって、
前記第４のステップは、
前記演算装置が、前記履歴情報を参照して、前記検索キーに選ばれなかった候補キーに関連するエントリの数を算出するステップと、
前記演算装置が、前記算出されたエントリの数に基づいて、前記学習用単語を選択するステップと、を含むことを特徴とする文章データの検索方法。
【請求項１１】
請求項８に記載の文章データの検索方法であって、
前記第３のステップは、
前記演算装置が、前記新規文章データと前記新規文章データから特定された単語との間の関連性を示す判定値を算出するステップと、
前記演算装置が、前記判定値に基づいて、前記検索キーを選択するステップと、を含み、
前記第４のステップは、前記演算装置が、前記判定値に基づいて前記学習用単語を選択するステップと、を含むことを特徴とする文章データの検索方法。
【請求項１２】
請求項８に記載の文章データの検索方法であって、
前記単語管理情報は、前記単語の識別情報及び前記単語の生成元のデータベースの識別情報から構成されるエントリを含み、
前記第３のステップは、
前記演算装置が、前記履歴情報を参照して、前記新規文章データの入力を行うユーザが修正した前記学習用単語を特定するステップと、
前記演算装置が、前記単語管理情報を参照して、前記候補キーの生成元のデータベースの識別情報及び前記特定された学習用単語の生成元のデータベースの識別情報を取得するステップと、
前記演算装置が、前記候補キーの生成元のデータベースの識別情報が、前記特定された学習用単語の生成元のデータベースの識別情報に一致しない前記候補キーを当該候補キーから除外するステップと、を含むことを特徴とする文章データの検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに格納する文章データに関連する文章データの検索方法に関する。
【背景技術】
【０００２】
業務システムでは、様々な文章が文章データとしてデータベースに格納されている。業務内容又は保存する文章によっては、ユーザは、データベースに文章データを格納する時に、関連する文章データを確認する必要がある。したがって、ユーザの目的等に沿って、必要な文章データを提示する技術が求められている。
【０００３】
従来技術として特許文献１に記載の技術が知られている。特許文献１には「システムの開発に必要な設計項目を抽出するためのガイド用語抽出装置であって、システムの開発に関連する検索語が入力されると、予め記憶された検索語と、前記システムに関連する複数のガイドラインのガイド用語とを意味の観点から分類する予め記憶された索引の情報に基づいて、前記ガイド用語を抽出するガイド用語抽出部を備えた」ことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１１８６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されているように、文章データを扱うシステムでは、単語のグループであるトピックを検索キーとして用いてユーザに提示する文章データを検索する方法が知られている。
【０００６】
トピックはコーパスに基づいて生成される。一方、データベースに格納される情報及びシステムの状態は時々刻々と変化する。そのため、コーパスに基づいて生成されたトピックをそのまま用いても適切な文章データを検索できない。したがって、システムの状態等を反映した学習処理を実行し、トピックを更新する技術が求められる。
【０００７】
機械学習等、自動的な学習処理を実行した場合、一定以上の検索精度を保証できるが、ユーザの知識及びノウハウが完全を反映できない。そのため、ユーザの知識及びノウハウをトピックに反映するためには、ユーザが手動で学習処理が実行された後のトピックを更新する必要がある。しかし、トピックの数は膨大であるためユーザの負担が大きく、全てのトピックを手動で更新することはできない。
【０００８】
ランダムにトピックを更新する方法も考えられるが、更新を行うユーザと関連性が低いトピックを更新しても、ユーザの知識及びノウハウは反映されないため検索精度は向上しない。
【０００９】
本発明は、ユーザの負担が少なく、かつ、検索精度を向上できるトピック（検索キー）の学習を実現するシステム及び方法を提供する。
【課題を解決するための手段】
【００１０】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、文章データを格納するデータベース及び前記データベースを管理する計算機を備える計算機システムであって、前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、前記記憶装置は、前記文章データを特徴付ける単語であって、データベースに登録される新規文章データと関連する関連文章データの検索キーとして用いられる単語を管理する単語管理情報を格納し、前記演算装置は、前記新規文章データを含む登録要求を受信した場合、前記単語管理情報を用いて前記新規文章データを解析し、前記新規文章データに含まれる単語を特定する第１処理と、前記特定された単語の中から前記検索キーの候補となる単語である候補キーを特定する第２処理と、前記候補キーの中から前記検索キーを選択する第３処理と、前記検索キーに選ばれなかった前記候補キーの中から学習用単語を選択する第４処理と、前記学習用単語を表示するための第１表示データを生成し、前記第１表示データを出力する第５処理と、前記検索キーに基づいて前記関連文章データを検索して、前記関連文章データを表示するための第２表示データを生成し、前記第２表示データを出力する第６処理と、を実行することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、新規文章データの登録時に新規文章データに関連する単語（トピック）の中から学習用単語を選択し、ユーザに学習用単語を提示することによって、ユーザの負担が少なく、かつ、検索精度を向上できるトピックの学習が可能となる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】実施例１の計算機システムの構成の一例を示す図である。
【図２】実施例１のユーザ管理情報のデータ構造の一例を示す図である。
【図３】実施例１のデータベース管理情報のデータ構造の一例を示す図である。
【図４】実施例１のトピック管理情報のデータ構造の一例を示す図である。
【図５】実施例１の学習履歴情報のデータ構造の一例を示す図である。
【図６】実施例１の計算機が実行するユーザ登録処理の一例を説明するフローチャートである。
【図７】実施例１のユーザ端末に表示されるログイン画面の一例を示す図である。
【図８Ａ】実施例１の計算機が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。
【図８Ｂ】実施例１の計算機が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。
【図９】実施例１のユーザ端末に表示される文章データ入力画面の一例を示す図である。
【図１０】実施例１のユーザ端末に表示されるトピック操作画面の一例を示す図である。
【図１１】実施例１の計算機によって表示される検索結果表示画面の一例を示す図である。
【図１２】実施例１の計算機が実行する新規文章データの解析処理の一例を説明するフローチャートである。
【図１３】実施例１の文章データ管理モジュールが実行する文章検索処理の一例を説明するフローチャートである。
【図１４】実施例２の計算機が実行する新規文章データの解析処理の一例を説明するフローチャートである。
【図１５】実施例３のユーザ端末に表示される文章データ入力画面の一例を示す図である。
【図１６Ａ】実施例３の計算機が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。
【図１６Ｂ】実施例３の計算機が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施例を添付図面を用いて説明する。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１４】
図１は、実施例１の計算機システムの構成の一例を示す図である。
【００１５】
計算機システムは、計算機１００、複数のデータベース１０１、及びユーザ端末１０２から構成される。
【００１６】
計算機１００は、一つ以上の文章データ１０５が格納されるデータベース１０１を管理する。また、計算機１００は、ユーザが登録する新規文章データに関連する文章データ１０５を提示する。以下の説明では、新規文章データに関連する文章データを関連文章データとも記載する。
【００１７】
ここで本明細書の用語の扱いについて説明する。文章は、一つ以上の単語から構成される文がまとまったものを表す。文章データは、データ化された文章を表す。トピックは、性質が共通する単語、又は、意味若しくは観点が類似する単語の集合であって、文章データの内容等を示す一種の単語として扱われる。本実施例では、関連文章データを検索するための検索キーとしてトピックが用いられる。
【００１８】
計算機１００は、プロセッサ１１１、メモリ１１２、及びネットワークインタフェース１１３を有する。
【００１９】
プロセッサ１１１は、メモリ１１２に格納されるプログラムを実行する。プロセッサ１１１がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、プロセッサ１１１が当該モジュールを実現するプログラムを実行していることを示す。
【００２０】
メモリ１１２は、プロセッサ１１１が実行するプログラム及び各種情報を格納する。また、メモリ１１２は、プログラムが一時的に使用するワークエリアを含む。
【００２１】
ネットワークインタフェース１１３は、ネットワークを介して外部装置と接続するインタフェースである。本実施例では、計算機１００は、ネットワークインタフェース１１３を用いてデータベース１０１及びユーザ端末１０２と接続する。なお、計算機１００は、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）を有してもよい。また、計算機１００は、キーボード及びマウス等の入力装置、並びに、ディスプレイ等の出力装置と接続するＩ／Ｏインタフェースを有してもよい。
【００２２】
本実施例のメモリ１１２は、文章データ管理モジュール１２１を実現するプログラムを格納する。また、メモリ１１２は、ユーザ管理情報１２２、データベース管理情報１２３、トピック管理情報１２４、及び学習履歴情報１２５を格納する。
【００２３】
文章データ管理モジュール１２１は、ユーザのアカウント及びデータベース１０１に格納された文章データ１０５を管理し、また、データベース１０１に対する文章データ１０５の登録、読み出し、及び削除等の操作を制御する。また、文章データ管理モジュール１２１は、新規文章データ登録要求を受け付けた場合、新規文章データの解析結果及びユーザ操作に基づいて、関連文章データ１０５を提示し、また、新規文章データの解析結果に基づいて、学習を行うトピックを選択し、ユーザに提示する。さらに、文章データ管理モジュール１２１は、データベース１０１に新規文章データを格納する。
【００２４】
文章データ管理モジュール１２１は、入出力モジュール１３１、トピック選択モジュール１３２、検索エンジン１３３、及びアカウント管理モジュール１３４を含む。
【００２５】
入出力モジュール１３１は、データの入出力を制御する。本実施例では、入出力モジュール１３１は、新規文章データ等を含む各種要求を受け付け、また、関連文章データ１０５等を表示する表示データを出力する。
【００２６】
トピック選択モジュール１３２は、新規文章データの解析結果に基づいて関連文章データ１０５の検索に用いるトピックを選択し、また、ユーザに提示して学習を行うトピックを選択する。以下の説明では、関連文章データ１０５の検索に用いるトピックを検索用トピックと記載し、ユーザに提示して学習を行うトピックを学習用トピックと記載する。
【００２７】
トピック選択モジュール１３２は、検索用トピックを検索エンジン１３３に出力する。また、トピック選択モジュール１３２は、学習用トピックに対するユーザの操作の履歴、すなわち、学習の履歴を学習履歴情報１２５に登録する。
【００２８】
検索エンジン１３３は、検索用トピックを用いて関連文章データ１０５を検索する。検索エンジン１３３は、関連文章データ１０５の検索結果等を表示する表示データを入出力モジュール１３１に出力する。
【００２９】
アカウント管理モジュール１３４は、ユーザのアカウントを管理し、また、計算機１００に対するログイン処理を制御する。
【００３０】
ユーザ管理情報１２２は、ユーザのアカウントを管理する情報である。ユーザ管理情報１２２の詳細は図２を用いて説明する。データベース管理情報１２３は、データベース１０１を管理する情報である。データベース管理情報１２３の詳細は図３を用いて説明する。トピック管理情報１２４は、トピックを管理する情報である。トピック管理情報１２４の詳細は図４を用いて説明する。学習履歴情報１２５は、学習用トピックに対する操作の履歴を管理する情報である。学習履歴情報１２５の詳細は図５を用いて説明する。
【００３１】
データベース１０１は、文章データ１０５を格納する。本実施例では、文章データの種別、内容、又は、作成者に応じて異なるデータベース１０１が存在する。データベース１０１は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等のストレージ装置を用いて実現してもよいし、複数のストレージ装置を有するストレージシステムを用いて実現してもよい。
【００３２】
ユーザ端末１０２は、ユーザが操作する端末である。ユーザ端末１０２は、計算機１００と同様にプロセッサ、メモリ、及びネットワークインタフェースを有する。ユーザ端末１０２は、計算機１００が出力した表示データに基づいて画面を表示する。また、ユーザ端末１０２は、画面を介して計算機１００にデータを入力し、また、ユーザに処理結果等を提示する。本実施例では、ログイン画面７００（図７参照）、文章データ入力画面９００（図９参照）、トピック操作画面１０００（図１０参照）、及び検索結果表示画面１１００（図１１参照）がユーザ端末１０２に表示される。
【００３３】
ログイン画面７００は、ログイン時に使用する画面である。ログイン画面７００の詳細は図７を用いて説明する。文章データ入力画面９００は、データベース１０１に格納する文章データを指定するための画面である。文章データ入力画面９００の詳細は図９を用いて説明する。トピック操作画面１０００は、検索用トピックの選択及び学習用トピックの学習等に使用する画面である。トピック操作画面１０００の詳細は図１０を用いて説明する。検索結果表示画面１１００は、関連文章データ１０５を表示する画面である。検索結果表示画面１１００の詳細は図１１を用いて説明する。
【００３４】
図２は、実施例１のユーザ管理情報１２２のデータ構造の一例を示す図である。
【００３５】
ユーザ管理情報１２２は、ユーザＩＤ２０１、ユーザ名２０２、部署２０３、及び職位２０４から構成されるエントリを含む。一つのエントリは一人のユーザを表す。
【００３６】
ユーザＩＤ２０１は、ユーザ管理情報１２２のエントリを一意に識別するための識別情報を格納するフィールドである。ユーザ名２０２は、ユーザの名称を格納するフィールドである。部署２０３は、ユーザが所属する部署の情報を格納するフィールドである。職位２０４は、部署におけるユーザの職位の情報を格納するフィールドである。
【００３７】
ユーザ管理情報１２２は、予め設定されているものとする。なお、ユーザ端末１０２から送信されたユーザ登録要求、ユーザ更新要求、及びユーザ削除要求に基づいてユーザ管理情報１２２は更新される。
【００３８】
なお、ユーザ管理情報１２２に含まれるエントリは、パスワード等を格納するフィールドを含んでもよい。
【００３９】
図３は、実施例１のデータベース管理情報１２３のデータ構造の一例を示す図である。
【００４０】
データベース管理情報１２３は、ＤＢ  ＩＤ３０１、ＤＢ名３０２、部署３０３、及び文章ＩＤ３０４から構成されるエントリを含む。一つのエントリは、一つのデータベース１０１に格納される一つの文章データ１０５を表す。
【００４１】
ＤＢ  ＩＤ３０１は、データベース１０１を一意に識別するための識別情報を格納するフィールドである。ＤＢ名３０２は、データベース１０１の名称を格納するフィールドである。部署３０３は、データベース１０１を作成又は管理する部署の情報を格納するフィールドである。部署３０３には、部署２０３と同一の値が格納される。文章ＩＤ３０４は、データベース１０１に格納される文章データ１０５の識別情報を格納するフィールドである。なお、異なるデータベース１０１に格納される文章データ１０５の識別情報は重複してもよい。
【００４２】
データベース管理情報１２３は、データベース１０１の構築時に設定されるものとする。なお、データベースの追加処理、データベースの更新処理、及びデータベースの削除処理に基づいてデータベース管理情報１２３は更新される。
【００４３】
なお、データベース管理情報１２３に含まれるエントリは、文章データ１０５の名称及びサイズ等の情報を格納するフィールドを含んでもよい。
【００４４】
本実施例では、一つのデータベース１０１には、共通する属性、例えば、同一の部署の文章データ１０５が格納されている。ただし、前述したデータベースの構成に限定されない。例えば、異なる属性の文章データ１０５がデータベースに格納されてもよい。この場合、データベース管理情報１２３とは他に、文章データ１０５の属性を管理する情報を保持すればよい。例えば、部署等の属性を格納するフィールド及び文章データ１０５の識別情報を格納するフィールドから構成されるエントリを含む情報が考えられる。
【００４５】
なお、ユーザ管理情報１２２に含まれるエントリには、データベース１０１の識別情報を格納するフィールドを設けてもよい。この場合、データベース管理情報１２３に含まれるエントリは部署３０３を含まなくてもよい。
【００４６】
図４は、実施例１のトピック管理情報１２４のデータ構造の一例を示す図である。
【００４７】
トピック管理情報１２４は、トピックＩＤ４０１、トピック名４０２、単語４０３、及びＤＢ  ＩＤ４０４から構成されるエントリを含む。一つのエントリが一つのトピックを表す。
【００４８】
トピックＩＤ４０１は、トピック管理情報１２４のエントリを一意に識別するための識別情報を格納するフィールドである。トピック名４０２は、トピックの名称を格納するフィールドである。単語４０３は、トピックを構成する単語を格納するフィールドである。ＤＢ  ＩＤ４０４は、トピックを構成する単語が抽出された文章データ１０５を格納するデータベース１０１の識別情報を格納するフィールドである。
【００４９】
文章データ管理モジュール１２１は、予め、コーパスに基づいてトピック管理情報１２４を生成する。例えば、データベース１０１に格納される文章データ１０５がコーパスとして用いられる。なお、データベース１０１に格納される文章データ１０５のモデルを用いてトピック管理情報１２４が生成されてもよい。なお、コーパスに基づくトピックの生成方法は公知の技術であるため、詳細な説明は省略する。
【００５０】
文章データ１０５の属性を文章データ単位に管理している場合、ＤＢ  ＩＤ４０４の代わりに、部署等の属性を格納するフィールドを設けてもよい。すなわち、トピックと属性とを直接対応付けたエントリでもよい。
【００５１】
図５は、実施例１の学習履歴情報１２５のデータ構造の一例を示す図である。
【００５２】
学習履歴情報１２５は、履歴ＩＤ５０１、時間５０２、ユーザＩＤ５０３、操作５０４、トピックＩＤ５０５、内容５０６、及び理由５０７から構成されるエントリを含む。一つのエントリが一つの操作の履歴を表す。
【００５３】
履歴ＩＤ５０１は、学習履歴情報１２５のエントリを一意に識別するための識別情報を格納するフィールドである。時間５０２は、操作が行われた日時を格納するフィールドである。ユーザＩＤ５０３は、操作を行ったユーザの識別情報を格納するフィールドである。ユーザＩＤ５０３には、ユーザＩＤ２０１と同一の値が格納される。
【００５４】
操作５０４は、学習用トピックに対する操作の種別を示す情報を格納するフィールドである。トピックＩＤ５０５は、操作対象のトピックの識別情報を格納するフィールドである。トピックＩＤ５０５には、トピックＩＤ４０１と同一の値が格納される。内容５０６は、操作の具体的な内容を格納するフィールドである。理由５０７は、ユーザが操作を行った理由を格納するフィールドである。
【００５５】
学習履歴情報１２５は、後述する学習用トピックに対する操作に基づいて更新される。
【００５６】
図６は、実施例１の計算機１００が実行するユーザ登録処理の一例を説明するフローチャートである。図７は、実施例１のユーザ端末１０２に表示されるログイン画面７００の一例を示す図である。
【００５７】
ログイン画面７００は、ユーザ名入力欄７０１、部署入力欄７０２、職位入力欄７０３、ログインボタン７０４、及び登録ボタン７０５を含む。
【００５８】
ユーザ名入力欄７０１は、ユーザ名を入力する欄である。部署入力欄７０２は、部署の名称を入力する欄である。職位入力欄７０３は、職位の名称を入力する欄である。ログインボタン７０４は、ログイン要求を送信するためのボタンである。登録ボタン７０５は、ユーザ登録要求を送信するためのボタンである。
【００５９】
なお、ログイン画面７００には、パスワードを入力するパスワード入力欄が含まれてもよい。この場合、ユーザ管理情報１２２のエントリには、パスワードを格納するフィールドが含まれる。
【００６０】
アカウントの登録時には、ユーザは、ユーザ名入力欄７０１、部署入力欄７０２、及び職位入力欄７０３の全ての入力欄に値を設定する。また、ログイン時には、ユーザは、ユーザ名入力欄７０１、部署入力欄７０２、及び職位入力欄７０３の少なくともいずれかに値を設定する。
【００６１】
ユーザは、ログイン画面７００を用いて計算機１００にアクセスするためのアカウントを登録する。具体的には、ユーザは、ユーザ名入力欄７０１、部署入力欄７０２、及び職位入力欄７０３に値を設定し、登録ボタン７０５を操作する。この場合、ユーザ端末１０２は、ユーザ名、部署の名称、及び職位の名称を含むユーザ登録要求を計算機１００に送信する。
【００６２】
なお、ユーザ端末１０２は、ユーザ登録要求を生成する時に、要求の種別を示す値を算出し、ユーザ登録要求に生成された値を含めてもよい。
【００６３】
計算機１００の文章データ管理モジュール１２１は、ユーザ端末１０２からユーザ登録要求を受信する（ステップＳ１０１）。文章データ管理モジュール１２１は、アカウント管理モジュール１３４を呼び出す。
【００６４】
アカウント管理モジュール１３４は、受信したユーザ登録要求に基づいてユーザ管理情報１２２を更新し（ステップＳ１０２）、その後、処理を終了する。
【００６５】
具体的には、アカウント管理モジュール１３４は、ユーザ管理情報１２２にエントリを追加し、追加されたエントリのユーザＩＤ２０１に識別情報を設定する。また、アカウント管理モジュール１３４は、追加されたエントリのユーザ名２０２、部署２０３、及び職位２０４のそれぞれに、ユーザ登録要求に含まれる値を設定する。
【００６６】
なお、アカウント管理モジュール１３４は、ユーザ名、部署の名称、及び職位の名称の少なくともいずれかがユーザ登録要求に含まれていない場合、全ての入力欄への値の入力を促す通知をユーザ端末１０２に送信してもよい。
【００６７】
図８Ａ及び図８Ｂは、実施例１の計算機１００が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。図９は、実施例１のユーザ端末１０２に表示される文章データ入力画面９００の一例を示す図である。図１０は、実施例１のユーザ端末１０２に表示されるトピック操作画面１０００の一例を示す図である。図１１は、実施例１の計算機１００によって表示される検索結果表示画面１１００の一例を示す図である。
【００６８】
アカウントを作成したユーザは、ログイン画面７００を用いてログイン要求を計算機１００に送信する。具体的には、ユーザは、ユーザ名入力欄７０１にユーザ名を入力し、ログインボタン７０４を操作する。ログイン要求にはユーザ名が含まれる。
【００６９】
なお、ユーザ端末１０２は、ログイン要求を生成する時に、要求の種別を示す値を算出し、ログイン要求に生成された値を含めてもよい。
【００７０】
文章データ管理モジュール１２１は、ユーザ端末１０２からログイン要求を受信した場合、以下で説明する処理を開始する。
【００７１】
文章データ管理モジュール１２１は、ユーザ管理情報１２２を用いてログイン処理を実行する（ステップＳ２０１）。
【００７２】
具体的には、アカウント管理モジュール１３４は、ユーザ管理情報１２２を参照して、ユーザ名２０２の値がログイン要求に含まれるユーザ名に一致するエントリを検索する。
【００７３】
ユーザ名２０２の値がログイン要求に含まれるユーザ名に一致するエントリが存在する場合、アカウント管理モジュール１３４は、文章データ入力画面９００をユーザ端末１０２に表示し、ステップＳ２０２に進む。エントリが存在しない場合、アカウント管理モジュール１３４は、エラーを通知し、又は、ユーザ登録を行う旨の通知をユーザ端末１０２に送信する。
【００７４】
ここで、図９を用いて文章データ入力画面９００を説明する。文章データ入力画面９００は、文章データ入力欄９０１、データベース入力欄９０２、追加ボタン９０３、及び登録ボタン９０４を含む。
【００７５】
文章データ入力欄９０１は、データベース１０１へ登録する文章データの識別情報を入力する欄である。データベース入力欄９０２は、文章データを格納するデータベース１０１の識別情報を入力する欄である。追加ボタン９０３は、文章データ入力欄９０１及びデータベース入力欄９０２の組を追加するためのボタンである。登録ボタン９０４は、新規文章データ登録要求を送信するためのボタンである。
【００７６】
ユーザが登録ボタン９０４を操作した場合、文章データ入力欄９０１を用いて指定された文章データ及びデータベース入力欄９０２に設定されたデータベース１０１の識別情報を含む新規文章データ登録要求が、計算機１００に送信される。
【００７７】
以上が文章データ入力画面９００の説明である。図８Ａ及び図８Ｂの説明に戻る。
【００７８】
次に、文章データ管理モジュール１２１は、新規文章データ登録要求を受信する（ステップＳ２０２）。具体的には、入出力モジュール１３１が、新規文章データ登録要求を受信する。
【００７９】
次に、文章データ管理モジュール１２１は、文章データの解析処理を実行し（ステップＳ２０３）、処理結果として、ユーザ端末１０２にトピック操作画面１０００を表示するための表示データを出力する（ステップＳ２０４）。文章データの解析処理の詳細は図１２を用いて説明する。文章データ管理モジュール１２１は、表示データを出力した後、待ち状態に移行する。
【００８０】
ここで、図１０を用いてトピック操作画面１０００について説明する。トピック操作画面１０００は、トピック表示欄１００１、学習用トピック操作欄１００２、及び検索用トピック操作欄１００３を含む。
【００８１】
トピック表示欄１００１は、文章データの解析処理に基づいて選択された検索用トピック及び学習用トピックを表示する欄である。トピック表示欄１００１には、トピックリスト１０１０が含まれる。トピックリスト１０１０は、選択ボタン１０１１、トピック名１０１２、トピック種別１０１３、及び単語１０１４から構成されるエントリを含む。一つのエントリが一つのトピックを表す。
【００８２】
トピック名１０１２は、トピック名４０２と同一のフィールドである。単語１０１４は、単語４０３と同一のフィールドである。
【００８３】
選択ボタン１０１１は、操作するエントリを選択するためのボタンである。本実施例では、ユーザが選択ボタン１０１１を操作した場合、学習用トピック操作欄１００２又は検索用トピック操作欄１００３が有効化される。トピック種別１０１３は、トピックの種別を示す値を格納するフィールドである。本実施例のトピック種別１０１３には、検索用トピックを表す「検索用」及び学習用トピックを表す「学習用」のいずれかが格納される。
【００８４】
学習用トピック操作欄１００２は、学習用トピックに対する操作を指定する欄である。学習用トピック操作欄１００２は、トピック追加ボタン１０２１、トピック削除ボタン１０２２、単語変更ボタン１０２３、及び理由入力欄１０２４を含む。学習用トピック操作欄１００２を用いた操作は、第１更新要求として計算機１００に送信される。第１更新要求には、操作種別、操作内容、トピックの識別情報、ユーザの識別情報、及び理由が含まれる。
【００８５】
なお、ユーザ端末１０２は、第１更新要求を生成する時に、要求の種別を示す値を算出し、第１更新要求に生成された値を含めてもよい。
【００８６】
トピック追加ボタン１０２１は、学習用トピックを追加するためのボタンである。ユーザがトピック追加ボタン１０２１を操作した場合、文章データ管理モジュール１２１は、後述する候補トピックリストをユーザ端末１０２に表示し、又は、追加するトピックの識別情報等を入力する画面をユーザ端末１０２に表示する。
【００８７】
トピック削除ボタン１０２２は、学習用トピックを削除するためのボタンである。ユーザがトピック削除ボタン１０２２を操作した場合、文章データ管理モジュール１２１は、トピックリスト１０１０から選択ボタン１０１１が操作されたエントリを削除する。
【００８８】
単語変更ボタン１０２３は、学習用トピックを構成する単語を修正するためのボタンである。ユーザが単語変更ボタン１０２３を操作した場合、文章データ管理モジュール１２１は、選択ボタン１０１１が操作されたエントリの単語１０１４に対する操作を有効化する。ユーザは、当該エントリの単語１０１４に単語を追加し、又は、単語を削除する。
【００８９】
理由入力欄１０２４は、トピック追加ボタン１０２１、トピック削除ボタン１０２２、及び単語変更ボタン１０２３のいずれかを操作した理由を設定する欄である。
【００９０】
検索用トピック操作欄１００３は、検索用トピックに関する操作を指定する欄である。検索用トピック操作欄１００３は、トピック種別変更ボタン１０３１及び検索開始ボタン１０３２を含む。検索用トピック操作欄１００３を用いた操作は、第２更新要求又は検索要求として計算機１００に送信される。第２更新要求には、操作種別及びユーザの識別情報が含まれる。また、検索要求には、ユーザの識別情報が含まれる。
【００９１】
なお、ユーザ端末１０２は、第２更新要求及び検索要求を生成する時に、要求の種別を示す値を算出し、第２更新要求及び検索要求に生成された値を含めてもよい。
【００９２】
トピック種別変更ボタン１０３１は、トピック種別１０１３の値を変更するためのボタンである。
【００９３】
ユーザがトピック種別変更ボタン１０３１を操作した場合、ユーザ端末１０２は、第２更新要求を計算機１００に送信する。文章データ管理モジュール１２１は、第２更新要求を受信した場合、選択ボタン１０１１が操作されたエントリのトピック種別１０１３を変更する。具体的には、文章データ管理モジュール１２１は、変更前のトピック種別１０１３の値が「検索用」の場合、「学習用」に変更し、変更前のトピック種別１０１３の値が「学習用」の場合、「検索用」に変更する。
【００９４】
検索開始ボタン１０３２は、検索用トピックを用いて関連文章データ１０５を検索する文章検索処理の実行を指示するためのボタンである。
【００９５】
ユーザが検索開始ボタン１０３２を操作した場合、ユーザ端末１０２は、検索要求を計算機１００に送信する。
【００９６】
文章データ管理モジュール１２１は、検索要求を受信した場合、トピックリスト１０１０から検索用トピックのリストを生成し、当該リストを用いて文章検索処理を実行する。以下の説明では、検索用トピックのリストを検索リストと記載する。検索リストには、検索開始ボタン１０３２の操作時にトピックリスト１０１０に登録されている検索用トピックが含まれる。なお、文章データ管理モジュール１２１は、選択ボタン１０１１が操作された検索用トピックのみを含む検索リストを生成してもよい。
【００９７】
以上がトピック操作画面１０００の説明である。図８Ａ及び図８Ｂの説明に戻る。
【００９８】
次に、文章データ管理モジュール１２１は、トピック操作画面１０００を操作することによって出力された要求をユーザ端末１０２から受信した場合、処理を再開する。まず、文章データ管理モジュール１２１は、受信した要求が検索要求であるか否かを判定する（ステップＳ２０５）。なお、要求の種別の判別方法としては、要求に含まれる値に基づいて判別する方法、又は、要求の種別を表す値に基づいて判別する方法が考えられる。
【００９９】
文章データ管理モジュール１２１は、受信した要求が検索要求でないと判定された場合、受信した要求が第１更新要求であるか否かを判定する（ステップＳ２０６）。
【０１００】
受信した要求が第１更新要求であると判定された場合、文章データ管理モジュール１２１は、トピックリスト１０１０、トピック管理情報１２４、及び学習履歴情報１２５を更新する（ステップＳ２０７）。その後、文章データ管理モジュール１２１は待ち状態に移行する。具体的には、以下のような処理が実行される。
【０１０１】
トピック選択モジュール１３２は、第１更新要求に基づいてトピックリスト１０１０を更新する。トピック選択モジュール１３２は、第１更新要求が単語の変更を伴う要求である場合、第１更新要求に基づいてトピック管理情報１２４の単語４０３を更新する。
【０１０２】
また、トピック選択モジュール１３２は、学習履歴情報１２５にエントリを追加し、追加されたエントリの履歴ＩＤ５０１に識別情報を設定する。トピック選択モジュール１３２は、追加されたエントリの各フィールドに、第１更新要求に含まれる各値を設定する。以上がステップＳ２０７の処理の説明である。
【０１０３】
受信した要求が第２更新要求であると判定された場合、文章データ管理モジュール１２１は、第２更新要求に基づいてトピックリスト１０１０を更新する（ステップＳ２０８）。その後、文章データ管理モジュール１２１は待ち状態に移行する。
【０１０４】
ステップＳ２０５において、受信した要求が検索要求であると判定された場合、文章データ管理モジュール１２１は、文章検索処理を実行し（ステップＳ２０９）、処理結果として、ユーザ端末１０２に検索結果表示画面１１００を表示するための表示データを出力する（ステップＳ２１０）。文章検索処理の詳細は、図１２を用いて説明する。
【０１０５】
ここで、図１１を用いて検索結果表示画面１１００について説明する。検索結果表示画面１１００は、文章データ選択欄１１０１、関連文章データリスト１１０２、確定ボタン１１０３、及び中止ボタン１１０４を含む。
【０１０６】
文章データ選択欄１１０１は、新規文章データの識別情報を選択する欄である。文章データ選択欄１１０１に対応する新規文章データに関する検索結果が関連文章データリスト１１０２に表示される。
【０１０７】
関連文章データリスト１１０２は、文章検索処理によって検索された文章データ１０５のリストであり、ＤＢ  ＩＤ１１１１及び文章ＩＤ１１１２から構成されるエントリを含む。一つのエントリが一つの文章データ１０５に対応する。
【０１０８】
ＤＢ  ＩＤ１１１１及び文章ＩＤ１１１２は、ＤＢ  ＩＤ３０１及び文章ＩＤ３０４と同一のフィールドである。
【０１０９】
ユーザは、関連文章データリスト１１０２を操作することによって、計算機１００に表示要求を送信してもよい。表示要求には、データベース１０１の識別情報及び文章データ１０５の識別情報が含まれる。計算機１００は、表示要求を受信した場合、データベース１０１から文章データ１０５を読み出し、読み出した文章データ１０５をユーザ端末１０２に送信する。
【０１１０】
確定ボタン１１０３は、新規文章データの登録を確定させるためのボタンである。中止ボタン１１０４は、新規文章データの登録を中止させるためのボタンである。
【０１１１】
ユーザが確定ボタン１１０３を操作した場合、新規文章データの登録確定指示が計算機に送信される。ユーザが中止ボタン１１０４を操作した場合、新規文章データの登録中止指示が計算機に送信される。ここでは、確定ボタン１１０３が操作されたものとする。
【０１１２】
以上が検索結果表示画面１１００の説明である。図８Ａ及び図８Ｂの説明に戻る。
【０１１３】
次に、文章データ管理モジュール１２１は、指定されたデータベース１０１に新規文章データを格納する（ステップＳ２１１）。その後、計算機１００は、処理を終了する。
【０１１４】
なお、ユーザが中止ボタン１１０４を操作した場合、文章データ管理モジュール１２１は、新規文章データをデータベース１０１に格納せずに、処理を終了する。この場合、新規文章データの登録は行われないが、トピックの学習結果は有効な情報としてトピック管理情報１２４及び学習履歴情報１２５等に反映される。
【０１１５】
図１２は、実施例１の計算機１００が実行する新規文章データの解析処理の一例を説明するフローチャートである。なお、複数の新規文章データが入力された場合、各新規文章データに対して以下で説明する処理が繰り返し実行される。
【０１１６】
文章データ管理モジュール１２１は、空のトピックリスト１０１０を生成した後、新規文章データに対応する文章を単語に分解する（ステップＳ３０１）。例えば、文章データ管理モジュール１２１は、形態素解析に基づいて、文章を単語に分解する。
【０１１７】
文章データ管理モジュール１２１は、トピック管理情報１２４を用いて、新規文章データに含まれるトピックの中から検索用トピックを特定する（ステップＳ３０２）。例えば、以下のような処理が実行される。
【０１１８】
トピック選択モジュール１３２は、トピック管理情報１２４の単語４０３を参照して、分解された単語を含むエントリを検索する。トピック選択モジュール１３２は、検索されたエントリに対応するトピックを候補トピックに設定する。トピック選択モジュール１３２は、候補トピックの識別情報から構成される候補トピックリストを生成し、メモリ１１２に一時的に格納する。
【０１１９】
トピック選択モジュール１３２は、候補トピックリストから候補トピックを一つ選択する。トピック選択モジュール１３２は、新規文章データに含まれる、候補トピックを構成する単語の数を計測する。トピック選択モジュール１３２は、単語の数に基づいてトピックの選択基準となる第１判定値を算出する。第１判定値は、新規文章データとトピックとの間の関連性を示す値である。
【０１２０】
例えば、単語の数を第１判定値として算出してもよいし、単語に設定された重要度及び単語の数を掛け合わせた値の合計値を第１判定値として算出してもよい。なお、単語に設定された重要度は、トピックにおいて重要な単語であるか否かを示す値である。
【０１２１】
トピック選択モジュール１３２は、全ての候補トピックの第１判定値を算出した後、第１判定値に基づいて所定の数の候補トピックを検索用トピックとして選択する。
【０１２２】
例えば、トピック選択モジュール１３２は、第１判定値の大きい順に所定の数の検索用トピックを選択してもよいし、第１判定値が閾値より大きい候補トピックを検索用トピックとして選択してもよい。
【０１２３】
トピック選択モジュール１３２は、選択された検索用トピックをトピックリスト１０１０に設定する。以上がステップＳ３０２の処理の説明である。
【０１２４】
次に、文章データ管理モジュール１２１は、ステップＳ２０２の処理結果に基づいて検索用トピックに該当しない候補トピックを特定する（ステップＳ３０３）。
【０１２５】
具体的には、トピック選択モジュール１３２は、候補トピックリスト及びトピックリスト１０１０を比較することによって、検索用トピックに該当しない候補トピックを特定する。このとき、トピック選択モジュール１３２は、特定された候補トピックにフラグを付与する。本実施例では、フラグを用いて検索用トピックに該当しない候補トピックを特定しているが、これに限定されない。
【０１２６】
次に、文章データ管理モジュール１２１は、特定された候補トピックの中から学習用トピックを選択する（ステップＳ３０４）。学習用トピックの選択方法としては以下のような三つの方法が考えられる。
【０１２７】
（選択方法１）トピック選択モジュール１３２は、ユーザ管理情報１２２を参照し、ログイン中のユーザに対応するエントリの部署２０３の値を取得する。
【０１２８】
トピック選択モジュール１３２は、ステップＳ３０３において特定された候補トピックの中から候補トピックを一つ選択する。トピック選択モジュール１３２は、トピック管理情報１２４のＤＢ  ＩＤ４０４から、選択された候補トピックの生成元のデータベースの識別情報を取得し、さらに、データベース管理情報１２３を参照して、ＤＢ  ＩＤ３０１の値が取得したデータベースの識別情報と一致するエントリの部署３０３の値を取得する。
【０１２９】
トピック選択モジュール１３２は、部署２０３の値及び部署３０３の値を比較し、部署３０３の値が部署２０３の値に一致する場合、選択された候補トピックを学習用トピックとして選択する。トピック選択モジュール１３２は、学習用トピックをトピックリスト１０１０に設定する。
【０１３０】
トピック選択モジュール１３２は、ステップＳ３０３において特定された全ての候補トピックに対して同様の処理を実行する。
【０１３１】
学習用トピックの表示数が予め設定されている場合、トピック選択モジュール１３２は、第１判定値に基づいて、所定の数の学習用トピックを選択する。例えば、トピック選択モジュール１３２は、第１判定値が小さい順に所定の数の学習用トピックを選択する。
【０１３２】
（選択方法２）トピック選択モジュール１３２は、ステップＳ３０３において特定された候補トピックの中から候補トピックを一つ選択する。トピック選択モジュール１３２は、学習履歴情報１２５を参照し、トピックＩＤ５０５の値が選択された候補トピックの識別情報に一致するエントリの数を学習回数として算出する。トピック選択モジュール１３２は、全ての候補トピックに対して同様の処理を実行する。
【０１３３】
トピック選択モジュール１３２は、学習回数が閾値より小さい候補トピックを学習用トピックとして選択する。トピック選択モジュール１３２は、学習用トピックをトピックリスト１０１０に設定する。
【０１３４】
学習用トピックの表示数が予め設定されている場合、トピック選択モジュール１３２は、学習回数が小さい順に、所定の数の学習用トピックを選択する。
【０１３５】
なお、閾値は、予め設定された値でもよいし、候補トピックの学習回数の平均値でもよい。また、トピック管理情報１２４に検索用トピックとして選択された回数を格納するフィールドを設け、当該回数と学習回数との比率を閾値として用いてもよい。
【０１３６】
（選択方法３）トピック選択モジュール１３２は、第１判定値が閾値より小さい候補トピックを学習用トピックとして選択する。
【０１３７】
学習用トピックの表示数が予め設定されている場合、トピック選択モジュール１３２は、第１判定値が小さい順に、所定の数の学習用トピックを選択する。以上がステップＳ３０４の処理の説明である。
【０１３８】
次に、文章データ管理モジュール１２１は、表示データを生成する（ステップＳ３０５）。その後、文章データ管理モジュール１２１は、新規文章データの解析処理を終了する。
【０１３９】
具体的には、トピック選択モジュール１３２は、トピックリスト１０１０を表示するための表示データを生成する。
【０１４０】
なお、図１２を用いて説明した検索用トピック及び学習用トピックの選択方法は、一例であって、これに限定されない。
【０１４１】
図１３は、実施例１の文章データ管理モジュール１２１が実行する文章検索処理の一例を説明するフローチャートである。なお、各新規文章データに対して以下で説明する処理が繰り返し実行される。
【０１４２】
本実施例の検索エンジン１３３は、各文章データ１０５に対して検索リストに含まれるトピックの有無を判定し、当該判定結果に基づいて新規文章データと文章データ１０５との間の関連性を示す値（第２判定値）を算出する。以下、詳細な処理について説明する。
【０１４３】
検索エンジン１３３は、トピックリスト１０１０から検索リストを生成し、検索リストに含まれる検索用トピックの数と同数の成分のベクトルｖ、ｄを生成する（ステップＳ４０１）。このとき、検索エンジン１３３は、空の関連文章データリストを生成する。
【０１４４】
なお、ベクトルｖは、新規文章データの特徴を表すベクトルであり、ベクトルｄは、比較する文章データ１０５の特徴と表すベクトルである。一つの成分には一つの検索用トピックが対応付けられる。この時点では、各ベクトルの成分は全て０に設定される。
【０１４５】
次に、検索エンジン１３３は、ベクトルｖの成分を決定する（ステップＳ４０２）。例えば、以下のような処理が実行される。
【０１４６】
検索エンジン１３３は、検索リストから検索用トピックを選択する。検索エンジン１３３は、新規文章データを参照して、選択された検索用トピックを構成する単語の数を計測する。検索エンジン１３３は、計測された単語の数を選択された検索用トピックに対応する成分の値に設定する。検索エンジン１３３は、検索リストに含まれる全ての検索用トピックに対して同様の処理を実行する。
【０１４７】
次に、検索エンジン１３３は、文章データ１０５のループ処理を開始する（ステップＳ４０３）。具体的には、検索エンジン１３３は、文章データ１０５を一つ選択する。
【０１４８】
次に、検索エンジン１３３は、ベクトルｄの成分を決定する（ステップＳ４０４）。例えば、以下のような処理が実行される。
【０１４９】
検索エンジン１３３は、検索リストから検索用トピックを選択する。検索エンジン１３３は、選択された文章データ１０５を参照して、選択された検索用トピックを構成する単語を検索する。選択された文章データ１０５に選択された検索用トピックを構成する単語が一つ以上含まれる場合、検索エンジン１３３は、選択された検索用トピックに対応する成分に「１」を設定する。
【０１５０】
次に、検索エンジン１３３は、ベクトルｖ、ｄに基づいて、第２判定値を算出する（ステップＳ４０５）。例えば、ベクトルｖ及びベクトルｄの内積を第２判定値として算出する方法が考えられる。
【０１５１】
次に、検索エンジン１３３は、第２判定値が閾値より大きいか否かを判定する（ステップＳ４０６）。閾値は予め設定されているものとする。なお、閾値は適宜更新できる。
【０１５２】
第２判定値が閾値以下であると判定された場合、検索エンジン１３３は、ステップＳ４０８に進む。
【０１５３】
第２判定値が閾値より大きいと判定された場合、検索エンジン１３３は、選択された文章データ１０５を関連文章データ１０５として関連文章データリストに登録する（ステップＳ４０７）。その後、文章データ管理モジュール１２１は、ステップＳ４０８に進む。
【０１５４】
ステップＳ４０８では、文章データ管理モジュール１２１は、全ての文章データ１０５について処理が完了したか否かを判定する（ステップＳ４０８）。
【０１５５】
全ての文章データ１０５について処理が完了していないと判定された場合、文章データ管理モジュール１２１は、ベクトルｄを初期化した後、ステップＳ４０３に戻り、同様の処理を実行する。
【０１５６】
全ての文章データ１０５について処理が完了したと判定された場合、文章データ管理モジュール１２１は、関連文章データリストに登録された文章データ１０５を第２判定値の大きい順にソートする（ステップＳ４０９）。
【０１５７】
次に、文章データ管理モジュール１２１は、関連文章データリストを表示するための表示データを生成する（ステップＳ４１０）。その後、文章データ管理モジュール１２１は、文章検索処理を終了する。
【０１５８】
なお、ループ処理では、データベース１０１に格納された全ての文章データ１０５を対象としていたが、これに限定されない。例えば、部署３０３に、ユーザが所属する部署が設定されたデータベース１０１に格納される文章データ１０５のみを対象としてもよい。
【０１５９】
なお、図１３を用いて説明した関連文章データの特定方法は、一例であって、これに限定されない。
【０１６０】
なお、本実施例では、関連文章データの検索時に、学習用トピックの学習が行われているがこれに限定されない。例えば、文章データ管理モジュール１２１は、ステップＳ３０４において、学習用トピックのみを格納したリストを作成し、周期的、イベントの発生時、又は、ユーザからの要求を受け付けた場合、当該リストを提示するようにしてもよい。この場合、検索用トピックを表示する画面と、学習用トピックを表示する画面とは別々に表示される。トピックの学習を行うタイミングを調整することによって、ユーザの負担を低減できる。
【０１６１】
以上で説明したように、本実施例の文章データ管理モジュール１２１は、新規文章データの登録時に、候補トピックの中から学習用トピックを選択し、ユーザに提示する。候補トピックは、新規文章データの解析結果に基づいて特定されるトピックであることからユーザに関連するトピックと考えられる。そのため、ユーザが保持する知識及びノウハウを活用したトピックの学習（修正）が可能となる。したがって、学習効率が高いトピックの学習が可能となる。
【０１６２】
（選択方法１）に基づいて選択された学習用トピックを学習することによって、ユーザが扱うデータベース１０１に関連するトピックを効率的に学習できる。（選択方法２）に基づいて選択された学習用トピックを学習することによって、特定のトピックに偏った学習を避けることができる。（選択方法３）に基づいて選択された学習用トピックを学習することによって、精度が低い可能性があるトピックの集中的な学習が可能となる。
【０１６３】
また、検索用トピックと併せて学習用トピックをユーザに提示することによって、ユーザの負担を低減したトピックの学習が可能となる。これによって、トピックの精度を高めることができる。
【実施例２】
【０１６４】
実施例２では、新規文章データの解析処理が実施例１と異なる。以下、実施例１との差異を中心に実施例２について説明する。
【０１６５】
実施例２の計算機システムの構成は、実施例１の計算機システムの構成と同一である。実施例２の各装置のハードウェア構成及びソフトウェア構成は、実施例１の各装置のハードウェア構成及びソフトウェア構成と同一である。
【０１６６】
実施例２では、文章データの解析処理が一部異なる。図１４は、実施例２の計算機１００が実行する新規文章データの解析処理の一例を説明するフローチャートである。
【０１６７】
トピック選択モジュール１３２は、ステップＳ３０３の処理の後、分野特定処理を実行する（ステップＳ３５１）。具体的には、以下のような処理が実行される。
【０１６８】
トピック選択モジュール１３２は、ユーザ管理情報１２２を参照し、ログイン中のユーザに対応するエントリのユーザＩＤ２０１の値を取得する。
【０１６９】
トピック選択モジュール１３２は、学習履歴情報１２５を参照し、ユーザＩＤ５０３が取得したユーザの識別情報と一致するエントリを検索する。トピック選択モジュール１３２は、トピックＩＤ５０５毎に、検索されたエントリの数を算出する。トピック選択モジュール１３２は、エントリの数が閾値より大きいトピックを特定する。
【０１７０】
トピック選択モジュール１３２は、トピック管理情報１２４を参照し、トピックＩＤ４０１が特定されたトピックの識別情報に一致するエントリを検索する。トピック選択モジュール１３２は、検索されたエントリのＤＢ  ＩＤ４０４の値を取得する。データベース１０１の識別情報は、ユーザと関連性が高い分野を特定する情報として用いることができる。
【０１７１】
トピック選択モジュール１３２は、トピック管理情報１２４を参照し、ステップＳ３０３において特定された候補トピックのＤＢ  ＩＤ４０４に、取得したデータベース１０１の識別情報が格納されていない候補トピックを、候補トピックから除外する。以上がステップＳ３５１の処理の説明である。
【０１７２】
その他の処理は実施例１の処理と同一である。
【０１７３】
ユーザが保持する知識及びノウハウは、ユーザが所属する部署又は役職のみからは完全に把握することができない。そこで、実施例２では、ユーザが行った学習の実績に基づいて、ユーザが知識及びノウハウを保持する分野を特定し、当該分野に関連するトピックを学習用トピックとして選択できる。すなわち、実施例２によれば、ユーザと関連性が高い分野のトピックから学習用トピックを選択することができる。これによって、学習の精度を高めることができる。
【実施例３】
【０１７４】
実施例３では、特定の条件を満たす学習履歴が反映されたトピック管理情報１２４を用いる点が実施例１と異なる。以下、実施例１との差異を中心に実施例３について説明する。
【０１７５】
実施例３の計算機システムの構成は、実施例１の計算機システムの構成と同一である。実施例３の各装置のハードウェア構成及びソフトウェア構成は、実施例１の各装置のハードウェア構成及びソフトウェア構成と同一である。なお、実施例３では、ユーザによる修正が行われる前の初期状態のトピック管理情報１２４がマスタ情報としてメモリ１１２に格納される。
【０１７６】
実施例３では、文章データ入力画面９００が実施例１の画面と異なる。図１５は、実施例３のユーザ端末１０２に表示される文章データ入力画面９００の一例を示す図である。
【０１７７】
文章データ入力画面９００は、種別入力欄９５１及び値入力欄９５２の組を一つ以上含む。種別入力欄９５１及び値入力欄９５２は、反映する学習履歴を指定するための情報を入力する欄である。具体的には、種別入力欄９５１には、「時間」、「ユーザ」、「部署」、及び「職位」のいずれかが設定される。値入力欄９５２には、種別入力欄９５１で指定された情報の具体的な値が設定される。
【０１７８】
例えば、種別入力欄９５１が「時間」である場合、値入力欄９５２には時間の範囲を指定する値が設定される。種別入力欄９５１が「ユーザ」の場合、値入力欄９５２にはユーザの識別情報が設定される。種別入力欄９５１が「部署」又は「職務」の場合、値入力欄９５２には部署の名称又は職務の名称が設定される。以下の説明では、種別入力欄９５１及び値入力欄９５２の値の組合せを変換条件情報と記載する。
【０１７９】
実施例３では、新規文章データ登録要求には変換条件情報が含まれる。
【０１８０】
実施例３では、新規文章データを登録する場合に実行する処理が一部異なる。図１６Ａ及び図１６Ｂは、実施例３の計算機１００が新規文章データを登録する場合に実行する処理の概要を説明するフローチャートである。
【０１８１】
文章データ管理モジュール１２１は、ステップＳ２０２の処理が実行された後、トピック管理情報１２４の変換処理を実行する（ステップＳ２５１）。
【０１８２】
文章データ管理モジュール１２１は、学習履歴情報１２５を参照し、変換条件情報に合致するエントリを検索する。文章データ管理モジュール１２１は、時間が古い順に検索されたエントリの操作をマスタ情報に適用する。これによって、特定のユーザ、部署、職務、又は、時間範囲の学習履歴を反映したトピック管理情報１２４を生成できる。
【０１８３】
なお、文章データ管理モジュール１２１は、特定されたエントリを用いたロールバック処理を実行することによってトピック管理情報１２４を生成してもよい。
【０１８４】
なお、ステップＳ２５１の状態では、メモリ１１２には、初期状態のトピック管理情報１２４、現在のトピック管理情報１２４、及び変換処理によって生成されたトピック管理情報１２４が格納される。
【０１８５】
ステップＳ２０３以降の処理は、変換処理によって生成されたトピック管理情報１２４を用いて実行される。ただし、ステップＳ２０７では、変換処理によって生成されたトピック管理情報１２４及び現在のトピック管理情報１２４の二つの情報が更新される。その他の処理は、実施例１と同一の処理である。
【０１８６】
実施例３によれば、特定のユーザ、部署、職務、又は、時間範囲に着目したトピックの学習及び関連文章データ１０５の検索が可能となるため、柔軟なシステムの運用が可能となる。
【０１８７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１８８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１８９】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１９０】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１９１】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１９２】
１００  計算機
１０１  データベース
１０２  ユーザ端末
１０５  文章データ
１１１  プロセッサ
１１２  メモリ
１１３  ネットワークインタフェース
１２１  文章データ管理モジュール
１２２  ユーザ管理情報
１２３  データベース管理情報
１２４  トピック管理情報
１２５  学習履歴情報
１３１  入出力モジュール
１３２  トピック選択モジュール
１３３  検索エンジン
１３４  アカウント管理モジュール
７００  ログイン画面
９００  文章データ入力画面
１０００  トピック操作画面
１１００  検索結果表示画面
【図１】
2019023834.tif 000003
【図２】
2019023834.tif 000004
【図３】
2019023834.tif 000005
【図４】
2019023834.tif 000006
【図５】
2019023834.tif 000007
【図６】
2019023834.tif 000008
【図７】
2019023834.tif 000009
【図８Ａ】
2019023834.tif 000010
【図８Ｂ】
2019023834.tif 000011
【図９】
2019023834.tif 000012
【図１０】
2019023834.tif 000013
【図１１】
2019023834.tif 000014
【図１２】
2019023834.tif 000015
【図１３】
2019023834.tif 000016
【図１４】
2019023834.tif 000017
【図１５】
2019023834.tif 000018
【図１６Ａ】
2019023834.tif 000019
【図１６Ｂ】
2019023834.tif 000020