Tác vụ Trình phát hiện ngôn ngữ của 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 cho bạn biết cách sử dụng Trình phát hiện ngôn ngữ cho các ứng dụng web và JavaScript. Bạn có thể xem mã mẫu được mô tả trong các hướng dẫn này trên GitHub.
Bạn có thể xem tác vụ này hoạt động 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 tác vụ này, hãy xem phần Tổng quan.
Ví dụ về mã
Mã ví dụ cho Trình phát hiện ngôn ngữ cung cấp một cách triển khai hoàn chỉnh tác vụ này bằng 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 mình. Bạn có thể xem, chạy, và chỉnh sửa ví dụ 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 để sử dụng các tác vụ MediaPipe, bao gồm cá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 cho web.
Gói JavaScript
Bạn có thể xem mã Trình phát hiện ngôn ngữ thông qua gói
@mediapipe/tasks-text. Bạn có thể tìm và tải các thư viện này xuống từ các đường liên kết được cung cấp trong hướng dẫn
Thiết lập
nền tảng.
Bạn có thể cài đặt các gói bắt buộc bằng mã sau đây để dàn dựng cục bộ bằng lệnh sau:
npm install @mediapipe/tasks-text
Nếu muốn triển khai lên một máy chủ, bạn có thể sử dụng dịch vụ 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 như sau:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Mô hình
Tác vụ Trình phát hiện ngôn ngữ của MediaPipe yêu cầu một mô hình đã được huấn luyện và tương thích với tác vụ này. Để biết thêm thông tin về các mô hình đã được huấn luyện hiện có cho Trình phát hiện ngôn ngữ, hãy xem phần tổng quan về tác vụ phần Mô hình.
Chọn và tải một mô hình xuống, sau đó lưu trữ mô hình đó trong thư mục dự á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ư minh hoạ bên dưới:
baseOptions: {
modelAssetPath: `/app/shared/models/language_detector.tflite`
}
Tạo tác vụ
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ị tác vụ chạy suy luậ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 đã được 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
Các lựa chọn về cấu hình.
Đoạn mã sau đây minh hoạ cách xây dựng 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 cho các ứng dụng web và JavaScript:
| Tên lựa chọn | Mô tả | Phạm vi giá trị | Giá trị mặc định |
|---|---|---|---|
maxResults |
Đặt số lượng tối đa không bắt buộc của các dự đoán ngôn ngữ có điểm số cao nhất để trả về. Nếu giá trị này nhỏ hơn 0, thì tất cả kết quả có sẵn sẽ được trả về. | Bất kỳ số dương nào | -1 |
scoreThreshold |
Đặt ngưỡng điểm số dự đoán ghi đè ngưỡng được cung cấp trong siêu dữ liệu mô hình (nếu có). Kết quả dưới giá trị này sẽ bị từ chối. | Bất kỳ số thực nào | Chưa đặt |
categoryAllowlist |
Đặt danh sách không bắt buộc gồm các mã ngôn ngữ được phép. Nếu không trống, các dự đoán ngôn ngữ có mã ngôn ngữ không nằm trong tập hợp này sẽ bị lọc. Lựa chọn này loại trừ lẫn nhau với categoryDenylist và việc sử dụng cả hai sẽ dẫn đến lỗi. |
Bất kỳ chuỗi nào | Chưa đặt |
categoryDenylist |
Đặt danh sách không bắt buộc gồm các mã ngôn ngữ không được phép. Nếu không trống, các dự đoán ngôn ngữ có mã ngôn ngữ nằm trong tập hợp này sẽ bị lọc. Lựa 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. |
Bất kỳ chuỗi nào | Chưa đặ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 xử lý quá trình tiền xử lý dữ liệu đầu vào, bao gồm cả quá trình tách từ và tiền xử lý Tensor.
Tất cả quá trình tiền xử lý đều được xử lý trong hàm detect. Bạn không cần phải tiền xử lý thêm văn bản đầu vào 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 suy luận. Đối với tính năng phát hiện ngôn ngữ, điều này có nghĩa là trả về các ngôn ngữ có thể có cho văn bản đầu vào.
Đoạn 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ụ Trình phát hiện ngôn ngữ xuất ra một LanguageDetectorResult bao gồm danh sách các dự đoán ngôn ngữ cùng với xác suất cho những dự đoán đó. Sau đây là ví dụ về dữ liệu đầu ra từ tác vụ này:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Kết quả này được thu được bằng cách chạy mô hình trên văn bản đầu 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 tác vụ này, hãy xem ví dụ.