फंक्शन को कहा जाता है DeterminePageLanguage
। यह फ़ाइल में हैcomponents/translate/core/language_detection/language_detection_util.cc
Chrome पहले HTML lang
विशेषता की जाँच करता है और यदि वह मौजूद नहीं है तो वह Content-Language
HTTP हेडर की जाँच करता है । फिर इससे एक भविष्यवाणी मिलती हैcld3
।
कॉम्पैक्ट भाषा डिटेक्टर v3 (या CLD3) भाषा की पहचान के लिए एक तंत्रिका नेटवर्क मॉडल है। README में कहा गया है:
इनफेक्शन कोड इनपुट टेक्स्ट से कैरेक्टर नग निकालता है और उनमें से प्रत्येक के प्रकट होने के समय की गणना करता है। उदाहरण के लिए, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है, यदि इनपुट टेक्स्ट "केला" है, तो निकाले गए ट्रिगर्स में से एक "एना" है और संबंधित अंश 2/4 है। Ngrams को एक छोटी सी सीमा के भीतर एक आईडी पर नीचे रखा गया है, और प्रत्येक आईडी को प्रशिक्षण के दौरान अनुमानित घने एम्बेडिंग वेक्टर द्वारा दर्शाया गया है।
मॉडल फ्रिक्शन के अनुसार प्रत्येक एनग्राम प्रकार के अनुरूप एम्बेडिंग को औसत करता है, और एंबेडेड परत का उत्पादन करने के लिए एंबेडेड एंबेडिंग को संक्षिप्त किया जाता है।
इसलिए अनिवार्य रूप से, उन्होंने वेबसाइटों के एक समूह की प्रतियों को डाउनलोड किया और किसी को उन वेबसाइटों पर पाठ को देखने के लिए भुगतान किया और कहा कि वे किस भाषा में लिखी गई हैं। आगे वे पाठ को एन-ग्राम ( एन के समूह) में विभाजित करते हैं। अक्षर के ) और इसी तरह और एन-ग्राम वितरण और भाषाओं के बीच मानचित्रण सीखने के लिए एक तंत्रिका नेटवर्क का उपयोग किया।
तो अब उनके 2 चर हैं:
language
जो या तो HTML या हेडर से सेट किया गया है (याद रखें कि यदि दोनों मौजूद हैं, तो HTML विशेषता पूर्वता लेता है)
cld_language
जो पृष्ठ पर अक्षरों के समूहों की आवृत्तियों पर आधारित एक भविष्यवाणी है
तब हमने इस श्रृंखला को इफ-स्टेटमेंट्स में हिट किया है (मैंने उस हिस्से को संपादित किया है जहाँ वे भाषा बेमेल के बारे में एनालिटिक्स डेटा भेजते हैं)
if (language.empty()) {
return cld_language;
}
if (cld_language == kUnknownLanguageCode) {
return language;
}
if (CanCLDComplementSubCode(language, cld_language)) {
return cld_language;
}
if (IsSameOrSimilarLanguages(language, cld_language)) {
return language;
}
if (MaybeServerWrongConfiguration(language, cld_language)) {
return cld_language;
}
// Content-Language value might be wrong because CLD says that this page is
// written in another language with confidence. In this case, Chrome doesn't
// rely on any of the language codes, and gives up suggesting a translation.
return kUnknownLanguageCode;
CLD3 छोटा है और स्थानीय रूप से चलाया जाता है। वास्तव में, यह खुला स्रोत है और वे एक पूर्व-प्रशिक्षित मॉडल वितरित करते हैं (हालांकि मॉडल के प्रशिक्षण के लिए कोड और उनके द्वारा उपयोग किए गए डेटा उपलब्ध नहीं हैं)। आप इसे अपनी परियोजनाओं में उपयोग कर सकते हैं।
यहां तक कि नहीं है पायथन बाइंडिंग मूल सी के लिए (अनौपचारिक और unmaintained) ++ कोड (आप स्थापित करने की आवश्यकता होगी Cython )
pip install cld3