블로그 목록으로
텍스트 편집
2026년 5월 16일

OCR 인식 텍스트 후처리 - 오류 정리 자동화 방법

OCR로 추출한 텍스트에서 발생하는 글자 오인식, 공백 오류, 줄바꿈 문제를 자동으로 수정하는 후처리 방법과 도구를 설명합니다.

Q.OCR로 추출한 텍스트 오류를 어떻게 자동으로 수정하나요?

OCR 후처리는 세 단계로 진행합니다. 1) 패턴 기반 수정: 0/O 혼동, l/1 혼동 등 자주 발생하는 오인식을 정규식으로 일괄 수정합니다. 2) 사전 기반 검증: 한국어 맞춤법 검사기나 사용자 정의 사전으로 단어 오류를 잡습니다. 3) 맥락 기반 수정: 앞뒤 문맥을 분석해 의미적으로 맞는 단어로 교정합니다.

OCR 텍스트 후처리OCR 오류 수정OCR 자동화

OCR(광학 문자 인식)의 평균 문자 인식률은 최신 엔진 기준 95-98%로 알려져 있다. 얼핏 높아 보이지만, A4 한 페이지(약 1,800자)를 처리하면 오류가 36-90자 발생할 수 있다는 의미다. 수백 페이지 문서라면 후처리 없이는 검색, 데이터 입력, 요약 자동화에 바로 쓰기 어렵다.

핵심 답변

OCR 후처리는 1) 반복 오인식 패턴을 규칙으로 고치고, 2) 공백·줄바꿈·문단 구조를 정리하며, 3) 금액·날짜·고유명사처럼 오류 비용이 큰 필드는 사람이 검수하는 방식이 가장 안정적이다. 모든 문자를 자동 교정하려고 하기보다, 신뢰도가 낮은 구간을 빠르게 찾아내는 설계가 중요하다.

OCR 오인식 패턴 목록

한국어 문서에서 자주 발생하는 OCR 오인식 패턴:

원본오인식 예발생 원인
0 (숫자)O (영문)폰트에 따라 형태 유사
l (소문자 L)1 (숫자)세리프 폰트에서 빈번
해상도 낮을 때 발생
공백 없음단어 붙음단어 간격 좁은 폰트
줄바꿈 위치 오류문장 중간 줄바꿈컬럼 레이아웃 문서

자동 후처리 기본 코드

python
import re

def clean_ocr_text(text):
    # 숫자 컨텍스트에서 O→0 변환
    text = re.sub(r'(?<=d)O(?=d)', '0', text)

    # 단어 중간 불필요한 줄바꿈 제거
    text = re.sub(r'(?<=[가-힣])
(?=[가-힣])', '', text)

    # 연속 공백 정리
    text = re.sub(r' +', ' ', text)

    # 문장 끝 줄바꿈 정규화
    text = re.sub(r'
{3,}', '

', text)

    return text.strip()

문서 유형별 후처리 전략

문서 유형우선 정리 항목검수 포인트
영수증날짜, 금액, 사업자번호숫자 0/O, 쉼표 위치
계약서조항 번호, 당사자명, 금액이름·주소 오인식
논문 PDF각주, 참고문헌, 하이픈 줄바꿈문단 연결 오류
설문지선택지 번호, 주관식 답변응답자별 행 분리
명함이름, 전화번호, 이메일영문 l/1, 0/O 혼동

한국어 특화 후처리

한국어는 조사가 앞 단어에 붙어야 자연스럽다. OCR이 "사랑 해요" 처럼 조사를 분리했다면:

python
# 조사 분리 오류 수정 패턴
particles = ['이', '가', '을', '를', '은', '는', '에', '의', '로', '으로']
for p in particles:
    text = re.sub(f'([가-힣]) ({p})(?=[\s]|$)', f'\1{p}', text)

줄바꿈과 문단 복원

스캔 PDF에서 가장 자주 생기는 문제는 문장 중간 줄바꿈이다. 특히 양쪽 정렬 문서나 다단 편집 문서는 줄 끝마다 강제 줄바꿈이 들어간다. 문장부호 뒤 줄바꿈은 유지하고, 조사나 어미 뒤에 생긴 줄바꿈은 제거하는 방식이 안전하다.

python
# 문장부호 뒤 줄바꿈은 유지, 문장 중간 줄바꿈은 공백으로 변경
text = re.sub(r'(?<![.!?。!?])
(?!
)', ' ', text)
text = re.sub(r's{2,}', ' ', text)

신뢰도 기반 수동 검토 우선순위

OCR 엔진은 각 문자마다 신뢰도 점수를 반환한다. Tesseract의 경우 image_to_data() 함수로 신뢰도를 확인하고, 60점 미만 문자만 수동 검토 대상으로 표시하는 방식이 효율적이다.

품질 검수 체크리스트

  • 숫자, 날짜, 금액은 정규식으로 다시 추출해 자리수를 검증한다.
  • 원본 이미지와 OCR 결과를 나란히 보여주는 검수 화면을 만든다.
  • 고유명사 사전을 만들어 회사명, 제품명, 사람 이름을 우선 보호한다.
  • 자동 수정 전 원문을 별도 컬럼에 보관해 추적 가능성을 남긴다.
  • 100% 자동화보다 "검수 대상 10%만 남기기"를 목표로 잡는다.

마무리

OCR 후처리의 목적은 완벽한 문장 교정이 아니라 업무에 쓸 수 있는 데이터로 바꾸는 것이다. 규칙 기반 정리, 사전 검증, 신뢰도 기반 수동 검토를 함께 쓰면 대량 문서에서도 오류 비용을 통제할 수 있다.

추출 텍스트 정리하기

바로 가기 →

관련 글

추가 참고 자료

다른 글 보기