API NLClassifier
của Thư viện tác vụ sẽ phân loại văn bản đầu vào thành các
và là một API linh hoạt cũng như có thể định cấu hình, có thể xử lý hầu hết văn bản
các mô hình phân loại.
Các tính năng chính của NLClassifier API
Lấy một chuỗi đơn làm dữ liệu đầu vào, thực hiện phân loại bằng chuỗi và cho ra <label, score=""> làm kết quả phân loại.</label,>
Mã hoá Regex không bắt buộc có sẵn cho văn bản nhập.
Có thể định cấu hình để điều chỉnh nhiều mô hình phân loại.
Các mô hình NLClassifier được hỗ trợ
Các mô hình sau đây được đảm bảo tương thích với NLClassifier
API.
Ý kiến đánh giá phim phân loại mô hình.
Các mô hình có thông số kỹ thuật
average_word_vec
do TensorFlow Lite Model Maker tạo cho Phân loại văn bản.Các mô hình tuỳ chỉnh đáp ứng khả năng tương thích của mô hình .
Chạy dự đoán trong Java
Xem tài liệu tham khảo về Phân loại văn bản
ứng dụng
ví dụ về cách sử dụng NLClassifier
trong ứng dụng Android.
Bước 1: Nhập phần phụ thuộc Gradle và các chế độ cài đặt khác
Sao chép tệp mô hình .tflite
vào thư mục thành phần của mô-đun Android
nơi mô hình sẽ chạy. Chỉ định rằng tệp không được nén và
thêm thư viện TensorFlow Lite vào tệp build.gradle
của mô-đun:
android {
// Other settings
// Specify tflite file should not be compressed for the app apk
aaptOptions {
noCompress "tflite"
}
}
dependencies {
// Other dependencies
// Import the Task Vision Library dependency
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
// Import the GPU delegate plugin Library for GPU inference
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}
Bước 2: Chạy dự đoán bằng API
// Initialization, use NLClassifierOptions to configure input and output tensors
NLClassifierOptions options =
NLClassifierOptions.builder()
.setBaseOptions(BaseOptions.builder().useGpu().build())
.setInputTensorName(INPUT_TENSOR_NAME)
.setOutputScoreTensorName(OUTPUT_SCORE_TENSOR_NAME)
.build();
NLClassifier classifier =
NLClassifier.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Category> results = classifier.classify(input);
Xem nguồn
mã
để có thêm lựa chọn để định cấu hình NLClassifier
.
Chạy dự đoán trong Swift
Bước 1: Nhập CocoaPods
Thêm nhóm TensorFlowLiteTaskText trong Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Bước 2: Chạy dự đoán bằng API
// Initialization
var modelOptions:TFLNLClassifierOptions = TFLNLClassifierOptions()
modelOptions.inputTensorName = inputTensorName
modelOptions.outputScoreTensorName = outputScoreTensorName
let nlClassifier = TFLNLClassifier.nlClassifier(
modelPath: modelPath,
options: modelOptions)
// Run inference
let categories = nlClassifier.classify(text: input)
Xem nguồn mã để biết thêm chi tiết.
Chạy dự đoán trong C++
// Initialization
NLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<NLClassifier> classifier = NLClassifier::CreateFromOptions(options).value();
// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);
Xem nguồn mã để biết thêm chi tiết.
Chạy suy luận trong Python
Bước 1: Cài đặt gói pip
pip install tflite-support
Bước 2: Sử dụng mô hình
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Xem nguồn
mã
để có thêm lựa chọn để định cấu hình NLClassifier
.
Kết quả mẫu
Đây là một ví dụ về kết quả phân loại của bài đánh giá phim mô hình.
Thông tin đầu vào: "Thật lãng phí thời gian".
Kết quả:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Hãy thử công cụ minh hoạ CLI đơn giản cho NLClassifier thông qua mô hình và dữ liệu thử nghiệm của riêng bạn.
Yêu cầu về khả năng tương thích với mô hình
Tuỳ thuộc vào trường hợp sử dụng, API NLClassifier
có thể tải mô hình TFLite bằng
hoặc không có TFLite Model Metadata. Xem ví dụ
về việc tạo siêu dữ liệu cho thuật toán phân loại ngôn ngữ tự nhiên bằng TensorFlow Lite
Người viết siêu dữ liệu
.
Mô hình tương thích phải đáp ứng các yêu cầu sau:
Tensor đầu vào: (kTfLiteString/kTfLiteInt32)
- Đầu vào của mô hình phải là đầu vào thô của tensor kTfLiteString chuỗi hoặc một tensor kTfLiteInt32 cho các chỉ mục được mã hoá theo biểu thức chính quy của dữ liệu đầu vào thô .
- Nếu loại dữ liệu đầu vào là kTfLiteString, không Mô hình này cần có siêu dữ liệu.
- Nếu loại đầu vào là kTfLiteInt32, bạn cần thiết lập
RegexTokenizer
trong tensor đầu vào Siêu dữ liệu.
Tensor điểm đầu ra: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor đầu ra bắt buộc đối với điểm của mỗi danh mục đã phân loại.
Nếu kiểu là một trong các kiểu Int, hãy loại bỏ lượng tử của kiểu dữ liệu đó thành gấp đôi/nổi thành nền tảng tương ứng
Có thể có một tệp liên kết không bắt buộc trong tensor đầu ra Siêu dữ liệu tương ứng cho danh mục nhãn, tệp phải là tệp văn bản thuần tuý có một nhãn mỗi dòng, và số lượng nhãn phải khớp với số lượng danh mục khi đầu ra của mô hình. Xem nhãn ví dụ tệp.
Tensor nhãn đầu ra: (kTfLiteString/kTfLiteInt32)
Tensor đầu ra tuỳ chọn cho nhãn của từng danh mục phải là cùng độ dài như tensor điểm đầu ra. Nếu không có tensor này, API sử dụng các chỉ mục điểm số làm tên lớp.
Sẽ bị bỏ qua nếu tệp nhãn liên kết xuất hiện trong điểm số đầu ra Siêu dữ liệu của tensor.