TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2024089449
公報種別公開特許公報(A)
公開日2024-07-03
出願番号2022204819
出願日2022-12-21
発明の名称検索装置、及び検索方法
出願人株式会社日立製作所
代理人弁理士法人一色国際特許事務所
主分類G06F 8/30 20180101AFI20240626BHJP(計算;計数)
要約【課題】実質的に処理内容が類似する記述部分を的確に抽出することでソースコードのデバッグを行うことを支援する検索装置及び検索方法を提供する。
【解決手段】類似関数検索システム(検索装置)は、入力ソースコードのうち複数の処理単位の各名称部分をマスキングデータで置換した処理単位のデータを学習済みモデルに入力することにより、入力されたソースコードの各処理単位の処理内容の特徴を表す検索対象関数特徴データを、複数の処理単位の夫々について生成し、処理単位の入力を受け付け、受け付けた処理単位のうちその処理単位の名称部分をマスキングデータで置換した処理単位のデータを学習済みモデルに入力することにより、入力された処理単位の処理内容の特徴を表すクエリ関数特徴データを生成し、各検索対象関数特徴データから、それに類似する検索対象関数特徴データを検索し、検索した検索対象関数特徴データに係る処理単位の情報を出力する。
【選択図】図1
特許請求の範囲【請求項1】
ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記処理単位における処理内容の特徴を表すデータを出力する学習済みモデルを記憶する記憶装置、及び、
複数の処理単位を含むソースコードの入力を受け付け、入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力されたソースコードの各処理単位の処理内容の特徴を表すデータである検索対象関数特徴データを、前記複数の処理単位のそれぞれについて生成する検索対象関数特徴データ生成処理と、
処理単位の入力を受け付け、入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力された処理単位の処理内容の特徴を表すデータであるクエリ関数特徴データを生成する検索対象関数特徴データ生成処理と、
前記生成した各検索対象関数特徴データから、前記クエリ関数特徴データに類似する検索対象関数特徴データを検索し、検索した検索対象関数特徴データに係る処理単位の情報を出力する出力処理とを実行する制御装置
を備える、検索装置。
続きを表示(約 3,200 文字)【請求項2】
前記記憶装置は、ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記処理単位における処理内容の特徴を表すデータを、前記処理単位の名称を表すデータと共に出力する学習済みモデルを記憶し、
前記制御装置は、
前記検索対象関数特徴データ生成処理において、前記入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記検索対象関数特徴データを、前記処理単位の名称を表すデータと共に、前記複数の処理単位のそれぞれについて生成し、
前記検索対象関数特徴データ生成処理において、前記入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記クエリ関数特徴データを、前記処理単位の名称を表すデータと共に生成する、
請求項1に記載の検索装置。
【請求項3】
前記記憶装置は、ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記入力されたデータに基づき前記処理単位における処理内容の特徴を表すデータを出力する複数の中間層と、前記処理内容の特徴を表すデータに基づき前記処理内容の名称を表すデータを出力する出力層とを有する学習済みモデルを記憶し、
前記制御装置は、
前記検索対象関数特徴データ生成処理において、前記入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記検索対象関数特徴データを前記中間層の最終層から出力し、前記処理単位の名称を表すデータを前記出力層から出力し、
前記検索対象関数特徴データ生成処理において、前記入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記クエリ関数特徴データを前記中間層の最終層から出力し、前記処理単位の名称を表すデータを前記出力層から出力する、
請求項2に記載の検索装置。
【請求項4】
前記制御装置は、ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータと、前記処理単位の名称を表すデータとの間の関係を学習することにより、前記学習済みモデルを生成し、生成した学習済みモデルを前記記憶装置に記憶する、
請求項3に記載の検索装置。
【請求項5】
前記制御装置は、前記学習済みモデルとして、前記処理単位における処理を構成する各記述部分の間の関係性を学習したTransformerモデルを記憶する、
請求項4に記載の検索装置。
【請求項6】
情報処理装置が、
ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記処理単位における処理内容の特徴を表すデータを出力する学習済みモデルを記憶し、
複数の処理単位を含むソースコードの入力を受け付け、入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力されたソースコードの各処理単位の処理内容の特徴を表すデータである検索対象関数特徴データを、前記複数の処理単位のそれぞれについて生成する検索対象関数特徴データ生成処理と、
処理単位の入力を受け付け、入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力された処理単位の処理内容の特徴を表すデータであるクエリ関数特徴データを生成する検索対象関数特徴データ生成処理と、
前記生成した各検索対象関数特徴データから、前記クエリ関数特徴データに類似する検索対象関数特徴データを検索し、検索した検索対象関数特徴データに係る処理単位の情報を出力する出力処理とを実行する
検索方法。
【請求項7】
前記情報処理装置は、
ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記処理単位における処理内容の特徴を表すデータを、前記処理単位の名称を表すデータと共に出力する学習済みモデルを記憶し、
前記検索対象関数特徴データ生成処理において、前記入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記検索対象関数特徴データを、前記処理単位の名称を表すデータと共に、前記複数の処理単位のそれぞれについて生成し、
前記検索対象関数特徴データ生成処理において、前記入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記クエリ関数特徴データを、前記処理単位の名称を表すデータと共に生成する、
請求項6に記載の検索方法。
【請求項8】
前記情報処理装置は、
ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記入力されたデータに基づき前記処理単位における処理内容の特徴を表すデータを出力する複数の中間層と、前記処理内容の
特徴を表すデータに基づき前記処理内容の名称を表すデータを出力する出力層とを有する学習済みモデルを記憶し、
前記検索対象関数特徴データ生成処理において、前記入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記検索対象関数特徴データを前記中間層の最終層から出力し、前記処理単位の名称を表すデータを前記出力層から出力し、
前記検索対象関数特徴データ生成処理において、前記入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記クエリ関数特徴データを前記中間層の最終層から出力し、前記処理単位の名称を表すデータを前記出力層から出力する、
請求項7に記載の検索方法。
【請求項9】
前記情報処理装置は、ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータと、前記処理単位の名称を表すデータとの間の関係を学習することにより、前記学習済みモデルを生成し、生成した学習済みモデルを前記記憶装置に記憶する、
請求項8に記載の検索方法。
【請求項10】
前記情報処理装置は、前記学習済みモデルとして、前記処理単位における処理を構成する各記述部分の間の関係性を学習したTransformerモデルを記憶する、
請求項9に記載の検索方法。

