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

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ữ với Python. Mã mẫu được mô tả trong các 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 đủ tác vụ này trong Python để 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 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 mã mẫu của Trình phát hiện ngôn ngữ chỉ bằng trình duyệt web của mình.

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ả 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 Python.

Gói

Trình phát hiện ngôn ngữ sử dụng gói pip mediapipe. Bạn có thể cài đặt phần phụ thuộc bằng các đoạn mã sau:

$ python -m pip install mediapipe

Nhập

Nhập các lớp sau để truy cập vào các chức năng tác vụ của Trình phát hiện ngôn ngữ:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

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ô hình xuống rồi lưu trữ trong thư mục dự án của bạn:

model_path = '/absolute/path/to/language_detector.tflite'

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

base_options = BaseOptions(model_asset_path=model_path)

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

Tác vụ Trình phát hiện ngôn ngữ MediaPipe sử dụng hàm create_from_options để thiết lập tác vụ đó. Hàm create_from_options chấp nhận giá trị cho các tuỳ chọn cấu hình để đặt tuỳ chọn cho trình phát hiện. Bạn cũng có thể khởi tạo tác vụ bằng cách sử dụng hàm nhà máy create_from_model_path. Hàm create_from_model_path chấp nhận đường dẫn tương đối hoặc tuyệt đối đến tệp mô hình được huấn luyện. Để 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 lựa chọn về cấu hình.

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

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.LanguageDetectorOptions(base_options=base_options)

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 Python:

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
max_results Đặ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
score_threshold Đặ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
category_allowlist Đặ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 category_denylist và việc sử dụng cả hai sẽ gây ra lỗi. Chuỗi bất kỳ Không đặt
category_denylist Đặ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 category_allowlist 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 (str). Tác vụ này sẽ xử lý tiền xử lý đầu vào dữ liệu, 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.

input_text = 'The input text to be classified.'

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ụ.

with python.text.LanguageDetector.create_from_options(options) as detector:
  detection_result = detector.detect(input_text)

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

Trình phát hiện ngôn ngữ đưa 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 các dự đoán đó. Sau đây là ví dụ về dữ liệu đầu ra của nhiệm 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.".

Để biết 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 Ứng dụng mẫu Python.