(57)【要約】【課題】  コンピュータプログラムにおけるソースコード及びコメントと、前記ソースコード及び前記コメントの特徴の類型との相関関係について、機械学習によって自律的に学習を行う。【解決手段】  コンピュータプログラムにおけるソースコード及びコメントと、ソースコード及びコメントの特徴の類型との相関関係を学習する機械学習装置３であって、事前に特徴の類型が既知であって、特徴の類型ごとにラベルが付与された学習用データセットを記憶するデータセット記憶手段３１と、学習用データセットを前処理する前処理手段３２と、前処理された学習用データセットを入力することで、前処理されたソースコード及びコメントから、ソースコード及びコメントの特徴の類型を出力する学習モデルを学習する学習手段３３と、学習された学習モデルを記憶する学習済みモデル記憶手段３４と、を備える。【選択図】図１
2020009190.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムにおけるソースコード、コメント及び改変履歴と、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型との相関関係を学習する機械学習装置であって、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード、前記コメント及び前記改変履歴である学習用データセットを記憶するデータセット記憶手段と、
前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、
前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード、コメント及び改変履歴から、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型を出力する学習モデルを学習する学習手段と、
前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、
を備えることを特徴とする機械学習装置。
【請求項２】
コンピュータを用いて、コンピュータプログラムにおけるソースコード、コメント及び改変履歴と、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型との相関関係を学習する機械学習方法において、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記コメントである学習用データセットを記憶するステップと、
前記学習用データセットを前処理するステップと、
前処理された前記学習用データセットを入力することで、前処理されたソースコード、コメント及び改変履歴から、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型を出力する学習モデルを学習するステップと、
を備えることを特徴とする機械学習方法。
【請求項３】
コンピュータプログラムにおけるソースコード及びコメントと、前記ソースコード及び前記コメントの特徴の類型との相関関係を学習する機械学習装置であって、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記コメントである学習用データセットを記憶するデータセット記憶手段と、
前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、
前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード及びコメントから、前記ソースコード及び前記コメントの特徴の類型を出力する学習モデルを学習する学習手段と、
前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、
を備えることを特徴とする機械学習装置。
【請求項４】
コンピュータを用いて、コンピュータプログラムにおけるソースコード及びコメントと、前記ソースコード及び前記コメントの特徴の類型との相関関係を学習する機械学習方法において、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記コメントである学習用データセットを記憶するステップと、
前記学習用データセットを前処理するステップと、
前処理された前記学習用データセットを入力することで、前処理されたソースコード及びコメントから、前記ソースコード及び前記コメントの特徴の類型を出力する学習モデルを学習するステップと、
を備えることを特徴とする機械学習方法。
【請求項５】
コンピュータプログラムにおけるソースコードと、前記ソースコードの特徴の類型との相関関係を学習する機械学習装置であって、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコードである学習用データセットを記憶するデータセット記憶手段と、
前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、
前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコードから、前記ソースコードの特徴の類型を出力する学習モデルを学習する学習手段と、
前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、
を備えることを特徴とする機械学習装置。
【請求項６】
コンピュータを用いて、コンピュータプログラムにおけるソースコードと、前記ソースコードの特徴の類型との相関関係を学習する機械学習方法において、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコードである学習用データセットを記憶するステップと、
前記学習用データセットを前処理するステップと、
前処理された前記学習用データセットを入力することで、前処理されたソースコードから、前記ソースコードの特徴の類型を出力する学習モデルを学習するステップと、
を備えることを特徴とする機械学習方法。
【請求項７】
コンピュータプログラムにおけるソースコード及び改変履歴と、前記ソースコード及び前記改変履歴の特徴の類型との相関関係を学習する機械学習装置であって、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記改変履歴である学習用データセットを記憶するデータセット記憶手段と、
前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、
前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード及び改変履歴から、前記ソースコード及び前記改変履歴の特徴の類型を出力する学習モデルを学習する学習手段と、
前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、
を備えることを特徴とする機械学習装置。
【請求項８】
コンピュータを用いて、コンピュータプログラムにおけるソースコード及び改変履歴と、前記ソースコード及び前記改変履歴の特徴の類型との相関関係を学習する機械学習方法において、
事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記改変履歴である学習用データセットを記憶するステップと、
前記学習用データセットを前処理するステップと、
前処理された前記学習用データセットを入力することで、前処理されたソースコード及び改変履歴から、前記ソースコード及び前記改変履歴の特徴の類型を出力する学習モデルを学習するステップと、
をことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムにおけるソースコード情報と、当該ソースコード情報の特徴の類型との相関関係を学習する機械学習装置に関する。
【背景技術】
【０００２】
昨今の人工知能技術の流行を受け、ＩＴ企業やＡＩ企業においては、コンピュータプログラマの新規採用の需要がますます増加している。このようなコンピュータプログラマの新規採用にあたっては、採用試験として、プログラミングの課題が与えられ、被験者がこの課題を適切に解くことができるかを確認することは当然として、その他、与えられた課題に対してどのようにアプローチしたか、プログラミングにおける癖や傾向がどのようなものか、自社に在籍するコンピュータプログラマのプログラミングにおける傾向と沿うものであるかを問うこと等が行われている。
【０００３】
例えば下記特許文献１では、学習者のプログラミング過程を把握し、学習者の思考過程、理解の不足の箇所、解答中の思考プロセスの時間経過を把握し、プログラミング教育を支援することを目的として、学習者が学習者用クライアント上で行うプログラム作成課題の解答過程を、学習管理サーバがネットワークを通してオンラインでリアルタイムに把握しデータベースに保存して、データベース管理者が学習管理者用クライアントを通じてデータベースに記録したデータを読出し、そのデータを基に任意の時間軸で解答過程を再現し、グラフによる視覚化を行うことで、各学習者のプログラミング習熟度を容易にかつ的確に把握できるようにするプログラミング教育支援システムを提供する点が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２７２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のとおり、上記特許文献１には、時間軸で解答過程を再現したグラフを用いて、ユーザが学習者の習熟度を把握する技術が開示されている。しかしながら、新規にコンピュータプログラマを採用する企業側から見れば、必ずしも採用担当者が高いプログラミングの素養を備えているとは限らず、ユーザによる主観に基づいて習熟度の把握することを要する上記特許文献１に記載されたものは、利便性が高いものとはいえなかった。
【課題を解決するための手段】
【０００６】
このような課題を解決するために、本発明の第一態様によれば、コンピュータプログラムにおけるソースコード、コメント及び改変履歴と、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型との相関関係を学習する機械学習装置であって、事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード、前記コメント及び前記改変履歴である学習用データセットを記憶するデータセット記憶手段と、前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード、コメント及び改変履歴から、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型を出力する学習モデルを学習する学習手段と、前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、を備えることを特徴とする機械学習装置が提供される。
【０００７】
また、本発明の第二態様によれば、コンピュータプログラムにおけるソースコード及びコメントと、前記ソースコード及び前記コメントの特徴の類型との相関関係を学習する機械学習装置であって、事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記コメントである学習用データセットを記憶するデータセット記憶手段と、前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード及びコメントから、前記ソースコード及び前記コメントの特徴の類型を出力する学習モデルを学習する学習手段と、前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、を備えることを特徴とする機械学習装置が提供される。
【０００８】
また、本発明の第三態様によれば、コンピュータプログラムにおけるソースコードと、前記ソースコードの特徴の類型との相関関係を学習する機械学習装置であって、事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコードである学習用データセットを記憶するデータセット記憶手段と、前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコードから、前記ソースコードの特徴の類型を出力する学習モデルを学習する学習手段と、前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、を備えることを特徴とする機械学習装置が提供される。
【０００９】
また、本発明の第四態様によれば、コンピュータプログラムにおけるソースコード及び改変履歴と、前記ソースコード及び前記改変履歴の特徴の類型との相関関係を学習する機械学習装置であって、事前に特徴の類型が既知であって、前記特徴の類型ごとにラベルが付与された前記ソースコード及び前記改変履歴である学習用データセットを記憶するデータセット記憶手段と、前記データセット記憶手段に記憶された前記学習用データセットを前処理する前処理手段と、前記前処理手段によって前処理された前記学習用データセットを入力することで、前処理されたソースコード及び改変履歴から、前記ソースコード及び前記改変履歴の特徴の類型を出力する学習モデルを学習する学習手段と、前記学習手段によって学習された前記学習モデルを記憶する学習済みモデル記憶手段と、を備えることを特徴とする機械学習装置が提供される。
【発明の効果】
【００１０】
本発明によれば、コンピュータプログラムにおけるソースコードと前記ソースコードの特徴の類型との相関関係、ソースコード及び改変履歴と前記ソースコード及び前記改変履歴の特徴の類型との相関関係、ソースコード及びコメントと、前記ソースコード及び前記コメントの特徴の類型との相関関係、又は、コンピュータプログラムにおけるソースコード、コメント及び改変履歴と、前記ソースコード、前記コメント及び前記改変履歴の特徴の類型との相関関係について、人工知能技術である機械学習によって自律的に学習を行うことができる。したがって、高いプログラミング能力を備えていなくとも、容易に、コンピュータプログラムにおけるソースコードに関する特徴を把握することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の機械学習装置に関するブロック図である。
【図２】機械学習の一手法である教師あり学習のためのニューラルネットワークモデルの例を示す図である。
【図３】本発明の機械学習装置の動作フローチャートを示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明を実施するための形態について説明する。なお、以下では本発明の目的を達成するための説明に必要な範囲を模式的に示し、本発明の該当部分の説明に必要な範囲を主に説明することとし、説明を省略する箇所については公知技術によるものとする。
【００１３】
まず、図１に、機械学習装置に関するブロック図を示す。
図１において、１は、ソースコード情報取得対象装置である。また、２は、特徴評価装置である。さらに、３は、機械学習装置を表す。
【００１４】
以下、それぞれの装置について詳細に説明を行う。
【００１５】
ソースコード情報取得対象装置１は、コンピュータやサーバ装置等により実現される。後述する機械学習装置３によって学習を行うためのデータセットを収集する際には、特徴の類型が既知であるコンピュータプログラムのソースコード、コメント、改変履歴が記憶されたコンピュータやサーバ装置がソースコード情報取得対象装置１となる。一方、機械学習装置３によって生成された学習済みモデルを用いて、ソースコード、ソースコード及び改変履歴、ソースコード及びコメント、又は、ソースコード、コメント及び改変履歴から特徴の類型を推論する際は、推論に用いるソースコード、コメント、改変履歴が記憶されたコンピュータやサーバ装置がソースコード情報取得対象装置１となる。
【００１６】
特徴評価装置２は、データ取得手段２１と、出力手段２２とを備えており、コンピュータやサーバ装置として実現されるものである。
【００１７】
データ取得手段２１は、ソースコード情報取得対象装置１から、コンピュータプログラムのソースプログラム、コンピュータプログラムのソースコード及び改変履歴、コンピュータプログラムのソースコード及びコメント、又は、コンピュータプログラムのソースコード、コメント及び改変履歴のデータについて取得し、取得した信号について、後述する機械学習装置３のデータセット記憶手段３１に出力する機能を有する。
【００１８】
出力手段２２は、機械学習装置３が学習した結果である後述する学習済みモデルを受け取る機能、及び、当該学習済みモデルに基づいて、コンピュータプログラムのソースコードから、ソースコードの特徴の類型を推論し、図示しないユーザインタフェース等によってソースコードの特徴の類型を表示することや、コンピュータプログラムのソースコード及び改変履歴から、ソースコード及び改変履歴の特徴の類型を推論し、図示しないユーザインタフェース等によってソースコード及び改変履歴の特徴の類型を表示することや、コンピュータプログラムのソースコード及びコメントから、ソースコード及びコメントの特徴の類型を推論し、図示しないユーザインタフェース等によってソースコード及びコメントの特徴の類型を表示することや、ソースコード、コメント及び改変履歴から、ソースコード、コメント及び改変履歴の特徴の類型を推論し、図示しないユーザインタフェース等によってソースコード、コメント及び改変履歴の特徴の類型を表示することを行う機能を有する。
【００１９】
機械学習装置３は、データセット記憶手段３１と、前処理手段３２と、学習手段３３と、学習済みモデル生成手段３４とを備える。機械学習装置３は、例えばコンピュータやサーバ装置として実現され、特徴評価装置２を一体的に内蔵して実現されてもよいし、特徴評価装置２とは別体として、例えばコンピュータやサーバ装置によって実現されてもよい。サーバ装置によって実現される場合には、例えば特徴評価装置２を使用する使用者にクラウド環境を提供するものであってもよい。
【００２０】
データセット記憶手段３１は、特徴評価装置２を介して得られたコンピュータプログラムのソースコード、コメント、改変履歴のデータについて、既知の特徴の類型ごとに分けて（ラベルを付与して）記憶する機能を有する。そして、記憶したコンピュータプログラムのソースコード、コメント、改変履歴のデータについて、前処理手段３２に出力する機能を有する。
【００２１】
前処理手段３２は、データセット記憶手段３１が出力したコンピュータプログラムのソースコード、コメント、改変履歴のデータを受け取り、機械学習を行うための準備である所定の前処理を施し、学習手段３３に出力する機能を有する。
【００２２】
前処理手段３２が施す所定の前処理とは、機械学習の入力としてコンピュータプログラムのソースコードを用いる場合は、例えば「ｃｏｄｅ２ｖｅｃ」等、公知のプログラミング言語をベクトル化する手法を用い、機械学習の入力としてコンピュータプログラムのソースコード及びコメントを用いる場合は、コメントについて例えば「Ｄｏｃ２Ｖｅｃ」等、公知の自然言語をベクトル化する手法を用いると共に、ソースコード部分について例えば「ｃｏｄｅ２ｖｅｃ」等、公知のプログラミング言語をベクトル化する手法を用い、両手法の結果を結合したベクトルを用いるという方法等を採用することができる。
【００２３】
また、機械学習の入力としてコンピュータプログラムのソースコード及び改変履歴を用いる場合は、改変履歴については、改変前と改変後のソースプログラムについてそれぞれ例えば「ｃｏｄｅ２ｖｅｃ」等の公知のプログラミング言語をベクトル化する手法を用いて改変前後の差分をとることでベクトル化し、ソースコード部分について例えば「ｃｏｄｅ２ｖｅｃ」等、公知のプログラミング言語をベクトル化する手法を用い、ベクトル化された両者を結合したベクトルを用いるという方法等を採用することができる。
【００２４】
さらに、機械学習の入力としてコンピュータプログラムのソースコード、コメント及び改変履歴を用いる場合は、改変履歴については、改変前と改変後のソースプログラムについてそれぞれ例えば「ｃｏｄｅ２ｖｅｃ」等の公知のプログラミング言語をベクトル化する手法を用いて改変前後の差分をとることでベクトル化し、ソースコード部分について例えば「ｃｏｄｅ２ｖｅｃ」等、公知のプログラミング言語をベクトル化する手法を用い、コメントについて例えば「Ｄｏｃ２Ｖｅｃ」等、公知の自然言語をベクトル化する手法を用いい、ベクトル化されたそれぞれを結合したベクトルを用いるという方法等を採用することができる。
【００２５】
学習手段３３は、前処理手段３２によって前処理が施された学習用データセットを用いて、前処理が施されたコンピュータプログラムのソースコードと、既知の特徴の類型との相関関係、前処理が施されたコンピュータプログラムのソースコード及び改変履歴と、既知の特徴の類型との相関関係、前処理が施されたコンピュータプログラムのソースコード及びコメントと、既知の特徴の類型との相関関係、及び／又は、前処理が施されたコンピュータプログラムのソースコード、コメント及び改変履歴と、既知の特徴の類型との相関関係を学習する。学習装置３が学習を行う方法については、以下とおりである。
【００２６】
機械学習装置３は、学習を行う方法として、例えば、ニューラルネットワークを用いた特徴量抽出を採用することができる。
【００２７】
図２は、ニューラルネットワークモデルの例を表している。図２に示すニューラルネットワークモデルにおけるニューラルネットワークは、入力層にあるl個のニューロン、中間層にあるｍ個のニューロン、出力層にあるn個のニューロンから構成されている。中間層は、隠れ層とも呼ばれており、ニューラルネットワークとしては、中間層の他に、さらに複数の隠れ層を有するものであってもよい。
【００２８】
また、入力層と中間層との間、中間層と出力層との間には、層間のニューロンを接続するノードが張られており、それぞれのノードには、重みｗｉが対応づけられている。
【００２９】
ニューラルネットワークモデルにおけるニューラルネットワークは、学習用データセットを用いて、コンピュータプログラムのソースコードと、コンピュータプログラムのソースコードの特徴の類型との相関関係、コンピュータプログラムのソースコード及び改変履歴と、コンピュータプログラムのソースコード及び改変履歴の特徴の類型との相関関係、コンピュータプログラムのソースコード及びコメントと、コンピュータプログラムのソースコード及びコメントの特徴の類型との相関関係、又は、コンピュータプログラムのソースコード、コメント及び改変履歴と、コンピュータプログラムのソースコード、コメント及び改変履歴の特徴の類型との相関関係を学習する。
【００３０】
具体的には、既知の特徴の類型ごとの学習用データセットについて、入力層のニューロンを対応づけ、例えば入力層と同数のニューロンを有する出力層にあるニューロンの値を、一般的なニューラルネットワークの出力値の算出方法、つまり、出力側のニューロンの値を、当該ニューロンに接続される入力側のニューロンの値と、出力側のニューロンと入力側のニューロンとを接続するノードに対応づけられた重みｗｉとの乗算値の数列の和として算出することを、入力層にあるニューロン以外の全てのニューロンに対して行う方法を用いることで、算出する。
【００３１】
そして、算出された出力層にあるニューロンの値と、例えば入力層に対応づけた学習用データセットとを、それぞれ比較して誤差を求め、求められた誤差が小さくなるように、各ノードに対応づけられた重みｗｉを調整することを反復する。
【００３２】
そして、所定の反復回数を行うことや、前記誤差が許容値より小さくなること等の所定の条件が満たされた場合に、学習を終了して、そのニューラルネットワークモデル（のノードのそれぞれに対応づけられた全ての重みｗｉ）を学習済みモデル候補として記憶する。
【００３３】
学習手段３３は、異なる構造を有するモデルや異なる初期値を有するニューロン等の異なる条件を複数用意して、それぞれに対して上述の学習を複数回繰り返し行うことで、複数の学習済みモデル候補を生成する。
【００３４】
その後、学習済みモデル生成手段３４は、複数の学習済みモデル候補に対して、検証用データセットを入力し、その出力結果から、検証結果の優れた学習済みモデルを選定し、選定したものを実行ファイル形式のプログラムや前述の重みｗｉのパラメータセットとしてまとめることで、学習済みモデルを生成し、生成された学習済みモデルを記憶する。
【００３５】
上述の検証用データセットは、学習に用いた学習用データセットと同じ特徴の類型を有し、異なるデータからなるものであればよく、特徴評価装置２からデータセット記憶手段３１に出力されたものを用いてもよく、図示しない外部装置からデータセット記憶手段３１に出力されたものを用いてもよい。
【００３６】
また、学習手段３３が、上述の学習を複数回繰り返すことを行わずに、１つの学習済みモデル候補を生成する構成としてもよく、この場合には、学習済みモデル生成手段３４は、前記１つの学習済みモデル候補を、そのまま学習済みモデルとして生成し、生成された学習済みモデルを記憶する。
【００３７】
そして、学習済みモデル生成手段３４は、生成された学習済みモデルを、特徴評価装置２の出力手段２２に出力する。
【００３８】
出力手段２２は、学習済みモデル生成手段３４が出力した学習済みモデルを受け取り、上述のとおり、受け取った学習済みモデルに基づいて、任意のコンピュータプログラムのソースコードの入力から、ソースコードの特徴の類型（又は特徴の類型のうち最も尤もらしいと出力された類型）を出力し、図示しないユーザインタフェース等によってソースコードの特徴の類型を表示することや、任意のコンピュータプログラムのソースコード及びか改変履歴の入力から、ソースコード及び改変履歴の特徴の類型（又は特徴の類型のうち最も尤もらしいと出力された類型）を出力し、図示しないユーザインタフェース等によってソースコード及び改変履歴の特徴の類型を表示することや、任意のコンピュータプログラムのソースコード及びコメントの入力から、ソースコード及びコメントの特徴の類型（又は特徴の類型のうち最も尤もらしいと出力された類型）を出力し、図示しないユーザインタフェース等によってソースコード及びコメントの特徴の類型を表示することや、任意のコンピュータプログラムのソースコード、コメント及び改変履歴の入力から、ソースコード、コメント及び改変履歴の特徴の類型（又は特徴の類型のうち最も尤もらしいと出力された類型）を出力し、図示しないユーザインタフェース等によってソースコード、コメント及び改変履歴の特徴の類型を表示することを行う
【００３９】
つまり、特徴評価装置２は、機械学習装置３によって自律的に学習され、生成された学習済みモデルによって、コンピュータプログラムのソースコードと、ソースコードの特徴の類型との相関関係、コンピュータプログラムのソースコード及び改変履歴と、ソースコード及び改変履歴の特徴の類型との相関関係、コンピュータプログラムのソースコード及びコメントと、ソースコード及びコメントの特徴の類型との相関関係、又は、コンピュータプログラムのソースコード、コメント及び改変履歴と、コンピュータプログラムのソースコード、コメント及び改変履歴の特徴の類型との相関関係を用いることで、高いプログラミング能力を備えていなくとも、容易に、コンピュータプログラムにおけるソースコードに関する特徴を把握することが可能となる。
【００４０】
これにより、例えば新規にコンピュータプログラマをプログラミングの採用試験を経て採用しようとする場合に、事前に自社の複数のプログラマの作成したコンピュータプログラムのソースコード、コメント、改変履歴を用いて学習した学習済みモデルを作成しておき、当該学習済みモデルを用い、採用試験の被験者の作成したコンピュータプログラムのソースコード、コメント、改変履歴から、自社のプログラマの作成したコンピュータプログラムのソースコード、コメント、改変履歴の特徴の類型を推論することで、被験者のプログラミングの傾向や癖が、自社の複数のプログラマのいずれに類似しているかということや、いずれにも類似していないか等を、高度なプログラミング能力を不要としつつ判断することができる。
【００４１】
次に、本発明における機械学習装置３の動作を、図３に示すフローチャートを用いて説明する。
【００４２】
コンピュータで実現される機械学習装置１は、まず、ステップ１として、上述したように、データセット記憶手段３１を用いて、既知の特徴の類型ごとの学習用データセットを受け取り記憶する。
【００４３】
次に、ステップ２として、前処理手段３２を用いて、上述したように、データセット記憶手段３１に記憶された既知の特徴の類型ごとの学習用データセットについて前処理を施す。
【００４４】
そして、ステップ３として、学習手段３３を用いて、上述したように、前処理された学習用データセットを入力することで、前処理されたソースコードから、ソースコードの特徴の類型を出力する学習モデルを学習する、前処理されたソースコード及び改変履歴から、ソースコード及び改変履歴の特徴の類型を出力する学習モデルを学習する、前処理されたソースコード及びコメントから、ソースコード及びコメントの特徴の類型を出力する学習モデルを学習する、又は、前処理されたソースコード、コメント及び改変履歴から、ソースコード、コメント及び改変履歴の特徴の類型を出力する学習モデルを学習する。
【００４５】
なお、本発明は上述した実施形態に限定されるものではなく、本発明の主旨を逸脱しない範囲内で種々変更して実施することが可能である。そして、それらはすべて、本発明の技術思想に含まれるものである。
【符号の説明】
【００４６】
１      ソースコード情報取得対象装置対象装置
２      特徴評価装置
３      機械学習装置
【図１】
2020009190.tif 000003
【図２】
2020009190.tif 000004
【図３】
2020009190.tif 000005