Spracherkennung in Python
- Verwenden Sie Bibliotheken und API für die Spracherkennung in Python
- Verwenden Sie Sprachmodelle für die Spracherkennung in Python
- Verwenden Sie sich überschneidende Sätze für die Spracherkennung in Python
- Abschluss
Obwohl wir uns als Menschen einiger Sprachen bewusst sind, reicht es nicht aus, wenn wir uns mit Datensätzen mit gemischten Sprachen befassen, da wir die in Texten oder Dokumenten verwendete Sprache identifizieren müssen, um mit dem Prozess fortzufahren. Aus diesem Grund hilft in solchen Situationen die Anpassung an ein Spracherkennungsverfahren.
Um Sprachen zu erkennen, verfügt Python über verschiedene Spracherkennungsbibliotheken. Wir können auswählen, was am besten zu uns passt, da die bei der Spracherkennung verwendeten Python-Bibliotheken das Zeichen unter den Ausdrücken und häufig verwendeten Wörtern im Inhalt erkennen.
Wir können Modelle mit Natural Language Processing oder Machine Learning erstellen, um Sprachen und Python-Bibliotheken zu erkennen. Wenn Chrome beispielsweise erkennt, dass der Inhalt der Webseite nicht auf Englisch ist, wird ein Feld mit einer Schaltfläche zum Übersetzen angezeigt.
Die Idee hinter diesem Szenario ist, dass Chrome ein Modell verwendet, um die Sprache des auf einer Webseite verwendeten Textes vorherzusagen.
Verwenden Sie Bibliotheken und API für die Spracherkennung in Python
Die erste Methode, die wir in Python verwendet haben, um Sprachen zu erkennen, ist eine Bibliothek oder eine API. Sehen wir uns die am häufigsten verwendeten Bibliotheken an, die wir für die Spracherkennung in Python verwenden können.
Langerkennung
langdetect
ist auch die Spracherkennungsbibliothek von Google, die wie die vorherigen Module installiert werden muss, da sie nicht mit den Standard-Utility-Modulen geliefert wird.
Diese API ist nützlich in der Textverarbeitung und Linguistik und unterstützt 55 Sprachen.
Python-Versionen sollten 2.7 oder 3.4+ sein, um diese API zu verwenden. Wir können die langdetect
-API wie folgt installieren.
$ pip install langdetect
Wir können die langdetect
-API verwenden, um Sprachen zu erkennen, nachdem wir das detect
-Modul importiert haben. Danach gibt der Code die erkannte Sprache des gegebenen Satzes aus.
Hier haben wir drei Sätze als Beispiele bereitgestellt, und es zeigt ihre Sprachen als Englisch (en)
, Italienisch (pt)
bzw. Chinesisch (ko)
an.
Code:
from langdetect import detect
print(detect("Hello World!"))
print(detect("Ciao mondoe!"))
print(detect("你好世界!"))
Ausgang:
langweilig
langid
ist eine weitere API, die zum Erkennen der Sprachnamen mit minimalen Abhängigkeiten verwendet wird. Außerdem ist es ein eigenständiges Spracherkennungstool, das 97 Sprachen erkennen kann.
Zur Installation müssen wir den folgenden Befehl im Terminal eingeben.
$ pip install langid
Mit der folgenden Methode können wir die Sprache mit der Bibliothek langid
erkennen. Wie in TextBlob
sieht es beim Schleifen die Sprache von drei Sätzen und gibt die respektierte Sprache jedes Satzes als Englisch (it)
, Italienisch (gl)
und Chinesisch (zh)
aus.
Code:
import langid
T = ["Hello World!", "Ciao mondoe!", "你好世界!"]
for i in T:
print(langid.classify(i))
Ausgang:
textblob
textblob
ist eine weitere API, die den Sprachdetektor von Google Translate verwendet, um Textdaten zu verarbeiten. Es funktioniert gut mit Hilfe von NLTK
(Natural Language Toolkit) und pattern
-Modulen, die in Python als Giganten gelten.
Diese einfache API führt Sentimentanalysen, Extraktion von Nominalphrasen, Tagging von Wortarten, Klassifizierung und mehr durch, anstatt die Sprache zu erkennen.
Um diese API zu verwenden, sollte die Version von Python größer oder gleich 2.7 oder 3.5 sein und eine Internetverbindung erfordern.
Wir müssen das Paket mit dem Befehl pip
installieren.
$ pip install textblob
Danach können wir die Sprache erkennen, indem wir das Modul TextBlob
importieren. Hier haben wir dem Array namens "T"
drei Sätze mit unterschiedlichen Sprachen zugeordnet.
Beim Durchlaufen einer for
-Schleife erkennt es den Wortlaut von drei Sätzen und gibt sie aus.
Code:
from textblob import TextBlob
T = ["Hello World!", "Bonjour le monde!", "你好世界!"]
for i in T:
lang = TextBlob(i)
print(lang.detect_language())
Da die Bibliothek textblob
bereits veraltet ist, zeigt der obige Code einen Fehler anstelle einer genauen Ausgabe an. Daher wird die Verwendung dieser Methode nicht empfohlen; Stattdessen können wir die Google Translate API verwenden.
Erfahren Sie mehr über TextBlob
hier.
Zusätzlich zu den oben genannten APIs und Bibliotheken haben wir googletrans
, FastText
, Spacy
, polyglot
, pycld
, chardet
, guess language
und viele mehr. Je nach Anwendungsfall können wir sie auch verwenden.
Darunter sind polyglot
und FastText
die besten Bibliotheken für lange Texte mit hoher Genauigkeit. Auch polyglot
und pycld
können mehrere Sprachen in einem Text erkennen.
googletrans
ist eine kostenlose Python-Bibliothek, mit der wir unbegrenzt Anfragen stellen können. Es kann Sprachen automatisch erkennen und ist schnell und zuverlässig.
FastText
ist ein Textklassifikator, der 176 Sprachen erkennen kann und schnellere und genauere Ausgaben liefert. Die von Facebook verwendete Spracherkennungsbibliothek ist FastText
.
Abgesehen von der Verwendung von Bibliotheken oder APIs können wir Sprachen erkennen, indem wir Sprachmodelle oder sich überschneidende Mengen verwenden.
Verwenden Sie Sprachmodelle für die Spracherkennung in Python
Hier gibt das Modell die Wahrscheinlichkeit einer Folge von Wörtern an, und wir können N
Sprachmodelle für jede Sprache mit der höchsten Punktzahl verwenden.
Diese Sprachmodelle ermöglichen es uns, die Sprache des Textes zu erkennen, selbst wenn dieser eine Vielzahl von Sprachen enthält.
Verwenden Sie sich überschneidende Sätze für die Spracherkennung in Python
Und die folgende Methode, mit der wir Sprachen erkennen können, ist die Verwendung von sich überschneidenden Mengen. Hier bereiten wir N
Sätze mit den häufigsten Wörtern in jeder Sprache vor und schneiden den Text mit jedem Satz.
Dann ist die erkannte Sprache die Menge, die mehr Schnittpunkte hat.
Abschluss
Insgesamt verwendet Pythons systematische Methode zur Erkennung von Sprachen Bibliotheken und APIs. Sie unterscheiden sich jedoch in Genauigkeit, Sprachabdeckung, Geschwindigkeit und Speicherverbrauch.
Wir können geeignete Bibliotheken auswählen und Modelle je nach Anwendungsfall erstellen.
Wenn das Modell nur von einer Sprache abhängt, können die anderen Sprachen als Rauschen betrachtet werden. Die Spracherkennung ist ein Schritt in der Datenbereinigung; Daher können wir rauschfreie Daten erhalten, indem wir Sprachen erkennen.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.