Natural Language Processing in Go

By Matteo Grella

Elevator Pitch

My talk proposal is about spaGO, a work in progress that started as a platform to explore the common territory between Software Engineering and Machine Learning. It is the first and only pure Go library that focuses on cutting-edge NLP neural tech. without requiring any third-party DL framework.


Are you loving Go? But you’re having an affair with NLP?

In this session, I’ll talk about spaGO, a lightweight Machine Learning library written in pure Go designed to support relevant neural architectures in Natural Language Processing.

spaGO makes it possible to create and train your own neural model, or import a pre-trained one from Hugging Face and FlairNLP, without moving to other languages and without the burden of third-party deep learning frameworks (so the deployment is just a single executable for your server!).

I’ll tour the spaGO library’s main packages in a top-down fashion, providing a quick overview of 1. the built-in NLP modules served via gRPC and HTTP JSON API; 2. the straightforward implementation of well-known neural models (e.g., MLP, LSTM, BERT); 2. the underlying mechanism of the internal machine learning framework;

By the end of this talk, you will know how to exploit in your own projects the potential of state-of-the-art neural models for Named Entity Recognition, Sentiment Analysis, Question-Answering, and much more.


I am the author and main maintainer of spaGO. Together with the author of Gorgonia, the first DL framework for Go with GPU support, we are planning to build the best (Go) deep learning ecosystem in 2021/2022.