คำแนะนำการฝังข้อความสำหรับ Python

งานเครื่องมือฝังข้อความ MediaPipe ช่วยให้คุณสร้างการนำเสนอข้อมูลข้อความในรูปแบบตัวเลขเพื่อ จับความหมายในเชิงอรรถศาสตร์ได้ วิธีการเหล่านี้จะแสดงวิธีใช้ เครื่องมือฝังข้อความด้วย Python

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถ โมเดล และตัวเลือกการกำหนดค่า ของงานนี้ โปรดดูภาพรวม

ตัวอย่างโค้ด

โค้ดตัวอย่างสำหรับเครื่องมือฝังข้อความช่วยให้สามารถติดตั้งใช้งานได้อย่างสมบูรณ์ ใน Python เพื่อใช้เป็นข้อมูลอ้างอิง โค้ดนี้จะช่วยคุณทดสอบงานนี้และรับ เริ่มสร้างเครื่องมือฝังข้อความของคุณเอง คุณสามารถดู เรียกใช้ และแก้ไข ตัวอย่างเครื่องมือฝังข้อความ โค้ด โดยใช้เพียงเว็บเบราว์เซอร์กับ Google Colab คุณสามารถดูซอร์สโค้ดสำหรับ ตัวอย่างนี้บน GitHub

ตั้งค่า

ส่วนนี้จะอธิบายขั้นตอนสำคัญในการตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ และ โค้ดเพื่อใช้ตัวฝังข้อความโดยเฉพาะ สำหรับข้อมูลทั่วไปเกี่ยวกับ การตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ของคุณสำหรับการใช้งาน MediaPipe ซึ่งรวมถึง ข้อกำหนดด้านเวอร์ชันของแพลตฟอร์ม โปรดดูคู่มือการตั้งค่าสำหรับ Python

แพ็กเกจ

เครื่องมือฝังข้อความใช้แพ็กเกจไปป์ไปป์สื่อ คุณติดตั้งทรัพยากร Dependency ได้ ดังต่อไปนี้

$ python -m pip install mediapipe

การนำเข้า

นำเข้าชั้นเรียนต่อไปนี้เพื่อเข้าถึงฟังก์ชันงานของเครื่องมือฝังข้อความ

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

รุ่น

งานเครื่องมือฝังข้อความ MediaPipe ต้องการโมเดลที่ผ่านการฝึกซึ่งสามารถทำงานร่วมกับ งาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่ผ่านการฝึกที่ใช้ได้สำหรับเครื่องมือฝังข้อความ โปรดดู ภาพรวมงานส่วนโมเดล

เลือกและดาวน์โหลดโมเดล แล้วจัดเก็บไว้ในไดเรกทอรีในเครื่อง คุณสามารถใช้ แนะนำ UniversalSentenceEncoder โมเดล

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

ระบุเส้นทางของโมเดลภายในพารามิเตอร์ 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 ยอมรับเส้นทางแบบสัมพัทธ์หรือสัมบูรณ์ไปยังไฟล์โมเดลที่ฝึก สำหรับข้อมูลเพิ่มเติม ข้อมูลเกี่ยวกับตัวเลือกการกำหนดค่า โปรดดู ตัวเลือกการกำหนดค่า

โค้ดต่อไปนี้แสดงวิธีสร้างและกำหนดค่างานนี้

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
TextEmbedder = mp.tasks.text.TextEmbedder
TextEmbedderOptions = mp.tasks.text.TextEmbedderOptions

# For creating a text embedder instance:
options = TextEmbedderOptions(
    base_options=BaseOptions(model_asset_path=model_path),
    quantize=True)
text_embedder = TextEmbedder.create_from_options(options)

ตัวเลือกการกำหนดค่า

งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้สำหรับแอปพลิเคชัน Python

ชื่อตัวเลือก คำอธิบาย ช่วงค่า ค่าเริ่มต้น
l2_normalize เลือกว่าจะแปลงเวกเตอร์ฟีเจอร์ที่ส่งคืนด้วยบรรทัดฐาน L2 หรือไม่ ใช้ตัวเลือกนี้ก็ต่อเมื่อโมเดลยังไม่มีโฆษณาเนทีฟ L2_NORMALIZATION TFLite Op. ในกรณีส่วนใหญ่ กรณีเช่นนี้มักจะเกิดขึ้น และ การแปลงข้อมูลมาตรฐาน L2 จึงทำได้ผ่านการอนุมาน TFLite โดยไม่จำเป็นต้อง สำหรับตัวเลือกนี้ Boolean False
quantize ควรแปลงการฝังที่แสดงผลเป็นไบต์เป็นไบต์ผ่านหรือไม่ การวัดสเกลาร์ การฝังจะถูกสันนิษฐานโดยนัยว่าเป็นหน่วยบรรทัดฐานและ ดังนั้น ทุกมิติข้อมูลต้องมีค่าเป็น [-1.0, 1.0] ใช้ ตัวเลือก l2_normalize หากไม่เป็นเช่นนั้น Boolean False

เตรียมข้อมูล

เครื่องมือฝังข้อความใช้งานได้กับข้อมูลข้อความ (str) งานจะจัดการอินพุตข้อมูล การประมวลผลล่วงหน้า ซึ่งรวมถึงการแปลงเป็นโทเค็นและการประมวลผลล่วงหน้า Tensor

การประมวลผลล่วงหน้าทั้งหมดจะจัดการภายในฟังก์ชัน embed ไม่จำเป็นต้องใช้ เพื่อประมวลผลอินพุตเพิ่มเติมล่วงหน้า

input_text = "The input text to be embedded."

เรียกใช้งาน

เครื่องมือฝังข้อความใช้ฟังก์ชัน embed เพื่อเรียกใช้การอนุมาน สำหรับข้อความ การฝัง ซึ่งหมายความว่าการแสดงผลเวกเตอร์ที่มีการฝังสำหรับข้อความที่ป้อน

โค้ดต่อไปนี้แสดงวิธีประมวลผลการประมวลผลด้วยโมเดลงาน

# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)

จัดการและแสดงผลลัพธ์

เครื่องมือฝังข้อความจะแสดง TextEmbedderResult ที่มีรายการของ การฝัง (ไม่ว่าจะเป็นจุดลอยตัวหรือสเกลาร์ที่ปรับค่าเป็นสเกลาร์) สำหรับข้อความอินพุต

ตัวอย่างต่อไปนี้แสดงตัวอย่างข้อมูลเอาต์พุตจากงานนี้

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

คุณสามารถเปรียบเทียบความคล้ายคลึงกันทางอรรถศาสตร์ของการฝัง 2 อย่างโดยใช้ TextEmbedder.cosine_similarity โปรดดูโค้ดต่อไปนี้สำหรับ

# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])