TOP特許意匠商標
特許ウォッチ DM通知 Twitter
10個以上の画像は省略されています。
公開番号2022073981
公報種別公開特許公報(A)
公開日2022-05-17
出願番号2021156668
出願日2021-09-27
発明の名称ソースコード取得
出願人富士通株式会社
代理人個人,個人
主分類G06F 16/33 20190101AFI20220510BHJP(計算;計数)
要約【課題】 検索クエリに応答してユーザにソースコードを効果的に提供する。
【解決手段】 一方法が、訓練コードを取得するステップと、訓練コードから特徴を抽出するステップを含み得る。訓練コードの抽出された特徴は、ディープニューラルネットワークにより自然言語コードベクトルにマッピングされ得る。ソースコード提案を要求する自然言語検索クエリを受信することができ、自然言語検索クエリは、ディープニューラルネットワークにより自然言語検索ベクトルにマッピングされ得る。当該方法は、訓練コードの抽出された特徴を自然言語コードベクトルにマッピングするのと同じ又は類似の方法で自然言語検索クエリを自然言語検索ベクトルにマッピングするステップを含んでもよく、自然言語検索ベクトルは、自然言語コードベクトルと比較され得る。自然言語検索クエリに応答するソースコードが、自然言語検索ベクトルと自然言語コードベクトルと間の比較に基づいて提案され得る。
【選択図】 図1
特許請求の範囲【請求項1】
訓練コードを取得するステップと、
前記訓練コードから特徴を抽出するステップと、
前記抽出された特徴をコードデータセットに記憶するステップと、
ディープニューラルネットワークにより、前記訓練コードからの前記抽出された特徴を自然言語コードベクトルにマッピングするステップと、
ソースコード提案のための自然言語検索クエリを受信するステップと、
前記ディープニューラルネットワークにより、前記自然言語検索クエリを自然言語検索ベクトルにマッピングするステップと、
前記自然言語検索ベクトルを前記自然言語コードベクトルと比較するステップと、
前記自然言語検索ベクトルを自然言語コードベクトルと比較することに基づいてソースコードを用いて前記自然言語検索クエリに応答するステップと、
を含む方法。
続きを表示(約 2,200 文字)【請求項2】
テストケース特徴を生成するステップと、前記テストケース特徴を前記コードデータセットに記憶するステップと、をさらに含み、前記テストケース特徴を生成することは、
前記取得された訓練コードをパースすることと、
前記パースされた訓練コードに基づいて前記パースされた訓練コードのためのテスト実行環境を決定することと、
前記テスト実行環境に基づいて前記パースされた訓練コードの実行を検証することと、
前記パースされた訓練コードのテストケース特徴を生成することであり、前記テストケース特徴は、前記テスト実行環境で前記パースされた訓練コードが実行可能かどうかを示す、ことと、
を含む、請求項1に記載の方法。
【請求項3】
前記訓練コードから特徴を抽出することは、前記訓練コードからコードスニペット、ソフトウェアドキュメンテーション、コードコメント、又はテストケースログのうち少なくとも1つを抽出することを含む、請求項1に記載の方法。
【請求項4】
前記ディープニューラルネットワークは、多層パーセプトロン(MLP)ネットワーク、長短期記憶(LSTM)ネットワーク、及び平均確率的勾配降下重みドロップ長短期記憶(AWD LSTM)ネットワークのうち少なくとも1つを含む、請求項1に記載の方法。
【請求項5】
前記ディープニューラルネットワークにより前記抽出された特徴のためのコードサマリを生成するステップであり、前記コードサマリは、前記抽出された特徴の自然言語記述を含む、ステップ
をさらに含み、
前記抽出された特徴を前記自然言語コードベクトルにマッピングすることは、前記生成されたコードサマリに基づく、請求項1に記載の方法。
【請求項6】
前記自然言語検索ベクトルを前記自然言語コードベクトルと比較することは、前記自然言語検索ベクトルと前記自然言語コードベクトルとの間のコサイン類似度に基づく、請求項1に記載の方法。
【請求項7】
前記自然言語検索クエリを前記自然言語検索ベクトルにマッピングすることは、
前記自然言語検索クエリを第1の自然言語検索セクション及び第2の自然言語検索セクションに編成することと、
前記第1の自然言語検索セクションを第1の自然言語検索ベクトルにマッピングすることと、
前記第2の自然言語検索セクションを第2の自然言語検索ベクトルにマッピングすることと、を含み、
前記自然言語検索ベクトルと前記自然言語コードベクトルとを比較することは、
前記第1の自然言語検索ベクトルを前記自然言語コードベクトルと比較することと、
前記第2の自然言語検索ベクトルを前記自然言語コードベクトルと比較することと、を含み、
前記ソースコードは、さらに、前記第1の自然言語検索ベクトルを前記自然言語コードベクトルと、及び前記第2の自然言語検索ベクトルを前記自然言語コードベクトルと比較することに基づく、
請求項1に記載の方法。
【請求項8】
システムに動作を実行させるコンピュータプログラムであって、前記動作は、
訓練コードを取得することと、
前記訓練コードから特徴を抽出することと、
前記抽出された特徴をコードデータセットに記憶することと、
ディープニューラルネットワークにより、前記訓練コードからの前記抽出された特徴を自然言語コードベクトルにマッピングすることと、
ソースコード提案のための自然言語検索クエリを受信することと、
前記ディープニューラルネットワークにより、前記自然言語検索クエリを自然言語検索ベクトルにマッピングすることと、
前記自然言語検索ベクトルを前記自然言語コードベクトルと比較することと、
前記自然言語検索ベクトルを自然言語コードベクトルと比較することに基づいてソースコードを用いて前記自然言語検索クエリに応答することと、
を含む、コンピュータプログラム。
【請求項9】
テストケース特徴を生成することと、前記テストケース特徴を前記コードデータセットに記憶することと、をさらに含み、前記テストケース特徴を生成することは、
前記取得された訓練コードをパースすることと、
前記パースされた訓練コードに基づいて前記パースされた訓練コードのためのテスト実行環境を決定することと、
前記テスト実行環境に基づいて前記パースされた訓練コードの実行を検証することと、
前記パースされた訓練コードのテストケース特徴を生成することであり、前記テストケース特徴は、前記テスト実行環境で前記パースされた訓練コードが実行可能かどうかを示す、ことと、
を含む、請求項8に記載のコンピュータプログラム。
【請求項10】
前記訓練コードから特徴を抽出することは、前記訓練コードからコードスニペット、ソフトウェアドキュメンテーション、コードコメント、及びテストケースログのうち少なくとも1つを抽出することを含む、請求項8に記載のコンピュータプログラム。
(【請求項11】以降は省略されています)

