Ich habe gerade eine Webseite in Google Chrome geöffnet und dort steht "Diese Seite ist auf Japanisch, möchten Sie sie übersetzen?".
Wenn Sie nach einer Übersetzung fragen, wird der Inhalt vermutlich an Google gesendet. Wie wird die Sprache überhaupt identifiziert? Wird dies lokal im Browser durchgeführt? Oder sendet dies die Seite auch an Google? Wenn ja, sollte ich nicht zuerst um Erlaubnis gebeten werden? Die Seite selbst hat kein Markup zur Angabe der Sprache und ist eine interne Intranetseite, sodass ich nicht sicher bin, ob Google Zugriff auf deren Inhalt haben soll.
Antworten:
Der Chrome-Browser kann die Seitensprache anhand einer Reihe von Faktoren auf der Seite identifizieren oder zumindest erraten:
Dies kann lokal ohne weitere Internetverbindung oder Berichterstattung an Google erfolgen.
Die Übersetzung des Inhalts würde den Seiteninhalt definitiv zur Übersetzung an Google-Server senden.
quelle
chrome.dll
letzter Zeit gesehen? Es ist riesig! Ich habe den (massiven) Code in letzter Zeit nicht durchgesehen, aber zweifellos sind ein oder zwei Funktionen für die Spracherkennung integriert (es ist nicht so schwer).Die Funktion wird aufgerufen
DeterminePageLanguage
. Es ist in der Dateicomponents/translate/core/language_detection/language_detection_util.cc
Chrome überprüft zuerst das HTML-
lang
Attribut und, falls es nicht vorhanden ist, denContent-Language
HTTP-Header . Dann bekommt es eine Vorhersage voncld3
.Der Compact Language Detector v3 (oder CLD3) ist ein neuronales Netzwerkmodell zur Sprachidentifikation. In der README heißt es:
Im Wesentlichen haben sie Kopien einer Reihe von Websites heruntergeladen und jemanden dafür bezahlt, sich den Text auf diesen Websites anzusehen und zu sagen, in welcher Sprache sie geschrieben sind. Als nächstes teilen sie den Text in n-Gramm (Gruppen von n Buchstaben) und so weiter auf und benutzte ein neuronales Netzwerk, um eine Zuordnung zwischen n-Gramm-Verteilungen und Sprachen zu lernen.
Jetzt haben sie 2 Variablen:
language
Dies wird entweder aus dem HTML-Code oder dem Header festgelegt (denken Sie daran, dass das HTML-Attribut Vorrang hat, wenn beide vorhanden sind).cld_language
Dies ist eine Vorhersage, die auf der Häufigkeit von Buchstabengruppen auf der Seite basiertDann treffen wir diese Reihe von if-Anweisungen (ich habe den Teil herausgeschnitten, in dem sie Analysedaten über Sprachinkongruenzen senden).
CLD3 ist klein und wird lokal ausgeführt. Tatsächlich ist es Open Source und sie verteilen ein vorab trainiertes Modell (obwohl der Code zum Trainieren des Modells und die von ihnen verwendeten Daten nicht verfügbar sind). Sie können es in Ihren Projekten verwenden.
Es gibt sogar Python-Bindungen (inoffiziell und nicht gepflegt) für den ursprünglichen C ++ - Code (Sie müssen Cython installieren ).
quelle