> Markdown version of [/videos/701-vikings-language-the-speech-of-the-king-vasa-or-today-s-swedish-text-classification-with-ml-net?t=1442](https://www.wearedevelopers.com/videos/701-vikings-language-the-speech-of-the-king-vasa-or-today-s-swedish-text-classification-with-ml-net?t=1442). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Vikings language, the speech of the king Vasa or today's Swedish? Text classification with ML.NET. A model once classified Polish as Viking runes. Garbage in, garbage out. Learn to master data prep and build accurate text classifiers in C# using ML.NET. - **Speakers:** Daniel Gaszewski - **Event:** World Congress 2023 - **Published:** September 27, 2023 - **Duration:** 27:51 - **URL:** https://www.wearedevelopers.com/videos/701-vikings-language-the-speech-of-the-king-vasa-or-today-s-swedish-text-classification-with-ml-net ## Summary The evolution of language poses a unique challenge when classifying historical texts—spanning from ancient Viking runes to Old Swedish and contemporary vernacular. Inspired by a university linguistics exam, this talk explores how to build a predictive system capable of identifying the precise historical period of a text sample utilizing machine learning. Rather than getting bogged down in complex mathematical formulas, the solution leverages ML.NET, Microsoft's open-source framework that allows .NET developers to seamlessly generate, train, and integrate machine learning models directly within Visual Studio using C#. The core of the development process highlights that algorithm selection is rarely a developer's biggest hurdle; instead, data preparation is the most resource-intensive phase. Transforming messy, corrupted rune databases and harmonizing completely different grammar conventions required meticulous pre-processing, formatting, and feature extraction. Building a reliable model also required experimenting with training time parameters—scaling from 10 seconds to 120 seconds to achieve accurate distribution probabilities and prevent the model from failing. A critical takeaway from the project is a strict "garbage in, garbage out" reality: because the initial model lacked robust filtering for entirely foreign text, it hallucinated 100% certainty that Polish text was Viking runic. To avoid this, maintaining class balance across training data samples is essential for model reliability. Ultimately, ML.NET acts as a powerful abstraction layer, democratizing AI for software engineers and proving that building predictive models is "like cooking your favorite meal based on your grandma's recipe without attending culinary school." **Keywords:** ml.net framework, historical text classification, c# machine learning, data pre-processing challenges, visual studio model builder, model training optimization, handling messy language datasets, machine learning in dotnet, text feature extraction, predictive modeling pipelines, machine learning data cleaning, garbage in garbage out pattern, classification probability distribution, ai model integration ## Chapters 1. **Introduction to classifying historical text periods** (00:02) — How machine learning can identify the historical period of a given piece of text. 1. **Personal inspiration for building a text classification model** (01:56) — How studying academic exams and historical documents like Nobel certificates motivated a classification tool. 1. **Understanding how natural and programming languages evolve** (05:39) — How natural languages and programming syntax fundamentally evolve their structures over time. 1. **Tracing the historical evolution of the Swedish language** (06:50) — The major distinct historical periods outlining the development of Swedish spelling and grammar. 1. **Building machine learning workflows with the ML.NET framework** (12:49) — An introduction to ML.NET capabilities and the six fundamental steps of model implementation. 1. **Collecting and preprocessing historical datasets for model training** (15:18) — The extensive process of cleaning unstructured historical text data prior to model training. 1. **Configuring and training classification models in Visual Studio** (18:07) — A walkthrough of categorizing CSV records, setting target data columns, and generating probability distribution predictions. 1. **Testing the trained classification model via console application** (21:34) — Running text predictions through a console application and troubleshooting edge cases caused by unrefined inputs. 1. **Question and answer on predictions, tooling, and datasets** (24:02) — Audience questions about projecting future language patterns, selecting ML.NET over Python, and data balance. ## Related Moments - [Evolution and impact of large language models](https://www.wearedevelopers.com/videos/899-creating-industry-ready-solutions-with-llm-models) (from "Creating Industry ready solutions with LLM Models") - [Understanding the evolution and nature of large language models](https://www.wearedevelopers.com/videos/1010-bringing-the-power-of-ai-to-your-application) (from "Bringing the power of AI to your application.") - [Overview of ML.NET for .NET developers](https://www.wearedevelopers.com/videos/272-machine-learning-in-ml-net) (from "Machine Learning in ML.NET") - [Capabilities and applications of large language models](https://www.wearedevelopers.com/videos/1218-data-privacy-in-llms-challenges-and-best-practices) (from "Data Privacy in LLMs: Challenges and Best Practices") - [Demystifying language models using core statistical linguistics formulas](https://www.wearedevelopers.com/videos/1797-wearedevelopers-live-php-is-alive-and-kicking-and-more) (from "WeAreDevelopers LIVE – PHP Is Alive and Kicking and More") - [Tracing the historical encoding of human language processing](https://www.wearedevelopers.com/videos/1797-wearedevelopers-live-php-is-alive-and-kicking-and-more) (from "WeAreDevelopers LIVE – PHP Is Alive and Kicking and More") ## Related Articles - [What Are Large Language Models?](https://www.wearedevelopers.com/magazine/304-what-are-large-language-models) - [MLops – Deploying, Maintaining And Evolving Machine Learning Models in Production](https://www.wearedevelopers.com/magazine/115-mlops-deploying-maintaining-and-evolving-machine-learning-models-in-production) - [MLOps And AI Driven Development](https://www.wearedevelopers.com/magazine/82-mlops-and-ai-driven-development) - [WWC24 Talk - Scott Hanselman - AI: Superhero or Supervillain?](https://www.wearedevelopers.com/magazine/469-wwc24-talk-scott-hanselman-ai-superhero-or-supervillain) ## Related Jobs - [Machine Learning Engineer](https://www.wearedevelopers.com/jobs/ext/588393-machine-learning-engineer) at **Twilio** - [Machine Learning Engineer](https://www.wearedevelopers.com/jobs/ext/1355348-machine-learning-engineer) at **TWILIO** - [AI Software Engineer (Germany)](https://www.wearedevelopers.com/jobs/48317-ai-software-engineer-germany) at **Sunhat** - [Staff, Machine Learning Engineer (L4)](https://www.wearedevelopers.com/jobs/ext/1202639-staff-machine-learning-engineer-l4) at **Twilio** - [Machine Learning Engineer](https://www.wearedevelopers.com/jobs/ext/1597388-machine-learning-engineer) at **ZEISS Group** - [Machine Learning Engineer](https://www.wearedevelopers.com/jobs/ext/1377841-machine-learning-engineer) at **Almedia**