# MLSmellHound: A Context-Aware Code Analysis Tool

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

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 8 of its 37 references that are in the map.
- First posted on arXiv 8 May 2022.

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

- [AI Lifecycle Models Need To Be Revised. An Exploratory Study in Fintech](https://mlsanity.com/paper/2010.02716/) (2020)
- [Learning Natural Coding Conventions](https://mlsanity.com/paper/1402.4182/) (2014)
- [The Prevalence of Code Smells in Machine Learning projects](https://mlsanity.com/paper/2103.04146/) (2021)
- [Failure Modes in Machine Learning Systems](https://mlsanity.com/paper/1911.11034/) (2019)
- [A large-scale comparative analysis of Coding Standard conformance in Open-Source Data Science projects](https://mlsanity.com/paper/2007.08978/) (2020)
- [Using AntiPatterns to avoid MLOps Mistakes](https://mlsanity.com/paper/2107.00079/) (2021)
- [Switching Scheme: A Novel Approach for Handling Incremental Concept Drift in Real-World Data Sets](https://mlsanity.com/paper/2011.02738/) (2020)
- [Context-Aware Parse Trees](https://mlsanity.com/paper/2003.11118/) (2020)

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

- [Can LLMs Configure Software Tools](https://mlsanity.com/paper/2312.06121/) (2023)

## Abstract (arXiv)

Meeting the rise of industry demand to incorporate machine learning (ML) components into software systems requires interdisciplinary teams contributing to a shared code base. To maintain consistency, reduce defects and ensure maintainability, developers use code analysis tools to aid them in identifying defects and maintaining standards. With the inclusion of machine learning, tools must account for the cultural differences within the teams which manifests as multiple programming languages, and conflicting definitions and objectives. Existing tools fail to identify these cultural differences and are geared towards software engineering which reduces their adoption in ML projects. In our approach we attempt to resolve this problem by exploring the use of context which includes i) purpose of the source code, ii) technical domain, iii) problem domain, iv) team norms, v) operational environment, and vi) development lifecycle stage to provide contextualised error reporting for code analysis. To demonstrate our approach, we adapt Pylint as an example and apply a set of contextual transformations to the linting results based on the domain of individual project files under analysis. This allows for contextualised and meaningful error reporting for the end-user.
