# An Ensemble Approach for Annotating Source Code Identifiers with Part-of-speech Tags

arXiv: https://arxiv.org/abs/2109.00629 · HTML: https://mlsanity.com/paper/2109.00629/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 4 of its 63 references that are in the map.
- First posted on arXiv 1 Sep 2021.

## Builds on (most cited first, 4 of 4)

- [On the Generation, Structure, and Semantics of Grammar Patterns in Source Code Identifiers](https://mlsanity.com/paper/2007.08033/) (2020)
- [Using Grammar Patterns to Interpret Test Method Name Evolution](https://mlsanity.com/paper/2103.09190/) (2021)
- [A Pattern-based Approach to Detect and Improve Non-descriptive Test Names](https://mlsanity.com/paper/2005.05359/) (2020)
- [How We Refactor and How We Document it? On the Use of Supervised Machine Learning Algorithms to Classify Refactoring Documentation](https://mlsanity.com/paper/2010.13890/) (2020)

## Built on by (most cited first, 1 of 1)

- [SCALAR: A Part-of-speech Tagger for Identifiers](https://mlsanity.com/paper/2504.17038/) (2025)

## Abstract (arXiv)

This paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble's annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to promote the future amelioration of these problems through further research. Our results show that the ensemble achieves 75% accuracy at the identifier level and 84-86% accuracy at the word level. This is an increase of +17% points at the identifier level from the closest independent part-of-speech tagger.
