ফাংশন বলা হয় DeterminePageLanguage
। এটা ফাইল আছেcomponents/translate/core/language_detection/language_detection_util.cc
ক্রোম প্রথমে এইচটিএমএল lang
বৈশিষ্ট্য পরীক্ষা করে এবং এটি উপস্থিত না থাকলে এটি Content-Language
HTTP শিরোনামটি পরীক্ষা করে । তারপরে এটি থেকে ভবিষ্যদ্বাণী আসে cld3
।
কম্প্যাক্ট ভাষা আবিষ্কারক v3 এর (বা CLD3) ভাষা শনাক্তকরণের একজন স্নায়ুর নেটওয়ার্ক মডেল। রিডমিতে বলা হয়েছে:
ইনফারেন্স কোড ইনপুট পাঠ্য থেকে অক্ষর এনগ্রামগুলি বের করে এবং এগুলির প্রতিটি প্রদর্শিত হওয়ার সময়ের ভগ্নাংশের গণনা করে। উদাহরণস্বরূপ, নীচের চিত্রে যেমন দেখানো হয়েছে, ইনপুট পাঠ্যটি যদি "কলা" হয় তবে এক্সট্রাক্ট ট্রিগারগুলির মধ্যে একটি "আনা" এবং সংশ্লিষ্ট ভগ্নাংশটি 2/4 হয়। এনজিগ্রামগুলি একটি ছোট পরিসরের মধ্যে একটি আইডিতে নেমে আসে এবং প্রতিটি আইডি প্রশিক্ষণের সময় অনুমান করা ঘন এমবেডিং ভেক্টর দ্বারা উপস্থাপন করা হয়।
মডেলটি ভগ্নাংশ অনুসারে প্রতিটি এনগ্রাম টাইপের সাথে সংশ্লিষ্ট এম্বেডিংগুলিকে গড় গড় দেয় এবং এমবেডিং স্তর উত্পাদন করতে গড় এম্বেডিংগুলি সংক্ষিপ্ত হয়।
তাই মূলত, তারা ওয়েবসাইটের একটি গুচ্ছ কপি ডাউনলোড করে ঐ ওয়েবসাইটের টেক্সট তাকান কেউ অর্থ প্রদান এবং বলে কি ভাষা তারা লেখা করছি। পরবর্তী তারা মধ্যে টেক্সট বিভক্ত এন-গ্রাম (গ্রুপ এন অক্ষর) ইত্যাদি এবং এন-গ্রাম বিতরণ এবং ভাষাগুলির মধ্যে ম্যাপিং শিখতে একটি নিউরাল নেটওয়ার্ক ব্যবহার করেছেন।
সুতরাং এখন তাদের 2 ভেরিয়েবল আছে:
language
যা এইচটিএমএল বা শিরোলেখ থেকে সেট করা আছে (স্মরণ করুন যে উভয় উপস্থিত থাকলে এইচটিএমএল বৈশিষ্ট্যটি অগ্রাধিকার নেয়)
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;
সিএলডি 3 ছোট এবং স্থানীয়ভাবে এটি চালিত হয়। প্রকৃতপক্ষে, এটি ওপেন সোর্স এবং তারা একটি প্রাক প্রশিক্ষিত মডেল বিতরণ করে (যদিও মডেলটির প্রশিক্ষণের জন্য কোড এবং তারা যে ডেটা ব্যবহার করেছিল তা উপলভ্য নয়)। আপনি এটি আপনার প্রকল্পগুলিতে ব্যবহার করতে পারেন।
এমনকি আছে পাইথন বাইন্ডিং মূল সি জন্য (বেসরকারী এবং unmaintained) ++ কোড (আপনি ইন্সটল করতে হবে Cython )
pip install cld3