発明の詳細な説明【技術分野】
【0001】
本発明は、検索装置、及び検索方法に関する。
続きを表示(約 2,000 文字)【背景技術】
【0002】
近年複雑化かつ大型化しているシステム開発業務においては、短期で高品質なシステムを開発することが望まれている。システムが複雑化ないし大型化すると、それに伴いシステムのソースコードの不具合(バグ)が発生する確率が高くなる。そのため、ソースコードのデバッグを網羅的かつ正確に行う必要性はより高まっている。
【0003】
ソースコードのある箇所に不具合が発見された場合、同様の処理を行っている他の箇所にもバグが存在する確率が高い。そのような他の箇所のバグを発見する方法としては従来、ユーザが、不具合に関するキーワード(変数名、又は関数名等)を指定したキーワード検索を行うことや、コードクローンツールを用いることにより不具合に係る処理部分のクローン箇所を確認することが行われている。
【0004】
しかしながら、キーワード検索では、多数の検索結果がヒットし確認の工数が非常に多くなることが多い。また、コードクローンツールを用いても、元の不具合箇所と実質的には同じであるものの記述方法が異なると他の不具合箇所として検出されない場合がある。このようなルールベースの方法では、元の不具合箇所と記述は異なるが意味的には同等である他の不具合箇所を検出することが難しい。
【0005】
この点、機械学習の手法を用いてテキストの類似検索を行う技術として、例えば、特許文献1には、入力クエリから構文解析および前処理された単語のリストを受信し、クエリされているテキスト文書の単語埋込みモデルを使用して、単語のリスト内の単語ごとの関連する分散埋込み表現を計算し、すべての関連する分散埋込み表現の平均またはすべての関連する分散埋込み表現の最大値のうちの一方を使用して、単一の埋込みで入力クエリを表すために、単語のリスト内のすべての単語の関連する分散埋込み表現を集約し、クエリの集約された単語埋込み表現に類似したN行(Nがユーザによって提供される正の整数)の文書セグメントのランク付けされたリストを取得し、取得したセグメントのリストをユーザに返信するコンテキスト・アウェア・データ・マイニングが記載されている。
【先行技術文献】
【特許文献】
【0006】
特表2022-536241号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1は、単語埋込みモデルを用いてテキストを分散表現ベクトルに変換し、ベクトル間の類似度に基づいて類似テキストを検索するものである。
【0008】
しかし、ソースコードには様々な種類の処理が記述され、機能を実現する上で重要な部分と、重要でない部分とが混在していることが多い。このような場合、特許文献1では重要な部分と重要でない部分とを区別せずに学習するため、記述上は類似するが意味的に類似しないコードを抽出したり、逆に記述上は異なるが意味的に類似するコードを抽出しないおそれがある。
【0009】
本発明は、このような事情に鑑みてなされたものであり、その目的は、処理内容が実質
的に類似するソースコードの記述部分を的確に抽出することでソースコードのデバッグを行うことを支援することが可能な検索装置、及び検索方法を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するための本発明の一つは、ソースコードにおける処理単位から当該処理単位に付された名称部分を所定のマスキングデータで置換した処理単位のデータが入力され、前記処理単位における処理内容の特徴を表すデータを出力する学習済みモデルを記憶する記憶装置、及び、複数の処理単位を含むソースコードの入力を受け付け、入力されたソースコードのうち前記複数の処理単位のそれぞれに付された各名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力されたソースコードの各処理単位の処理内容の特徴を表すデータである検索対象関数特徴データを、前記複数の処理単位のそれぞれについて生成する検索対象関数特徴データ生成処理と、処理単位の入力を受け付け、入力された処理単位のうち前記処理単位に付された名称部分を前記マスキングデータで置換した処理単位のデータを前記学習済みモデルに入力することにより、前記入力された処理単位の処理内容の特徴を表すデータであるクエリ関数特徴データを生成する検索対象関数特徴データ生成処理と、前記生成した各検索対象関数特徴データから、前記クエリ関数特徴データに類似する検索対象関数特徴データを検索し、検索した検索対象関数特徴データに係る処理単位の情報を出力する出力処理とを実行する制御装置を備える、検索装置である。
【発明の効果】
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

