Azure AI services - Extract form data in Document Intelligence Studio:
using Azure;
using Azure.AI.DocumentIntelligence;
public class Program
{
public static async Task Main(string[] args)
{
string endpoint = "https://dir1.cognitiveservices.azure.com/"; // "YOUR_FORM_RECOGNIZER_ENDPOINT";
string apiKey = "60c7be9d64fa32764c98b6xbx8x9xd6"; //"YOUR_FORM_RECOGNIZER_KEY";
AzureKeyCredential credential = new AzureKeyCredential(apiKey);
DocumentIntelligenceClient client = new DocumentIntelligenceClient(new Uri(endpoint),
credential);
Uri
receiptUri = new Uri("https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png");
Operation<AnalyzeResult> operation = await client.AnalyzeDocumentAsync(WaitUntil.Completed, "prebuilt-receipt", receiptUri);
AnalyzeResult receipts = operation.Value;
foreach (AnalyzedDocument receipt in receipts.Documents)
{
if (receipt.Fields.TryGetValue("MerchantName", out DocumentField merchantNameField))
{
if (merchantNameField.FieldType == DocumentFieldType.String)
{
string merchantName = merchantNameField.ValueString;
Console.WriteLine($"Merchant Name: '{merchantName}',
with confidence {merchantNameField.Confidence}");
}
}
if (receipt.Fields.TryGetValue("TransactionDate", out DocumentField transactionDateField))
{
if (transactionDateField.FieldType == DocumentFieldType.Date)
{
DateTimeOffset? transactionDate = transactionDateField.ValueDate;
Console.WriteLine($"Transaction Date: '{transactionDate}',
with confidence {transactionDateField.Confidence}");
}
}
if (receipt.Fields.TryGetValue("Items", out DocumentField itemsField))
{
if (itemsField.FieldType == DocumentFieldType.List)
{
foreach (DocumentField itemField in itemsField.ValueList)
{
Console.WriteLine("Item:");
if (itemField.FieldType == DocumentFieldType.Dictionary)
{
IReadOnlyDictionary<string, DocumentField> itemFields = itemField.ValueDictionary;
if (itemFields.TryGetValue("Description", out DocumentField itemDescriptionField))
{
if (itemDescriptionField.FieldType == DocumentFieldType.String)
{
string itemDescription = itemDescriptionField.ValueString;
Console.WriteLine($"
Description: '{itemDescription}', with confidence {itemDescriptionField.Confidence}");
}
}
if (itemFields.TryGetValue("TotalPrice", out DocumentField itemTotalPriceField))
{
if (itemTotalPriceField.FieldType == DocumentFieldType.Currency)
{
double? itemTotalPrice = itemTotalPriceField.ValueCurrency.Amount;
Console.WriteLine($"
Total Price: '{itemTotalPrice}', with confidence {itemTotalPriceField.Confidence}");
}
}
}
}
}
}
if (receipt.Fields.TryGetValue("Total", out DocumentField totalField))
{
if (totalField.FieldType == DocumentFieldType.Currency)
{
double total = totalField.ValueCurrency.Amount;
Console.WriteLine($"Total: '{total}', with confidence '{totalField.Confidence}'");
}
}
}
Console.ReadKey();
}
}
C# Code:
using Azure;
{
public static async Task Main(string[] args)
{
string endpoint = "https://dir1.cognitiveservices.azure.com/"; // "YOUR_FORM_RECOGNIZER_ENDPOINT";
string apiKey = "60c7be9d64fa32764c98b6xbx8x9xd6"; //"YOUR_FORM_RECOGNIZER_KEY";
AzureKeyCredential credential = new AzureKeyCredential(apiKey);
{
if (receipt.Fields.TryGetValue("MerchantName", out DocumentField merchantNameField))
{
if (merchantNameField.FieldType == DocumentFieldType.String)
{
string merchantName = merchantNameField.ValueString;
}
if (receipt.Fields.TryGetValue("TransactionDate", out DocumentField transactionDateField))
{
if (transactionDateField.FieldType == DocumentFieldType.Date)
{
DateTimeOffset? transactionDate = transactionDateField.ValueDate;
}
if (receipt.Fields.TryGetValue("Items", out DocumentField itemsField))
{
if (itemsField.FieldType == DocumentFieldType.List)
{
foreach (DocumentField itemField in itemsField.ValueList)
{
Console.WriteLine("Item:");
{
IReadOnlyDictionary<string, DocumentField> itemFields = itemField.ValueDictionary;
{
if (itemDescriptionField.FieldType == DocumentFieldType.String)
{
string itemDescription = itemDescriptionField.ValueString;
}
if (itemFields.TryGetValue("TotalPrice", out DocumentField itemTotalPriceField))
{
if (itemTotalPriceField.FieldType == DocumentFieldType.Currency)
{
double? itemTotalPrice = itemTotalPriceField.ValueCurrency.Amount;
}
}
}
}
}
if (receipt.Fields.TryGetValue("Total", out DocumentField totalField))
{
if (totalField.FieldType == DocumentFieldType.Currency)
{
double total = totalField.ValueCurrency.Amount;
}
}
Console.ReadKey();
}
Output:
Python Code:
# pip install azure-ai-documentintelligence==1.0.0b4
key = "8ajYtpyzoJtV0bddxOpfZkmooJJQQJ99BAACYeBjFXJ3w3AAALACOGwbWr"
endpoint = endpoint, credential = AzureKeyCredential(key)
)
"prebuilt-receipt", AnalyzeDocumentRequest(url_source = url)
receipts = poller.result()
if receipt_type:
"Receipt Type: {}".format(receipt_type)
merchant_name = receipt.fields.get("MerchantName")
"Merchant Name: {} has confidence: {}".format(
)
)
transaction_date = receipt.fields.get("TransactionDate")
"Transaction Date: {} has confidence: {}".format(
transaction_date.value_date, transaction_date.confidence
)
)
if receipt.fields.get("Items"):
for idx, item in enumerate(receipt.fields.get("Items").value_array):
item_description = item.value_object.get("Description")
if item_description:
"......Item Description: {} has confidence: {}".format(
item_description.value_string, item_description.confidence
)
)
item_quantity = item.value_object.get("Quantity")
if item_quantity:
"......Item Quantity: {} has confidence: {}".format(
item_quantity.value_number, item_quantity.confidence
)
)
item_price = item.value_object.get("Price")
if item_price:
"......Individual Item Price: {} has confidence: {}".format(
item_price.value_currency.amount, item_price.confidence
)
)
item_total_price = item.value_object.get("TotalPrice")
if item_total_price:
"......Total Item Price: {} has confidence: {}".format(
item_total_price.value_currency.amount, item_total_price.confidence
)
)
subtotal = receipt.fields.get("Subtotal")
if subtotal:
"Subtotal: {} has confidence: {}".format(
subtotal.value_currency.amount, subtotal.confidence
)
)
tax = receipt.fields.get("TotalTax")
if tax:
tip = receipt.fields.get("Tip")
if tip:
total = receipt.fields.get("Total")
if total:
print("--------------------------------------")
OutPut:
43C1F1FD05
ReplyDeleteCam Åžov
Canlı Cam Show
Görüntülü Sex Sohbet
A859C6C9A883
ReplyDeleteSosyal medya hesaplarınızın görünürlüğünü artırmak ve takipçi sayınızı hızlıca yükseltmek istiyorsanız çeşitli hizmetler sunan platformları araştırmanız faydalı olacaktır. Bu noktada güvenilir smm panel seçeneklerini değerlendirmek hem kaliteli hizmet almanızı sağlar hem de uzun vadeli başarı elde etmenize yardımcı olur. Güvenilir ve etkili sonuçlar için bu tür panellerin kullanıcı yorumlarını incelemeniz önemlidir. Doğru tercihleri yaparak sosyal medyada fark yaratabilirsiniz.