python AI

Spracherkennung für natürliche Sprachtexte [fastText]

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.

Shou Arisaka
2 Min. Lesezeit
14. Okt. 2025

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.

Image

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.

Image

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 

Diesen Artikel teilen

Shou Arisaka 14. Okt. 2025

🔗 Links kopieren