論文の概要: RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring
- arxiv url: http://arxiv.org/abs/2305.17708v1
- Date: Sun, 28 May 2023 12:29:39 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 05:17:34.661691
- Title: RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring
- Title(参考訳): RefBERT: 自動リネームリファクタリングのための2段階の事前トレーニングフレームワーク
- Authors: Hao Liu, Yanlin Wang, Zhao Wei, Yong Xu, Juhong Wang, Hui Li, Rongrong
Ji
- Abstract要約: 本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
- 参考スコア(独自算出の注目度): 57.8069006460087
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Refactoring is an indispensable practice of improving the quality and
maintainability of source code in software evolution. Rename refactoring is the
most frequently performed refactoring that suggests a new name for an
identifier to enhance readability when the identifier is poorly named. However,
most existing works only identify renaming activities between two versions of
source code, while few works express concern about how to suggest a new name.
In this paper, we study automatic rename refactoring on variable names, which
is considered more challenging than other rename refactoring activities. We
first point out the connections between rename refactoring and various
prevalent learning paradigms and the difference between rename refactoring and
general text generation in natural language processing. Based on our
observations, we propose RefBERT, a two-stage pre-trained framework for rename
refactoring on variable names. RefBERT first predicts the number of sub-tokens
in the new name and then generates sub-tokens accordingly. Several techniques,
including constrained masked language modeling, contrastive learning, and the
bag-of-tokens loss, are incorporated into RefBERT to tailor it for automatic
rename refactoring on variable names. Through extensive experiments on our
constructed refactoring datasets, we show that the generated variable names of
RefBERT are more accurate and meaningful than those produced by the existing
method.
- Abstract(参考訳): リファクタリングは、ソフトウェア進化におけるソースコードの品質と保守性を改善するために欠かせないプラクティスです。
リネームリファクタリングは最も頻繁に実行されるリファクタリングで、識別子の命名が不十分な場合に読みやすさを高めるために識別子の新しい名前を提案する。
しかしながら、既存の作業の多くは、ソースコードの2つのバージョン間のリネームアクティビティのみを識別するが、新しい名前を提案する方法についての懸念を表明する作業はほとんどない。
本稿では,変数名に対する自動リネームリファクタリングについて検討し,他のリネームリファクタリング活動よりも難しいと考えられる。
まず,リネームリファクタリングと一般的な学習パラダイムとの関係,および自然言語処理におけるリネームリファクタリングと一般的なテキスト生成の違いを指摘する。
本稿では,変数名のリファクタリングを行うための2段階事前学習フレームワークRefBERTを提案する。
RefBERTはまず、新しい名前のサブトークン数を予測し、それに従ってサブトークンを生成する。
制約付きマスク付き言語モデリング、コントラスト学習、およびバッグ・オブ・トークンの損失を含むいくつかのテクニックをRefBERTに組み込んで、変数名の自動リネームリファクタリングをカスタマイズする。
構築したリファクタリングデータセットに関する広範な実験を通して、RefBERTの生成した変数名は、既存のメソッドよりも正確で有意義であることを示す。
関連論文リスト
- Context-Enhanced LLM-Based Framework for Automatic Test Refactoring [10.847400457238423]
テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じます。
我々は,Javaプロジェクトにおける自動テストのための文脈拡張型LLMベースのフレームワークUTRefactorを提案する。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
論文 参考訳(メタデータ) (2024-09-25T08:42:29Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - RefSearch: A Search Engine for Refactoring [1.5519338281670214]
RefSearchを使えば、ユーザはフレンドリーなクエリ言語を使ってケースを検索できる。
システムは2つの検出器を使ってインスタンスを収集し、ケースのクエリと閲覧のためのWebインターフェースを提供する。
論文 参考訳(メタデータ) (2023-08-28T03:04:47Z) - Software refactoring and rewriting: from the perspective of code
transformations [0.0]
マイクロパス/ナノパスコンパイラのアイデアを借りることができます。
ソフトウェアのプロシージャをコードを構成するものとして扱うことで、その正確さを手作業で分析できるように、プロセスの表現を十分に短くすることが可能になる。
論文 参考訳(メタデータ) (2023-08-12T17:11:54Z) - How Fragile is Relation Extraction under Entity Replacements? [70.34001923252711]
関係抽出(RE)は、テキストコンテキストからエンティティ名間の関係を抽出することを目的としている。
既存の研究によると、REはエンティティ名パターンをモデル化し、テキストコンテキストを無視しながらRE予測を行う。
これは、REモデルはエンティティの置換に対して堅牢か?」という疑問を提起する動機になります。
論文 参考訳(メタデータ) (2023-05-22T23:53:32Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - VarCLR: Variable Semantic Representation Pre-training via Contrastive
Learning [84.70916463298109]
VarCLRは変数名のセマンティック表現を学ぶための新しいアプローチである。
VarCLRはコントラスト学習に適しており、明示的に類似した入力間の距離を最小化することを目的としている。
VarCLRはBERTのような洗練された汎用言語モデルを効果的に適用できることを示す。
論文 参考訳(メタデータ) (2021-12-05T18:40:32Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z) - Toward the Automatic Classification of Self-Affirmed Refactoring [22.27416971215152]
SAR(Self-Affirmed Refactoring)は、開発者がコミットメッセージでアクティビティをドキュメント化する方法について調査するために導入された。
まず、コミットが開発者関連の事象を記述しているかを識別し、共通の品質改善カテゴリに従って分類する2段階のアプローチを提案する。
我々のモデルは、コミットを正確に分類し、パターンベースのランダムアプローチより優れ、より関連する40のSARパターンを発見できる。
論文 参考訳(メタデータ) (2020-09-19T18:35:21Z) - Empower Entity Set Expansion via Language Model Probing [58.78909391545238]
既存の拡張方法は、コンテキスト特徴を適応的に選択し、新しいエンティティを抽出することで、シードエンティティをブートストラップする。
エンティティセット拡張の鍵となる課題は、クラスセマンティクスをシフトし、後のイテレーションで累積エラーにつながる曖昧なコンテキスト機能を選択することを避けることである。
セマンティックドリフト問題に対処するために、自動生成されたクラス名を活用する新しい反復的集合拡張フレームワークを提案する。
論文 参考訳(メタデータ) (2020-04-29T00:09:43Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。