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 cho bạn cách sử dụng Trình phát hiện ngôn ngữ dành cho các ứng dụng web và JavaScript. Mã mẫu được mô tả trong các hướng dẫn này có trên GitHub.
Bạn có thể xem công việc này trong thực tế bằng cách xem bản minh hoạ. Để biết thêm thông tin về tính năng, kiểu máy và các lựa chọn cấu hình của nhiệm vụ nà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 cách triển khai hoàn chỉnh của mã 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à mã dự án cụ thể để sử dụng Trình phát hiện ngôn ngữ. Để biết thông tin chung về thiết lập môi trường phát triển để sử dụng các tác vụ MediaPipe, bao gồm 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 qua
@mediapipe/tasks-text
. Bạn có thể tìm và tải các thư viện này xuống từ các liên kết được cung cấp trong
nền tảng
Hướng dẫn thiết lập.
Bạn có thể cài đặt các gói cần thiết bằng mã sau để thử nghiệm cục bộ bằng lệnh sau:
npm install @mediapipe/tasks-text
Nếu muốn triển khai tới một máy chủ, bạn có thể sử dụng tính năng phân phối nội dung dịch vụ mạng (CDN), chẳng hạn như jsDelivr, sang thêm mã trực tiếp vào trang HTML của bạn như sau:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Mẫu
Nhiệm vụ Trình phát hiện ngôn ngữ MediaPipe cần một mô hình đã huấn luyện tương thích với công việc. Để 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 tổng quan về nhiệm vụ phần Mô hình.
Chọn và tải mô hình xuống rồi 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 đối tượng baseOptions
modelAssetPath
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ị tác vụ để chạy các dự đoán. Bạn có thể dùng createFromModelPath()
có đường dẫn tương đối hoặc tuyệt đối đến tệp mô hình đã huấn luyện. Đoạn mã
ví dụ 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ụ, xem
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 cho Web và JavaScript ứng dụng:
Tên lựa chọn | Mô tả | Khoảng giá trị | Giá trị mặc định |
---|---|---|---|
maxResults |
Đặt số lượng tối đa tùy chọn của các dự đoán ngôn ngữ có điểm số cao nhất thành lợi nhuận. Nếu giá trị này nhỏ hơn 0, thì hàm sẽ trả về tất cả kết quả có sẵn. | Bất kỳ số dương nào | -1 |
scoreThreshold |
Đặt ngưỡng điểm số dự đoán ghi đè ngưỡng điểm được cung cấp trong siêu dữ liệu của mô hình (nếu có). Những kết quả thấp hơn giá trị này sẽ bị từ chối. | Số thực bất kỳ | Chưa đặt |
categoryAllowlist |
Đặt danh sách mã ngôn ngữ được phép (không bắt buộc). Nếu ô trống,
các dự đoán ngôn ngữ có mã ngôn ngữ không nằm trong nhóm này sẽ là
đã lọc ra. Lựa chọn này loại trừ lẫn nhau với
categoryDenylist và sử dụng cả hai đều dẫn đến lỗi. |
Chuỗi bất kỳ | Chưa đặt |
categoryDenylist |
Đặt danh sách mã ngôn ngữ không được phép (không bắt buộc). Nếu
các dự đoán ngôn ngữ không trống, có mã ngôn ngữ nằm trong nhóm này sẽ được lọc
bị loại. Lựa chọn này loại trừ lẫn nhau với categoryAllowlist và
sử dụng cả hai đều dẫn đến lỗi. |
Chuỗi bất kỳ | 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ụ sẽ xử lý
xử lý trước dữ liệu đầu vào, bao gồm cả mã hoá và xử lý trước tensor.
Mọi quy trình xử lý trước đều được xử lý trong hàm detect
. Không cần
để xử lý trước thêm văn bản đầu vào.
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. Ngôn ngữ
thì tức là trả về các ngôn ngữ có thể dùng cho văn bản nhập.
Mã sau đây minh hoạ cách thực thi quá trình xử lý bằng tác vụ mô hình:
// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);
Xử lý và hiện kết quả
Tác vụ Trình phát hiện ngôn ngữ sẽ xuất ra một LanguageDetectorResult
bao gồm một danh sách
dự đoán ngôn ngữ cùng với xác suất của những dự đoán đó. Chiến lược phát hành đĩa đơn
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 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 công việc này, hãy xem Ứng dụng mẫu trên web.