This is a small command-line tool for language detection, it is a simple wrapper around the lingua-rs library for Rust, read there for extensive documentation. A distinguishing feature is that this library works better for short texts thanmany other libraries
Ensure you have Rust's package manager cargo
, then download, isntall and compile lingua-cli
in one go as follows:
$ cargo install lingua-cli
Pass text as parameter
$ lingua-cli bonjour à tous
Pass text via standard input:
$ echo "bonjour à tous" | lingua-cli
Constrain the languages you want to detect using -l
with iso-639-1 languages
codes. Constraining the list improves accuracy. Do -L
to see a list of
supported languages.
$ echo "bonjour à tous" | lingua-cli -l "fr,de,es,nl,en"
To classify input line-by-line, pass -n
.
$ echo -e "bonjour à tous\nhola a todos\nhallo allemaal" | lingua-cli -n -l "fr,de,es,nl,en"
fr 0.9069164472389637 bonjour à tous
es 0.918273871035807 hola a todos
nl 0.988293648761749 hallo allemaal
Output is TSV and consists of an iso-639-1 language code, confidence score, and in line-by-line mode, a copy of the line.
You can also classified mixed text using the --multi
option. This will then output UTF-8 byte offsets:
$ lingua-cli --multi -l fr,de,en < /tmp/test.txt
0 23 fr Parlez-vous français?
23 73 de Ich spreche ein bisschen spreche Französisch ja.
73 110 en A little bit is better than nothing.