[논문 리뷰] Machine Learning Based Source Code Classification Using Syntax Oriented Features
이 논문은 소스 코드에서 추출한 문법 중심 특징을 활용한 기계학습 기반의 자동 프로그래밍 언어 식별 방법을 제안한다. 문법 생성 규칙를 특징으로 모델링하고 최대 엔트로피 분류기로 훈련시킴으로써, 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.
연구 동기 및 목표
- 대규모 코드베이스에서 수동 또는 확장자 기반의 프로그래밍 언어 식별 방식의 한계를 해결하기 위해.
- 생산 수준의 요구사항을 충족하는 완전 자동화되고 확장 가능한 소스 코드 언어 분류 솔루션을 개발하기 위해.
- 문법 기반 특징을 활용하여 다양한 프로그래밍 언어에 대해 정확도와 커버리지를 향상시키기 위해.
- 실제 소프트웨어 공학 도구에 구현할 수 있도록 확장성과 고성능을 확보하기 위해.
제안 방법
- 소스 코드 파일을 구문 분석하여 문법 유사 생성 규칙을 식별함으로써 문법 중심 특징을 추출하기 위해.
- 이러한 문법 생성 규칙을 기계학습에 적합한 수치형 특징으로 변환하기 위해.
- 라벨이 부여된 훈련 데이터를 사용하여 추출된 특징에 대해 최대 엔트로피 분류기를 훈련하기 위해.
- 29개의 인기 있는 프로그래밍 언어로 구성된 다양한 데이터셋을 사용하여 모델을 검증하기 위해.
- 분류 이전에 특징 표현을 정규화하고 표준화하기 위해 파일 전처리를 수행하기 위해.
- 구조화된 특징 표현을 사용하여 문법적 구성 요소를 모방함으로써 분류 성능을 향상시키기 위해.
실험 결과
연구 질문
- RQ1기계학습 모델이 문법 인식 특징을 활용하여 소스 코드를 프로그래밍 언어로 높은 정확도로 분류할 수 있는가?
- RQ2제안된 방법이 29개의 인기 있는 프로그래밍 언어에 대해 얼마나 잘 일반화되는가?
- RQ3확장자 기반 또는 간단한 토큰 수 기반 전통적 방법에 비해 문법 기반 특징을 사용할 경우 성능이 향상되는가?
- RQ4새로운 언어에 대한 확장성과 함께 높은 성능과 확장성을 유지할 수 있는가?
주요 결과
- 제안된 방법은 29개의 인기 있는 프로그래밍 언어를 식별하는 데 99%의 정확도를 달성하였다.
- 최대 엔트로피 분류기는 다양한 언어의 문법을 고려할 때도 강력한 일반화 능력과 강인성을 보였다.
- 문법 중심 특징은 히ュ리스틱 또는 확장자 기반 방법에 비해 분류 성능을 크게 향상시켰다.
- 시스템은 높은 정확도, 넓은 언어 커버리지, 확장성 등의 핵심 생산 수준 기준을 충족하였다.
- 이 방법은 효율적이고 확장 가능하여 대규모 소프트웨어 분석 파이프라인에 통합하기 적합하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.