発明の詳細な説明【技術分野】
【0001】
本開示は、一般にソースコードの取得に関する。
続きを表示(約 3,000 文字)【背景技術】
【0002】
ソースコードの実装を利用するタスクを達成することに関心のあるユーザは、タスクを達成するためにソフトウェアプログラムを効果的に書く方法を理解していないことがあり、タスクを完了するために使用できるソースコードを検索したい場合がある。しかしながら、そのようなソースコードの検索は、現在のアプローチを用いると効果的でない可能性がある。
【0003】
ディープラーニングは、機械学習のサブセットであり、ディープニューラルネットワークは、従来の機械学習モデルの出力より複雑な出力をもたらし得る入力データセットから情報を抽出するために、複数の処理層を使用することがある。ディープラーニングの多層の態様は、ディープラーニングモデルが入力データセットの異なる特性を漸進的に分析することを可能にし、人間の意思決定により類似した高レベルの抽象的な出力を結果としてもたらし得る。
【0004】
本開示において請求される主題事項は、何らかの欠点を解決し又は上記のような環境においてのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載されるいくつかの実施形態が実施され得る1つの例示的な技術分野を示すためにのみ提供される。
【発明の概要】
【0005】
一実施形態の態様によれば、一方法が、1つ以上の訓練コードサーバから訓練コードを取得するステップを含み得る。訓練コードの特徴、例えば、コードスニペット、ソフトウェアドキュメンテーション、及びコードコメントなどが、訓練コードから抽出され、コードデータセットに記憶され得る。訓練コードの抽出された特徴は、ディープニューラルネットワークにより自然言語コードベクトルにマッピングされ得る。自然言語検索クエリを受信することができ、自然言語検索クエリはソースコード提案を要求している。当該方法は、自然言語検索クエリを第1の自然言語検索セクション及び第2の自然言語検索セクションに編成するステップを含んでもよい。自然言語検索クエリは、ディープニューラルネットワークにより自然言語検索ベクトルにマッピングされ得る。当該方法は、訓練コードの抽出された特徴を自然言語コードベクトルにマッピングするのと同じ又は類似の方法で自然言語検索クエリを自然言語検索ベクトルにマッピングするステップを含んでもよく、自然言語検索ベクトルは、自然言語コードベクトルと比較され得る。当該方法は、自然言語検索ベクトルと自然言語コードベクトルとの間のコサイン類似度を使用して、自然言語検索ベクトルと自然言語コードベクトルとの間の関連性を決定するステップを含んでもよい。自然言語検索クエリに応答するソースコードが、自然言語検索ベクトルと自然言語コードベクトルとの間の比較に基づいて提案され得る。
【0006】
実施形態の目的及び利点は、少なくとも特許請求の範囲において特に指し示された要素、特徴、及び組み合わせにより実現され、達成される。前述の一般的な説明及び以下の詳細な説明の双方が説明的であり、請求される発明を限定するものではないことが理解されるべきである。
【図面の簡単な説明】
【0007】
添付の図面を通じてさらなる特定性及び詳細と共に例示的な実施形態について記載し、説明する。
提案ソースコードを用いた自然言語検索クエリへの応答に関する一例示的なシステムを表す図である。
提案ソースコードを用いて自然言語検索クエリに応答する一例示的な方法のフローチャートである。
訓練コードを取得し、訓練コードから特徴を抽出する一例示的な方法のフローチャートである。
訓練コードからの抽出された特徴に基づいてコードサマリを予測する一例示的な方法のフローチャートである。
自然言語検索クエリを第1の自然言語検索セクション及び第2の自然言語検索セクションに編成し、自然言語検索セクションの各々に基づいて提案ソースコードを返す一例示的な方法のフローチャートである。
一例示的なコンピューティングシステムを示す。
【発明を実施するための形態】
【0008】
本開示に記載される実施形態は、検索クエリに応答してユーザにソースコードを効果的に提供することに関し得る。いくつかの状況において、ユーザは、ソースコードを書くことや見つけることに精通しておらず、あるいは熟練していない場合がある。さらに又は代わりに、ユーザは、提案された解決策を実装し又はコードを書くことが困難な場合があり、エラーなしに動作することが知られているソースコードを検索したい場合がある。さらに又は代わりに、ユーザは、ユーザにより書かれたソースコードを改善する方法についてのアイデアを得るためにソースコードを検索したい場合がある。コード検索は、ユーザがユーザの問題に応答するソースコードを見つけることを可能にし得る。いくつかのコード検索システムでは、ユーザは、自然言語検索フレーズを入力することができ、コード検索システムは、周知の情報取り出し方法及びシステムに基づいてソースコードを発見し、取り出すことができる。
【0009】
コード検索の情報取り出し方法は、コード検索を行うユーザに最も対応し役立つソースコードを発見し又は取り出すものでない可能性がある。ユーザにより生成された自然言語検索フレーズの高レベルの意図と、ソースコードにおいて自然言語の単語及びフレーズが使用される低レベルの実装及びコンテキストとの間に、ミスマッチが存在する可能性がある。プログラミング言語と自然言語は、構文構造、同義語、又は単語定義さえも共有しない可能性があり、高レベルの抽象化においてのみ意味的に関連する可能性がある。結果的に、周知の情報取り出し方法に依存するコード検索の結果は、ユーザ生成の検索クエリに最も関連するソースコードを提示しない可能性がある。
【0010】
本開示は、とりわけ、自然言語検索クエリに応答するコード検索結果の精度及び関連性を改善することに向けられ得る。例えば、ディープニューラルネットワークが、潜在的なソースコード結果と自然言語検索クエリとの間のベクトル比較を容易にすることができる。特に、以下でさらに詳細に説明するように、ディープニューラルネットワークを含むコード解析システムが、訓練コードを取得するように構成されてもよく、コード解析システムは、上記訓練コードから、訓練コードの様々な特徴を抽出し、抽出された特徴及び訓練コードを1つ以上のコードデータセットに記憶することができる。コード解析システムは、訓練コードの抽出された特徴を自然言語コードベクトルにマッピングすることができる。さらに、自然言語検索クエリは、自然言語検索ベクトルにマッピングすることができ、自然言語コードベクトルと比較することができる。コード解析システムは、次いで、自然言語検索ベクトルと自然言語コードベクトルとの間の比較に基づいて、自然言語検索クエリに関連する提案ソースコードを返すことができる。
(【0011】以降は省略されています)

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

