คำแนะนำในการแยกประเภทข้อความสำหรับ Python

งานตัวแยกประเภทข้อความของ 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"