오늘은 팀과제를 위해 한글 PDF문서를 전처리 하는 과정을 어떤 전처리를 진행했는지 진행하며 알게 된 내용을 설명하며 진행하겟습니다.
사용할 기술
- PYPDFLoader
1. 이미지 제거
- PYPDFLoader는 텍스트를 주로 추출해서 모델에 전달해주는 라이브러리이기 때문에 이미지를 직접 삭제 해 주었습니다.
- 이미지를 삭제하지 않고 진행하게 된다면 영어text와 특수기호로 바뀌게 되어 이를 배제하기 위해 영어 text가 누락 된다고 합니다.
이미지를 모델에 학습 시키는 방법
- OCR(광학 문자 인식) 도구를 사용하여 텍스트를 추출하세요. PyMuPDF 또는 Tesseract와 같은 OCR 기반 라이브러리를 사용해 텍스트를 추출할 수 있습니다.
- 이지미 삭제
- 이미지 설명을 텍스트로 변환하여 학습 (transformers의 BlipProcessor, BlipForConditionalGeneration)
2. 표 text로 수정
- 전처리 없이 PYPDFLoader를 쓸 때: 표의 헤더와 데이터가 구분되지만, 모델은 이를 텍스트로 처리할 수 있을 뿐, 열과 행의 관계는 명확히 이해하지 못할 수 있다고 합니다.
- 개행 빈줄 불용어 전처리를 거치면 모델이 이해 불가
해결 방법
1) 마크다운 형식으로 고치기 2) json형식으로 작성 3) csv형식으로 작성
3. 링크 걸린 텍스트에 URL 추가
ex) 여기에 자료 : https://www.URL/
- 모델이 직접 PDF 파일 내에 포함된 링크를 직접 "클릭"하거나 외부 리소스를 가져와 활용하지 않는다고 합니다.
- 링크가 걸려있지만 text만 추출하기 때문에 참고자료로 활용할 수 없다고 합니다.
4. 없어졌거나 안들어가지는 링크 제거
- 각 싸이트의 내용과 링크의 유지보수성을 고려했습니다.
- 당장 링크에 들어가지기만 하면 된다고 판단하고 진행했습니다.단기 프로젝트이기 때문
5. 문서 내용 추가
- 정보를 추가하여 목표하는 성능이 나올 수 있게 내용을 추가 해 주었습니다.
- 각 단락의 Reference 링크를 참고하여 추가했습니다.
진행하며 전처리에 관한 궁금증 해결
질문 :
- PYPDFLoader로 문서를 불러올 때 개행 빈줄 불용어 제거 및 토큰화, 요약, 문법 수정, 불필요 문자 제거 등의 작업이 필요한가요?
답변:
- 개행 및 빈줄 제거:
- 텍스트 분석이나 질의응답과 같은 작업에서는 불필요한 공백이나 개행을 제거하는 것이 유용할 수 있다고 합니다.
- 페이지 레이아웃을 유지해야 하는 경우는 진행하지 않는게 종다고 합니다.
- 불용어 제거:
- 주요 내용이나 핵심 문장을 추출하고자 한다면 불용어를 제거하는 것이 도움이 될 수 있다고 합니다.
- 문맥이나 자연어 이해가 중요한 경우 불용어를 제거하면 의미를 왜곡할 수 있으므로 불용어 제거를 하지 않는 것이 좋을 수 있다고 합니다.
- 토큰화:
- 자연어 처리나 텍스트 마이닝, 정보 검색 등의 작업에서는 토큰화가 필요하다고 합니다.
- 질의응답이나 검색 시스템에서는 텍스트를 보다 잘 분석하고 인덱싱하기 위해 토큰화가 필수적이라고 합니다.
- 요약:
- 문서가 너무 길거나 핵심 정보만 추출하고 싶을 때 요약을 적용하는 것이 유리하다고 합니다.
- 전체 문서의 모든 내용을 사용하는 것이 중요하다면 요약이 필요 없을 수 있습니다.
- 문법 수정, 불필요 문자 제거
- 특수 문자, 중복 텍스트, 잘못된 문법 등이 포함될 수 있기 때문에 자료를 잘 파악하고 진행해야 합니다.
결론
PyPDFLoader로 문서를 불러올 때는 문서의 형태와 목표 작업에 따라 개행, 빈줄, 불용어 제거, 토큰화, 요약 등의 전처리 작업을 할지 말지를 결정해야 할것으로 생각이 듭니다.
- 텍스트 분석 및 정보검색에선 위의 과정이 필요할 수 있다고 생각합니다.
- 원본 텍스트 보존이 중요한 경우에는 위 과정을 잘 선별해야 한다고 생각합니다.
'TIL' 카테고리의 다른 글
내일배움캠프 41일차 TIL + Python, base 지식 탐구(ASCII, 문자열 함수), Streamlit특강 1일차, 수준별학습반: 딕셔너리 특강 (1) | 2024.11.22 |
---|---|
내일배움캠프 40일차 TIL + Python, LLM특강, 개인과제(완료) (0) | 2024.11.21 |
내일배움캠프 39일차 TIL + Python, LLM특강, 개인과제(완료) (1) | 2024.11.20 |
내일배움캠프 38일차 TIL + Python, LLM특강, 개인과제(완료) (0) | 2024.11.19 |
내일배움캠프 37일차 TIL + Python, LLM특강, 개인과제(LLM) (0) | 2024.11.18 |