본문 바로가기
AI 공부/ML & DL

🛠️ AI 프로젝트: AI를 활용한 자동 회계 어시스턴트 🤖💼

by 데이터 벌집 2025. 1. 1.
반응형

이 프로젝트는 영수증이나 송장(invoices)에서 데이터를 자동으로 추출하고 정리하여 회계 작업을 간소화하는 시스템을 만드는 것입니다!

✨ 이 시스템이 수행하는 주요 작업은 다음과 같아요:

📜 1. 스캔된 영수증이나 송장에서 텍스트 추출
📊 2. 추출된 데이터를 분석하고 필요한 정보(날짜, 금액, 공급업체 이름 등)를 구조화
💾 3. 데이터를 엑셀 파일 또는 데이터베이스에 자동 저장

🛠️ 예제 프로젝트: AI를 활용한 자동 회계 어시스턴트

 


💻 기술 스택

🟢 Python
🟡 Tesseract OCR: 이미지에서 텍스트를 추출
🔵 Hugging Face Transformers: 자연어 처리를 활용해 데이터 분석
🟠 Pandas: 데이터 정리 및 엑셀 파일 저장
🔴 Flask: 간단한 웹 인터페이스 제공 (옵션)

 

🎯 기능

 

✅ PDF, JPG, PNG 형태의 영수증/송장을 업로드
✅ 자동으로 아래 정보를 추출:

  • 🏢 공급업체 이름
  • 📅 날짜
  • 📄 송장 번호
  • 💰 총 금액
    ✅ 정리된 데이터를 엑셀 파일로 저장하거나 데이터베이스에 삽입

🛠️ 단계별 구현

1️⃣ 필요한 라이브러리 설치

아래 명령어로 필요한 Python 라이브러리를 설치하세요:

pip install pytesseract pandas transformers flask
pip install pdf2image PyPDF2 openpyxl

2️⃣ Tesseract OCR 설치

📌 Tesseract OCR 설치 가이드를 참고하세요.
📌 설치 후, 실행 파일 경로를 시스템 환경 변수에 추가하세요.

 


3️⃣ 텍스트 추출 코드

🖼️ 이미지나 PDF에서 텍스트를 추출하는 코드는 아래와 같습니다:

from pdf2image import convert_from_path
import pytesseract
from PIL import Image

# 이미지에서 텍스트 추출
def extract_text_from_image(image_path):
    return pytesseract.image_to_string(Image.open(image_path))

# PDF에서 텍스트 추출
def extract_text_from_pdf(pdf_path):
    pages = convert_from_path(pdf_path)
    text = ""
    for page in pages:
        text += pytesseract.image_to_string(page)
    return text

4️⃣ 추출된 텍스트 분석

🤓 Hugging Face의 NER 모델을 사용해 데이터를 분석합니다:

from transformers import pipeline

# 사전 학습된 Named Entity Recognition (NER) 모델 불러오기
ner_pipeline = pipeline('ner', model='model')

def extract_entities(text):
    entities = ner_pipeline(text)
    data = {'공급업체': '', '날짜': '', '금액': ''}
    for entity in entities:
        if entity['entity'] == 'ORG':  # 조직 이름
            data['공급업체'] = entity['word']
        elif entity['entity'] == 'DATE':  # 날짜
            data['날짜'] = entity['word']
        elif entity['entity'] == 'MONEY':  # 금액
            data['금액'] = entity['word']
    return data

5️⃣ 엑셀 파일로 저장

📊 데이터를 엑셀 파일로 저장하는 방법은 다음과 같습니다:

import pandas as pd

# 데이터를 엑셀로 내보내기
def export_to_excel(data, filename='output.xlsx'):
    df = pd.DataFrame(data, index=[0])  # 딕셔너리를 DataFrame으로 변환
    df.to_excel(filename, index=False)

6️⃣ 간단한 Flask 웹 인터페이스 (옵션)

🌐 사용자가 파일을 업로드할 수 있는 간단한 웹 인터페이스를 추가할 수도 있어요:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/')
def home():
    return """
    <h1>AI 회계 어시스턴트</h1>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file">
        <button type="submit">업로드</button>
    </form>
    """

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        text = extract_text_from_image(file)  # PDF의 경우 extract_text_from_pdf() 사용
        data = extract_entities(text)  # 텍스트 분석
        export_to_excel(data)  # 엑셀 파일로 저장
        return jsonify(data)  # JSON 형식으로 결과 반환
    return "파일 업로드 실패!"

🚀 결과물

  • 📤 사용자가 영수증/송장 업로드
  • 🤖 AI가 자동으로 텍스트를 추출하고 데이터를 구조화
  • 📊 정리된 데이터를 엑셀 파일로 저장

💡 확장 아이디어

  • 데이터베이스와 연결해 대규모 회계 데이터를 관리
  • 추가적인 데이터 분석 (예: 월별 지출 추이 📈, 공급업체별 총 금액 💰)
  • 사용자 인터페이스(UI) 개선 🌟

이 프로젝트로 AI를 활용한 회계 자동화를 직접 구현해 보세요! 💼✨

반응형