Verwendung der Python-Bibliothek “fastText” für maschinelles Lernen (Deep Learning), natürliche Sprachverarbeitung und Spracherkennung zur automatischen Erkennung, um welche Sprache es sich bei einem Text handelt.
Mit dem fastText-Tool ermitteln wir, ob ein Text auf Japanisch, Chinesisch, Englisch, Französisch oder in einer anderen Sprache verfasst ist.
- fastText/language-identification.md at master · facebookresearch/fastText
- facebookresearch/fastText: Library for fast text representation and classification.
- Language detection · Issue #878 · facebookresearch/fastText

So etwas können Sie tun. “hola” ist Spanisch, aber es ist besorgniserregend, dass es als Englisch angezeigt wird.
Für englische Muttersprachler mögen Spanisch und Englisch ähnlich erscheinen.

Installation für Python
git clone https://github.com/facebookresearch/fastText.git
cd fastText
pip install . # sudo pip install .
Alternative Installationsmethode
wget https://github.com/facebookresearch/fastText/archive/v0.9.1.zip
unzip v0.9.1.zip
cd fastText-0.9.1
make
./fasttext
Datensatz herunterladen
wget https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin
Python-Skript
# coding:utf-8
import fasttext
import json
# model = fasttext.load_model("/home/yuis/pg/python/fastText/lid.176.bin")
model = fasttext.load_model("/mnt/c/pg/python/fasttext/lid.176.bin")
def predict_language(text, model, k=1):
label, prob = model.predict(text, k)
return list(zip([l.replace("__label__", "") for l in label], prob))
print( json.dumps(predict_language(u'{{text}}', model, k=2)) )
Beispiel
print( json.dumps(predict_language(u'こんにちは', model, k=2)) )
print( json.dumps(predict_language(u'hello', model, k=2)) )
print( json.dumps(predict_language(u'Zürich', model, k=2)) )
Bash-Funktion (frei verwendbar)
predict_language(){
: <<<'
e.g. predict_language "hello"
e.g. predict_language "こんにちは"
'
export TEXT="${1}"
cat << 'EOT' | mo > "$PGDIR/python/fasttext/predict_language.py"
# coding:utf-8
import fasttext
import json
# model = fasttext.load_model("/home/yuis/pg/python/fastText/lid.176.bin")
model = fasttext.load_model("/mnt/c/pg/python/fasttext/lid.176.bin")
def predict_language(text, model, k=1):
label, prob = model.predict(text, k)
return list(zip([l.replace("__label__", "") for l in label], prob))
print( json.dumps(predict_language(u'{{TEXT}}', model, k=2)) )
EOT
# python "$PGDIR/python/fasttext/predict_language.py" | parsejson "[0][0]"
python "$PGDIR/python/fasttext/predict_language.py"
}
: Kurzform
predict_language "hello"
predict_language "こんにちは"
predict_language "你好"
predict_language "hola"
predict_language "Zürich"
: JSON-Parsing
predict_language "hello" | parsejson "[0][0]"
predict_language "こんにちは" | parsejson "[0][0]"
: Verwendungsbeispiel
if [[ "$( predict_language "hello" | parsejson "[0][0]" )" == "en" ]]; then echo "Diese Sprache ist Englisch." ; fi
if [[ "$( predict_language "hello" | parsejson "[0][0]" )" == "ja" ]]; then echo "Diese Sprache ist Japanisch." ; fi