處理文件後——無論是透過 API 或 web UI——Vantage 都會回傳結構化資料,其中包含擷取的欄位值、信賴分數和驗證旗標。本頁將說明如何解讀這些輸出資料。
每個結果都遵循相同的階層:
ExtractedDataTransaction
├── SkillName, SkillId
├── Documents[]
│ ├── ExtractedData
│ │ ├── DocumentDefinition ← 欄位結構描述(可擷取的內容)
│ │ └── RootObject ← 欄位值(已擷取的內容)
│ │ └── Fields[]
│ │ ├── Name
│ │ └── List[]
│ │ ├── Value
│ │ ├── Annotation (Confidence, RawValue, ...)
│ │ ├── NeedVerification
│ │ └── isVerified
│ └── ClassificationResult ← 文件類型(若已套用分類)
└── SourceFiles[]
對於大多數使用情境,您只需前往 Documents[0].ExtractedData.RootObject.Fields,即可存取擷取的值。
以下是經 ABBYY Invoice skill 處理的發票簡化範例:
{
"SkillName": "ABBYY Invoice",
"SkillId": "a1b2c3d4-...",
"Documents": [
{
"ExtractedData": {
"RootObject": {
"Fields": [
{
"Name": "InvoiceNumber",
"List": [
{
"Value": "INV-2024-0042",
"Annotation": {
"Confidence": 97,
"RawValue": "INV-2024-0042",
"Source": "Text"
},
"NeedVerification": false,
"isVerified": false
}
]
},
{
"Name": "InvoiceDate",
"List": [
{
"Value": "2024-03-15",
"Annotation": {
"Confidence": 94,
"RawValue": "March 15, 2024",
"Source": "Text"
},
"NeedVerification": false,
"isVerified": false
}
]
},
{
"Name": "TotalAmount",
"List": [
{
"Value": "1,250.00",
"Annotation": {
"Confidence": 62,
"RawValue": "1.250,00",
"Source": "Image"
},
"NeedVerification": true,
"isVerified": false
}
]
}
]
}
}
}
]
}
每個欄位包含:
| Property | 說明 |
|---|
Name | 由 skill 定義的欄位名稱 (例如:“InvoiceNumber”、“VendorName”) |
Value | 正規化後擷取出的值——日期會轉為 ISO 格式,數字會統一為標準格式 |
Annotation.Confidence | 0 到 100 的整數,表示 Vantage 對擷取結果的確定程度 |
Annotation.RawValue | OCR 辨識出的原始文字,尚未經過任何正規化 |
Annotation.Source | 該值是來自文件的 Text 層,還是從 Image 讀取 |
NeedVerification | 如果欄位被標記為需要人工審核 (例如信心值偏低或未通過驗證規則) ,則為 true |
isVerified | 如果人工操作員已在手動審核中確認該值,則為 true |
請注意,上方的 TotalAmount 顯示 Confidence: 62 和 NeedVerification: true。原始值 1.250,00 (歐洲格式) 已正規化為 1,250.00,但較低的信心值表示 Vantage 對 OCR 結果尚未完全確定。這正是需要由人工審核者檢查的欄位類型。
擷取表格的skill (例如發票明細項目) 會將其表示為包含重複群組的欄位。每一列都會在該欄位的 List 陣列中以 ExtractedObject 的形式呈現,並包含各自的子欄位:
{
"Name": "LineItems",
"List": [
{
"Fields": [
{ "Name": "Description", "List": [{ "Value": "Consulting services", ... }] },
{ "Name": "Quantity", "List": [{ "Value": "10", ... }] },
{ "Name": "UnitPrice", "List": [{ "Value": "100.00", ... }] },
{ "Name": "Amount", "List": [{ "Value": "1,000.00", ... }] }
]
},
{
"Fields": [
{ "Name": "Description", "List": [{ "Value": "Travel expenses", ... }] },
{ "Name": "Quantity", "List": [{ "Value": "1", ... }] },
{ "Name": "UnitPrice", "List": [{ "Value": "250.00", ... }] },
{ "Name": "Amount", "List": [{ "Value": "250.00", ... }] }
]
}
]
}
每一列都有相同的欄位結構,因此在程式碼中迭代處理很容易。
信心分數反映 Vantage 對擷取值的確定程度。影響信心分數的因素包括:
- 文件品質 — 模糊掃描、低解析度影像或手寫文字都會導致分數較低
- 版面複雜度 — 不尋常的表格版面或重疊的欄位可能降低準確性
- 訓練資料匹配度 — 與 skill 訓練模式越相符的值,分數越高
如何以程式方式使用信心分數:
- 高信心 (90–100) — 自動接受該值
- 中等信心 (70–89) — 謹慎接受,或將關鍵欄位送交審核
- 低信心 (低於 70) — 送交至 手動審核 進行人工驗證
具有 NeedVerification: true 的欄位,表示 Vantage 已根據 skill 中設定的信心門檻和驗證規則將其標記。
每個skill都會定義自己的一組欄位名稱。以下列出常用skill中最常見的欄位:
| skill | 重要欄位 |
|---|
| 發票 | InvoiceNumber, InvoiceDate, VendorName, TotalAmount, TaxAmount, LineItems |
| 收據 | ReceiptNumber, Date, VendorName, Total, Tax, PaymentMethod, LineItems |
| 採購單 | PONumber, OrderDate, BuyerName, SupplierName, TotalAmount, LineItems |
| 身分證明文件 | FirstName, LastName, DateOfBirth, DocumentNumber, ExpirationDate, Nationality |
以上是最常見的欄位。每個skill也可能包含其他欄位。瀏覽skill目錄,即可查看任何skill的完整欄位清單。
完整 JSON 結構描述
JSON 輸出中所有物件和屬性的完整參考。
XML 輸出
另一種輸出格式,以 XML 結構呈現相同的擷取資料。
接下來學什麼
根據您的目標,選擇適合的 Vantage 文件學習路徑。