오늘은 팀과제를 위해 한글 PDF문서를 전처리 하는 과정을 어떤 전처리를 진행했는지 진행하며 알게 된 내용을 설명하며 진행하겟습니다.

사용할 기술

  • PYPDFLoader

1. 이미지 제거

  • PYPDFLoader는 텍스트를 주로 추출해서 모델에 전달해주는 라이브러리이기 때문에 이미지를 직접 삭제 해 주었습니다.
  • 이미지를 삭제하지 않고 진행하게 된다면 영어text와 특수기호로 바뀌게 되어 이를 배제하기 위해 영어 text가 누락 된다고 합니다.

이미지를 모델에 학습 시키는 방법

  1. OCR(광학 문자 인식) 도구를 사용하여 텍스트를 추출하세요. PyMuPDF 또는 Tesseract와 같은 OCR 기반 라이브러리를 사용해 텍스트를 추출할 수 있습니다.
  2. 이지미 삭제
  3. 이미지 설명을 텍스트로 변환하여 학습 (transformers의 BlipProcessor, BlipForConditionalGeneration)

2. 표 text로 수정

  • 전처리 없이 PYPDFLoader를 쓸 때: 표의 헤더와 데이터가 구분되지만, 모델은 이를 텍스트로 처리할 수 있을 뿐, 열과 행의 관계는 명확히 이해하지 못할 수 있다고 합니다.
  • 개행 빈줄 불용어 전처리를 거치면 모델이 이해 불가

해결 방법

1) 마크다운 형식으로 고치기 2) json형식으로 작성 3) csv형식으로 작성

3. 링크 걸린 텍스트에 URL 추가

ex) 여기에 자료 : https://www.URL/

  • 모델이 직접 PDF 파일 내에 포함된 링크를 직접 "클릭"하거나 외부 리소스를 가져와 활용하지 않는다고 합니다.
  • 링크가 걸려있지만 text만 추출하기 때문에 참고자료로 활용할 수 없다고 합니다.

4. 없어졌거나 안들어가지는 링크 제거

  • 각 싸이트의 내용과 링크의 유지보수성을 고려했습니다.
  • 당장 링크에 들어가지기만 하면 된다고 판단하고 진행했습니다.단기 프로젝트이기 때문

5. 문서 내용 추가

  • 정보를 추가하여 목표하는 성능이 나올 수 있게 내용을 추가 해 주었습니다.
  • 각 단락의 Reference 링크를 참고하여 추가했습니다.

진행하며 전처리에 관한 궁금증 해결

질문 :

  • PYPDFLoader로 문서를 불러올 때 개행 빈줄 불용어 제거 및 토큰화, 요약, 문법 수정, 불필요 문자 제거 등의 작업이 필요한가요?

답변:

  • 개행 및 빈줄 제거:
    • 텍스트 분석이나 질의응답과 같은 작업에서는 불필요한 공백이나 개행을 제거하는 것이 유용할 수 있다고 합니다.
    • 페이지 레이아웃을 유지해야 하는 경우는 진행하지 않는게 종다고 합니다.
  • 불용어 제거:
    • 주요 내용이나 핵심 문장을 추출하고자 한다면 불용어를 제거하는 것이 도움이 될 수 있다고 합니다.
    • 문맥이나 자연어 이해가 중요한 경우 불용어를 제거하면 의미를 왜곡할 수 있으므로 불용어 제거를 하지 않는 것이 좋을 수 있다고 합니다.
  • 토큰화:
    • 자연어 처리나 텍스트 마이닝, 정보 검색 등의 작업에서는 토큰화가 필요하다고 합니다.
    • 질의응답이나 검색 시스템에서는 텍스트를 보다 잘 분석하고 인덱싱하기 위해 토큰화가 필수적이라고 합니다.
  • 요약:
    • 문서가 너무 길거나 핵심 정보만 추출하고 싶을 때 요약을 적용하는 것이 유리하다고 합니다.
    • 전체 문서의 모든 내용을 사용하는 것이 중요하다면 요약이 필요 없을 수 있습니다.
  • 문법 수정, 불필요 문자 제거
    • 특수 문자, 중복 텍스트, 잘못된 문법 등이 포함될 수 있기 때문에 자료를 잘 파악하고 진행해야 합니다.

결론

PyPDFLoader로 문서를 불러올 때는 문서의 형태와 목표 작업에 따라 개행, 빈줄, 불용어 제거, 토큰화, 요약 등의 전처리 작업을 할지 말지를 결정해야 할것으로 생각이 듭니다.

  • 텍스트 분석 및 정보검색에선 위의 과정이 필요할 수 있다고 생각합니다.
  • 원본 텍스트 보존이 중요한 경우에는 위 과정을 잘 선별해야 한다고 생각합니다.

+ Recent posts