Acabo de abrir una página web en Google Chrome y dice "Esta página está en japonés, ¿te gustaría traducirla?".
Presumiblemente, pedir una traducción enviaría los contenidos a Google, pero ¿cómo se identifica el idioma en primer lugar? ¿Esto se hace localmente, en el navegador? ¿O esto también envía la página a Google? Si es así, ¿no se me debe pedir permiso primero? La página en sí no tiene marcado para indicar el idioma, y es una página interna de la intranet, por lo que no estoy del todo seguro de que Google deba tener acceso a su contenido.
Respuestas:
El navegador Chrome puede identificar, o al menos adivinar, el idioma de la página al observar una serie de factores en la página:
Esto se puede hacer localmente sin ninguna conexión a Internet o informes a Google.
La traducción del contenido definitivamente enviaría el contenido de la página a los servidores de Google para su traducción.
fuente
chrome.dll
recientemente? ¡Es enorme! No he revisado el código (masivo) recientemente, pero sin duda hay una función o dos incorporadas para la detección de idioma (no es tan difícil).La función se llama
DeterminePageLanguage
. Esta en el archivocomponents/translate/core/language_detection/language_detection_util.cc
Chrome primero verifica el atributo HTML
lang
y, si no está presente, verifica elContent-Language
encabezado HTTP . Entonces obtiene una predicción decld3
.El Compact Language Detector v3 (o CLD3) es un modelo de red neuronal para la identificación del idioma. El archivo README dice:
Esencialmente, descargaron copias de un montón de sitios web y le pagaron a alguien para que mirara el texto en esos sitios web y dijera en qué idioma están escritos. Luego dividieron el texto en n-gramas (grupos de n letras) y así sucesivamente y usó una red neuronal para aprender un mapeo entre distribuciones de n-gramas y lenguajes.
Entonces ahora tienen 2 variables:
language
que se establece desde el HTML o el encabezado (recuerde que el atributo HTML tiene prioridad si ambos están presentes)cld_language
que es una predicción basada en las frecuencias de grupos de letras en la páginaLuego llegamos a esta serie de declaraciones if (he editado la parte en la que envían datos analíticos sobre desajustes de idioma)
CLD3 es pequeño y se ejecuta localmente. De hecho, es de código abierto y distribuyen un modelo previamente entrenado (aunque el código para entrenar el modelo y los datos que usaron no están disponibles). Puedes usarlo en tus proyectos.
Incluso hay enlaces de Python (no oficiales y sin mantenimiento) para el código C ++ original (necesitará instalar Cython )
fuente