Mining Structured Data in Natural Language Artifacts with Island Parsing

Alberto Bacchelli, Andrea Mocci, Anthony Cleve, Michele Lanza

Research output: Contribution to journalArticlepeer-review

Abstract

Software repositories typically store data composed of structured and unstructured parts. Researchers mine this data to empirically validate research ideas and to support practitioners' activities. Structured data (e.g., source code) has a formal syntax and is straightforward to analyze; unstructured data (e.g., documentation) is a mix of natural language, noise, and snippets of structured data, and it is harder to analyze. Especially the structured content (e.g., code snippets) in unstructured data contains valuable information. Researchers have proposed several approaches to recognize, extract, and analyze structured data embedded in natural language. We analyze these approaches and investigate their drawbacks. Subsequently, we present two novel methods, based on scannerless generalized LR (SGLR) and Parsing Expression Grammars (PEGs), to address these drawbacks and to mine structured fragments within unstructured data. We validate and compare these approaches on development emails and Stack Overflow posts with JAVA code fragments. Both approaches achieve high precision and recall values, but the PEG-based one achieves better computational performances and simplicity in engineering.

Original languageEnglish
Pages (from-to)31-55
Number of pages25
JournalScience of Computer Programming
Volume150
DOIs
Publication statusPublished - 15 Dec 2017

Keywords

  • Island parsing
  • Mining software repositories
  • Unstructured data

Fingerprint

Dive into the research topics of 'Mining Structured Data in Natural Language Artifacts with Island Parsing'. Together they form a unique fingerprint.

Cite this