# A reproduction of Apple's bi-directional LSTM models for language identification in short strings

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

## Key facts

- Cited by 4 papers in the map (data through 14 Oct 2026).
- Builds on 7 of its 19 references that are in the map.
- First posted on arXiv 11 Feb 2021.

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

- [Enriching Word Vectors with Subword Information](https://mlsanity.com/paper/1607.04606/) (2016)
- [Bag of Tricks for Efficient Text Classification](https://mlsanity.com/paper/1607.01759/) (2016)
- [FastText.zip: Compressing text classification models](https://mlsanity.com/paper/1612.03651/) (2016)
- [Automatic Language Identification in Texts: A Survey](https://mlsanity.com/paper/1804.08186/) (2018)
- [LanideNN: Multilingual Language Identification on Character Window](https://mlsanity.com/paper/1701.03338/) (2017)
- [Discriminating Between Similar Nordic Languages](https://mlsanity.com/paper/2012.06431/) (2020)
- [Automatic Language Identification for Romance Languages using Stop Words and Diacritics](https://mlsanity.com/paper/1806.05480/) (2018)

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

- [Bridging Cultural Nuances in Dialogue Agents through Cultural Value Surveys](https://mlsanity.com/paper/2401.10352/) (2024)
- [ML-On-Rails: Safeguarding Machine Learning Models in Software Systems A Case Study](https://mlsanity.com/paper/2401.06513/) (2024)
- [Modernizing Open-Set Speech Language Identification](https://mlsanity.com/paper/2205.10397/) (2022)
- [Improving Informally Romanized Language Identification](https://mlsanity.com/paper/2504.21540/) (2025)

## Abstract (arXiv)

Language Identification is the task of identifying a document's language. For applications like automatic spell checker selection, language identification must use very short strings such as text message fragments. In this work, we reproduce a language identification architecture that Apple briefly sketched in a blog post. We confirm the bi-LSTM model's performance and find that it outperforms current open-source language identifiers. We further find that its language identification mistakes are due to confusion between related languages.
