(57)【要約】      （修正有）【課題】ソースコードの修正の有無に関わらず、互いに関連する複数のエラー情報を分類して出力する。【解決手段】エラー出力装置１００は、ソースコードをコンパイルするコンパイラ２００から出力されたエラーログＤ１を、複数のカテゴリに分類したカテゴライズドエラーログＤ２に変換して出力する。エラーログＤ１には、複数のエラー情報が含まれる。エラー情報は、例えば、エラー番号、発生個所、埋め込みパラメータなどの要素を含む。エラー番号は、エラーの種類を示す情報である。発生個所は、例えばエラーが発生した行番号によって表される。カテゴライズドエラーログＤ２において同一のカテゴリに分類されたエラー情報は、根本的な原因が共通である可能性が高い。【選択図】図１
2020086928.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデルと、
前記学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定する関連度推定部と、
推定された前記関連度に基づいて前記複数のエラー情報を出力する出力部と
を備えるエラー出力装置。
【請求項２】
デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、前記複数のエラー情報どうしの関連度を特定する関連度特定部と、
前記特定された関連度を用いて前記学習済みモデルを訓練する学習部と
を備える請求項１に記載のエラー出力装置。
【請求項３】
前記関連度特定部は、前記第１のエラー情報群および前記第２のエラー情報群の一方にのみ含まれる複数のエラー情報どうしの関連度を、前記第１のエラー情報群に含まれるエラー情報と前記第２のエラー情報群に含まれるエラー情報との関連度より高いものと特定する
請求項２に記載のエラー出力装置。
【請求項４】
推定された前記関連度に基づいて前記複数のエラー情報を複数のカテゴリに分類する分類部を備え、
前記出力部は、前記複数のカテゴリに基づいて前記エラー情報を出力する
請求項１から請求項３の何れか１項に記載のエラー出力装置。
【請求項５】
ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定するステップと、
推定された前記関連度に基づいて前記複数のエラー情報を出力するステップと
を備えるエラー出力方法。
【請求項６】
コンピュータを、
ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデル、
前記学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定する関連度推定部、
推定された前記関連度に基づいて前記複数のエラー情報を出力する出力部
として機能させるためのプログラム。
【請求項７】
デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定する関連度特定部と、
前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練する学習部と
を備える学習装置。
【請求項８】
デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定するステップと、
前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練するステップと
を備える学習済みモデルの生成方法。
【請求項９】
コンピュータを、
デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定する関連度特定部、
前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練する学習部
として機能させるためのプログラム。
【請求項１０】
デバッグ作業前のコンパイルによって生じた第１のエラー情報群および前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群の少なくとも一方に含まれる複数のエラー情報と、当該複数のエラー情報どうしの関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように訓練された学習済みモデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー出力装置、エラー出力方法、学習装置、学習済みモデルの生成方法、プログラム、および学習済みモデルに関する。
【背景技術】
【０００２】
特許文献１には、ソースコードのコンパイルによって生じる複数のエラー情報を複数のカテゴリに分類して出力する技術が開示されている。特許文献２には、複数の解析ツールによって出力された複数の警告に基づいて、重複する警告を省略して出力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１２６６７１号公報
【特許文献２】特開２００９−１６９５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、複数のエラー情報を、修正により他のエラーも解消するもの、他のエラーの修正により解消するもの、単発のエラー、および新規のエラーからなる４つのカテゴリーに分類する。しかしながら、特許文献１に記載の技術は、ソースコードの修正がなされたときに、修正前後の比較によって分類されるものであって、修正前のソースコードについてエラーの分類をすることができない。
特許文献２に記載の技術では、重複する複数の警告の一部を省略し、表示される警告の量を低減することができるが、複数の警告どうしの関係は不明である。
【０００５】
本発明の目的は、上述した課題を解決するエラー出力装置、エラー出力方法、学習装置、学習済みモデルの生成方法、プログラム、および学習済みモデルを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、エラー出力装置は、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデルと、前記学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定する関連度推定部と、推定された前記関連度に基づいて前記複数のエラー情報を出力する出力部とを備える。
【０００７】
本発明の第２の態様によれば、エラー出力方法は、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定するステップと、推定された前記関連度に基づいて前記複数のエラー情報を出力するステップとを備える。
【０００８】
本発明の第３の態様によれば、プログラムは、コンピュータを、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように学習された学習済みモデル、前記学習済みモデルを用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定する関連度推定部、推定された前記関連度に基づいて前記複数のエラー情報を出力する出力部として機能させる。
【０００９】
本発明の第４の態様によれば、学習装置は、デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定する関連度特定部と、前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練する学習部とを備える。
【００１０】
本発明の第５の態様によれば、学習済みモデルの生成方法は、デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定するステップと、前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練するステップとを備える。
【００１１】
本発明の第６の態様によれば、プログラムは、コンピュータを、デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定する関連度特定部、前記複数のエラー情報と前記特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するようにモデルを訓練する学習部として機能させる。
【００１２】
本発明の第７の態様によれば、学習済みモデルは、デバッグ作業前のコンパイルによって生じた第１のエラー情報群および前記デバッグ作業後のコンパイルによって生じた第２のエラー情報群の少なくとも一方に含まれる複数のエラー情報と、当該複数のエラー情報どうしの関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、前記複数のエラー情報どうしの関連度を出力するように訓練される。
【発明の効果】
【００１３】
上記態様のうち少なくとも１つの態様によれば、ソースコードの修正の有無に関わらず、互いに関連する複数のエラー情報を分類して出力することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係るエラー出力装置の動作の例を示す概略図である。
【図２】第１の実施形態に係るエラー出力装置の動作の例を示す概略図である。
【図３】第１の実施形態に係るエラー出力装置の動作を示すフローチャートである。
【図４】第１の実施形態における学習処理の例を示すフローチャートである。
【図５】エラー出力装置の基本構成を示す概略ブロック図である。
【図６】学習装置の基本構成を示す概略ブロック図である。
【図７】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１５】
〈第１の実施形態〉
以下、図面を参照しながら実施形態について詳しく説明する。
図１は、第１の実施形態に係るエラー出力装置の動作の例を示す概略図である。
エラー出力装置１００は、ソースコードをコンパイルするコンパイラ２００から出力されたエラーログＤ１を、複数のカテゴリに分類したカテゴライズドエラーログＤ２に変換して出力する。エラーログＤ１には、複数のエラー情報が含まれる。エラー情報は、例えば、エラー番号、発生個所、埋め込みパラメータなどの要素を含む。エラー番号は、エラーの種類を示す情報である。発生個所は、例えばエラーが発生した行番号によって表される。また、カテゴライズドエラーログＤ２において同一のカテゴリに分類されたエラー情報は、根本的な原因が共通である可能性が高い。
【００１６】
図２は、第１の実施形態に係るエラー出力装置の動作の例を示す概略図である。
エラー出力装置１００は、入力部１０１、学習済みモデル記憶部１０２、関連度推定部１０３、分類部１０４、出力部１０５、ログ記憶部１０６、差分特定部１０７、関連度特定部１０８、学習部１０９を備える。
【００１７】
入力部１０１は、コンパイラ２００から出力されたエラーログＤ１の入力を受け付ける。
【００１８】
学習済みモデル記憶部１０２は、２つのエラー情報を入力し、２つのエラー情報どうしの関連度を出力するように学習された学習済みモデルを記憶する。２つのエラー情報どうしの関連度とは、当該２つのエラー情報の発生原因の共通性に関する値である。例えば、ソースコードにおけるある文の終止符の欠落により、その文の文末についてのエラーと後続の文についてのエラーとが発生した場合、当該２つのエラー情報は、終止符の欠落という同一の原因によって生じたものであるため、互いに関連度が高い。また、例えば、変数宣言の誤りにより、その変数が未定義である旨の複数のエラーが発生した場合、当該複数のエラー情報は、変数宣言の誤りという同一の原因によって生じたものであるため、互いに関連度が高い。他方、文の終止符の欠落によって生じたエラーと変数宣言の誤りによって生じたエラーとの関連度は低い。
学習済みモデルは、例えばニューラルネットワークなどの機械学習モデルと、学習用データセットによる訓練によって更新されたパラメータの組み合わせによって構成される。機械学習モデルはディープラーニングに係るものであってよい。学習済みモデルは、２つのエラー情報とその関連度との組み合わせからなる学習用データセットによって訓練される。
【００１９】
関連度推定部１０３は、入力部１０１に入力されたエラーログＤ１から、２つのエラー情報のすべての組み合わせ（エラーペア）を抽出する。関連度推定部１０３は、各エラーペアを学習済みモデルに入力することで、各エラーペアの関連度を推定する。
【００２０】
分類部１０４は、関連度推定部１０３によって推定された複数のエラーペアに係る関連度に基づいて、複数のエラー情報を複数のカテゴリに分類する。例えば、分類部１０４は、関連度が所定の閾値以上となるエラーペアに係る２つのエラー情報を、同一のカテゴリに分類する。また例えば分類部１０４は、複数のエラーペアに係る関連度に基づいてクラスタリング処理を行うことでカテゴリの分類を行ってもよい。
【００２１】
出力部１０５は、分類部１０４によって分類されたカテゴリ別に、複数のエラー情報を出力する。出力部１０５は、例えばディスプレイにカテゴリ分けされたエラー情報を表示してよい。また出力部１０５は、例えば外部の記憶媒体にカテゴリ分けされたエラー情報を記録してよい。また出力部１０５は、例えば紙面にカテゴリ分けされたエラー情報を印刷してよい。
【００２２】
ログ記憶部１０６は、入力部１０１に入力されたエラーログＤ１を記憶する。
【００２３】
差分特定部１０７は、入力部１０１に入力されたエラーログＤ１がデバッグ作業後のソースコードに係るものであるか否かを判定する。例えば、差分特定部１０７は、入力されたエラーログＤ１とログ記憶部１０６が記憶するエラーログＤ１とにおいて共通するエラー情報が所定数存在する場合に、デバッグ作業後のソースコードに係るものであると判定する。
差分特定部１０７は、デバッグ前のソースコードのコンパイルによって生成されたエラーログＤ１（第１のエラー情報群）と、デバッグ後のソースコードのコンパイルによって生成されたエラーログＤ１（第２のエラー情報群）との差分を特定する。すなわち、差分特定部１０７は、複数のエラー情報を、デバッグによってなくなったエラー情報、デバッグによって増加したエラー情報、およびデバッグによって変化しなかったエラー情報に分類する。
【００２４】
関連度特定部１０８は、第１のエラー情報群および第２のエラー情報群に含まれる複数のエラー情報から、複数のエラーペアを抽出する。関連度特定部１０８は、差分特定部１０７による分類結果に基づいて、複数のエラーペアそれぞれの関連度を特定する。例えば、関連度特定部１０８は、デバッグによってなくなったエラー情報からなるエラーペアの関連度、およびデバッグによって増加したエラー情報からなるエラーペアの関連度を「１」とする。関連度特定部１０８は、デバッグによって変化しなかったエラー情報からなるエラーペアの関連度を「０．５」とする。関連度特定部１０８は、他のエラーペア（デバッグによってなくなったエラー情報とデバッグによって増加したエラー情報のエラーペア、デバッグによってなくなったエラー情報とデバッグによって変化しなかったエラー情報のエラーペアなど）の関連度を「０」とする。つまり、関連度特定部１０８は、第１のエラー情報群および第２のエラー情報群の一方にのみ含まれるエラー情報からなるエラーペアの関連度を、少なくとも第１のエラー情報群に含まれるエラー情報と少なくとも第２のエラー情報群に含まれるエラー情報とからなるエラーペアの関連度より高いものと特定する。
【００２５】
学習部１０９は、関連度特定部１０８によって特定された複数のエラーペアと、各エラーペアの関連度との組み合わせを学習用データセットとして、学習済みモデルを訓練する。学習済みモデルの訓練は、例えばバックプロパゲーション法によって実行される。学習部１０９は、学習済みモデル記憶部１０２が記憶する学習済みモデルを更新する。
【００２６】
図３は、第１の実施形態に係るエラー出力装置の動作を示すフローチャートである。
コンパイラ２００がエラーログＤ１を出力すると、エラー出力装置１００の入力部１０１は、エラーログＤ１の入力を受け付ける（ステップＳ１）。
【００２７】
エラーログが入力されると、差分特定部１０７は、入力されたエラーログＤ１と、すでにログ記憶部１０６に記憶されたエラーログＤ１とで、共通するエラー情報が所定数以上存在するか否かを判定する（ステップＳ２）。共通するエラー情報が所定数以上存在する場合（ステップＳ２：ＹＥＳ）、差分特定部１０７は、入力されたエラーログＤ１がデバッグ作業後のソースコードのコンパイルによって生成されたエラーログＤ１であると判定する。この場合、エラー出力装置１００は、後述する学習処理を実行する（ステップＳ３）。他方、共通するエラー情報が所定数未満である場合、またはログ記憶部１０６にエラーログＤ１が記憶されていない場合（ステップＳ２：ＮＯ）、差分特定部１０７は、入力されたエラーログＤ１がソースコードの初回のコンパイルによって生成されたエラーログＤ１であると判定する。この場合、エラー出力装置１００は、学習処理を実行しない。
次に、入力部１０１は、ステップＳ１で入力されたエラーログＤ１をログ記憶部１０６に記録する（ステップＳ４）。
【００２８】
次に、関連度推定部１０３は、入力されたエラーログＤ１から取り得るすべてのエラーペアを特定する（ステップＳ５）。関連度推定部１０３は、エラーペアを１つずつ選択し、すべてのエラーペアについて、以下のステップＳ７からステップＳ１０の処理を実行する（ステップＳ６）。関連度推定部１０３は、ステップＳ６で選択したエラーペアを、学習済みモデル記憶部１０２が記憶する学習済みモデルに入力することで、当該エラーペアの関連度を推定する（ステップＳ７）。
【００２９】
分類部１０４は、推定された関連度が所定の閾値以上であるか否かを判定する（ステップＳ８）。関連度が閾値以上である場合（ステップＳ８：ＹＥＳ）、分類部１０４は、エラーペアを構成する２つのエラー情報を同一のカテゴリに分類する（ステップＳ９）。このとき、すでに一方のエラー情報が何らかのカテゴリに分類されている場合、分類部１０４は、他方のエラー情報を当該カテゴリに分類する。またすでに両方のエラー情報がそれぞれ何らかのカテゴリに分類されている場合、分類部１０４は、２つのカテゴリを１つのカテゴリに統合する。他方、関連度が閾値未満である場合（ステップＳ８：ＮＯ）、分類部１０４は、エラーペアを構成する２つのエラー情報を別のカテゴリに分類する（ステップＳ１０）。
【００３０】
すべてのエラーペアについて、ステップＳ７からステップＳ１０の処理が実行されると、出力部１０５は、複数のエラー情報を分類されたカテゴリごとに区別したカテゴライズドエラーログＤ２を生成し、出力する（ステップＳ１１）。これにより、利用者は、根本的な原因が共通する可能性が高いエラー情報をまとめて参照することができる。したがって、例えばエラー情報の数が多い場合においても、カテゴライズドエラーログＤ２におけるカテゴリの数が少ない場合、利用者は、わずかな修正でエラーを解消できる可能性を予見することができる。
【００３１】
ここで、学習済みモデルの学習処理について説明する。
図４は、第１の実施形態における学習処理の例を示すフローチャートである。
入力部１０１に入力されたエラーログＤ１がデバッグ作業後のソースコードのコンパイルによって生成されたエラーログＤ１である場合、差分特定部１０７は、ログ記憶部１０６が記憶するエラーログＤ１と、入力されたエラーログＤ１との差分に基づいて、複数のエラー情報を、デバッグによってなくなったエラー情報、デバッグによって増加したエラー情報、およびデバッグによって変化しなかったエラー情報に分類する（ステップＳ３１）。
【００３２】
関連度特定部１０８は、ログ記憶部１０６が記憶するエラーログＤ１と入力されたエラーログＤ１とから、取り得るすべてのエラーペアを特定する（ステップＳ３２）。関連度特定部１０８は、エラーペアを１つずつ選択し（ステップＳ３３）、すべてのエラーペアについて、ステップＳ３１による分類結果に基づいて関連度を特定する（ステップＳ３４）。
【００３３】
学習部１０９は、ステップＳ３２で特定された複数のエラーペアと、ステップＳ３４で特定した各エラーペアの関連度との組み合わせを学習用データセットとして、学習済みモデルを訓練する（ステップＳ３５）。学習部１０９は、学習済みモデル記憶部１０２が記憶する学習済みモデルを更新する（ステップＳ３６）。
【００３４】
このように、第１の実施形態によれば、エラー出力装置１００は、エラーペアを入力し、エラーペアの関連度を出力するように学習された学習済みモデルを用いて、エラーログに係る複数のエラー情報どうしの関連度を推定し、関連度に基づいて複数のエラー情報を出力する。これにより、エラー出力装置１００は、ソースコードの修正の有無に関わらず、エラーログにおいて互いに関連する複数のエラー情報を分類して出力することができる。なお、他の実施形態においては、学習済みモデルは、エラーペアに限られず、３つ以上のエラー情報の入力を受け付けてもよい。この場合、学習済みモデルは、入力された複数のエラー情報どうしの関連度を推定する。
【００３５】
また、第１の実施形態によれば、エラー出力装置１００は、デバッグ作業前のコンパイルによって生じたエラーログＤ１と、前記デバッグ作業後のコンパイルによって生じたエラーログＤ１とに基づいて、当該エラーログＤ１において取り得る複数のエラーペアの関連度を特定し、当該関連度を用いて学習済みモデルを訓練する。これにより、エラー出力装置１００は、ソースコードのデバッグ作業ごとに自動的に学習用データセットを生成し、学習済みモデルによる関連度の推定精度を向上させることができる。
【００３６】
エラー出力装置１００は、デバッグによってなくなったエラー情報からなるエラーペアの関連度、およびデバッグによって増加したエラー情報からなるエラーペアの関連度を、他のエラーペアの関連度より高いものと特定する。一のデバッグ作業によって、一の原因が除外された場合、当該デバッグによって、当該原因に関連する複数のエラー情報がなくなる。つまり、デバッグによってなくなったエラー情報からなるエラーペアは、互いに関連度が高いといえる。同様に、一のデバッグ作業によって、一の原因が生じた場合、当該デバッグによって、当該原因に関連する複数のエラー情報が増加する。つまり、デバッグによって増加したエラー情報からなるエラーペアは、互いに関連度が高いといえる。このように、エラー出力装置１００は、デバッグ前後の差分によって適切にエラーペアの関連性を特定することができる。
【００３７】
エラー出力装置１００は、推定された関連度に基づいてエラーログＤ１に係る複数のエラー情報を複数のカテゴリに分類し、当該複数のカテゴリに基づいてカテゴライズドエラーログＤ２を出力する。これにより、利用者は、根本的な原因が共通する可能性が高いエラー情報をまとめて参照することができる。
【００３８】
《基本構成》
図５は、エラー出力装置の基本構成を示す概略ブロック図である。
上述した実施形態では、エラー出力装置の一実施形態として図２に示すエラー出力装置１００について説明したが、エラー出力装置の基本構成は、図５に示すとおりである。
すなわち、エラー出力装置５００は、学習済みモデル５０１、関連度推定部５０２、および出力部５０３を基本構成とする。
【００３９】
学習済みモデル５０１は、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、複数のエラー情報どうしの関連度を出力するように学習されたものである。学習済みモデル５０１は、第１の実施形態に係る学習済みモデル記憶部１０２が記憶する学習済みモデルに相当する。
関連度推定部５０２は、学習済みモデル５０１を用いて、ソースコードのコンパイルによって生じた複数のエラー情報どうしの関連度を推定する。関連度推定部５０２は、第１の実施形態に係る関連度推定部１０３に相当する。
出力部５０３は、推定された関連度に基づいて複数のエラー情報を出力する。出力部５０３は、第１の実施形態に係る出力部１０５に相当する。
【００４０】
これにより、エラー出力装置５００は、ソースコードの修正の有無に関わらず、互いに関連する複数のエラー情報を分類して出力することができる。
【００４１】
図６は、学習装置の基本構成を示す概略ブロック図である。
上述した実施形態では、学習装置の一実施形態として図２に示すエラー出力装置１００について説明したが、学習装置の基本構成は、図６に示すとおりである。
すなわち、学習装置６００は、関連度特定部６０１、学習部６０２を基本構成とする。
【００４２】
関連度特定部６０１は、デバッグ作業前のコンパイルによって生じた第１のエラー情報群と、デバッグ作業後のコンパイルによって生じた第２のエラー情報群とに基づいて、複数のエラー情報どうしの関連度を特定する。関連度特定部６０１は、第１の実施形態に係る関連度特定部１０８に相当する。
学習部６０２は、複数のエラー情報と特定された関連度とを含む学習用データセットを用いて、ソースコードのコンパイルによって生じる複数のエラー情報を入力し、複数のエラー情報どうしの関連度を出力するようにモデルを訓練する。学習部６０２は、第１の実施形態に係る学習部１０９に相当する。
【００４３】
これにより、学習装置６００は、ソースコードの修正の有無に関わらず、エラー情報の関連度を特定するように、モデルを訓練することができる。
【００４４】
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限らず、様々な設計変更等をすることが可能である。
例えば、第１の実施形態に係るエラー出力装置１００は、コンパイラ２００と別個に設けられるがこれに限らない。例えば、他の実施形態においては、コンパイラ２００がエラー出力装置１００の機能を有するものであってもよい。
【００４５】
また第１の実施形態に係るエラー出力装置１００は、学習済みモデルを用いた関連度の推定と、学習済みモデルの学習とを行うが、これに限らない。例えば、他の実施形態においては、エラー出力装置１００は、学習済みモデルの学習処理を行わないものであってもよい。すなわち他の実施形態に係るエラー出力装置１００は、ログ記憶部１０６、差分特定部１０７、関連度特定部１０８、および学習部１０９を備えなくてもよい。この場合、学習装置がエラー出力装置１００と別個に設けられるものであってもよい。
【００４６】
また、第１の実施形態に係るエラー出力装置１００は、入力されたエラーログＤ１について、前回のエラーログＤ１との共通箇所を特定することで、当該エラーログＤ１がデバッグ作業に係るものであるか否かを判定するが、これに限られない。例えば、他の実施形態に係るエラー出力装置１００は、入力部１０１が受け付けたエラーログＤ１について利用者からデバッグに係るか否かを示す情報を取得し、これに基づいてエラーログＤ１がデバッグ作業に係るものであるか否かを判定してもよい。また、他の実施形態に係るエラー出力装置１００は、ソースコードの比較によって、エラーログＤ１がデバッグ作業に係るものであるか否かを判定してもよい。
【００４７】
図７は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ９０は、プロセッサ９１、メインメモリ９２、ストレージ９３、インタフェース９４を備える。
上述のエラー出力装置１００、エラー出力装置５００、および学習装置６００は、コンピュータ９０に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ９３に記憶されている。プロセッサ９１は、プログラムをストレージ９３から読み出してメインメモリ９２に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ９１は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ９２に確保する。
プログラムは、コンピュータ９０に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージに既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータは、上記構成に加えて、または上記構成に代えてＰＬＤ（Programmable Logic Device）などのカスタムＬＳＩ（Large Scale Integrated Circuit）を備えてもよい。ＰＬＤの例としては、ＰＡＬ(Programmable Array Logic)、ＧＡＬ(Generic Array Logic)、ＣＰＬＤ(Complex Programmable Logic Device)、ＦＰＧＡ（Field Programmable Gate Array）が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【００４８】
ストレージ９３の例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。ストレージ９３は、コンピュータ９０のバスに直接接続された内部メディアであってもよいし、インタフェース９４または通信回線を介してコンピュータ９０に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ９０に配信される場合、配信を受けたコンピュータ９０が当該プログラムをメインメモリ９２に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ９３は、一時的でない有形の記憶媒体である。
【００４９】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ９３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００５０】
１００  エラー出力装置
１０１  入力部
１０２  学習済みモデル記憶部
１０３  関連度推定部
１０４  分類部
１０５  出力部
１０６  ログ記憶部
１０７  差分特定部
１０８  関連度特定部
１０９  学習部
２００  コンパイラ
Ｄ１  エラーログ
Ｄ２  カテゴライズドエラーログ
【図１】
2020086928.tif 000003
【図２】
2020086928.tif 000004
【図３】
2020086928.tif 000005
【図４】
2020086928.tif 000006
【図５】
2020086928.tif 000007
【図６】
2020086928.tif 000008
【図７】
2020086928.tif 000009