NLClassifier
API ของไลบรารีงานจะจำแนกอินพุตเป็น
และเป็น API ที่คล่องตัวและกำหนดค่าได้ ซึ่งสามารถจัดการข้อความส่วนใหญ่
โมเดลการจัดประเภท
ฟีเจอร์สำคัญของ NLClassifier API
ใช้สตริงเดียวเป็นอินพุต ดำเนินการจำแนกประเภทกับสตริงและ เอาต์พุต <label, score=""> คู่กันเป็นผลลัพธ์การจัดประเภท</label,>
การแปลงข้อมูลเป็นโทเค็นของนิพจน์ทั่วไป (ไม่บังคับ) สําหรับข้อความที่ป้อน
กําหนดค่าได้เพื่อปรับโมเดลการจัดประเภทที่แตกต่างกัน
รุ่น NLClassifier ที่รองรับ
รุ่นต่อไปนี้ได้รับการรับประกันว่าใช้งานร่วมกับ NLClassifier
ได้
API
โมเดลที่มีข้อมูลจำเพาะ
average_word_vec
ซึ่งสร้างโดย TensorFlow Lite เครื่องสร้างโมเดล สำหรับการจำแนกประเภทข้อความโมเดลที่กำหนดเองซึ่งเป็นไปตามความเข้ากันได้ของโมเดล ข้อกำหนด
เรียกใช้การอนุมานใน Java
ดูข้อมูลอ้างอิงการจัดประเภทข้อความ
แอป
สำหรับตัวอย่างวิธีใช้ NLClassifier
ในแอป Android
ขั้นตอนที่ 1: นำเข้าการอ้างอิง Gradle และการตั้งค่าอื่นๆ
คัดลอกไฟล์โมเดล .tflite
ไปยังไดเรกทอรี Asset ของโมดูล Android
ตำแหน่งที่โมเดลจะทำงาน ระบุว่าไม่ควรบีบอัดไฟล์ และ
เพิ่มไลบรารี TensorFlow Lite ลงในไฟล์ build.gradle
ของโมดูลด้วยคำสั่งต่อไปนี้
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'
}
ขั้นตอนที่ 2: เรียกใช้การอนุมานโดยใช้ 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);
ดูแหล่งที่มา
โค้ด
เพื่อดูตัวเลือกเพิ่มเติมในการกำหนดค่า NLClassifier
เรียกใช้การอนุมานใน Swift
ขั้นตอนที่ 1: นำเข้า CocoaPods
เพิ่มพ็อด TensorFlowLiteTaskText ใน Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
ขั้นตอนที่ 2: เรียกใช้การอนุมานโดยใช้ 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)
ดูแหล่งที่มา โค้ด เพื่อดูรายละเอียดเพิ่มเติม
เรียกใช้การอนุมานใน 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);
ดูแหล่งที่มา โค้ด เพื่อดูรายละเอียดเพิ่มเติม
เรียกใช้การอนุมานใน Python
ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ PIP
pip install tflite-support
ขั้นตอนที่ 2: การใช้โมเดล
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
ดูแหล่งที่มา
โค้ด
เพื่อดูตัวเลือกเพิ่มเติมในการกำหนดค่า NLClassifier
ตัวอย่างผลการแข่ง
นี่คือตัวอย่างของผลการจัดประเภทของการตรวจสอบภาพยนตร์ โมเดล
อินพุต: "ฉันเสียเวลาไปมากเลย"
เอาต์พุต:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
ลองใช้เครื่องมือสาธิต CLI สำหรับ NLClassifier กับโมเดลและข้อมูลทดสอบของคุณเอง
ข้อกำหนดความเข้ากันได้กับรุ่น
NLClassifier
API โหลดโมเดล TFLite ได้ด้วย ทั้งนี้ขึ้นอยู่กับกรณีการใช้งาน
หรือไม่มีข้อมูลเมตาโมเดล TFLite ดูตัวอย่าง
ของการสร้างข้อมูลเมตาสำหรับตัวแยกประเภทที่เป็นภาษาธรรมชาติโดยใช้ TensorFlow Lite
ผู้เขียนข้อมูลเมตา
API
รุ่นที่เข้ากันได้ควรเป็นไปตามข้อกำหนดต่อไปนี้
Tensor อินพุต: (kTfLiteString/kTfLiteInt32)
- อินพุตของโมเดลควรเป็นอินพุตดิบ kTfLiteString tensor string หรือ kTfLiteInt32 tensor สำหรับดัชนีนิพจน์ทั่วไปที่แปลงเป็นโทเค็นของอินพุตดิบ สตริง
- ถ้าประเภทอินพุตคือ kTfLiteString ไม่ต้อง ต้องระบุข้อมูลเมตาสำหรับโมเดล
- หากประเภทอินพุตคือ kTfLiteInt32 คุณต้องตั้งค่า
RegexTokenizer
ใน Tensor อินพุต ข้อมูลเมตา
tensor คะแนนเอาต์พุต: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
tensor เอาต์พุตบังคับสำหรับคะแนนของแต่ละหมวดหมู่ที่แยกประเภท
หากประเภทเป็นประเภท Int อย่างใดอย่างหนึ่ง ให้คำนวณหาค่าเป็น 2 เท่า/ลอย แพลตฟอร์มที่เกี่ยวข้อง
สามารถมีไฟล์ที่เกี่ยวข้องซึ่งไม่บังคับใน Tensor เอาต์พุต ข้อมูลเมตาที่เกี่ยวข้องสำหรับหมวดหมู่ ป้ายกำกับ ไฟล์ควรเป็นไฟล์ข้อความธรรมดา ที่มีป้ายกำกับเดียวต่อบรรทัด และจำนวนป้ายกำกับควรตรงกับจำนวนหมวดหมู่ เอาต์พุตของโมเดล ดูป้ายกำกับตัวอย่าง ไฟล์
tensor ป้ายกำกับเอาต์พุต: (kTfLiteString/kTfLiteInt32)
Tensor เอาต์พุตที่ไม่บังคับสำหรับป้ายกำกับสำหรับแต่ละหมวดหมู่ควรมีค่า ความยาวเท่ากับ tensor คะแนนเอาต์พุต หากไม่มี Tensor นี้ API ใช้ดัชนีคะแนนเป็นชื่อคลาส
จะถูกละเว้นหากมีไฟล์ป้ายกำกับที่เกี่ยวข้องในคะแนนเอาต์พุต ข้อมูลเมตาของ Tensor