関連特許

個人
回覧支援システム
23日前
個人
電子旅程システム
23日前
個人
喋るハイテク家電
16日前
株式会社理研
演算装置
11日前
個人
家系図作成システム
24日前
個人
ライフ情報提供装置
23日前
個人
遺言書作成システム
24日前
個人
曲目音声入力システム
16日前
株式会社鶴
管理サーバ
23日前
日本精機株式会社
車載表示装置
1日前
凸版印刷株式会社
メタルカード
4日前
個人
結婚活動支援システム
9日前
個人
ゴーグル表示システム
23日前
HENNGE株式会社
サーバ
19日前
東レ株式会社
シミュレーション方法
19日前
個人
情報提供システム
16日前
シャープ株式会社
家電システム
16日前
個人
統計モデルによる勤務時間の推定
12日前
株式会社ノーリツ
給湯装置
2日前
凸版印刷株式会社
非接触通信ICシート
1日前
ヤマキ有限会社
値引き管理システム
18日前
テルモ株式会社
表示装置
19日前
三菱電機株式会社
映像表示装置
24日前
東洋計器株式会社
ガスの集中監視方法
17日前
オグラ金属株式会社
食品カウンタ装置
3日前
ビィデザイン株式会社
仮想空間システム
16日前
株式会社リコー
情報処理装置および方法
23日前
中国電力株式会社
業務時間管理システム
5日前
ソプラ株式会社
メタデータ抽出プログラム
5日前
沖電気工業株式会社
制御装置
11日前
株式会社野村総合研究所
商品販売システム
25日前
NISSHA株式会社
静電容量方式の圧力センサ
9日前
株式会社野村総合研究所
商品販売システム
25日前
トヨタ自動車株式会社
情報処理装置
12日前
タブソリューション株式会社
情報処理装置
24日前
日本放送協会
物体検出装置及びプログラム
23日前
続きを見る