-
한글 문서파일 파싱(Parsing) 기법 - 취소선 처리카테고리 없음 2025. 1. 9. 12:39
1. 취소선 정보 파악을 위한 접근 방법
1.1 텍스트 레이어 기반 탐지
- PDF의 구조 분석:
- PDF는 텍스트와 그래픽 객체로 구성됩니다.
- 취소선이 그어진 텍스트는 일반적으로 텍스트 객체와 선(그래픽 객체)로 구성됩니다.
- PDF 분석 라이브러리(e.g., PyPDF2, PDFMiner, pdfplumber)를 사용하여 텍스트와 그래픽 객체를 추출.
- 텍스트와 선의 관계 분석:
- 텍스트의 좌표(Bounding Box)와 선(취소선)의 좌표가 겹치는 경우 해당 텍스트를 취소된 것으로 간주.
- PDFMiner의 LTLine 객체를 활용하거나 pdfplumber의 도형 탐지 기능 사용.
1.2 이미지 기반 탐지
- PDF를 이미지로 변환:
- 취소선 정보가 이미지 형태로 포함된 경우, PDF를 이미지로 변환.
- Python의 PyMuPDF(fitz) 또는 pdf2image 라이브러리 활용.
- 이미지 처리로 취소선 탐지:
- OCR(광학 문자 인식):
- Tesseract OCR을 사용하여 텍스트를 추출.
- 취소선 탐지:
- OpenCV 등의 이미지 처리 라이브러리를 사용하여 텍스트 위의 선을 탐지.
- 주요 기법:
- Canny Edge Detection으로 선 감지.
- Hough Line Transform으로 직선 탐지.
- 선의 위치가 텍스트 Bounding Box와 겹치면 취소선으로 판단.
- OCR(광학 문자 인식):
1.3 취소선이 그어진 텍스트 삭제
- 탐지된 취소선 정보를 기준으로 취소된 텍스트를 필터링.
- 취소된 텍스트만 제거하고 나머지 텍스트를 저장.
2. 구현 전략
2.1 사용 가능한 Python 라이브러리
- PDF 처리:
- PyPDF2: PDF의 텍스트와 그래픽 객체 추출.
- PDFMiner: 텍스트 좌표와 레이아웃 정보를 포함한 구조적 분석.
- pdfplumber: PDF의 텍스트, 이미지, 그래픽 객체를 직관적으로 추출.
- 이미지 처리:
- pdf2image: PDF를 이미지로 변환.
- OpenCV: 이미지에서 취소선 탐지.
- Tesseract OCR: 텍스트와 그래픽 요소를 포함한 이미지 텍스트 추출.
2.2 예제 워크플로우
import fitz # PyMuPDF import cv2 import pytesseract from pdf2image import convert_from_path # 1. PDF를 이미지로 변환 pages = convert_from_path('등기부등본.pdf', dpi=300) for page_number, page in enumerate(pages): # 2. 이미지를 OpenCV 형식으로 변환 image = cv2.cvtColor(np.array(page), cv2.COLOR_RGB2BGR) # 3. OCR로 텍스트 추출 text = pytesseract.image_to_string(image, lang='kor') # 4. 이미지에서 취소선 탐지 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) lines = cv2.HoughLines(edges, 1, np.pi/180, 200) for line in lines: rho, theta = line[0] a, b = np.cos(theta), np.sin(theta) x0, y0 = a * rho, b * rho x1 = int(x0 + 1000 * (-b)) y1 = int(y0 + 1000 * (a)) x2 = int(x0 - 1000 * (-b)) y2 = int(y0 - 1000 * (a)) # 취소선 그려진 경우 해당 영역과 텍스트 연관 분석 cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), 2) # 5. 취소선 탐지된 텍스트 처리 # 좌표를 기준으로 OCR 결과에서 제거
3. 취소선 탐지의 주요 고려사항
- 취소선의 스타일:
- 단일 선, 이중 선, 점선 등 다양한 취소선 스타일을 지원해야 함.
- 텍스트와 선의 관계:
- 취소선이 텍스트와 명확히 겹치는 경우만 탐지하도록 좌표와 Bounding Box를 정밀히 분석.
- 다양한 파일 형식 지원:
- HWP 파일은 한글파일 전용 라이브러리(e.g., pyhwp)를 사용하여 텍스트를 우선 추출 후 동일 로직 적용.
4. 결론
PDF에서 취소선을 탐지하여 관련 정보를 필터링하려면 텍스트 레이어 기반 접근과 이미지 처리 기반 접근을 병행해야 정확도가 높아집니다. 위의 워크플로우를 기반으로 시스템을 개발하면, 취소선 정보를 포함한 데이터 정제 및 신용평가에 활용 가능한 클린 데이터를 확보할 수 있습니다. 추가 지원이 필요하면 말씀해주세요!
- PDF의 구조 분석: