
The Best Go Libraries For Natural Language Processing (49)
Discover the best Go libraries for Natural Language Processing! Find the perfect tools to streamline your development and boost productivity. From ctxi18n to detectlanguage, we've got you covered. Let the coding begin!
ctxi18n
Context aware i18n with a short and consise API, pluralization, interpolation, and `fs.FS` support. YAML locale definitions are based on [Rails i18n](https://guides.rubyonrails.org/i18n.html)
detectlanguage
Language Detection API Go Client. Supports batch requests, short phrase or single word language detection
getlang
Fast natural language detection package
guesslanguage
Functions to determine the natural language of a unicode text
golibstemmer
Go bindings for the snowball libstemmer library including porter 2
gosentiwordnet
Sentiment analyzer using sentiwordnet lexicon in Go
govader
Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment)
govader-backend
Microservice implementation of [GoVader](https://github.com/jonreiter/govader)
paicehusk
Golang implementation of the Paice/Husk Stemming Algorithm
RAKE.go
Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE)
snowball
Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/)
spaGO
Self-contained Machine Learning and Natural Language Processing library in Go
slug
URL-friendly slugify with multiple languages support
MMSEGO
This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm
shamoji
The shamoji is word filtering package written in Go
stemmer
Stemmer packages for Go programming language. Includes English and German stemmers
textcat
Go package for n-gram based text categorization, with support for utf-8 and raw text
go-mystem
CGo bindings to Yandex.Mystem - russian morphology analyzer
go-pinyin
CN Hanzi to Hanyu Pinyin converter
enca
Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings
go-unidecode
ASCII transliterations of Unicode text
transliterator
Provides one-way string transliteration with supporting of language-specific transliteration rules
gounidecode
Unicode transliterator (also known as unidecode) for Go
lingua-go
An accurate natural language detection library, suitable for long and short text alike. Supports detecting multiple languages in mixed-language text
whatlanggo
Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc)
go-stem
Implementation of the porter stemming algorithm
libtextcat
Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2
nlp
Go Natural Language Processing library supporting LSA (Latent Semantic Analysis)
nlp
Extract values from strings and fill your structs with nlp.
spelling-corrector
A spelling corrector for the Spanish language or create your own
gse
Go efficient text segmentation; support english, chinese, japanese and other
prose
Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only.
segment
Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/)
sentences
Sentence tokenizer: converts text into a list of sentences
t
Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template
go2vec
Reader and utility functions for word2vec embeddings
go-propisyu
Convert numbers to Russian words with correct grammatical gender and noun declension
kagome
JP morphological analyzer written in pure Go
porter
This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm
porter2
Really fast Porter 2 stemmer
go-slugify
Make pretty slug with multiple languages support
Slugify
Go slugify application that handles string
gojieba
This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm
gotokenizer
A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)
go-i18n
Package and an accompanying tool to work with localized text
go-words
A words table and text resource library for Golang projects
gotext
GNU gettext utilities for Go
iuliia-go
Transliterate Cyrillic → Latin in every possible way
spreak
Flexible translation and humanization library for Go, based on the concepts behind gettext