কোনও পৃষ্ঠায় কোন ভাষা রয়েছে তা Chrome কীভাবে জানতে পারে?


10

আমি গুগল ক্রোমে একটি ওয়েব পৃষ্ঠা খুলেছি এবং এটিতে "এই পৃষ্ঠাটি জাপানি ভাষায় রয়েছে, আপনি কি এটি অনুবাদ করতে চান?"।

একটি অনুবাদ জিজ্ঞাসা করা সম্ভবত অনুগ্রহ করে গুগলে পাঠাতে হবে, তবে ভাষাটি প্রথম স্থানে কীভাবে চিহ্নিত? এটি কি স্থানীয়ভাবে, ব্রাউজারে করা হয়? অথবা এটিও গুগলে পৃষ্ঠাটি প্রেরণ করে? যদি তা হয় তবে আমাকে প্রথমে অনুমতি চাইতে হবে না? পৃষ্ঠাটি নিজেই ভাষাটি নির্দেশ করার জন্য কোনও মার্কআপ নেই এবং এটি একটি অভ্যন্তরীণ ইন্ট্রানেট পৃষ্ঠা, যাতে আমি নিশ্চিত নই যে গুগলের সামগ্রীতে এটির অ্যাক্সেস থাকা উচিত।


প্রশ্ন কেন ক্রোম ভুল নির্ধারণ পৃষ্ঠা একটি ভিন্ন ভাষা এবং অনুবাদ করতে প্রদান করে? স্ট্যাকওভারফ্লোতে এই বিষয় সম্পর্কে একগুচ্ছ আরও তথ্য দেয়, বিশেষত এমিলের কাছ থেকে গৃহীত উত্তর
ওভেন ব্ল্যাকার

উত্তর:


10

ক্রোম ব্রাউজারটি পৃষ্ঠার বেশ কয়েকটি পৃষ্ঠার বিষয়গুলি দেখে পৃষ্ঠার ভাষা সনাক্ত করতে পারে বা কমপক্ষে অনুমান করতে পারে:

  • http শিরোনাম http://en.wikedia.org/wiki/List_of_HTTP_header_fields
  • অক্ষর এনকোডিং ব্যবহৃত
  • এনকোডিং মেটা ট্যাগ
  • পৃষ্ঠায় প্রকৃত অক্ষর বা শব্দের একটি পরিসংখ্যান বিশ্লেষণ

এটি কোনও স্থানীয় ইন্টারনেট সংযোগ বা গুগলে প্রতিবেদন না করে স্থানীয়ভাবে করা যেতে পারে।

সামগ্রীর অনুবাদ অবশ্যই পৃষ্ঠার সামগ্রীটি গুগল সার্ভারগুলিতে অনুবাদের জন্য প্রেরণ করবে।


আমি একবার ক্রোমে একটি এক্সএমএল ফাইল দেখছিলাম, এবং এটি আমাকে জানিয়েছিল যে আমি কোনও পৃষ্ঠাতে দেখছি ... কিছু ইউরোপীয় ভাষা, বেলজিয়াম সম্ভবত? এটি আমাকে পরামর্শ দেবে যে পাঠ্যের কিছু বিশ্লেষণ ঘটে এবং আমার ক্ষেত্রে কিছুটা ভুল হয়ে যায়। আমি দেখতে পাচ্ছি না কেন ইংলিশ এক্সএমএলে এনকোডিং থাকত যা বেলজিয়ামকে নির্দেশ করবে। তবে হ্যাঁ, জাপানের মতো কোনও কিছুর জন্য এনকোডিংটি একটি মৃত শরণ।
ক্যাম জ্যাকসন

ইউটিএফ -8 কীভাবে জাপানিদের কাছে ছাড় দেয়?
থিলো

@ ক্যামজ্যাকসন আমি নিশ্চিত যে এটি বেলজিয়ামের প্রস্তাব দিচ্ছে না ... সম্ভবত এটি ডাচ ছিল এবং ক্রোম একটি 'চিঠি' পেয়েছিল
পিটার স্মিথ

1
এটি পুরোপুরি পৃষ্ঠা এনকোডিং দ্বারা নয়। আমার একটি ব্লগ আছে (ইংরেজী ভাষায়) যা রাশিয়ান মন্তব্য স্প্যামের একটি শালীন পরিমাণ পায়। প্রায়শই যখন আমি আমার স্প্যাম বালতিটি দেখি তখন ক্রোম আমাকে পৃষ্ঠাটি অনুবাদ করতে অনুরোধ করে। স্পষ্টতই (আমার কাছে) বিষয়বস্তুগুলি পরীক্ষা করা এবং "অন্যান্য ভাষা" বিষয়বস্তু দিয়ে ট্রিগার হওয়া নির্দিষ্ট শতাংশের প্রান্তিকের চেয়ে বেশি।
আলে

1
@ তিলো, এটি ইউটিএফ -8 নয় যা দেখায় যে এটি জাপানি, তবে কোনও পৃষ্ঠার একটি বড় অংশ যদি ইউনিকোডের জাপানি পরিসর থেকে আসে তবে আপনার উত্তর পেয়েছে (স্বয়ংক্রিয় ভাষা-সনাক্তকরণ সর্বদা অনুমান করা কাজ) । অক্ষর-এনকোডিং পরীক্ষা করার সুস্পষ্ট পদ্ধতিটি ব্যর্থ করে, আমি মনে করি না যে এটি সনাক্ত করার জন্য পৃষ্ঠাটি কোনও সার্ভারে প্রেরণ করেছে (বা কমপক্ষে এটি প্রয়োজন )। আপনি কি chrome.dllসম্প্রতি আকার দেখতে পেয়েছেন ? এটা বিশাল! আমি সম্প্রতি (বিশাল) কোডটি সন্ধান করি নি, তবে ভাষা-সনাক্তকরণের জন্য কোনও ফাংশন বা দুটি অন্তর্নির্মিত সন্দেহ নেই (এটি এতটা কঠিন নয়)।
সিনিটেক

1

ফাংশন বলা হয় DeterminePageLanguage। এটা ফাইল আছেcomponents/translate/core/language_detection/language_detection_util.cc

ক্রোম প্রথমে এইচটিএমএল langবৈশিষ্ট্য পরীক্ষা করে এবং এটি উপস্থিত না থাকলে এটি Content-LanguageHTTP শিরোনামটি পরীক্ষা করে । তারপরে এটি থেকে ভবিষ্যদ্বাণী আসে 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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.