Für ein Projekt suchte ich eine frei Spracherkennung welche ich mit JavaScript bzw. JQuery oder PHP ansprechen kann. Denn ich nutze dort eine Sentimentanalyse die derzeit nur die englische, die deutsche und die französische Sprache unterstützt. Daher begab ich mich auf die Suche und stieß auf die Seite der Language Detection API.
Die freie Version der Language Detection API erlaubt momentan 5000 Anfragen bzw. 1 MB an Anfragen pro Tag. Für größere Mengen bis zu 2 GB und 10 Millionen Anfragen pro Tag (40 $) können kostenpflichtige Lizenzen erworben werden. Die API erkennt in Texten 64 verschiedene Sprachen, darunter typische Sprachen wie Deutsch, Englisch oder Französisch aber auch außergewöhnlichere Sprachen wie zum Beispiel Dhivehi – was auf den Malediven gesprochen wird.
Der Start der Language Detection ist schnell gemacht. Man registriert sich auf deren Seite, erhält einen API Key und schon kann man loslegen. Der schnellste Weg nun eine Spracherkennung zu erhalten führt über einen HTTP Request (POST oder GET) an http://ws.detectlanguage.com/0.2/detect.
Mit dem Parameter q übergibt man seinen zu untersuchenden Text, mit dem Parameter key seinen erhaltenen API Key. Als Ergebnis erhält man die Sprachanalyse in JSON Notation. Als Demo-Beispiel wird folgendes angeführt:
http://ws.detectlanguage.com/0.2/detect?q=buenos+dias+señor&key=demo.
Detect Language PHP SDK
Für mein Projekt nutze ich die PHP Schnittstelle der Spracherkennung und verarbeite sie über JQuery. Dazu lädt man sich die detectlanguage.php Datei herunter und erstellt eine eigene Datei um deren Funktionen zu nutzen:
<?php require_once 'detectlanguage.php'; // detectlanguage.com API // key: 5000 requests or 1MB per day for free $detectlanguage = new DetectLanguage("<API Key>"); if(isset($_POST['content'])){ $content = $_POST['content']; } $languageCode = $detectlanguage->simpleDetect($content); echo $languageCode; ?>
In diesem Beispiel übergebe ich den Text als POST Request und gebe über den echo-Befehl die erkannte Sprache (z.B. „de“) aus. Da mein zu analysierender Text unter anderem in JavaScript vorliegt, nutze ich JQuery um jene PHP-Datei aufzurufen und die Sprache auszulesen. Das verwendete Schlüsselwort „content“ darf auch hier nicht vergessen werden:
function detectLanguage(text) { var data = {"content":text}; jQuery.post("detectlanguage-functions.php", data, function(lang){ console.log(lang); // do something }); }
Nun weiß man die Sprache des analysierten Texts und kann damit anstellen was man möchte. Eine Alternative zu oben genannter API stellt die Spracherkennung der AlchemyAPI dar. Deren API nutze ich jedoch als Keyword-Tagger. Gegebenenfalls wird es auch dazu einen Artikel geben.
Bildquelle: detectlanguage.com