Je viens d'ouvrir une page Web dans Google Chrome et elle dit "Cette page est en japonais, voulez-vous la traduire?".
Demander une traduction enverrait probablement le contenu à Google, mais comment la langue est-elle identifiée en premier lieu? Est-ce que cela se fait localement, dans le navigateur? Ou cela envoie-t-il également la page à Google? Dans l'affirmative, ne devrais-je pas d'abord demander la permission? La page elle-même n'a pas de balisage pour indiquer la langue, et c'est une page intranet interne, donc je ne suis pas du tout sûr que Google devrait avoir accès à son contenu.
Réponses:
Le navigateur Chrome peut identifier, ou du moins deviner, la langue de la page en examinant un certain nombre de facteurs sur la page:
Cela peut être fait localement sans autre connexion Internet ni rapport à Google.
La traduction du contenu enverrait certainement le contenu de la page aux serveurs Google pour traduction.
la source
chrome.dll
récemment? C'est énorme! Je n'ai pas parcouru le code (massif) récemment, mais il y a sans doute une ou deux fonctions intégrées pour la détection de la langue (ce n'est pas si difficile).La fonction est appelée
DeterminePageLanguage
. C'est dans le dossiercomponents/translate/core/language_detection/language_detection_util.cc
Chrome vérifie d'abord l' attribut HTML
lang
et s'il n'est pas présent, il vérifie l'Content-Language
en-tête HTTP . Ensuite, il obtient une prédictioncld3
.Le Compact Language Detector v3 (ou CLD3) est un modèle de réseau neuronal pour l'identification du langage. Le README déclare:
Donc, essentiellement, ils ont téléchargé des copies d'un tas de sites Web et payé quelqu'un pour regarder le texte sur ces sites Web et dire dans quelle langue ils sont écrits. Ensuite, ils ont divisé le texte en n-grammes (groupes de n lettres), etc. et utilisé un réseau de neurones pour apprendre une correspondance entre les distributions de n-grammes et les langues.
Alors maintenant, ils ont 2 variables:
language
qui est défini à partir du HTML ou de l'en-tête (rappelez-vous que l'attribut HTML a priorité si les deux sont présents)cld_language
qui est une prédiction basée sur les fréquences des groupes de lettres sur la pageEnsuite, nous avons frappé cette série d'instructions if (j'ai édité la partie où elles envoient des données analytiques sur les incompatibilités linguistiques)
CLD3 est petit et est exécuté localement. En fait, c'est open source et ils distribuent un modèle pré-formé (bien que le code pour la formation du modèle et les données qu'ils ont utilisées ne soient pas disponibles). Vous pouvez l'utiliser dans vos projets.
Il existe même des liaisons Python (non officielles et non entretenues) pour le code C ++ d'origine (vous devrez installer Cython )
la source