JP6413597B2 - 分析プログラム、分析方法及び分析装置 - Google Patents

分析プログラム、分析方法及び分析装置 Download PDF

Info

Publication number
JP6413597B2
JP6413597B2 JP2014209245A JP2014209245A JP6413597B2 JP 6413597 B2 JP6413597 B2 JP 6413597B2 JP 2014209245 A JP2014209245 A JP 2014209245A JP 2014209245 A JP2014209245 A JP 2014209245A JP 6413597 B2 JP6413597 B2 JP 6413597B2
Authority
JP
Japan
Prior art keywords
word
cluster
analysis
feature amount
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014209245A
Other languages
English (en)
Other versions
JP2016081132A (ja
Inventor
啓介 矢野
啓介 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014209245A priority Critical patent/JP6413597B2/ja
Publication of JP2016081132A publication Critical patent/JP2016081132A/ja
Application granted granted Critical
Publication of JP6413597B2 publication Critical patent/JP6413597B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェアを分析する分析プログラム、分析方法及び分析装置に関する。
従来から、ソフトウェアの開発・改良・保守等を行う際に、ソフトウェアを構成するプログラムのソースファイル同士がどのように関係しあっているか分析し、機能や業務を実現している部分を見付けるクラスタリングが行われている。クラスタリングでは、ソースファイル同士の依存関係に基づき、ソースファイルにおいて互いに関係しあっている部分をクラスタとして発見する。
また、従来では、得られたクラスタを可視化する技術が知られている。さらに、クラスタを可視化する際、クラスタに含まれる各ソースファイルの識別子から、出現頻度等に応じた特徴的な単語(要約語句)を抽出し、この単語をクラスタの性質を示すラベルとして付与する技術が知られている。
特開2013−148987号公報 特開2013−152576号公報
従来の技術によりクラスタを可視化する場合、分析対象のソフトウェアの構成によっては、ソフトウェアの実装アーキテクチャを表す言葉が特徴的な単語として出現し、クラスタが実現する機能を表す言葉が特徴的な単語として出現しない場合がある。この場合、特徴的な単語がクラスタの機能とは異なるものとなり、クラスタの意味の把握が困難になる。
1つの側面では、クラスタの機能を容易に推測させることが可能な分析プログラム、分析方法及び分析装置を提供することを目的としている。
一様態によれば、複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与し、前記重みを用いて前記各単語の特徴量を算出し、前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する、処理をコンピュータに実行させる。
上記各処理は、上記各処理を実現する機能部、上記各処理を手順としてコンピュータにより実行させる方法、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
クラスタの機能を容易に推測させることができる。
分析システムの一例を示す図である。 分析装置によるソフトウェアの分析を説明する第一の図である。 分析装置によるソフトウェアの分析を説明する第二の図である。 分析装置のハードウェア構成の一例を示す図である。 分析装置の機能構成を説明する図である。 分析装置の動作を説明するフローチャートである。 単語分析部の処理を説明するフローチャートである。 クラスタ情報の一例を示す図である。 単語出現情報の一例を示す図である。 特徴量情報の一例を示す図である。 比較例としての特徴量情報を示す図である。 ソフトウェアを可視化する画面データが表示された画面の例を示す図である。
以下に図面を参照して実施形態について説明する。図1は、分析システムの一例を示す図である。
本実施形態の分析システム100は、分析装置200と、端末装置300とを有する。本実施形態の分析システム100において、分析装置200と端末装置300とは、ネットワーク等を介して接続されている。
本実施形態の分析システム100では、例えば端末装置300から分析装置200へ分析対象となるソフトウェアがアップロードされると、分析装置200は、分析プログラム210を実行してソフトウェアの分析を行い、その結果を端末装置300に出力する。本実施形態の分析装置200は、分析結果として、例えばソフトウェアの構造を地図の形式で表示させる画面データを端末装置300に出力しても良い。
具体的には本実施形態の分析装置200は、ソフトウェアの構造を示す地図において、ソフトウェアのクラスタリングにより得たクラスタを区画とし、クラスタの機能を示す単語を各区画のラベルとして付与することで、クラスタの機能の推測を容易にする。
以下に、本実施形態の分析装置200によるソフトウェアの分析について説明する。
図2は、分析装置によるソフトウェアの分析を説明する第一の図である。図2は、ソフトウェア1に含まれるプログラム間の依存関係に基づいてクラスタリングを行い、3つのクラスタ2、3、4を取得した例を示している。
本実施形態のクラスタリングとは、データ解析の手法の1つであり、プログラムの集合を部分集合(クラスタ)に切り分けて、それぞれの部分集合に含まれるプログラムがある共通の特徴を持つようにする処理である。
図2の例では、クラスタ2は、見積りに関する処理を実行させるプログラムの部分集合である。クラスタ3は、受注に関する処理を実行させるプログラムの部分集合である。クラスタ4は、請求に関する処理を実行させるプログラムの部分集合である。
すなわち、クラスタ2により実現される機能は見積機能であり、クラスタ3により実現される機能の発注機能であり、クラスタ4により実現される機能の請求機能である。
図3は、分析装置によるソフトウェアの分析を説明する第二の図である。図3では、クラスタの一例として、クラスタ2について説明する。
図3において、破線の領域の中の個々の四角形は、クラスタ2に含まれるプログラムを示す。
ところで、ソフトウェア1を構成するプログラムは、ソフトウェア1の設計時において、機能や用途に応じて複数のグループに分類されており、クラスタ2には、複数の分類に属するプログラムが含まれる。
具体的には、クラスタ2には、分類「View」に属するプログラム2V、分類「Controller」に属するプログラム2C、分類「Model」に属するプログラム2Mが含まれる。
本実施形態の分析装置200は、プログラム2V、プログラム2C、プログラム2Mのそれぞれから単語群を抽出し、単語群の各単語に、複数の分類に由来する単語の重みを大きくする重み付けを行う。そして、本実施形態の分析装置200は、重みを反映させた単語毎の特徴量を算出し、特徴量が大きい単語をクラスタ2の特徴的な単語(以下、特徴語と呼ぶ)としてクラスタ2のラベルとする。すなわち、本実施形態の分析装置200は、出現するプログラムの分類の数が大きい単語ほど、重みが大きくなり、クラスタ2の特徴語として選択されやすくなる。
以下、例えばクラスタ2に含まれるプログラムからクラスタ2の特徴語を抽出する場合について説明する。本実施形態の分析装置200は、プログラムの識別子から単語群を抽出する。本実施形態のファイル識別子とは、例えばクラス名、ファイル名、ディレクトリ名、パッケージ名、関数名等を含む。
図3において、例えばプログラム2Vのファイル名をQuoteViewとし、プログラム2Cのファイル名をQuoteControllerとし、プログラム2Mのファイル名をQuoteModelとする。
この場合、単語「Quote」は、3つの分類の全てに出現しており、複数の分類に由来する。したがって、単語「Quote(見積り)」は、特徴量が大きくなり、クラスタ2の特徴語として抽出され、クラスタ2のラベルとなる。単語「Quote(見積り)」は、クラスタ2の機能である「見積り」を示しており、この単語をクラスタ2のラベルとすることで、クラスタ2の機能を容易に推測できる。
このように、本実施形態の分析装置200は、複数の分類に属するプログラムの集合であるクラスタにおいて、異なる分類のプログラムに共通して出現する単語がクラスタの機能を表現する単語であると想定し、この単語の重みを大きくする重み付けを行う。
そして、本実施形態の分析装置200は、単語毎に、重みを反映させた特徴量を算出し、特徴量の大きい単語を特徴語とクラスタのラベルとする。よって、本実施形態では、クラスタの可視化において、クラスタの機能の表す単語をクラスタのラベルとすることができ、クラスタの機能の推測を容易にする。
尚、本実施形態のおけるプログラムの設計時の分類は、例えばプログラムがJava(登録商標)言語で記述されている場合には「パッケージ」に相当し、プログラムがc言語等で記述されている場合には「ディレクトリ」に相当する。また分類に属するプログラムは、プログラムがJava(登録商標)言語で記述されている場合には「クラス」に相当し、プログラムがc言語等で記述されている場合には「ソースファイル」に相当する。
次に、本実施形態の分析装置200について説明する。図4は、分析装置のハードウェア構成の一例を示す図である。
本実施形態の分析装置200は、それぞれバスBで相互に接続されている入力装置21、出力装置22、ドライブ装置23、補助記憶装置24、メモリ装置25、演算処理装置26及びインターフェース装置27を含む。
入力装置21はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置22はディスプレイ装置等を含み、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置27は、モデム、LANカード等を含み、ネットワークに接続する為に用いられる。
分析プログラム210は、分析装置200を制御する各種プログラムの少なくとも一部である。分析プログラム210は例えば記録媒体28の配布やネットワークからのダウンロードなどによって提供される。分析プログラム210を記録した記録媒体28は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、分析プログラム210は、分析プログラム210を記録した記録媒体28がドライブ装置23にセットされるとは記録媒体28からドライブ装置23を介して補助記憶装置24にインストールされる。ネットワークからダウンロードされた分析プログラム210は、インターフェース装置27を介して補助記憶装置24にインストールされる。
補助記憶装置24は、インストールされた分析プログラム210を格納すると共に、必要なファイル、データ等を格納する。メモリ装置25は、コンピュータの起動時に補助記憶装置24から分析プログラム210を読み出して格納する。そして、演算処理装置26はメモリ装置25に格納された発注プログラムに従って、後述するような各種処理を実現している。
また、本実施形態の端末装置300は、例えば一般的なコンピュータやタブレット等であり、そのハードウェア構成は分析装置200と同様であるから説明を省略する。
次に、図5を参照して本実施形態の分析装置200の機能構成について説明する。図5は、分析装置の機能構成を説明する図である。
本実施形態の分析装置200は、分析処理部210Aと、記憶領域220とを有する。分析処理部210Aは、演算処理装置26が分析プログラム210を実行することで実現される処理部である。記憶領域220は、補助記憶装置24やメモリ装置25に設けられた記憶領域である。
本実施形態の記憶領域220は、ソースコードデータベース221、分類情報データベース222を有する。また、本実施形態の記憶領域220には、後述する分析処理部210Aの処理結果として、クラスタ情報223、分類情報224、単語出現情報225、特徴量情報226が格納される。これらの各種情報の詳細は後述する。
本実施形態のソースコードデータベース221には、分析処理部210Aによる分析対象のプログラムのソフトウェアのソースコードが格納される。ソースコードは、例えば端末装置300から分析装置200へアップロードされる。
本実施形態の分類情報データベース222には、分析対象のソフトウェアの各プログラムと、プログラムが属する分類とを対応付けるための情報が格納される。本実施形態の分類情報データベース222は、例えばソースコードと共に端末装置300からアップロードされても良い。
本実施形態の分類情報データベース222には、例えば各プログラムのファイル名と、各プログラムが属するディレクトリとが対応付けられた情報が格納されていても良い。また、本実施形態の分類情報データベース222には、例えば各プログラムの分類と、分類毎の命名規約とが対応付けられていても良い。
本実施形態の分析処理部210Aは、ソースコード取得部211、クラスタ取得部212、分類情報取得部213、単語分析部214、特徴量算出部215、単語抽出部216、画面データ生成部217、出力部218を有する。
本実施形態のソースコード取得部211は、ソースコードデータベース221に格納されたソースコードを取得する。
クラスタ取得部212は、ソースコードにより記述されたプログラム間の依存関係に基づいてクラスタリングを行い、クラスタを取得する。また、本実施形態のクラスタ取得部212は、取得したクラスタを識別するクラスタIDと、クラスタに含まれる各プログラムのファイル名とを対応付けたクラスタ情報223を生成し、記憶領域220に格納する。
分類情報取得部213は、分類情報データベース222から、分析対象のプログラムと対応する分類情報を取得し、分類情報224として記憶領域220に格納する。
単語分析部214は、クラスタ情報223と分類情報224とを照合し、各クラスタに含まれるファイル識別子から単語群を取得し、それぞれの単語が複数の分類に由来するかどうかを分析する。そして、単語分析部214は、単語と、クラスタにおける単語の出現回数と、単語が由来する分類の数とを対応付けた単語出現情報225を生成し、記憶領域220に格納する。本実施形態の単語出現情報225の詳細は後述する。
特徴量算出部215は、単語出現情報225を参照して、単語毎の特徴量を算出し、特徴量情報226として記憶領域220に格納する。特徴量情報226の詳細は後述する。
単語抽出部216は、特徴量情報226を参照し、特徴量に応じて単語を抽出し、抽出した単語をクラスタの特徴語とする。具体的に単語抽出部216は、特徴量が大きい方から順に、所定数の単語を抽出する。
画面データ生成部217は、抽出された特徴語をクラスタのラベルとし、ソフトウェアの構造を地図の形式で表示させる画面データを生成する。
出力部218は、生成した画面データを端末装置300へ出力する。尚、出力部218が画面データを出力する先は、端末装置300に限定されない。例えば出力部218は、画面データを記録媒体等に出力しても良いし、画面データをネットワーク上の端末装置300がアクセス可能なサーバ等に出力しても良い。
また、出力部218は、例えば分析装置200内の記憶装置に画面データを格納しておき、分析装置200が、外部から画面データの取得要求を受け付けたとき、画面データを出力しても良い。さらに、分析装置200は、自身の出力装置22に画面データを表示させても良い。
次に、図6を参照して本実施形態の分析装置200の動作について説明する。図6は、分析装置の動作を説明するフローチャートである。
本実施形態の分析装置200は、ソースコード取得部211により、ソースコードデータベース221から分析対象のプログラムのソースコードを取得する(ステップS601)。続いて、分析装置200は、クラスタ取得部212により、取得したソースコードにより記述されたプログラム間の依存関係に基づいてクラスタリングを行ってクラスタを取得し、クラスタ情報223として記憶領域220に格納する(ステップS602)。
続いて分析装置200は、分類情報取得部213により、分類情報データベース222から分類情報を取得し、分類情報224として記憶領域220に格納する(ステップS603)。
続いて分析装置200は、単語分析部214により、クラスタに含まれるファイル識別子から単語群を取得し、単語群を分析した結果から単語出現情報225を生成し、記憶領域220に格納する(ステップS604)。
具体的には、本実施形態の単語分析部214は、単語群を取得する際に、ファイル識別子を文字が小文字から大文字となった位置、ピリオドやアンダースコアの位置等に区切って単語としても良い。
また、本実施形態の単語分析部214は、各プログラムに対応する単語群が予め取得されていた場合には、その単語群を用いて単語出現情報225を生成しても良い。予め単語群が取得されている場合とは、例えば分析対象のソフトウェア設計書等から単語群を得た場合等である。
また、単語分析部214は、クラスタ毎に、出現した単語と、その単語のクラスタ内における出現回数と、異なり分類数とを対応付けて単語出現情報225とする。異なり分類数とは、ある単語が出現したプログラムが属する分類の数である。すなわち、本実施形態の異なり分類数とは、ある単語がいくつの分類に由来するかを示す数である。本実施形態では、単語分析部214によるステップS604の処理の詳細は後述する。
続いて分析装置200は、特徴量算出部215により、単語出現情報225を参照し、単語毎の特徴量を算出し、特徴量情報226として記憶領域220に格納する(ステップS605)。本実施形態の特徴量算出部215による特徴量の算出の詳細は後述する。
続いて分析装置200は、単語抽出部216により、特徴量情報226を参照し、特徴量の値が大きい順に、所定数の単語を抽出する(ステップS606)。本実施形態では、単語抽出部216により抽出された単語が、クラスタの機能と関連の深い単語であると予測されることから、ここで抽出された単語をクラスタの特徴を示す特徴語とする。
続いて分析装置200は、画面データ生成部217により、特徴語をクラスタのラベルとし、ソフトウェアの構造を地図の形式で表示させる画面データを生成する(ステップS607)。そして、分析装置200は、出力部218により、生成した画面データを端末装置300へ出力し(ステップS608)、分析処理を終了する。
次に、図7を参照して本実施形態の単語分析部214の処理について説明する。図7は、単語分析部の処理を説明するフローチャートである。図7の処理は、図6のステップS604の処理の詳細を示すものである。また、本実施形態の単語分析部214は、図7に示す処理をクラスタ取得部212により取得した全てのクラスタについて行う。
本実施形態の単語分析部214は、あるクラスタから単語群を取得する(ステップS701)。続いて単語分析部214は、単語群から、後述する処理の対象となる単語を取得する(ステップS702)。
次に、単語分析部214は、取得した単語のクラスタ内での出現回数をカウントする(ステップS703)。続いて単語分析部214は、ステップS702で取得した単語が、分類名のみに含まれる単語であるか否かを判定する(ステップS704)。
ステップS704において、分類名のみに含まれる単語である場合、単語分析部214は、異なり分類数を0とする(ステップS705)。すなわち、本実施形態では、分類名のみに含まれる単語に対しては重みを付与しない。
ステップS704において、分類名のみに含まれる単語でない場合、単語分析部214は、異なり分類数をカウントする(ステップS706)。
続いて単語分析部214は、単語と、クラスタ内のファイル識別子中に単語が出現する数と、異なり分類数とを対応付けて単語出現情報225として記憶領域220に格納する(ステップS707)。
次に単語分析部214は、単語群に含まれる全ての単語について、ステップS703からステップS707までの処理を行ったか否かを判定する(ステップS708)。ステップS708において、全ての単語に処理を行っていない場合、単語分析部214は、ステップS702へ戻る。ステップS708において、全ての単語に処理を行った場合、単語分析部214は、処理を終了する。
以下に、本実施形態の分析装置200による単語分析部214の処理を具体的に説明する。
尚、以下の説明では、分析対象となるソフトウェアのプログラムが、Java(登録商標)言語により記述されているものとして説明する。したがって、以下の説明では、クラスタに含まれるプログラムは、クラスに相当し、プログラムの分類は、パッケージに相当する。
図8は、クラスタ情報の一例を示す図である。本実施形態のクラスタ取得部212は、プログラムのクラスタリングを行い、例えば図8に示すクラスタ情報223を取得する。
図8に示すクラスタ情報223は、情報の項目として、パッケージを含むクラス名と、クラスタを識別するクラスタIDとを有し、両者が対応付けられている。すなわち、クラスタ情報223は、設計時の分類を含むプログラムの名前と、クラスタIDとが対応付けられた情報である。
本実施形態では、プログラムがJava(登録商標)言語で記述されているため、分類情報はJava(登録商標)言語の形式に則ったものとなる。例えばクラス名「com.abc.model.AbstractDataModel」において、「com.abc.model」はパッケージ名であり、「AbstractDataModel」がそのパッケージの中におけるクラス名である。
図8の例では、Java(登録商標)言語の形式に則った分類情報によれば、クラスタID「1」のクラスタには、「com.abc.controller」と「com.abc.model」という2つのパッケージのクラスが存在することがわかる。
また、本実施形態では、単語分析部214は、パッケージを含むクラス名をピリオド毎に区切って単語群を取得する。例えは、パッケージを含むクラス名「com.abc.model.QuoteModel」からは、単語群「com, abc, model, quote, model」が取得される。
単語分析部214は、こうして取得した単語群に含まれる単語毎に、クラスタにおける単語の出現回数と、異なり分類数とを取得し、単語出現情報225を生成する。
図9は、単語出現情報の一例を示す図である。単語出現情報225は、情報の項目として、クラスタID、単語、出現回数、異なり分類数を有する。
図9において、例えばクラスタID「1」の単語「abstract」の出現回数は1回である。また、単語「abstract」はクラス名に含まれる単語である。
したがって、単語分析部214は、単語「abstract」の異なり分類数をカウントする。具体的には単語分析部214は、クラスタID「1」において、単語「abstract」が出現するパッケージの数をカウントする。単語「abstract」は、1つのパッケージにしか出現しないため(図8参照)、単語「abstract」の異なり分類数は1回である。
したがって、単語分析部214は、単語「abstract」の異なり分類数を「1」とし、クラスタIDと、単語「abstract」と、出現回数と、に異なり分類数「1」を対応付ける。
また、図9において、例えばクラスタID「1」の単語「abc」の出現回数は5回である。しかし、単語「abc」は、クラス名には含まれず、パッケージ名にのみ含まれる。したがって、単語「abc」の異なり分類数は「0」となる。
また、図9において、例えばクラスタID「1」の単語「quote」の出現回数は2回である。また、単語「quote」はクラス名に含まれる単語である。よって、単語分析部214は、単語「quote」の異なり分類数をカウントする。
単語「quote」は、パッケージ名「com.abc.controller」を含むクラス名と、パッケージ名「com.abc.model」を含むクラス名のそれぞれに1度ずつ出現する。すなわち、単語「quote」が出現するパッケージの数は2である。したがって、単語「quote」の異なり分類数は「2」となる。
また、図9において、例えばクラスタID「1」の単語「model」の出現回数は4回である。また、単語「model」はクラス名に含まれる単語である。よって、単語分析部214は、単語「model」の異なり分類数をカウントする。
単語「model」は、パッケージ名「com.abc.model」を含む2つのクラス名に、それぞれ2度ずつ出現する。すなわち、単語「model」が出現するパッケージの数は1である。したがって、単語「model」の異なり分類数は「1」となる。
次に、本実施形態の特徴量算出部215による特徴量の算出について説明する。本実施形態の特徴量算出部215は、例えばtf-idf法を用いて単語の特徴量を算出し、単語と特徴量とを対応付けて特徴量情報226とする。
tf-idf法は、tf(単語の出現回数)とidf(逆文書頻度)の二つの指標に基づき、文書中の単語の重みを計算する手法である。この手法によれば、ある単語の出現回数が特定のクラスタにおいて高く、それ以外のクラスタでは低い場合に、この単語に特定のクラスタの特徴を表す単語として高い得点(重み)が与えられる。本実施形態では、tf-idf法を用いて各単語に与えられる得点を各単語の特徴量とする。
本実施形態の特徴量算出部215は、tf-idf法において、単語の出現回数の代わりに、単語の出現回数と異なり分類数とを乗算した値を用いる。このとき、本実施形態の特徴量算出部215は、異なり分類数が「0」であった場合には、異なり分類数を「1」に書き換えて、出現回数と異なり分類数との乗算を行う。
本実施形態の特徴量算出部215は、例えば単語「quote」の特徴量を算出する場合、出現回数「2」と、異なり分類数「2」とを乗算した値「4」をtf-idf法における出現回数の値として用いる。
本実施形態では、以上のようにして単語毎の特徴量を算出することで、出現するパッケージ数が多い単語ほど特徴量が大きい値となる。すなわち、本実施形態の特徴量は、多くの分類に属する単語ほど、特徴量が大きい値となる。
図10は、特徴量情報の一例を示す図である。本実施形態の特徴量情報226は、情報の項目として、クラスタIDと、単語と、特徴量とを有し、それぞれが対応付けられている。
尚、本実施形態では、特徴量の算出にtf-idf法を用いたが、特徴量の算出に用いられる手法はこれに限定されない。特徴量算出部215は、tf-idf法以外の関数を用いて、単語の重み付けを行っても良い。
本実施形態の分析装置200は、特徴量情報226が生成されると、単語抽出部216により、特徴量情報226において特徴量の値が大きい順に、所定数の単語を抽出する。
図10に示す特徴量情報226では、クラスタID「1」のクラスタにおいて、最も特徴量が大きい単語は「model」と「quote」であり、次に特徴量が大きい単語は「controller」となる。
したがって、図10の例では、クラスタID「1」のクラスタにおいて、単語「quote」は、異なる分類のプログラムに共通して出現する単語であり、クラスタの機能を表現する単語であると言える。
これに対し、比較例として、一般的なtf-idf法により特徴量を算出した結果を図11に示す。図11は、比較例としての特徴量情報を示す図である。
図11の例では、クラスタID「1」のクラスタにおいて、最も特徴量が大きい単語は「model」であり、次に特徴量が大きい単語は「controller」と「command」であり、その次に特徴量が大きい単語は「quote」である。
単語「model」や「controller」は、パッケージ名に含まれる単語である。したがって、図11の例では、クラスタの機能を表現する単語「quote」が、パッケージ名に含まれる単語に埋もれていることがわかる。
以上のことから、本実施形態によれば、クラスタの機能を示していると想定される単語の特徴量を大きくし、クラスタの特徴語として抽出することができる。
本実施形態の単語抽出部216は、例えば特徴量情報226から、特徴量が大きい順に3つの単語を抽出し、クラスタID「1」の特徴語として画面データ生成部217へ渡しても良い。
以下に、本実施形態の画面データ生成部217により生成された画面データが表示された例について説明する。
図12は、ソフトウェアを可視化する画面データが表示された画面の例を示す図である。図12に示す画面121には、ソフトウェアのクラスタリングにより得たクラスタを区画とし、クラスタの機能を示す単語を各区画のラベルとして付与している。
画面121において、区画122〜125は、それぞれがクラスタに対応する。また、画面121内のその他の区画も、それぞれが区画に対応する。
画面121では、それぞれの区画に、クラスタに付与されたラベルが重畳されて表示されている。本実施形態では、ラベルとして表示される単語が、単語抽出部216により特徴量情報から抽出された特徴語となる。
例えば区画125は、クラスタID「1」のクラスタに対応する区画である。区間125には、ラベル126が付与されている。ラベル126は、このクラスタの機能を説明する単語として、特徴量情報226から特徴語として抽出された「quote」、「model」、「controller」を含む。
本実施形態では、このようにラベルを表示させることで、クラスタの機能を容易に推測させることができる。
開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、
前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与し、
前記重みを用いて前記各単語の特徴量を算出し、前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する、処理をコンピュータに実行させる分析プログラム。
(付記2)
前記特徴量の算出において、
前記クラスタにおける単語の出現回数と、前記単語の重みと、前記クラスタを識別する識別子とを対応付けた単語出現情報を参照し、
前記単語の出現回数と、前記単語の重みとを乗算した結果の値を、前記単語の出現回数の代わりに用いる、付記1記載の分析プログラム。
(付記3)
前記単語と、前記特徴量とが対応付けられた特徴量情報を参照し、前記特徴量が大きい順に所定数の単語を抽出し、
前記クラスタと対応する区画に、前記所定数の単語を重畳させて表示装置に表示させる画面データを生成する、付記1又は2記載の分析プログラム。
(付記4)
前記重みの付与において、
前記プログラムの分類名にのみ出現する単語の重みの値を0とする付記1乃至3の何れか一項に記載の分析プログラム。
(付記5)
前記特徴量の算出において、
前記重みが0であった場合、前記乗算の際に前記重みを1とする付記2乃至4の何れか一項に記載の分析プログラム。
(付記6)
分析対象のソフトウェアのソースコードを取得し、
前記ソースコードにより記述されるプログラムに対してクラスタスタリングを行い、複数のクラスタを取得する付記1乃至6の何れか一項に記載の分析プログラム。
(付記7)
コンピュータによる分析方法であって、該コンピュータが、
複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、
前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与し、
前記重みを用いて前記各単語の特徴量を算出し、前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する、分析方法。
(付記8)
複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与する単語分析部と、
前記重みを用いて前記各単語の特徴量を算出する特徴量算出部と、
前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する単語抽出部と、を有する分析装置。
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
100 分析システム
200 分析装置
210 分析プログラム
220 記憶領域
221 ソースコードデータベース
222 分類情報データベース
212 クラスタ取得部
213 分類情報取得部
214 単語分析部
215 特徴量算出部
216 単語抽出部
217 画面データ生成部
300 端末装置

Claims (5)

  1. 複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、
    前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与し、
    前記重みを用いて前記各単語の特徴量を算出し、前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する、処理をコンピュータに実行させる分析プログラム。
  2. 前記特徴量の算出において、
    前記クラスタにおける単語の出現回数と、前記単語の重みと、前記クラスタを識別する識別子とを対応付けた出現回数情報を参照し、
    前記単語の出現回数と、前記単語の重みとを乗算した結果の値を、前記単語の出現回数の代わりに用いる、請求項1記載の分析プログラム。
  3. 前記単語と、前記特徴量とが対応付けられた特徴量情報を参照し、前記特徴量が大きい順に所定数の単語を抽出し、
    前記クラスタと対応する区画に、前記所定数の単語を重畳させて表示させる画面データを生成する、請求項1又は2記載の分析プログラム。
  4. コンピュータによる分析方法であって、該コンピュータが、
    複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、
    前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与し、
    前記重みを用いて前記各単語の特徴量を算出し、前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する、分析方法。
  5. 複数のグループに分類されたプログラムを含むクラスタから単語群を抽出し、前記単語群に含まれる各単語に対し、前記各単語が出現するプログラムの分類数が多いほど大きい値の重みを付与する単語分析部と、
    前記重みを用いて前記各単語の特徴量を算出する特徴量算出部と、
    前記特徴量に応じて抽出した単語を前記クラスタと対応付けて出力する単語抽出部と、を有する分析装置。
JP2014209245A 2014-10-10 2014-10-10 分析プログラム、分析方法及び分析装置 Active JP6413597B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014209245A JP6413597B2 (ja) 2014-10-10 2014-10-10 分析プログラム、分析方法及び分析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014209245A JP6413597B2 (ja) 2014-10-10 2014-10-10 分析プログラム、分析方法及び分析装置

Publications (2)

Publication Number Publication Date
JP2016081132A JP2016081132A (ja) 2016-05-16
JP6413597B2 true JP6413597B2 (ja) 2018-10-31

Family

ID=55958576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014209245A Active JP6413597B2 (ja) 2014-10-10 2014-10-10 分析プログラム、分析方法及び分析装置

Country Status (1)

Country Link
JP (1) JP6413597B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7298692B2 (ja) * 2019-08-08 2023-06-27 日本電気株式会社 機能推定装置、機能推定方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2809341B2 (ja) * 1994-11-18 1998-10-08 松下電器産業株式会社 情報要約方法、情報要約装置、重み付け方法、および文字放送受信装置。
JP2000259666A (ja) * 1999-03-11 2000-09-22 Nippon Hoso Kyokai <Nhk> トピック抽出装置
JP2009151390A (ja) * 2007-12-18 2009-07-09 Fuji Xerox Co Ltd 情報分析装置、及び情報分析プログラム
JP5899946B2 (ja) * 2012-01-17 2016-04-06 富士通株式会社 分割装置、分割方法、および分割プログラム
JP5783063B2 (ja) * 2012-01-24 2015-09-24 富士通株式会社 分析支援装置、分析支援方法、および分析支援プログラム

Also Published As

Publication number Publication date
JP2016081132A (ja) 2016-05-16

Similar Documents

Publication Publication Date Title
JP6629678B2 (ja) 機械学習装置
CN107004025B (zh) 图像检索装置及检索图像的方法
JP2022037955A (ja) 学習モデルを選択するシステム
JP6242540B1 (ja) データ変換システム及びデータ変換方法
JPWO2011001584A1 (ja) 情報分類装置、情報分類方法及び情報分類プログラム
JP6191440B2 (ja) スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法
KR102299525B1 (ko) 제품 평가 마이닝 방법 및 이를 수행하는 장치
JP6413597B2 (ja) 分析プログラム、分析方法及び分析装置
JP6402637B2 (ja) 分析プログラム、分析方法及び分析装置
JP5716966B2 (ja) データ分析装置、データ分析方法及びプログラム
JP2011100208A (ja) 行動推定装置、行動推定方法および行動推定プログラム
KR20210153912A (ko) 키워드 빈도수와 영역 중요도 분석 기반 딥러닝 문서 분석 시스템 및 방법
KR20180015491A (ko) 키워드를 기초로 접속 기록을 저장하는 방법 및 장치
CN113569929B (zh) 基于小样本扩展的互联网服务提供方法、装置及电子设备
CN109542766A (zh) 基于代码映射和词法分析的大规模程序相似性快速检测与证据生成方法
JP6123372B2 (ja) 情報処理システム、名寄せ判定方法及びプログラム
JP6496078B2 (ja) 分析支援装置、分析支援方法、および分析支援プログラム
JP5824429B2 (ja) スパムアカウントスコア算出装置、スパムアカウントスコア算出方法、及びプログラム
JP7056127B2 (ja) 分析方法、分析装置および分析プログラム
WO2024047997A1 (ja) 文書分析装置、及び文書分析用プログラム
JP5417359B2 (ja) 文書評価支援システム、及び文書評価支援方法
JP7442430B2 (ja) 審査支援システム、及び審査支援方法
JP2018077670A (ja) 分析装置、分析方法、および分析プログラム
KR20230119535A (ko) 멀티 프라이빗 클라우드의 로그 관리 시스템 및 방법
CN109144637A (zh) 一种通过计算机进行对象控制的方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R150 Certificate of patent or registration of utility model

Ref document number: 6413597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150