งานเครื่องมือฝังข้อความ 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])