Document AI 구축 방법
Document AI는 문서를 자동으로 인식하고 처리하는 인공지능 기술로, OCR(광학 문자 인식), 자연어 처리(NLP), 머신러닝 등을 활용하여 문서 데이터를 자동화할 수 있습니다. 이번 글에서는 Document AI를 구축하는 방법과 예제 코드를 소개하겠습니다.
1. Document AI 구축 방법
Document AI를 구축하기 위해서는 다음과 같은 단계가 필요합니다.
📌 1) 데이터 준비 및 수집
Document AI가 처리할 문서를 준비합니다.
• 스캔된 PDF, 이미지(JPG, PNG), 텍스트 파일 등
• 라벨링된 문서 데이터 (OCR 학습을 위한 데이터셋)
예제 데이터:
✅ 영수증, 계약서, 신분증, 보험 청구서 등
📌 2) OCR(광학 문자 인식) 적용
OCR(Optical Character Recognition)을 사용하여 문서에서 텍스트를 추출합니다.
• Google Vision OCR API
• Tesseract OCR (오픈소스)
• Amazon Textract
• Azure Form Recognizer
💡 예제 코드 (Python + Tesseract OCR)
import pytesseract
from PIL import Image
# Tesseract 설치 경로 설정 (Windows 사용자만 필요)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 이미지 파일 열기
image = Image.open('document_sample.jpg')
# OCR 수행
text = pytesseract.image_to_string(image)
# 출력 결과 확인
print(text)
✅ 결과: 이미지에서 텍스트를 추출하여 콘솔에 출력
📌 3) 자연어 처리(NLP)로 의미 분석
OCR을 통해 추출된 텍스트에서 중요한 정보를 찾기 위해 NLP를 적용합니다.
• Named Entity Recognition (NER): 특정 정보(이름, 날짜, 주소 등) 추출
• 텍스트 요약: 긴 문서를 짧은 요약문으로 변환
• 키워드 추출: 문서의 핵심 내용을 자동 분석
💡 예제 코드 (Python + spaCy NER)
import spacy
# spaCy 모델 로드 (사전 학습된 영어 모델)
nlp = spacy.load("en_core_web_sm")
# 예제 문서
text = "John Doe signed a contract with ABC Corp on March 5, 2023."
# 문서 분석
doc = nlp(text)
# 엔터티 추출
for ent in doc.ents:
print(f"{ent.text} - {ent.label_}")
✅ 결과:
John Doe - PERSON
ABC Corp - ORG
March 5, 2023 - DATE
👀 특정한 정보를 자동으로 추출하는 기능 구현 가능
📌 4) 문서 자동 분류 및 데이터 저장
추출된 텍스트를 기반으로 문서를 자동 분류합니다.
• 영수증, 계약서, 송장 등 문서 유형을 구분
• 머신러닝 모델을 활용하여 문서 내용을 카테고리화
💡 예제 코드 (Scikit-learn을 사용한 문서 분류)
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
# 샘플 문서 데이터
documents = [
"This is an invoice for your recent purchase.",
"Your contract has been approved and signed.",
"Here is your receipt for the payment."
]
# 문서 레이블 (0: 송장, 1: 계약서, 2: 영수증)
labels = [0, 1, 2]
# 텍스트 벡터화
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(documents)
# 분류 모델 학습
model = MultinomialNB()
model.fit(X, labels)
# 새로운 문서 예측
new_doc = ["This is your signed contract."]
X_new = vectorizer.transform(new_doc)
prediction = model.predict(X_new)
print(f"문서 유형 예측: {prediction}")
✅ 결과:
문서 유형 예측: [1] # 계약서로 분류됨
🎯 문서의 유형을 자동으로 분류하는 기능 구현 가능
📌 5) 클라우드 API 및 데이터베이스 연동
Document AI를 실무에서 활용하려면 클라우드 서비스 및 데이터베이스와 연동하여 자동화해야 합니다.
✅ Google Document AI API 사용 예제 (Google Cloud Vision OCR)
Google Document AI API는 $1.5 (매월 1000건까지 무료)
from google.cloud import vision
client = vision.ImageAnnotatorClient()
with open("document_sample.jpg", "rb") as image_file:
content = image_file.read()
image = vision.Image(content=content)
response = client.text_detection(image=image)
print(response.text_annotations[0].description)
🔹 Google Cloud Vision API를 사용하여 문서에서 텍스트를 자동 추출
✅ 데이터베이스(MySQL) 저장 예제
import mysql.connector
# MySQL 연결
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="document_ai"
)
cursor = conn.cursor()
# OCR로 추출한 텍스트 저장
text = "John Doe signed a contract on March 5, 2023."
cursor.execute("INSERT INTO documents (content) VALUES (%s)", (text,))
conn.commit()
cursor.close()
conn.close()
🔹 문서 데이터를 데이터베이스에 저장하여 관리 가능
6. Document AI 구축 예제 – 영수증 자동 분석기
💡 목표: OCR과 NLP를 이용하여 영수증에서 날짜, 총 금액, 상호명 추출
import pytesseract
import spacy
from PIL import Image
# OCR 실행
image = Image.open("receipt_sample.jpg")
text = pytesseract.image_to_string(image)
# NLP 적용 (스파이시 모델 로드)
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)
# 영수증에서 날짜, 총 금액, 상호명 추출
for ent in doc.ents:
if ent.label_ in ["DATE", "MONEY", "ORG"]:
print(f"{ent.label_}: {ent.text}")
✅ 출력 예시:
ORG: Starbucks
DATE: March 5, 2023
MONEY: $12.50
👀 영수증 자동 분석 시스템 구축 가능
결론 – Document AI를 활용한 자동화 시스템 구축 가능!
Document AI를 구축하면 문서 분석 및 처리 자동화가 가능하며, OCR + NLP + 머신러닝을 조합하여 기업의 업무 효율성을 극대화할 수 있습니다.
🚀 Document AI 적용 가능 분야:
✔ 금융 – 대출 신청서 자동 검토
✔ 의료 – 환자 기록 디지털화
✔ 법률 – 계약서 자동 분석
✔ 회계 – 영수증 및 세금 문서 처리