ดึงข้อมูลจากเอกสาร
Tip
ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!
กระบวนการทางธุรกิจในปัจจุบันขึ้นอยู่กับข้อมูลที่มีอยู่ในเอกสาร เช่น แบบฟอร์ม ใบเสร็จรับเงิน และใบแจ้งหนี้เป็นอย่างมาก การประมวลผลด้วยตนเองอาจทําให้เกิดความล่าช้าและข้อผิดพลาด ทําให้ระบบอัตโนมัติในการดึงข้อมูลมีความสําคัญมากกว่าที่เคย
Azure Content Understanding ทํางานอย่างไร
Azure Content Understanding เป็นไปตามเวิร์กโฟลว์การแยกแบบจําลอง ซึ่งเนื้อหาที่ไม่มีโครงสร้างจะถูกนําเข้า วิเคราะห์ และส่งคืนเป็นข้อมูลที่มีโครงสร้าง
นําเข้าเนื้อหา: คุณส่งเนื้อหาไปยัง Azure Content Understanding
การวิเคราะห์ที่ขับเคลื่อนด้วย AI: บริการนี้ใช้การผสมผสานระหว่าง: การรู้จําอักขระด้วยแสง (OCR) การรู้จําเสียง การทําความเข้าใจภาษาธรรมชาติ และโมเดล AI แบบหลายรูปแบบเพื่อวิเคราะห์เนื้อหา
เอาต์พุตที่มีโครงสร้าง: บริการส่งคืนผลลัพธ์ที่มีโครงสร้าง (เช่น ใน JSON) ที่ตรงกับโมเดลของคุณ ซึ่งทําให้ง่ายต่อการจัดเก็บ ค้นหา หรือรวมเข้ากับระบบดาวน์สตรีม
Note
JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลแบบข้อความที่ใช้ในการจัดเก็บและแลกเปลี่ยนข้อมูลที่มีโครงสร้างระหว่างระบบ มนุษย์อ่านและเขียนได้ง่าย และง่ายสําหรับเครื่องจักรในการแยกวิเคราะห์และสร้าง
ทําความเข้าใจสคีมา
OCR (การรู้จําอักขระด้วยแสง) ช่วยให้คอมพิวเตอร์สามารถ 'อ่าน' ข้อความจากรูปภาพ เช่น เอกสารที่สแกน ภาพถ่ายใบเสร็จรับเงิน หรือรูปภาพของหน้าที่พิมพ์ และเปลี่ยนข้อความนั้นให้เป็นข้อความดิจิทัลที่แก้ไขและค้นหาได้ OCR พื้นฐาน ช่วย จดจําข้อความที่พิมพ์ มุ่งเน้นไปที่การแยกข้อความ และไม่เข้าใจความหมาย บริบท หรือความสัมพันธ์ระหว่างคํา
ความสามารถในการวิเคราะห์เอกสารของ Azure Content Understanding เป็นมากกว่าการแยกข้อความที่ใช้ OCR อย่างง่าย เพื่อรวมการแยกฟิลด์และค่าตามสคีมา แนวทางที่ขับเคลื่อนด้วยสคีมาคือสิ่งที่ทําให้ Azure Content Understanding แตกต่างจาก OCR พื้นฐานหรือบริการการถอดความ
Schema อธิบาย ว่าข้อมูลใดที่คุณต้องการแยก และ ควรจัดโครงสร้างข้อมูลนั้นอย่างไร เมื่อคุณกําหนด Schema คุณจะระบุฟิลด์ที่จะแยก Schema แสดงรายการฟิลด์หรือเอนทิตีเฉพาะที่คุณสนใจ
ตัวอย่างเช่น สมมติว่าคุณกําหนด schema ที่มีเขตข้อมูลทั่วไปที่พบโดยทั่วไปในใบแจ้งหนี้ เช่น:
- ชื่อผู้จัดจำหน่าย
- หมายเลขใบแจ้งหนี้
- วันที่ในใบแจ้งหนี้
- ชื่อผู้ซื้อสินค้า / ผู้รับบริการ
- ที่อยู่แบบกําหนดเอง
- สินค้า - สินค้าที่สั่ง แต่ละรายการประกอบด้วย:
- คำอธิบายสินค้า
- ราคาต่อหน่วย
- ปริมาณที่สั่ง
- ยอดรวมสินค้าในรายการ
- ผลรวมย่อยของใบแจ้งหนี้
- Tax
- ค่าจัดส่ง
- ผลรวมในใบแจ้งหนี้
ตอนนี้สมมติว่าคุณต้องแยกข้อมูลนี้ออกจากใบแจ้งหนี้ต่อไปนี้:
Azure Content Understanding สามารถใช้ Schema ใบแจ้งหนี้กับใบแจ้งหนี้ของคุณ และระบุฟิลด์ที่เกี่ยวข้อง แม้ว่าจะมีป้ายชื่อด้วยชื่อที่แตกต่างกัน (หรือไม่มีป้ายชื่อเลย) การวิเคราะห์ผลลัพธ์จะสร้างผลลัพธ์ดังนี้:
Schema ยังกําหนดโครงสร้างฟิลด์ด้วย สคีมารองรับ ฟิลด์ที่มีโครงสร้างและซ้อนกัน ไม่ใช่แค่ข้อความแบน เช่น:
-
Itemsเป็นคอลเลกชัน - แต่ละรายการมี
description,unit price,quantityและline total
การระบุฟิลด์ที่มีโครงสร้างช่วยให้ Azure Content Understanding เข้าใจความสัมพันธ์ระหว่างค่า ซึ่งเป็นสิ่งที่ OCR เพียงอย่างเดียวไม่สามารถทําได้
ในตัวอย่างใบแจ้งหนี้ สําหรับ แต่ละฟิลด์ที่ตรวจพบ คุณสามารถแยกค่าที่ซ้อนกันได้:
- ชื่อผู้จําหน่าย: รอบงานผจญภัย
- หมายเลขใบแจ้งหนี้: 1234
- วันออกใบแจ้งหนี้: 03/07/2025
- ชื่อลูกค้า: John Smith
- ที่อยู่ที่กําหนดเอง: 123 River Street, Marshtown, England, GL1 234
-
รายการ:
- รายการที่ 1:
- คําอธิบายรายการ: จักรยานเสือหมอบ 38 นิ้ว (สีแดง)
- ราคาต่อหน่วย: 1299.00
- ปริมาณที่สั่งซื้อ: 1
- รายการสินค้าในรายการทั้งหมด: 1299.00
- รายการที่ 2:
- คําอธิบายรายการ: หมวกกันน็อกจักรยาน (สีดํา)
- ราคาต่อหน่วย: 25.99
- ปริมาณที่สั่งซื้อ: 1
- รายการสินค้าในรายการทั้งหมด: 25.99
- รายการที่ 3:
- คําอธิบายรายการ: เสื้อปั่นจักรยาน( l)
- ราคาต่อหน่วย: 42.50
- ปริมาณที่สั่งซื้อ: 2
- รายการทั้งหมด: 85.00
- รายการที่ 1:
- ผลรวมย่อยของใบแจ้งหนี้: 1409.99
- ภาษี: 140.99
- ค่าจัดส่ง: 35.00
- ใบแจ้งหนี้รวม: 1585.98
Azure Content Understanding จะแยกความหมายที่คาดหวัง ไม่ใช่แค่ป้ายชื่อ สคีมาถูกนําไปใช้ ตามความหมาย ซึ่งหมายความว่า:
- สามารถแยกฟิลด์ได้แม้ว่าป้ายชื่อจะแตกต่างกัน
- สามารถแยกฟิลด์ได้แม้ว่าจะไม่มีป้ายชื่อ
ตัวอย่างเช่น หมายเลขใบแจ้งหนี้ใบแจ้งหนี้ # หรือหมายเลขที่ไม่มีป้ายชื่อทั้งหมดสามารถแมปได้ InvoiceNumber หากตัววิเคราะห์ระบุว่าเป็นตัวแทนของแนวคิดเดียวกัน
ทําความเข้าใจกับตัววิเคราะห์
ตัว วิเคราะห์ เป็นหน่วยใน Azure Content Understanding ที่รับอินพุต ใช้การวิเคราะห์ AI และสร้างผลลัพธ์ที่มีโครงสร้าง ตัววิเคราะห์ใช้ตรรกะการแยกเดียวกันกับเนื้อหาขาเข้าทั้งหมดอย่างสม่ําเสมอ เมื่อกําหนดค่าแล้ว ตัววิเคราะห์จะช่วยให้แน่ใจว่าสคีมาจะถูกนํากลับมาใช้ใหม่อย่างสม่ําเสมอสําหรับทุกคําขอการวิเคราะห์ เครื่องวิเคราะห์ยังให้ผลลัพธ์ JSON ที่คาดการณ์ได้ ผลลัพธ์ที่มีโครงสร้างทําให้การประมวลผลดาวน์สตรีม (ที่เก็บข้อมูล การค้นหา ระบบอัตโนมัติ) ง่ายขึ้น
Azure Content Understanding นําเสนอตัววิเคราะห์ที่สร้างไว้ล่วงหน้าสําหรับสถานการณ์ทั่วไป และสนับสนุนตัววิเคราะห์แบบกําหนดเองที่ปรับให้เหมาะกับความต้องการของคุณ ในระดับสูง:
- คุณเลือกหรือสร้างตัววิเคราะห์
- เครื่องวิเคราะห์ประกอบด้วยสคีมาที่กําหนดฟิลด์และโครงสร้าง
- คุณส่งเนื้อหาเพื่อการวิเคราะห์
- บริการใช้สคีมา
- คุณได้รับผลลัพธ์ JSON ที่มีโครงสร้างที่ตรงกับ Schema
การใช้ Azure Content Understanding ในพอร์ทัล Foundry
Note
พอร์ทัลโรงหล่อมีส่วนติดต่อผู้ใช้ (UI) แบบคลาสสิกและส่วนติดต่อผู้ใช้ใหม่
หลังจากที่คุณสร้างทรัพยากร Microsoft Foundry คุณสามารถใช้อินเทอร์เฟซพอร์ทัล new เพื่อทดสอบความเข้าใจเนื้อหา Azure พอร์ทัล Foundry ให้ตัวอย่างเนื้อหาและให้คุณอัปโหลดเนื้อหาของคุณเองเพื่อการวิเคราะห์
คุณสามารถใช้อินเทอร์เฟซภาพเพื่อเลือกเอกสารต้นฉบับและแยกฟิลด์ข้อมูลเริ่มต้น ตัวอย่างเช่น เมื่อคุณลองใช้ Azure Content Understanding บนรูปภาพของเอกสาร บริการจะส่งคืนข้อความเอกสารและข้อมูลเค้าโครงข้อความ
ตัววิเคราะห์ของ Azure Content Understanding จะระบุค่าข้อความในเอกสารและแมปกับฟิลด์เฉพาะ ตัวอย่างเช่น เมื่อระบุใบแจ้งหนี้ บริการจะส่งคืนฟิลด์ (เช่น ที่อยู่ผู้จัดจําหน่าย) และข้อมูลในฟิลด์ (เช่น 123 456th Street)
ในพอร์ทัล Foundry คุณยังสามารถดูผลลัพธ์ JSON ของการประมวลผลได้อีกด้วย
การสร้างแอปพลิเคชันไคลเอ็นต์ด้วย Azure Content Understanding
คุณสามารถใช้ Content Understanding API เพื่อสร้างแอปพลิเคชันไคลเอ็นต์ขนาดเล็กที่ดึงข้อมูลโดยทางโปรแกรม
Note
แอปพลิเคชันไคลเอ็นต์คือโปรแกรมซอฟต์แวร์ที่ทํางานบนอุปกรณ์ของผู้ใช้และร้องขอบริการหรือข้อมูลจากระบบอื่น ซึ่งโดยทั่วไปคือเซิร์ฟเวอร์ผ่านเครือข่าย ไคลเอนต์เป็นส่วนหนึ่งของแอปพลิเคชันที่ผู้ใช้โต้ตอบด้วย ในขณะที่เซิร์ฟเวอร์ทํางานหนักอยู่เบื้องหลัง แอปพลิเคชันสามารถขอข้อมูลหรือการดําเนินการจากบริการและรับการตอบสนองที่มีโครงสร้างโดยใช้ API
เมื่อใช้ Content Understanding API คุณสามารถเลือกตัววิเคราะห์ที่สร้างไว้ล่วงหน้าหรือสร้างตัววิเคราะห์แบบกําหนดเองได้ เครื่องวิเคราะห์ที่สร้างไว้ล่วงหน้า ได้แก่ , prebuilt-invoice, prebuilt-imageSearch, prebuilt-audioSearchและprebuilt-videoSearch เมื่อคุณส่งเนื้อหาสําหรับการวิเคราะห์ไปยังตัววิเคราะห์ การวิเคราะห์จะเป็น แบบอะซิงโครนัส ซึ่งหมายความว่าคุณจะได้รับผลลัพธ์ในภายหลังเมื่อพร้อม เนื่องจากการวิเคราะห์เป็นแบบอะซิงโครนัส คุณจึงต้อง สํารวจ URL Operation-Location (หรือ analyzerResults) จนกว่างานจะสําเร็จ
การใช้ Azure Content Understanding Python SDK
มาดูขั้นตอนการใช้ Python SDK เพื่อวิเคราะห์ใบแจ้งหนี้จาก URL กัน
- ติดตั้ง Azure Content Understanding Python SDK
python -m pip install azure-ai-contentunderstanding
ระบุตําแหน่งข้อมูลทรัพยากร Foundry และคีย์ API หรือ Microsoft Entra ID ของคุณ โดยปกติแล้วปลายทางของคุณจะมีลักษณะดังนี้
https://<your-resource-name>.services.ai.azure.com/สร้างและเรียกใช้โค้ดแอปพลิเคชันไคลเอ็นต์ นี่คือ
analzyer_idID ของตัววิเคราะห์ที่สร้างไว้ล่วงหน้า คุณสามารถค้นหารายการของค่า ID ตัววิเคราะห์ที่สร้างไว้ล่วงหน้าได้ที่นี่
import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["FOUNDRY_ENDPOINT"]
key = os.environ["FOUNDRY_KEY"]
client = ContentUnderstandingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
# 1) start analysis with analyzer id + inputs
analyzer_id = "prebuilt-invoice"
inputs = [
{"url": "https://github.com/Azure-Samples/azure-ai-content-understanding-python/raw/refs/heads/main/data/invoice.pdf"}
]
# 2) wait for the Long Running Operation (LRO) to complete
poller = client.begin_analyze(analyzer_id=analyzer_id, inputs=inputs) # starts LRO
result = poller.result() # waits for completion (polling handled by SDK)
# 3) read structured fields + markdown
# The result typically includes extracted "fields" and "markdown" per input content item.
for content in result.contents:
print(content.markdown)
print(content.fields)
ผลลัพธ์ที่ได้คือ JSON ที่แสดงมาร์กดาวน์ที่แยกออกมา ฟิลด์ ข้อมูลในฟิลด์ และคะแนนความเชื่อมั่น เช่น:
{
"status": "Succeeded",
"result": {
"analyzerId": "prebuilt-invoice",
"apiVersion": "2025-05-01-preview",
"contents": [
{
"markdown": "# INVOICE\n\nCONTOSO LTD.\n\nContoso Headquarters\n123 456th St\nNew York, NY, 10001\n\nINVOICE: INV-100\n\nINVOICE DATE: 11/15/2019\n\nDUE DATE: 12/15/2019\n\nCUSTOMER NAME: MICROSOFT CORPORATION\n",
"fields": {
"CustomerName": {
"type": "string",
"valueString": "MICROSOFT CORPORATION",
"confidence": 0.95,
},
"InvoiceDate": {
"type": "date",
"valueDate": "2019-11-15",
"confidence": 0.994,
}
}
}
]
}
}
เรียนรู้วิธีใช้ตัววิเคราะห์ Azure Content Understanding เพื่อดึงข้อมูลที่มีโครงสร้างจากเสียงและวิดีโอ