งานตัวแยกประเภทข้อความของ MediaPipe ช่วยให้คุณ จัดประเภทข้อความเป็นชุดหมวดหมู่ที่กำหนดไว้ เช่น ความรู้สึกเชิงบวกหรือเชิงลบ หมวดหมู่จะเป็นตัวกำหนดโมเดล ที่คุณใช้และวิธีการฝึกโมเดลนั้น คำแนะนำเหล่านี้จะแสดงวิธีการใช้ ตัวแยกประเภทข้อความด้วย Python
คุณสามารถดูการทำงานนี้โดยดูที่ การสาธิตเว็บ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถ โมเดล และ ตัวเลือกการกำหนดค่าของงานนี้ โปรดดูภาพรวม
ตัวอย่างโค้ด
โค้ดตัวอย่างสำหรับตัวแยกประเภทข้อความมีการติดตั้งใช้งานอย่างสมบูรณ์ ใน Python เพื่อใช้เป็นข้อมูลอ้างอิง โค้ดนี้จะช่วยคุณทดสอบงานนี้และรับ เริ่มจากการสร้างแอปแยกประเภทข้อความขึ้นมาเอง คุณสามารถดู เรียกใช้ และ แก้ไขตัวแยกประเภทข้อความ โค้ดตัวอย่าง โดยใช้แค่เว็บเบราว์เซอร์
หากคุณใช้ตัวแยกประเภทข้อความสำหรับ Raspberry Pi โปรดดูที่ ตัวอย่างของ Raspberry Pi แอป
ตั้งค่า
ส่วนนี้จะอธิบายขั้นตอนสำคัญในการตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ และ เพื่อใช้ตัวแยกประเภทข้อความโดยเฉพาะ สำหรับข้อมูลทั่วไปเกี่ยวกับ การตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ของคุณสำหรับการใช้งาน MediaPipe Tasks รวมถึง โปรดดูข้อกำหนดเวอร์ชันของแพลตฟอร์ม คู่มือการตั้งค่าสำหรับ Python
แพ็กเกจ
ตัวแยกประเภทข้อความใช้แพ็กเกจไปป์ไปป์สื่อ คุณจะติดตั้งได้ กับทรัพยากร Dependency ต่อไปนี้
$ python -m pip install mediapipe
การนำเข้า
นำเข้าคลาสต่อไปนี้เพื่อเข้าถึงฟังก์ชันงานของเครื่องมือแยกประเภทข้อความ
from mediapipe.tasks import python
from mediapipe.tasks.python import text
รุ่น
งานตัวแยกประเภทข้อความของ MediaPipe ต้องการโมเดลที่ผ่านการฝึกและใช้งานได้กับ งาน ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่ผ่านการฝึกที่ใช้ได้สําหรับตัวแยกประเภทข้อความได้ที่ ภาพรวมงานส่วนโมเดล
เลือกและดาวน์โหลดโมเดล แล้วจัดเก็บไว้ในไดเรกทอรีในเครื่อง:
model_path = '/absolute/path/to/text_classifier.tflite'
ระบุเส้นทางของโมเดลด้วยออบเจ็กต์ BaseOptions
model_asset_path
ตามที่แสดงด้านล่าง
base_options = BaseOptions(model_asset_path=model_path)
สร้างงาน
งานตัวแยกประเภทข้อความของ MediaPipe ใช้ฟังก์ชัน create_from_options
เพื่อตั้งค่า
งาน ฟังก์ชัน create_from_options
ยอมรับค่าสำหรับการกำหนดค่า
เพื่อตั้งค่าตัวเลือกตัวแยกประเภท นอกจากนี้คุณยังเริ่มต้นงานได้โดยใช้
ฟังก์ชันเริ่มต้นจาก create_from_model_path
create_from_model_path
จะยอมรับเส้นทางแบบสัมพัทธ์หรือสัมบูรณ์ไปยังไฟล์โมเดลที่ฝึก
ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการกําหนดค่าได้ที่
ตัวเลือกการกำหนดค่า
โค้ดต่อไปนี้แสดงวิธีสร้างและกำหนดค่างานนี้
base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
ตัวเลือกการกำหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้สำหรับแอป Android
ชื่อตัวเลือก | คำอธิบาย | ช่วงค่า | ค่าเริ่มต้น |
---|---|---|---|
display_names_locale |
ตั้งค่าภาษาของป้ายกำกับที่จะใช้กับชื่อที่แสดงซึ่งระบุไว้ใน
ข้อมูลเมตาของโมเดลงาน (หากมี) ค่าเริ่มต้นคือ en สำหรับ
ภาษาอังกฤษ คุณเพิ่มป้ายกำกับที่แปลแล้วลงในข้อมูลเมตาของโมเดลที่กำหนดเองได้
โดยใช้ TensorFlow Lite Metadata Writer API
| รหัสภาษา | en |
max_results |
ตั้งค่าจำนวนผลลัพธ์การจัดประเภทที่มีคะแนนสูงสุด (ไม่บังคับ) เป็น ผลตอบแทน ถ้า < 0 ระบบจะแสดงผลลัพธ์ที่ใช้ได้ทั้งหมด | จำนวนบวกใดก็ได้ | -1 |
score_threshold |
ตั้งค่าเกณฑ์คะแนนการคาดการณ์ซึ่งจะลบล้างเกณฑ์ที่ระบุไว้ใน ข้อมูลเมตาของโมเดล (หากมี) ผลลัพธ์ที่ต่ำกว่าค่านี้ถูกปฏิเสธ | ทศนิยมใดก็ได้ | ไม่ได้ตั้งค่า |
category_allowlist |
ตั้งค่ารายการชื่อหมวดหมู่ที่อนุญาตซึ่งไม่บังคับ หากไม่ว่างเปล่า
ผลลัพธ์การจัดหมวดหมู่ที่มีชื่อหมวดหมู่ที่ไม่ได้อยู่ในชุดนี้จะ
ถูกกรองออก ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก
ตัวเลือกนี้ไม่เกี่ยวข้องกับ category_denylist และใช้
ทั้งคู่จะทําให้เกิดข้อผิดพลาด |
สตริงใดก็ได้ | ไม่ได้ตั้งค่า |
category_denylist |
ตั้งค่ารายการตัวเลือกชื่อหมวดหมู่ที่ไม่ได้รับอนุญาต ถ้า
ไม่ว่างเปล่า ระบบจะกรองผลลัพธ์การจัดประเภทที่มีชื่อหมวดหมู่ในชุดนี้
ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก ตัวเลือกนี้มีผลร่วมกัน
เฉพาะตัวสำหรับ category_allowlist และการใช้ทั้ง 2 อย่างจะทำให้เกิดข้อผิดพลาด |
สตริงใดก็ได้ | ไม่ได้ตั้งค่า |
เตรียมข้อมูล
ตัวแยกประเภทข้อความใช้งานได้กับข้อมูลข้อความ (str
) งานจะจัดการอินพุตข้อมูล
การประมวลผลล่วงหน้า ซึ่งรวมถึงการแปลงเป็นโทเค็นและการประมวลผลล่วงหน้า Tensor
การประมวลผลล่วงหน้าทั้งหมดจะจัดการภายในฟังก์ชัน classify
ไม่จำเป็นต้องใช้
เพื่อประมวลผลอินพุตเพิ่มเติมล่วงหน้า
input_text = 'The input text to be classified.'
เรียกใช้งาน
ตัวแยกประเภทข้อความใช้ฟังก์ชัน classify
เพื่อเรียกใช้การอนุมาน สำหรับข้อความ
การแยกประเภท ซึ่งหมายถึงการแสดงหมวดหมู่ที่เป็นไปได้สำหรับข้อความอินพุต
โค้ดต่อไปนี้แสดงวิธีดำเนินการประมวลผลกับงาน โมเดล
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
จัดการและแสดงผลลัพธ์
ตัวแยกประเภทข้อความจะแสดงออบเจ็กต์ TextClassifierResult
ที่มีรายการ
ของหมวดหมู่ที่เป็นไปได้สำหรับข้อความที่ป้อน หมวดหมู่จะได้รับการกําหนดตาม
รูปแบบที่คุณใช้ ดังนั้นหากต้องการหมวดหมู่ที่แตกต่างกัน ให้เลือกโมเดลอื่น
หรือฝึกรายการที่มีอยู่อีกครั้ง
ตัวอย่างต่อไปนี้แสดงตัวอย่างข้อมูลเอาต์พุตจากงานนี้
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
ผลลัพธ์นี้ได้มาจากการเรียกใช้ตัวแยกประเภท BERT กับข้อความที่ป้อน
"an imperfect but overall entertaining mystery"