Awesome Go

Natural Language Processing

49 libraries in this category

go-i18n

Package and an accompanying tool to work with localized text

3,547Natural Language ProcessingTranslation
prose

Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only.

3,052Natural Language ProcessingLibraries for working with human languages.
gse

Go efficient text segmentation; support english, chinese, japanese and other

2,844Natural Language ProcessingTokenizers
gojieba

This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm

2,646Natural Language ProcessingTokenizers
spaGO

Self-contained Machine Learning and Natural Language Processing library in Go

1,852Natural Language ProcessingMorphological Analyzers
go-pinyin

CN Hanzi to Hanyu Pinyin converter

1,796Natural Language ProcessingTranslation
lingua-go

An accurate natural language detection library, suitable for long and short text alike. Supports detecting multiple languages in mixed-language text

1,366Natural Language ProcessingLanguage Detection
slug

URL-friendly slugify with multiple languages support

1,334Natural Language ProcessingSlugifiers
kagome

JP morphological analyzer written in pure Go

984Natural Language ProcessingMorphological Analyzers
whatlanggo

Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc)

695Natural Language ProcessingLanguage Detection
gotext

GNU gettext utilities for Go

512Natural Language ProcessingTranslation
nlp

Go Natural Language Processing library supporting LSA (Latent Semantic Analysis)

477Natural Language ProcessingMorphological Analyzers
sentences

Sentence tokenizer: converts text into a list of sentences

473Natural Language ProcessingTokenizers
nlp

Extract values from strings and fill your structs with nlp.

389Natural Language ProcessingLibraries for working with human languages.
getlang

Fast natural language detection package

176Natural Language ProcessingLanguage Detection
go-unidecode

ASCII transliterations of Unicode text

146Natural Language ProcessingTransliteration
RAKE.go

Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE)

124Natural Language ProcessingMorphological Analyzers
go-slugify

Make pretty slug with multiple languages support

96Natural Language ProcessingSlugifiers
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)

96Natural Language ProcessingTranslation
spreak

Flexible translation and humanization library for Go, based on the concepts behind gettext

94Natural Language ProcessingTranslation
segment

Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/)

90Natural Language ProcessingTokenizers
go-stem

Implementation of the porter stemming algorithm

81Natural Language ProcessingMorphological Analyzers
gounidecode

Unicode transliterator (also known as unidecode) for Go

79Natural Language ProcessingTransliteration
textcat

Go package for n-gram based text categorization, with support for utf-8 and raw text

73Natural Language ProcessingTokenizers
MMSEGO

This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm

62Natural Language ProcessingTokenizers
guesslanguage

Functions to determine the natural language of a unicode text

58Natural Language ProcessingLanguage Detection
go2vec

Reader and utility functions for word2vec embeddings

57Natural Language ProcessingMorphological Analyzers
stemmer

Stemmer packages for Go programming language. Includes English and German stemmers

56Natural Language ProcessingTokenizers
iuliia-go

Transliterate Cyrillic → Latin in every possible way

56Natural Language ProcessingTranslation
govader

Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment)

55Natural Language ProcessingMorphological Analyzers
porter2

Really fast Porter 2 stemmer

48Natural Language ProcessingMorphological Analyzers
transliterator

Provides one-way string transliteration with supporting of language-specific transliteration rules

46Natural Language ProcessingTransliteration
snowball

Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/)

38Natural Language ProcessingMorphological Analyzers
go-mystem

CGo bindings to Yandex.Mystem - russian morphology analyzer

36Natural Language ProcessingTranslation
Slugify

Go slugify application that handles string

35Natural Language ProcessingSlugifiers
paicehusk

Golang implementation of the Paice/Husk Stemming Algorithm

29Natural Language ProcessingMorphological Analyzers
detectlanguage

Language Detection API Go Client. Supports batch requests, short phrase or single word language detection

26Natural Language ProcessingLanguage Detection
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

22Natural Language ProcessingTranslation
golibstemmer

Go bindings for the snowball libstemmer library including porter 2

21Natural Language ProcessingMorphological Analyzers
gotokenizer

A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)

21Natural Language ProcessingTokenizers
enca

Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings

19Natural Language ProcessingTransliteration
porter

This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm

14Natural Language ProcessingMorphological Analyzers
libtextcat

Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2

13Natural Language ProcessingMorphological Analyzers
shamoji

The shamoji is word filtering package written in Go

13Natural Language ProcessingTokenizers
gosentiwordnet

Sentiment analyzer using sentiwordnet lexicon in Go

11Natural Language ProcessingMorphological Analyzers
go-words

A words table and text resource library for Golang projects

8Natural Language ProcessingTranslation
govader-backend

Microservice implementation of [GoVader](https://github.com/jonreiter/govader)

6Natural Language ProcessingMorphological Analyzers
go-propisyu

Convert numbers to Russian words with correct grammatical gender and noun declension

5Natural Language ProcessingMorphological Analyzers
spelling-corrector

A spelling corrector for the Spanish language or create your own

2Natural Language ProcessingMorphological Analyzers