個人
暗号化記憶媒体
1か月前
個人
環境情報処理装置
15日前
個人
外食予約システム
15日前
個人
求人支援システム
1か月前
個人
電子文書の閲覧用電子機器
1日前
ニデック株式会社
冷却装置
9日前
個人
海外在住支援システム
15日前
個人
サービス提供システム
8日前
カゴメ株式会社
営農支援プログラム
1か月前
カゴメ株式会社
営農支援プログラム
1か月前
カゴメ株式会社
営農支援プログラム
1か月前
カゴメ株式会社
営農支援プログラム
1か月前
個人
施術スタッフ育成システム
2日前
株式会社ワコム
電子ペン
1か月前
株式会社ワコム
電子ペン
18日前
株式会社ワコム
電子ペン
1か月前
シャープ株式会社
情報出力装置
1か月前
大日本印刷株式会社
作業台
1か月前
東洋電装株式会社
操作装置
18日前
東洋電装株式会社
操作装置
18日前
東洋電装株式会社
操作装置
18日前
株式会社寺岡精工
システム
1か月前
トヨタ紡織株式会社
検査装置
1か月前
株式会社SUBARU
画像処理装置
2日前
株式会社カロニマ
情報発信システム
22日前
学校法人修道学園
農地集約システム
8日前
日本信号株式会社
料金精算システム
28日前
株式会社SUBARU
操作制御装置
8日前
旭精工株式会社
管理装置および管理システム
8日前
株式会社アジラ
異常行動検出システム
1か月前
個人
特許審査支援ボットおよびボットシステム
29日前
株式会社デンソー
表示装置
4日前
株式会社京南
洗車システム
1日前
シーアンドアールエム株式会社
広告装置
25日前
個人
AI営業システム
1か月前
個人
スマートフォンにおける使用料金削減方法
29日前
続きを見る