Skip to main content
QUICK REVIEW

[논문 리뷰] Natural Language or Not (NLoN) - A Package for Software Engineering Text Analysis Pipeline

Mika Mäntylä, Fabio Calefato|arXiv (Cornell University)|2018. 03. 20.
Software Engineering Research참고 문헌 16인용 수 12
한 줄 요약

이 논문은 소프트웨어 공학 텍스트를 자연어인지 여부로 분류하는 데 사용되는 오픈소스 R 패키지인 NLoN을 소개한다. 이는 11개의 언어학적 특징과 문자 3-그램을 사용하며, 라소 회귀 모델을 통해 훈련되어 Mozilla, Kubernetes, Lucene의 세 가지 다른 데이터 소스에서 AUC 점수 0.976에서 0.987 사이를 기록한다. 이는 소프트웨어 공학 파ip라인 내 NLP 전처리를 위한 경량이며 재사용 가능한 솔루션을 제공한다.

ABSTRACT

The use of natural language processing (NLP) is gaining popularity in software engineering. In order to correctly perform NLP, we must pre-process the textual information to separate natural language from other information, such as log messages, that are often part of the communication in software engineering. We present a simple approach for classifying whether some textual input is natural language or not. Although our NLoN package relies on only 11 language features and character tri-grams, we are able to achieve an area under the ROC curve performances between 0.976-0.987 on three different data sources, with Lasso regression from Glmnet as our learner and two human raters for providing ground truth. Cross-source prediction performance is lower and has more fluctuation with top ROC performances from 0.913 to 0.980. Compared with prior work, our approach offers similar performance but is considerably more lightweight, making it easier to apply in software engineering text mining pipelines. Our source code and data are provided as an R-package for further improvements.

연구 동기 및 목표

  • 소프트웨어 공학 텍스트 마이닝 파이프라인에서 코드, 로그, 스택 트레이스와 같은 비자연어 텍스트와 자연어 텍스트를 구분하는 도전 과제를 해결하기 위해.
  • 기존 솔루션에서 요구하는 데이터베이스 덤프나 맞춤형 파서가 필요로 하지 않는 경량이며 재사용 가능한 도구를 개발하기 위해.
  • 최소한의 수동 레이블링(~2,000줄에 4시간 내외)으로 새로운 소프트웨어 프로젝트에 효율적으로 적용 가능한 분류기를 개발하기 위해.
  • 다양한 소프트웨어 공학 텍스트 소스에 걸쳐 더 잘 일반화되는 정규 표현식의 기계학습 기반 대안을 제공하기 위해.
  • 감성 분석 및 토픽 모델링과 같은 NLP 작업을 위해 처리 전에 비자연어 콘텐츠를 걸러내는 데 지원하기 위해.

제안 방법

  • NLoN 패키지는 정지어 비율, 대문자 빈도,标점 수와 같은 11개의 언어학적 특징을 사용하여 입력 텍스트를 특성화한다.
  • 언어 감지 문헌에서 영감을 얻어 언어별 패턴을 포착하기 위해 문자 3-그램을 특징 집합으로 통합한다.
  • 인간 레이블링 데이터를 기반으로 Glmnet 라이브러리의 라소 회귀 모델을 훈련하여 각 줄을 자연어 또는 아니면로 분류한다.
  • 기본 진실은 두 명의 인간 평가자 간의 일致도를 통해 확보되며, 이는 레이블링 품질을 검증하는 데 사용된다.
  • 모델은 프로젝트별 데이터(최대 2,000줄)로 훈련되며, 10겹 교차검증과 교차소스 예측을 통해 평가된다.
  • 이 도구는 오픈소스 R 패키지로 구현되어 소프트웨어 공학 텍스트 분석 파이프라인 내에서 쉽게 통합 및 확장할 수 있다.

실험 결과

연구 질문

  • RQ1소프트웨어 공학 자료에서 비자연어 텍스트(예: 코드, 로그, 스택 트레이스)와 자연어 텍스트를 효과적으로 구분할 수 있는 경량의 기계학습 기반 분류기가 존재하는가?
  • RQ2NLoN 모델은 버그 리포트, 채팅 로그, 이메일 등 다양한 소프트웨어 공학 데이터 소스 간에 얼마나 잘 일반화되는가?
  • RQ3기존 연구 대비 NLoN 모델의 성능은 AUC 및 계산의 단순성 측면에서 어떻게 평가되는가?
  • RQ4여러 프로젝트 간에 공통 모델을 사용할 경우 프로젝트별 훈련 대비 성능 저하 정도는 어느 정도인가?
  • RQ5복잡한 설정 없이 최소한의 인간 노력으로 새로운 프로젝트에 효과적으로 적응시킬 수 있는가?

주요 결과

  • NLoN 모델은 Mozilla Firefox, Kubernetes, Apache Lucene의 세 가지 다른 소프트웨어 프로젝트에서 수집한 데이터를 훈련 및 테스트한 결과, 수신기 작동 특성 곡선 아래 면적(AUC)이 0.976에서 0.987 사이로 기록된다.
  • 교차소스 예측 성능은 낮지만 여전히 우수하며, AUC 범위는 0.913에서 0.980로, 좋은 일반화 잠재력을 보이며, 소스 방향에 따라 성능이 다소 차이가 난다.
  • 모든 가용 데이터를 사용해 훈련하는 것과 프로젝트별 데이터를 사용하는 것 간에 성능 향상 또는 저하가 없으며, 이는 모델의 일반화 능력이 뛰어나다는 것을 시사한다.
  • 모델은 동일한 소스에서 훈련된 경우 가장 뛰어난 성능을 보이며, Mozilla 이슈 커멘트에서 AUC 0.987, Lucene 이메일에서 AUC 0.981 기록.
  • Kubernetes 채팅 메시지 데이터로 훈련된 모델이 Mozilla 이슈 커멘트를 예측할 경우 AUC 0.980로 높은 성능 유지되며, 일부 방향에서 강력한 프로젝트 간 전이 가능성을 보여준다.
  • 강력한 성능에도 불구하고, Mozilla 커멘트와 Kubernetes 채팅 메시지에서 Lucene 이메일로의 교차예측은 가장 낮은 결과(AUC 0.913)를 기록하여 도메인 특화된 차이가 모델 일반화에 영향을 줄 수 있음을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.