Azure

Form Recognizer의 학습된 Custom model을 기준으로 Azure Blob Storage의 pdf 파일 Python으로 분석하기

whistory 2023. 6. 30. 12:16
반응형

 

 

Form Recognizer를 사용해 custom model 활용해보기

 

Azure Cognitive Service의 Form Recognizer 사용해 보기

Azure Cognitive Service인 Form Recognizer 사용해본다. 구버전 tool Form OCR Testing Tool fott.azurewebsites.net 신버전 tool Form Recognizer Studio - Microsoft Azure formrecognizer.appliedai.azure.com 여기서는 새로운 버전을 사용해본

whiseung.tistory.com

 

Form Recognizer를 사용해 Azure Blob Storage의 pdf 파일 분석해보기

 

 

Form Recognizer로 Azure Blob Storage의 파일을 읽어 텍스트 추출해보기

from azure.core.credentials import AzureKeyCredential from azure.ai.formrecognizer import DocumentAnalysisClient from azure.storage.blob import ContainerClient endpoint = "FORM_RECOGNIZER_END_POINT" key = "FORM_RECOGNIZER_KEY" def get_blob_url(): STORAGE_C

whiseung.tistory.com

 

 

 

 

이제 python 으로,

azure blog storage의 pdf파일을 읽고,

생성한 custom model 로 분석을 하는 코드를 작성해본다.

 

from azure.core.credentials import AzureKeyCredential  
from azure.ai.formrecognizer import DocumentModelAdministrationClient, DocumentAnalysisClient, ModelBuildMode  
from azure.storage.blob import ContainerClient, ContainerClient

# Form recognizer Connection Information
endpoint = "FORM_RECOGNIZER_ENDPOINT"
key = "FORM_RECOGNIZER_KEY"

model_id = "SAMPLE_TEST_MODEL"
print("model id = " + model_id)

# Azure Blob Storage Information
STORAGE_CONSTR = "AZURE_BLOB_STORAGE_CONNECTION_STRING"
SOURCE_NAME = "samplepdf"
FILE_NAME = "samples/조삼성.pdf"

def get_blob_url():
    container = ContainerClient.from_connection_string(
        conn_str = STORAGE_CONSTR,
        container_name = SOURCE_NAME
    )

    blob_list = container.list_blobs()
    blob_url = container.url
    
    formUrl = ""
    for blob in blob_list:
        if blob.name == FILE_NAME:
            formUrl = f"{blob_url}/{blob.name}"
    
    return formUrl

def main():
    # blob storate url 가져오기
    blob_storage_url = get_blob_url()
    print("file path = " + FILE_NAME)

    # DocumentAnalysisClient 인스턴스 생성
    document_analysis_client = DocumentAnalysisClient(endpoint=endpoint, credential=AzureKeyCredential(key))
    poller = document_analysis_client.begin_analyze_document_from_url(model_id, blob_storage_url)

    # 분석 작업이 완료될 때까지 대기
    poller.wait()

    # 분석 작업의 결과 가져오기
    analysis_result = poller.result()
    for document in analysis_result.documents:
        for field, value in document.fields.items():
            print("{} : {} ({})\\r\\n".format(field, value.value, value.confidence))

if __name__ == "__main__":
    main()

 

 

반응형