การตรวจจับภาษา

ฟีเจอร์บนเว็บ: เครื่องมือตรวจจับภาษา

Language Detector API เป็น Web API ฝั่งไคลเอ็นต์ที่ออกแบบมาเพื่อระบุภาษาของสตริงข้อความที่ระบุ การตรวจจับในเบราว์เซอร์จะช่วยเพิ่มความเป็นส่วนตัวของผู้ใช้ และลดความจำเป็นในการใช้ไลบรารีภายนอกขนาดใหญ่หรือการเรียกฝั่งเซิร์ฟเวอร์ที่มีค่าใช้จ่ายสูง

กรณีการใช้งานหลัก

  • การเตรียมการแปล: การระบุภาษาต้นฉบับก่อนส่งข้อความไปยังนักแปล
  • ความปลอดภัยและการกรอง: การโหลดโมเดลที่เฉพาะเจาะจงสำหรับงานต่างๆ เช่น การตรวจหาเนื้อหาที่เป็นพิษ
  • การช่วยเหลือพิเศษ: การติดป้ายกำกับเนื้อหาด้วยแอตทริบิวต์ lang ที่ถูกต้องสำหรับโปรแกรมอ่านหน้าจอ
  • การแปล UI: ปรับอินเทอร์เฟซแอปพลิเคชันตามภาษาที่ผู้ใช้ป้อน

ข้อกำหนดด้านฮาร์ดแวร์และข้อกำหนดของระบบ

  • ระบบปฏิบัติการ: Windows 10/11, macOS 13 ขึ้นไป, Linux หรือ Chromebook Plus
  • พื้นที่เก็บข้อมูล: พื้นที่ว่าง 22 GB (ระบบจะนำโมเดลออกหากพื้นที่ว่างเหลือน้อยกว่า 10 GB)
  • RAM/CPU: RAM 16 GB และ CPU 4 คอร์ขึ้นไป
  • VRAM: 4 GB ขึ้นไปหากใช้ GPU

คู่มือการติดตั้งใช้งาน

1. การจัดการโมเดลและการเปิดใช้งานของผู้ใช้

ตรวจสอบความพร้อมใช้งานของโมเดลก่อนพยายามสร้างอินสแตนซ์ของตัวตรวจจับหรือทริกเกอร์การดาวน์โหลด

บังคับ: การสร้างอินสแตนซ์เครื่องมือตรวจจับภาษาหรือการทริกเกอร์การดาวน์โหลดโมเดลด้วย LanguageDetector.create() ต้องเริ่มต้นด้วยท่าทางผู้ใช้ (เช่น การคลิกปุ่ม) เพื่อป้องกัน NotAllowedError เมื่อโมเดลอยู่ในสถานะ downloadable หรือ downloading

// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();

if (availability !== 'unavailable') {
  button.addEventListener('click', async () => {
    const detector = await LanguageDetector.create({
      monitor(m) {
        m.addEventListener('downloadprogress', (e) => {
          console.log(`Downloaded ${e.loaded * 100}%`);
        });
      },
    });
  });
}

2. การตรวจจับการวิ่ง

API จะแสดงรายการภาษาที่เป็นไปได้ซึ่งจัดอันดับแล้วพร้อมคะแนนความเชื่อมั่นระหว่าง 0.0 ถึง 1.0

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);

for (const result of results) {
  // result.detectedLanguage (e.g., 'de')
  // result.confidence (e.g., 0.999)
  console.log(result.detectedLanguage, result.confidence);
}

หลีกเลี่ยงการใช้เครื่องมือตรวจจับกับวลีที่สั้นมากหรือคำเดี่ยวๆ เนื่องจากความแม่นยำจะลดลงอย่างมาก

ความปลอดภัยและสภาพแวดล้อม

  • Iframe: Iframe แบบข้ามต้นทางต้องมีนโยบายสิทธิ์ที่ชัดเจนเพื่อเข้าถึง API

    <iframe
      src="https://cross-origin.example.com/"
      allow="language-detector"
    ></iframe>
    
  • Web Workers: ปัจจุบัน API ไม่พร้อมใช้งานใน Web Workers เนื่องจากความซับซ้อนของนโยบายสิทธิ์

  • ความเป็นส่วนตัว: ระบบจะไม่ส่งข้อมูลไปยัง Google หรือบุคคลที่สามในระหว่างกระบวนการตรวจจับ

กลยุทธ์สำรอง

ก่อนใช้งาน ให้ตรวจสอบว่าออบเจ็กต์ LanguageDetector พร้อมใช้งานในขอบเขตส่วนกลางหรือไม่ โดยทำดังนี้

if ('LanguageDetector' in self) {
  // The Language Detector API is supported.
} else {
  // Execute fallback strategy
}

หากระบบไม่รองรับ LanguageDetector API หรือการตรวจสอบความพร้อมใช้งานแสดงผลเป็น 'unavailable' คุณต้องสำรองข้อมูลอย่างราบรื่น โดยทำดังนี้

  1. Remote API Fallback: เปลี่ยนเส้นทางคำขอตรวจจับไปยังปลายทางของเซิร์ฟเวอร์หรือ Cloud API (เช่น Vertex AI Gemini API) เพื่อระบุภาษา
  2. การลดลงอย่างค่อยเป็นค่อยไป: ปิดใช้องค์ประกอบ/ปุ่มการตรวจหาภาษาและแจ้งให้ผู้ใช้ทราบว่าเบราว์เซอร์นี้ไม่รองรับการตรวจหาฝั่งไคลเอ็นต์ในขณะนี้ เพื่อป้องกันข้อยกเว้นหรือข้อขัดข้องที่ไม่ได้จัดการ