[論文レビュー] Machine Learning Based Source Code Classification Using Syntax Oriented Features
この論文では、ソースコードから抽出した構文指向特徴を用いた機械学習的手法を提案し、自動プログラミング言語識別を実現する。文法生成規則を特徴量としてモデル化し、Maximum Entropy分類器を訓練することで、29種類の一般的なプログラミング言語を99%の正確さで識別することができ、生産用途に適した正確さ、カバレッジ、拡張性、パフォーマンスという主な基準を満たしている。
As of today the programming language of the vast majority of the published source code is manually specified or programmatically assigned based on the sole file extension. In this paper we show that the source code programming language identification task can be fully automated using machine learning techniques. We first define the criteria that a production-level automatic programming language identification solution should meet. Our criteria include accuracy, programming language coverage, extensibility and performance. We then describe our approach: How training files are preprocessed for extracting features that mimic grammar productions, and then how these extracted grammar productions are used for the training and testing of our classifier. We achieve a 99 percent accuracy rate while classifying 29 of the most popular programming languages with a Maximum Entropy classifier.
研究の動機と目的
- 大規模なコードベースにおける手動または拡張子ベースのプログラミング言語識別の限界を解消すること。
- 生産レベルの要件を満たす完全に自動化されスケーラブルなソースコード言語分類ソリューションを開発すること。
- 文法にインspiredされた特徴を用いて、多様なプログラミング言語における正確さとカバレッジを向上させること。
- 実世界のソフトウェアエンジニアリングツールへの実装を想定し、拡張性と高いパフォーマンスを確保すること。
提案手法
- ソースコードファイルを解析して、文法に類似した生成規則を特定することで、構文指向の特徴を抽出する。
- これらの文法生成規則を機械学習に適した数値特徴量に変換する。
- ラベル付き学習データを用いて抽出した特徴量でMaximum Entropy分類器を訓練する。
- 29種類の一般的なプログラミング言語からなる多様なデータセットを用いてモデルを検証する。
- 分類の前に、特徴表現を正規化および標準化するための前処理を実施する。
- 構文的構造を模倣する構造化された特徴表現を用いることで、識別性能を向上させる。
実験結果
リサーチクエスチョン
- RQ1構文に配慮した特徴を用いた機械学習モデルは、ソースコードをプログラミング言語に高精度に分類できるか?
- RQ2提案手法は、29種類の一般的なプログラミング言語に広く一般化できるか?
- RQ3文法にインspiredされた特徴を用いることで、拡張子ベースや単純なトークン数に基づく従来手法を上回る性能が得られるか?
- RQ4新しい言語への対応を維持しつつ、高いパフォーマンスとスケーラビリティを確保できるか?
主な発見
- 提案手法は、29種類の一般的なプログラミング言語を99%の正確さで分類する。
- Maximum Entropy分類器は、多様な言語構文に対して優れた一般化性能と頑健性を示した。
- 構文指向の特徴は、ヒューリスティック的または拡張子ベースの手法と比較して、分類性能を顕著に向上させた。
- 高い正確さ、広範な言語カバレッジ、拡張性といった、生産レベルの要件を満たしている。
- 効率的かつスケーラブルなため、大規模なソフトウェア分析パイプラインへの統合に適している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。