(57)【要約】【課題】人が読むことを考慮して付けられたソフトウェア名称表現とＯＳ上で管理されるソフトウェア名称からなる名寄せ辞書を作成する。【解決手段】クライアント２からＰＣ上のソフトウェア名称を含むソフトウェア情報を収集してソフトウェア情報記憶部１２に記録し、ソフトウェア情報記憶部１２からソフトウェア名称を抽出し、ソフトウェア名称間で共通する部分文字列を共通部分文字列Ｐｘとして抽出し、ソフトウェア名称の部分文字列である共通部分文字列ＰｘをそのＰＣ上のソフトウェア名称のソフトウェア名称表現として辞書記憶部１５に記録する。これにより、容易にソフトウェアの名寄せ辞書を生成することが可能となる。【選択図】図１
2015222524.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段、部分文字列抽出手段、辞書生成手段を備えた辞書生成装置によって実行される辞書生成方法であって、
前記部分文字列抽出手段による、前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出するステップと、
前記辞書生成手段による、前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録するステップと、
を有することを特徴とする辞書生成方法。
【請求項２】
前記部分文字列抽出手段は、前記共通部分文字列それぞれをノードとして、親ノードが子ノードの部分文字列であるというルールに従って木構造を構成し、子ノードが１つだけのノードを削除することを特徴とする請求項１記載の辞書生成方法。
【請求項３】
クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段と、
前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出する部分文字列抽出手段と、
前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録する辞書生成手段と、
を有することを特徴とする辞書生成装置。
【請求項４】
前記部分文字列抽出手段は、前記共通部分文字列それぞれをノードとして、親ノードが子ノードの部分文字列であるというルールに従って木構造を構成し、子ノードが１つだけのノードを削除することを特徴とする請求項３記載の辞書生成装置。
【請求項５】
請求項１又は２に記載の辞書生成方法をコンピュータに実行させることを特徴とする辞書生成プログラム。
【請求項６】
辞書生成装置と情報提示装置を備え、インストールされたソフトウェアに関する情報をまとめて提示するソフトウェア関連情報提示システムであって、
前記辞書生成装置は、
クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段と、
前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出する部分文字列抽出手段と、
前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録する辞書生成手段と、を有し、
前記情報提示装置は、
前記辞書記憶手段から前記ソフトウェア名称表現を取得するとともに、ソフトウェアに関する情報が記載された配信情報を取得し、当該配信情報内に記載された前記ソフトウェア名称表現をタグとして付与するタグ付与手段と、
ソフトウェア名称を受信し、前記辞書記憶手段から当該ソフトウェア名称に対応付けられた前記ソフトウェア名称表現を取得し、当該ソフトウェア名称表現がタグとして付与された前記配信情報を受信した前記ソフトウェア名称に関連する配信情報として返信するコンテンツ生成手段と、
を有することを特徴とするソフトウェア関連情報提示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア情報を収集し、名寄せ辞書を生成する技術に関する。
【背景技術】
【０００２】
企業のＩＴ化に伴い、多くの社員がパーソナルコンピュータ（以下、ＰＣと表記する）を利用した業務に従事している。近年、社内ソフトウェアの管理方法として、社員のＰＣのオペレーティングシステム（以下、ＯＳと表記する）が保持するソフトウェア情報をサーバ装置にアップロードさせ、管理対象のソフトウェア情報を一元管理する方法が普及している。ＯＳが保持するソフトウェア情報には、ソフトウェア名称、エディション、パージョンを含み、サイズ、発行元、ＵＲＬなどを含む場合もある。ソフトウェア情報を一元管理するサービスの多くは、ＯＳが保持するソフトウェア情報を資産管理者に提供するものである。情報漏洩防止の観点から、資産管理者は、社内で利用されているソフトウェアを管理するとともに、そのソフトウェアの脆弱性の有無、メーカサポート対象か否かといったステータスを管理することが求められる。
【０００３】
管理対象が家電機器やネットワーク機器である場合、接続機器名を指定し、機器名に応じて予め用意した情報を提供するシステムが存在する（特許文献１）。
【０００４】
また、ＯＳ名称やソフトウェア名称の組み合わせ情報から不具合を検索できるシステムが存在する（特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８９２６３８号公報
【特許文献２】特開２００５−０３２１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
管理対象のソフトウェアの脆弱性の有無、メーカサポート対象などの情報は、資産管理者がソフトウェアごとに注意を払う必要があり、煩雑であった。管理対象のソフトウェアに関連するインターネット上の情報を自動的に収集し、配信するシステムがあれば、上記業務の簡便化を図るとともに、情報の見逃しを回避することができると考えられる。
【０００７】
特許文献１のように、対象が電化機器やネットワーク機器である場合、任意の機器を表す文字列として型番を用いることができる。ネットワーク機器のパケットから型番を判別できれば、型番文字列の完全一致を以って、機器名に応じて予め用意した情報を紐付けることができる。
【０００８】
特許文献２では、不具合情報に含まれる文字列は、過去に取得したソフトウェア情報を利用して作成されるため、新しく取得したソフトウェア情報と不具合情報とは、ソフトウェア情報文字列の完全一致を以って紐付けることができる。
【０００９】
管理対象のソフトウェアに関連するインターネット上の情報（以下、配信情報とする）を自動的に収集することを考えると、人間が読むインターネット上の記事は一般的なソフトウェア名称（以下、ソフトウェア名称表現とする）しか記載されないことが多く、ＯＳが保持するソフトウェア情報に含まれるソフトウェア名称（以下、ＰＣ上のソフトウェア名称とする）と必ずしも一致しない。例えば、ＰＣ上のソフトウェア名称が「ソフトウェア○○Ｖｅｒ．２．０  アカデミック版」の場合、配信情報にはＰＣ上のソフトウェア名称の一部だけを用いて「ソフトウェア○○」と記載され、バージョンやエディションを省いて表記されることがある。
【００１０】
このように、配信情報に含まれる文字列とＰＣ上のソフトウェア名称に表記ゆれがある場合に、これらの情報を容易に紐付けることができないという課題があった。
【００１１】
表記ゆれの課題の解決には名寄せ辞書の利用が一般的である。ＰＣ上のソフトウェア名称の表記ゆれパターンを網羅した辞書を作成し、ソフトウェア名称表現に名寄せを行う。
【００１２】
しかしながら、ＰＣ上のソフトウェア名称は、エディション、バージョンの更新が頻繁に発生し、さらに、ソフトウェア名称表現は一意でないため、名寄せ辞書の作成・メンテナンスが煩雑であるという課題があった。
【００１３】
ＰＣ上のソフトウェア名称の名寄せ辞書生成を自動化するには、ＰＣ上のソフトウェア名称からソフトウェア名称表現を抽出できるとよい。しかしながら、ソフトウェア名称の記法は標準化されていないため、ソフトウェア名称からエディション・バージョン・会社名を取り除いた基幹部、エディション名、バージョン名、および会社名の抽出が難しく、基幹部にエディション・バージョン・会社名等を含めたバリエーションであるソフトウェア名称表現の抽出は困難であった。
【００１４】
本発明は、上記に鑑みてなされたものであり、ＯＳ上で管理されるソフトウェア名称とソフトウェア名称の一部を利用して付けられたソフトウェア名称表現からなる名寄せ辞書を作成することを目的とする。
【課題を解決するための手段】
【００１５】
第１の本発明に係る辞書生成方法は、クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段、部分文字列抽出手段、辞書生成手段を備えた辞書生成装置によって実行される辞書生成方法であって、前記部分文字列抽出手段による、前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出するステップと、前記辞書生成手段による、前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録するステップと、を有することを特徴とする。
【００１６】
上記辞書生成方法において、前記部分文字列抽出手段は、前記共通部分文字列それぞれをノードとして、親ノードが子ノードの部分文字列であるというルールに従って木構造を構成し、子ノードが１つだけのノードを削除することを特徴とする。
【００１７】
第１の本発明に係る辞書生成装置は、クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段と、前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出する部分文字列抽出手段と、前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録する辞書生成手段と、を有することを特徴とする。
【００１８】
上記辞書生成装置において、前記部分文字列抽出手段は、前記共通部分文字列それぞれをノードとして、親ノードが子ノードの部分文字列であるというルールに従って木構造を構成し、子ノードが１つだけのノードを削除することを特徴とする。
【００１９】
第３の本発明に係る辞書生成プログラムは、上記辞書生成方法をコンピュータに実行させることを特徴とする。
【００２０】
第４の本発明に係るソフトウェア関連情報提示システムは、辞書生成装置と情報提示装置を備え、インストールされたソフトウェアに関する情報をまとめて提示するソフトウェア関連情報提示システムであって、前記辞書生成装置は、クライアント装置にインストールされたソフトウェアのソフトウェア名称を記録したソフトウェア情報記憶手段と、前記ソフトウェア情報記憶手段から前記ソフトウェア名称を取得し、当該ソフトウェア名称間で共通する部分文字列を共通部分文字列として抽出する部分文字列抽出手段と、前記ソフトウェア名称の部分文字列である前記共通部分文字列を当該ソフトウェア名称のソフトウェアを表す文字列であるソフトウェア名称表現として当該ソフトウェア名称に対応付けて辞書記憶手段に記録する辞書生成手段と、を有し、前記情報提示装置は、前記辞書記憶手段から前記ソフトウェア名称表現を取得するとともに、ソフトウェアに関する情報が記載された配信情報を取得し、当該配信情報内に記載された前記ソフトウェア名称表現をタグとして付与するタグ付与手段と、ソフトウェア名称を受信し、前記辞書記憶手段から当該ソフトウェア名称に対応付けられた前記ソフトウェア名称表現を取得し、当該ソフトウェア名称表現がタグとして付与された前記配信情報を受信した前記ソフトウェア名称に関連する配信情報として返信するコンテンツ生成手段と、を有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ＯＳ上で管理されるソフトウェア名称とソフトウェア名称の一部を利用して付けられたソフトウェア名称表現からなる名寄せ辞書を作成することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態における辞書生成装置を含む全体構成図である。
【図２】上記辞書生成装置のソフトウェア情報記憶部に記録されるデータの例を示す図である。
【図３】上記辞書生成装置の辞書記憶部に記録される名寄せ辞書の例を示す図である。
【図４】クライアントがソフトウェア情報を辞書生成装置へ送信する処理の流れを示すフローチャートである。
【図５】辞書生成装置が辞書を生成する処理の流れを示すフローチャートである。
【図６】部分文字列抽出部が抽出したソフトウェア名称リストの例を示す図である。
【図７】図７に図６のソフトウェア名称リストから抽出した部分集合と共通部分文字列集合の例を示す図である。
【図８】部分文字列抽出部が共通部分文字列の木構造から不要なノードを削除する様子を示す図である。
【図９】本実施の形態における辞書生成装置にタグ付与装置を接続したソフトウェア関連情報提示システムの構成を示す図である。
【図１０】タグ付与装置のタグ付与部が配信情報にタグを付与する処理の流れを示すフローチャートである。
【図１１】タグ付与装置のコンテンツ表示部がパーソナルコンピュータにインストールされたソフトウェアの情報と関連する情報を表示するコンテンツを生成する処理の流れを示すフローチャートである。
【図１２】タグ付与装置のコンテンツ表示部が生成したコンテンツの例を示す図である。
【図１３】辞書生成装置の辞書記憶部に記録される名寄せ辞書の変形例を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について図面を用いて説明する。
【００２４】
図１は、本実施の形態における辞書生成装置を含む全体構成図である。本実施の形態における辞書生成装置１は、クライアント２から収集したソフトウェア名称を含むソフトウェア情報を利用し、ソフトウェア名称の表記ゆれパターンを網羅したソフトウェア名称の名寄せ辞書を生成する。辞書生成装置１は、ネットワークを介して、クライアント２からソフトウェア情報を受信する。クライアント２は、パーソナルコンピュータ３上で動作し、パーソナルコンピュータ３にインストールされたソフトウェアの情報を取得して辞書生成装置１へ送信する。図１ではクライアント２が動作するパーソナルコンピュータ３を１つだけ図示しているが、辞書生成装置１は、多数のクライアント２からソフトウェア情報を受信する。以下、各装置について説明する。
【００２５】
辞書生成装置１は、ソフトウェア情報受信部１１、ソフトウェア情報記憶部１２、部分文字列抽出部１３、辞書生成部１４、および辞書記憶部１５を備える。辞書生成装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは辞書生成装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００２６】
ソフトウェア情報受信部１１は、クライアント２からソフトウェア情報を受信し、受信したソフトウェア情報をソフトウェア情報記憶部１２に記憶する。ソフトウェア情報は、少なくともソフトウェア名称と、新規・更新・削除のステータスを含み、ソフトウェア発行会社名、ソフトウェア発行会社のＷｅｂページのアドレス、インストール日、ユーザＩＤ、端末ＩＤなどの情報を含んでもよい。図２に、ソフトウェア情報記憶部１２に記録されるデータの例を示す。ソフトウェア名称が共通であっても、ユーザＩＤや端末ＩＤが異なる場合は、異なるデータとして記憶する。
【００２７】
部分文字列抽出部１３は、ソフトウェア情報記憶部１２に記憶されたデータからソフトウェア名称を取得してソフトウェア名称間で共通の部分文字列を抽出し、共通の部分文字列の中からソフトウェア名称表現を採用する。
【００２８】
辞書生成部１４は、ソフトウェア情報記憶部１２に記録されたＰＣ上のソフトウェア名称と部分文字列抽出部１３が得たソフトウェア名称表現の組を辞書情報として辞書記憶部１５に記録する。図３に、辞書記憶部１５に記録される名寄せ辞書の例を示す。
【００２９】
クライアント２は、パーソナルコンピュータ３上で動作するソフトウェアとして実装され、ソフトウェア情報監視部２１とソフトウェア情報送信部２２を備える。
【００３０】
ソフトウェア情報監視部２１は、パーソナルコンピュータ３にインストールされたソフトウェアの情報（以下、「インストール済みソフトウェア情報」とする）を取得する。
【００３１】
ソフトウェア情報送信部２２は、インストール済みソフトウェア情報を辞書生成装置１へ送信する。
【００３２】
次に、クライアント２の動作について説明する。
【００３３】
図４は、クライアント２がソフトウェア情報を辞書生成装置１へ送信する処理の流れを示すフローチャートである。
【００３４】
ソフトウェア情報監視部２１は、パーソナルコンピュータ３のＯＳが保持するインストール済みソフトウェア情報を取得する（ステップＳ１１）。ＯＳが保持するインストール済みソフトウェア情報の取得方法は、ＯＳごとに公開されている。例えばＷｉｎｄｏｗｓ（登録商標）の場合、ｈｔｔｐ：／／ｔｅｃｈｎｅｔ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｊａ−ｊｐ／ｌｉｂｒａｒｙ／ｄｄ３４７６５１．ａｓｐｘに記載された手順で機械的に抽出することが可能である。
【００３５】
ソフトウェア情報監視部２１は、過去に取得したインストール済みソフトウェア情報を記載したソフトウェア情報管理リストを保持し、ソフトウェア情報管理リストとステップＳ１１で取得したインストール済みソフトウェア情報との差分を計算する（ステップＳ１２）。差分がない場合は処理を終了する（ステップＳ１３のＮＯ）。
【００３６】
差分があった場合（ステップＳ１３のＹＥＳ）、ソフトウェア情報監視部２１は差分のあったソフトウェア情報に新規・更新・削除のステータスを付与し、ソフトウェア情報送信部２２はステータスを付与したソフトウェア情報を辞書生成装置１へ送信する（ステップＳ１４）。
【００３７】
ソフトウェア情報監視部２１は、ＯＳから取得したインストール済みソフトウェア情報をソフトウェア情報管理リストに追記する（ステップＳ１５）。ステータスが「更新」であった場合、新しいバージョンのソフトウェア情報をソフトウェア情報管理リストに追加し、古いバージョンのソフトウェア情報を消去しないものとする。
【００３８】
一方、辞書生成装置１のソフトウェア情報受信部１１は、クライアント２からソフトウェア情報を受信すると、ソフトウェア情報記憶部１２に記録する。
【００３９】
以上の処理により、パーソナルコンピュータ３にインストールされたソフトウェアの情報が辞書生成装置１に集められる。ソフトウェア情報監視部２１は１日１回、月に１回などのように定期的に動作してもよいし、ソフトウェアのインストール・アンインストールを検知したタイミングで動作してもよい。
【００４０】
次に、辞書生成装置１が辞書を生成する処理について説明する。
【００４１】
図５は、辞書生成装置１が辞書を生成する処理の流れを示すフローチャートである。
【００４２】
部分文字列抽出部１３は、ソフトウェア情報記憶部１２に記録された全てのソフトウェア情報からソフトウェア名称を抽出してソフトウェア名称リストを得る（ステップＳ２１）。図６にソフトウェア名称リストの例を示す。
【００４３】
部分文字列抽出部１３は、ソフトウェア名称リストから部分集合Ｍｘと共通部分文字列集合Ｐを抽出する（ステップＳ２２）。具体的には、ソフトウェア名称リストに列挙されているソフトウェア名称集合をＮとして、ソフトウェア名称集合Ｎからソフトウェア名称間で前方一致する１文字以上の長さの文字列を含む部分集合Ｍｘ（Ｍｘ⊂Ｎ，ｘ＝１，２，・・・，ｋ）を全て発見する。かかる文字列を共通部分文字列ｐｘとし、共通部分文字列ｐｘの集合Ｐ＝｛ｐ１，ｐ２，・・・，ｐｋ｝を共通部分文字列集合Ｐとする。図７に図６のソフトウェア名称リストから抽出した部分集合と共通部分文字列集合の例を示す。図７（ａ）が部分集合の例であり、共通する文字列に下線を引いた。図７（ｂ）が共通部分文字列集合の例であり、図７（ａ）から下線が引かれた文字列を抽出したものである。共通部分文字列の抽出には、Jian Pei, Jiawei Han, and et al., “PrefixSpan: Mining sequential patterns efficiently by prefix-projected pattern growth”に記載されたＰｒｅｆｉｘＳｐａｎ法などの既存技術を利用することができる。
【００４４】
簡単な具体例を用いて部分集合と共通部分文字列集合の抽出を説明する。例えば、ソフトウェア名称集合Ｎ＝｛ａｂｂａ，ａｂｃａ，ａｂｃｄ｝のとき、前方一致で共通部分文字列をもつ部分集合Ｍｘとして、以下に示す部分集合Ｍ１〜Ｍ７を抽出する。
【００４５】
Ｍ１＝｛ａｂｂａ，ａｂｃａ，ａｂｃｄ｝  （ｐ１＝ａを前方一致で含む）
Ｍ２＝｛ａｂｂａ，ａｂｃａ，ａｂｃｄ｝  （ｐ２＝ａｂを前方一致で含む）
Ｍ３＝｛ａｂｃａ，ａｂｃｄ｝  （ｐ３＝ａｂｃを前方一致で含む）
Ｍ４＝｛ａｂｂａ｝  （ｐ４＝ａｂｂを前方一致で含む）
Ｍ５＝｛ａｂｂａ｝  （ｐ５＝ａｂｂａを前方一致で含む）
Ｍ６＝｛ａｂｃａ｝  （ｐ６＝ａｂｃａを前方一致で含む）
Ｍ７＝｛ａｂｃｄ｝  （ｐ７＝ａｂｄａを前方一致で含む）
【００４６】
この部分集合Ｍｘから共通部分文字列集合Ｐ＝｛ａ，ａｂ，ａｂｃ，ａｂｂ，ａｂｂａ，ａｂｃａ，ａｂｃｄ｝を得る。
【００４７】
なお、本実施例では前方一致で共通部分文字列を持つ部分集合Ｍｘを抽出したが、中間一致、後方一致を用いてもよい。また、正規表現を利用してもよい。正規表現を用いた場合、例えば次のような部分集合Ｍｘを抽出することができる。
【００４８】
Ｍｘ＝｛○○ソフトウェア  エンターブライズ  ２０１４，○○ソフトウェア  ２０１４｝  （ｐx＝○○ソフトウェア＊２０１４）
続いて、部分文字列抽出部１３は、共通部分文字列集合Ｐからソフトウェア名称表現を抽出する（ステップＳ２３）。具体的には、共通部分文字列集合Ｐの要素を用いて、親ノードが子ノードの部分文字列であるというルールで木構造を構成し、子ノードが１つのみのノードは、その区切り箇所におけるソフトウェア名称のバラエティが無いことを示すため、削除する。なお、ソフトウェア情報記憶部１２に記録されたソフトウェア名称を持つノード（葉ノード）は残す。
【００４９】
例えば、共通部分文字列集合Ｐ＝｛ａ，ａｂ，ａｂｃ，ａｂｂ，ａｂｂａ，ａｂｃａ，ａｂｃｄ｝の場合は、以下に示す親子関係が抽出される。
【００５０】
（ａ，ａｂ）
（ａｂ，ａｂｃ）
（ａｂ，ａｂｂ）
（ａｂｃ，ａｂｃａ）
（ａｂｃ，ａｂｃｄ）
（ａｂｂ，ａｂｂａ）
【００５１】
この方法で構成された木構造では、葉ノードは部分集合Ｍｘの要素数が１である場合の共通部分文字列ｐｘであり、根ノードは共通部分文字列集合Ｐの他のどの要素の部分文字列とならない共通部分文字列ｐｘである。葉ノードから根ノードの間に位置する中間ノードは、それぞれの葉ノードの共通部分文字列ｐｘに包含される長さの異なる共通部分文字列ｐｘとなる。この木構造において、共通部分文字列が“ａ”と“ａｂｂ”のノードは、子ノードが１つのみであるので削除する。共通部分文字列が“ａ”のノードは根ノードであるが削除されるので、共通部分文字列が“ａｂ”のノードが根ノードとなる。
【００５２】
図８にノードを削除する様子を示す。同図では、×印を付けたノードは子ノードが１つのみのノードなので削除する。なお、網掛けしたノードは葉ノードである。
【００５３】
以上のように枝刈りした木構造の各ノードをソフトウェア名称表現として採用する。
【００５４】
続いて、辞書生成部１４は、全ての葉ノード（ＰＣ上のソフトウェア名称を持つ）について、葉ノードから根ノードにノードをたどっていき、葉ノードと各ノードの組つまりＰＣ上のソフトウェア名称とソフトウェア名称表現の組を名寄せ辞書情報として辞書記憶部１５に登録する（ステップＳ２４，Ｓ２５）。例えば、図８において、葉ノード「○○編集  ソフトウェア１１プラグイン」を処理すると、該当の葉ノードから根ノード「○○」までの間には葉ノードと根ノードを含めて４つのノードが存在するので、以下に示す４つのＰＣ上のソフトウェア名称とソフトウェア名称表現の組が辞書に登録される。
【００５５】
（「○○編集  ソフトウェア１１プラグイン」，「○○編集  ソフトウェア１１プラグイン」）
（「○○編集  ソフトウェア１１プラグイン」，「○○編集  ソフトウェア１１」）
（「○○編集  ソフトウェア１１プラグイン」，「○○編集  ソフトウェア」
（「○○編集  ソフトウェア１１プラグイン」，「○○」
【００５６】
なお、名寄せ辞書情報が辞書記憶部１５に既に登録されているものは上書きせずに新規差分のみを追加する。
【００５７】
＜利用例＞
次に、本実施の形態における辞書生成装置が生成した辞書を利用する例について説明する。
【００５８】
図９は、本実施の形態における辞書生成装置１にタグ付与装置４を接続したソフトウェア関連情報提示システムの構成を示す図である。
【００５９】
同図に示すソフトウェア関連情報提示システムは、タグ付与装置４が名寄せ辞書を参照して配信情報にタグを付与し、ソフトウェアに関連する配信情報をパーソナルコンピュータ３に提供するシステムである。図１では、辞書生成装置１とタグ付与装置４を別の装置で構成しているが、タグ付与装置４が辞書生成装置１の各機能を備えてもよい。
【００６０】
タグ付与装置４は、タグ付与部４１、コンテンツ表示部４２、および配信情報記憶部４３を備える。
【００６１】
タグ付与部４１は、配信情報記憶部４３に格納された配信情報に、その配信情報に関連のある、名寄せ辞書に登録されたソフトウェア名称表現をタグとして付与する。
【００６２】
コンテンツ表示部４２は、パーソナルコンピュータ３上で動作するブラウザ３１からの求めに応じて、パーソナルコンピュータ３にインストールされたソフトウェアに関連する配信情報を配信情報記憶部４３から取得し、ブラウザ３１に表示させる。
【００６３】
配信情報記憶部４３には、ソフトウェアのバージョンアップ情報やセキュリティ情報などのソフトウェアに関連した配信情報が格納される。配信情報はインターネット上の情報を集めて格納してよい。図９では、配信情報記憶部４３をタグ付与装置４に備えたが、配信情報記憶部４３を別の装置が備えるものでもよい。
【００６４】
次に、タグ付与部４１の動作について説明する。
【００６５】
図１０は、タグ付与部４１が配信情報にタグを付与する処理の流れを示すフローチャートである。
【００６６】
タグ付与部４１は、配信情報記憶部４３からタグが付与されていない配信情報を取得するとともに、辞書生成装置１から名寄せ辞書を取得する（ステップＳ３１，Ｓ３２）。
【００６７】
そして、取得した配信情報ごとに以下の処理を実行する。
【００６８】
まず、配信情報から名寄せ辞書に登録されているソフトウェア名称表現を抽出する（ステップＳ３３）。ソフトウェア名称表現の抽出には、T. Fuchi and S. Takagi,“Japanese morphological analyzer using word co-occurrence:JTAG”などの形態素解析器を利用し、名寄せ辞書の「ソフトウェア名称表現」カラムに一致するものを抽出する。
【００６９】
名寄せ辞書に登録されているソフトウェア名称表現が、配信情報内に少なくとも２種類以上抽出された場合は、タグとして採用するソフトウェア名称表現を選別する（ステップＳ３４）。具体的には、抽出されたソフトウェア名称表現のうち、あるソフトウェア名称表現が他のソフトウェア名称表現の部分文字列となる場合は部分文字列となるソフトウェア名称表現を削除し、あるソフトウェア名称表現が他のソフトウェア名称表現の部分文字列となるソフトウェア名称表現が存在しなくなるまで繰り返す。これにより、最長のソフトウェア名称表現が残る。
【００７０】
また、ソフトウェア名称表現を含む１文中に、「対象でない」「対象外である」といった否定表現が含まれる場合は、そのソフトウェア名称表現を削除する。例えば、「○○ソフトウェアは対象外である」という文が含まれる場合、「○○ソフトウェア」というソフトウェア名称表現は削除する。
【００７１】
なお、タグとして採用するソフトウェア名称表現の選別の基準はこれに限らず、複数のソフトウェア名称表現をタグとして残してもよい。例えば、名寄せ辞書のソフトウェア名称表現が会社名と判断される場合、そのソフトウェア名称表現をタグとして採用してもよい。
【００７２】
そして、ステップＳ３４で選別したソフトウェア名称表現をタグとして配信情報に付与し、配信情報記憶部４３に書き戻す（ステップＳ３５）。
【００７３】
以上の処理により、配信情報記憶部４３に格納された配信情報に、名寄せ辞書に登録されたソフトウェア名称表現がタグとして付与される。
【００７４】
次に、コンテンツ表示部４２の動作について説明する。
【００７５】
図１１は、コンテンツ表示部４２がパーソナルコンピュータにインストールされたソフトウェアの情報と関連する情報を表示するコンテンツを生成する処理の流れを示すフローチャートである。
【００７６】
コンテンツ表示部４２は、ネットワークを介して接続されたパーソナルコンピュータ３上で動作するブラウザ３１からインストール済みソフトウェア情報を含むリクエストを受信すると処理を開始する（ステップＳ４１）。インストール済みソフトウェア情報には、少なくともパーソナルコンピュータ３にインストールされたソフトウェア名称を含み、ソフトウェア開発会社名、インストール日、インストール場所、インフォメーションＵＲＬ、ヘルプデスクＵＲＬなどの情報を含んでもよい。
【００７７】
コンテンツ表示部４２は、辞書生成装置１から名寄せ辞書を取得する（ステップＳ４２）。
【００７８】
ブラウザ３１から受信したインストール済みソフトウェア情報の各ソフトウェア名称について以下の処理を実行する。
【００７９】
ソフトウェア名称に対応するソフトウェア名称表現を名寄せ辞書からすべて取得し（ステップＳ４３）、取得したソフトウェア名称表現をタグにもつ配信情報を配信情報記憶部４３から取得する（ステップＳ４４）。
【００８０】
配信情報が取得できた場合（ステップＳ４５のＹＥＳ）、インストール済みソフトウェア情報と、対応する配信情報で構成されたＨＴＭＬコンテンツを生成する（ステップＳ４６）。
【００８１】
配信情報が取得できなかった場合（ステップＳ４５のＮＯ）、つまり対応する配信情報がない場合、インストール済みソフトウェア情報のみで構成されたＨＴＭＬコンテンツを生成する（ステップＳ４７）。インストール済みソフトウェア情報のソフトウェア名称が名寄せ辞書にない場合もステップＳ４７で配信情報なしのＨＴＭＬコンテンツを生成する。
【００８２】
図１２に、コンテンツ表示部４２が生成したコンテンツの例を示す。同図に示す例では、管理ソフトウェア一覧として、符号１００で示す２箇所にインストール済みソフトウェア情報を表示している。インストール済みソフトウェア情報として、ソフトウェア名称、ソフトウェア開発会社名、インストール日、インストール場所、ヘルプデスクＵＲＬを表示している。上段のインストール済みソフトウェア情報には対応する配信情報が存在していたので、符号１１０で示す箇所にその配信情報を表示した。また、配信情報の抽出に用いたタグも表示している。
【００８３】
変形例として、図１３に示すように、名寄せ辞書に、利用回数と最終利用日を記録してもよい。辞書生成部１４は、タグ付与部４１から辞書利用回数を受信し、名寄せ辞書の利用回数と最終利用日を更新する。辞書生成部１４は、利用回数と最終利用日を基準として、利用されない名寄せ辞書のエントリを削除してもよい。
【００８４】
以上説明したように、本実施の形態によれば、クライアント２からＰＣ上のソフトウェア名称を含むソフトウェア情報を収集してソフトウェア情報記憶部１２に記録し、ソフトウェア情報記憶部１２からソフトウェア名称を抽出し、ソフトウェア名称間で共通する部分文字列を共通部分文字列Ｐｘとして抽出し、ソフトウェア名称の部分文字列である共通部分文字列ＰｘをそのＰＣ上のソフトウェア名称のソフトウェア名称表現として辞書記憶部１５に記録することにより、容易にソフトウェアの名寄せ辞書を生成することが可能となる。また、１つのＰＣ上のソフトウェア名称に対して複数のソフトウェア名称表現を名寄せ辞書に持たせることで、検索の再現率の向上を期待できる。さらに、パーソナルコンピュータ３にソフトウェアがインストール・アンインストールされるタイミングで名寄せ辞書を自動で更新でき、人手による辞書の追加・削除の稼働を削減できる。
【００８５】
本実施の形態によれば、共通部分文字列集合Ｐを用いて、親ノードが子ノードの部分文字列であるというルールに従って木構造を構成し、子ノードが１つだけのノードを削除することで、不要なソフトウェア名称表現を削除できる。
【符号の説明】
【００８６】
１…辞書生成装置
１１…ソフトウェア情報受信部
１２…ソフトウェア情報記憶部
１３…部分文字列抽出部
１４…辞書生成部
１５…辞書記憶部
２…クライアント
２１…ソフトウェア情報監視部
２２…ソフトウェア情報送信部
３…パーソナルコンピュータ
３１…ブラウザ
４…タグ付与装置
４１…タグ付与部
４２…コンテンツ表示部
４３…配信情報記憶部
【図１】
2015222524.tif 000003
【図２】
2015222524.tif 000004
【図３】
2015222524.tif 000005
【図４】
2015222524.tif 000006
【図５】
2015222524.tif 000007
【図６】
2015222524.tif 000008
【図７】
2015222524.tif 000009
【図８】
2015222524.tif 000010
【図９】
2015222524.tif 000011
【図１０】
2015222524.tif 000012
【図１１】
2015222524.tif 000013
【図１２】
2015222524.tif 000014
【図１３】
2015222524.tif 000015