Hướng dẫn phát hiện ngôn ngữ cho web

Nhiệm vụ Trình phát hiện ngôn ngữ MediaPipe cho phép bạn xác định ngôn ngữ của một đoạn văn bản. Các hướng dẫn này chỉ cho bạn cách sử dụng Trình phát hiện ngôn ngữ cho các ứng dụng web và JavaScript. Mã mẫu được mô tả trong những hướng dẫn này hiện có trên GitHub.

Bạn có thể xem cách hoạt động của tác vụ này bằng cách xem bản minh hoạ. Để biết thêm thông tin về các tính năng, mô hình và lựa chọn cấu hình của nhiệm vụ này, hãy xem phần Tổng quan.

Ví dụ về mã

Mã mẫu cho Trình phát hiện ngôn ngữ cung cấp cách triển khai đầy đủ của tác vụ này trong JavaScript để bạn tham khảo. Mã này giúp bạn kiểm thử tác vụ này và bắt đầu xây dựng tính năng trình phát hiện ngôn ngữ của riêng bạn. Bạn có thể xem, chạy và chỉnh sửa mã ví dụ của Trình phát hiện ngôn ngữ chỉ bằng trình duyệt web.

Thiết lập

Phần này mô tả các bước chính để thiết lập môi trường phát triển và các dự án mã dành riêng cho việc sử dụng Trình phát hiện ngôn ngữ. Để biết thông tin chung về cách thiết lập môi trường phát triển nhằm sử dụng các tác vụ của MediaPipe, bao gồm cả yêu cầu về phiên bản nền tảng, hãy xem Hướng dẫn thiết lập dành cho web.

Gói JavaScript

Mã Trình phát hiện ngôn ngữ có sẵn trong gói @mediapipe/tasks-text. Bạn có thể tìm và tải các thư viện này xuống qua các đường liên kết trong Hướng dẫn thiết lập của nền tảng.

Bạn có thể cài đặt các gói bắt buộc có mã sau đây để thử nghiệm cục bộ bằng cách dùng lệnh sau:

npm install @mediapipe/tasks-text

Nếu muốn triển khai cho một máy chủ, bạn có thể sử dụng dịch vụ của mạng phân phối nội dung (CDN), chẳng hạn như jsDelivr để thêm mã trực tiếp vào trang HTML của mình, như sau:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Mẫu

Tác vụ Trình phát hiện ngôn ngữ MediaPipe cần có một mô hình đã qua huấn luyện tương thích với tác vụ này. Để biết thêm thông tin về các mô hình đã huấn luyện hiện có cho Trình phát hiện ngôn ngữ, hãy xem phần Mô hình tổng quan về tác vụ.

Chọn và tải một mô hình xuống, sau đó lưu trữ trong thư mục dự án của bạn:

<dev-project-root>/app/shared/models

Chỉ định đường dẫn của mô hình bằng tham số modelAssetPath của đối tượng baseOptions như sau:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Tạo việc cần làm

Sử dụng một trong các hàm LanguageDetector.createFrom...() của Trình phát hiện ngôn ngữ để chuẩn bị nhiệm vụ chạy dự đoán. Bạn có thể sử dụng hàm createFromModelPath() với đường dẫn tương đối hoặc tuyệt đối đến tệp mô hình đã huấn luyện. Ví dụ về mã bên dưới minh hoạ cách sử dụng hàm createFromOptions(). Để biết thêm thông tin về cách định cấu hình tác vụ, hãy xem phần Các tuỳ chọn cấu hình.

Mã sau đây minh hoạ cách tạo và định cấu hình tác vụ này.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Các lựa chọn về cấu hình

Tác vụ này có các lựa chọn cấu hình sau đây dành cho ứng dụng Web và JavaScript:

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
maxResults Đặt số lượng tối đa các cụm từ dự đoán ngôn ngữ được điểm số cao nhất (không bắt buộc) để trả về. Nếu giá trị này nhỏ hơn 0, thì mọi kết quả có sẵn đều được trả về. Số dương bất kỳ -1
scoreThreshold Đặt ngưỡng điểm dự đoán để ghi đè ngưỡng được cung cấp trong siêu dữ liệu mô hình (nếu có). Những kết quả bên dưới giá trị này sẽ bị từ chối. Số thực bất kỳ Không đặt
categoryAllowlist Đặt danh sách mã ngôn ngữ được phép (không bắt buộc). Nếu không để trống, các cụm từ dự đoán ngôn ngữ có mã ngôn ngữ không thuộc tập hợp này sẽ bị lọc ra. Tuỳ chọn này loại trừ lẫn nhau với categoryDenylist và việc sử dụng cả hai sẽ gây ra lỗi. Chuỗi bất kỳ Không đặt
categoryDenylist Đặt danh sách mã ngôn ngữ không được phép (không bắt buộc). Nếu không trống, các dự đoán ngôn ngữ có mã ngôn ngữ trong tập hợp này sẽ bị lọc ra. Tuỳ chọn này loại trừ lẫn nhau với categoryAllowlist và việc sử dụng cả hai sẽ dẫn đến lỗi. Chuỗi bất kỳ Không đặt

Chuẩn bị dữ liệu

Trình phát hiện ngôn ngữ hoạt động với dữ liệu văn bản (string). Tác vụ này sẽ xử lý tiền xử lý dữ liệu đầu vào, bao gồm cả việc mã hoá và tiền xử lý tensor. Mọi quá trình xử lý trước đều được xử lý trong hàm detect. Bạn không cần phải xử lý thêm văn bản nhập trước.

const inputText = "The input text for the detector.";

Chạy tác vụ

Trình phát hiện ngôn ngữ sử dụng hàm detect để kích hoạt thông tin dự đoán. Để phát hiện ngôn ngữ, thao tác này nghĩa là trả về các ngôn ngữ có thể có cho văn bản nhập.

Mã sau đây minh hoạ cách thực thi quá trình xử lý bằng mô hình tác vụ:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

Xử lý và hiển thị kết quả

Tác vụ của Trình phát hiện ngôn ngữ đưa ra một LanguageDetectorResult bao gồm danh sách các cụm từ gợi ý ngôn ngữ cùng với xác suất của các cụm từ gợi ý đó. Sau đây là ví dụ về dữ liệu đầu ra của tác vụ này:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Kết quả này đã đạt được bằng cách chạy mô hình trên văn bản nhập vào: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

Để xem ví dụ về mã cần thiết để xử lý và trực quan hoá kết quả của nhiệm vụ này, hãy xem Ứng dụng mẫu web.