LLM도 잘 못하는 PDF 문서 파싱은 어떻게 할까요?

최근 ChatGPT와 같은 LLM(Large Language Model)의 영향으로 NLP(Natural Language Processing)를 사용하려는 분들이 많은데요, NLP 학습에 있어 가장 많이 사용하는 텍스트 타입이 PDF가 아닐까 합니다.

NLP를 위한 PDF를 파싱하는 소소한 팁(Tip) 하나(LayoutPDFReader 사용)를 알려주는 기사 공유합니다😃


<PDF 마스터하기: 최신 파서를 사용하여 섹션, 제목, 단락 및 표 추출하기>


🚌 PDF 파싱은 복잡하고 어렵습니다. 그 이유는...

  • 레이아웃 복잡성: 다중 열 텍스트, 표, 이미지 및 복잡한 서식과 같은 복잡한 레이아웃 다양성으로 인해 구조화된 데이터 추출이 복잡해짐

  • 글꼴 인코딩 문제: PDF는 다양한 글꼴 인코딩 시스템을 사용하며 이러한 시스템 중 일부는 유니코드에 직접 매핑되지 않음

  • 비선형 텍스트 저장: PDF는 페이지에 나타나는 순서대로 텍스트를 저장하지 않고, 페이지의 어느 위치에나 배치할 수 있는 개체에 텍스트를 저장

  • 일관되지 않은 공백 사용: 일부 PDF에서는 공백이 일관되게 사용되지 않거나 단어 사이에 전혀 사용되지 않음


❗️Retrieval-Augmented Generation (RAG)이 필요한데요, 그 이유는...

  • LLM이 한 번에 처리할 수 있는 텍스트의 양과 참조할 수 있는 정보의 범위 측면에서 특정 제한이 있어 PDF 처리를 잘 못해요.

  • RAG와 같은 기술은 PDF의 한계를 극복하여 대용량 문서를 보다 효과적이고 효율적으로 처리하고 광범위한 정보 검색을 가능하게 합니다.


🚙 LLM 관련 앱을 구축하는 맥락(context)에서 청킹(chunking)은 큰 텍스트 조각을 더 작은 세그먼트로 나누는 프로세스인데요, 이는 LLM을 사용하여 콘텐츠를 삽입한 후 데이터베이스에서 가져온 콘텐츠의 관련성을 최적화하는 데 도움이 되는 필수 기술로써 관련된 전략은...

  • 고정 크기 청킹(Fixed-size chunking): 청크에 대한 가장 일반적이고 간단한 접근 방식으로, 청크에 있는 토큰 수를 결정하고 선택적으로 토큰 간에 중복이 있어야 하는지 여부를 결정합니다. 구현하기 쉽고 가장 일반적으로 사용되지만 추가 테스트를 수행하면 정확도가 떨어지기 때문에 운영환경에서는 권고하지 않습니다.

  • 콘텐츠 인식 청킹(“Content-aware” chunking): 청킹하는 콘텐츠의 특성을 활용하고 더 정교한 청킹을 적용하기 위한 일련의 방법으며, 구현이 어렵지만 올바르게 처리된다면 운영환경의 정보 검색(Information Retrieval) 엔진을 위한 가장 이상적인 구성 요소가 될 수 있습니다.


❗️"컨텍스트 인식" 청킹을 위한 LayoutPDFReader는 계층적 레이아웃 정보와 함께 PDF를 구문 분석하여 RAG에서 가장 중요한 도구 역할을 할 수 있는데요. 그 특징으로는...

  • 섹션과 하위 섹션을 각각의 계층 구조 수준과 함께 식별

  • 줄을 일관된 단락으로 병합

  • 섹션과 단락 사이의 연결을 설정

  • 테이블을 인식하고 해당 섹션과 연결

  • 목록 및 중첩 목록 구조를 정밀하게 처리

  • Smart Chunking을 사용한 벡터 검색 및 RAG

    • 이전 단락과 함께 모든 목록 항목을 함께 그룹화

    • 테이블 내의 항목은 함께 청크

    • 섹션 헤더와 중첩된 섹션 헤더의 상황별 정보를 통합


LayoutPDFReader는 다양한 PDF에 대해 광범위한 테스트를 거쳤지만, 그렇다고 하더라도모든 PDF에 대해 완벽한 구문 분석을 달성하는 것은 여전히 어려운 작업이라고 하네요.

또한 현재 OCR(광학 문자 인식) 기능을 사용할 수 없고, 텍스트 레이어가 포함된 PDF만 지원한다고 합니다.


원본 기사 링크는 아래와 같습니다. 감사합니다🙏

[Source Link] https://blog.llamaindex.ai/mastering-pdfs-extracting-sections-headings-paragraphs-and-tables-with-cutting-edge-parser-faea18870125

Mastering PDFs: Extracting Sections, Headings, Paragraphs, and Tables with Cutting-Edge Parser

Medium

Mastering PDFs: Extracting Sections, Headings, Paragraphs, and Tables with Cutting-Edge Parser

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 10월 29일 오후 1:44

 • 

저장 6조회 2,192

댓글 0

    함께 읽은 게시물

    어제 출시된 따끈따끈한 ChatGPT Codex를 실제 프로젝트 레포에 써 보았습니다.


    테스트가 있으면 스스로 테스트도 실행하고, 만든거 스스로 실행해보면서 버그도 수정하고 하는게 기특하긴 합니다.


    ... 더 보기

    지금 당장 퇴사해야 합니다!

    ... 더 보기

    《뒤돌아보고 그때서야 아는 것》

    ... 더 보기

    스트레스를 잘 관리하면서 건강하게 살아가고 싶다면, 우선 살아있는 한 우리가 해야 할 일들은 영원히 없어지지 않을 것이므로, 해야 할 일을 100% 해내면서 할 일 목록을 완전히 없애는 데 많은 노력을 들이기보다는 70% 정도만 해내도 만족할 필요가 있다.

    ... 더 보기

    [박진영의 사회심리학]스스로 만들어 내는 스트레스

    m.dongascience.com

    [박진영의 사회심리학]스스로 만들어 내는 스트레스

    여전히 나이를 중요하게 여기는 우리나라에서 사회생활할 때 가장 큰 변곡점이 오는 나이는 40세다. 물론 20대말과 30대 중반, 40대 중반, 50대에도 중간중간 크고 작은 변곡점이 있기는 하지만, 다시 돌이키기 어려울 정도로 이후 방향을 고착화시킨다는 의미에서, 혹은 현재 커리어패스가 중심이 아니라 이후 인생 2막이나 3막을 자발적이던 강제적이던 가야하는 상황은 아니라는 의미에서, 사회생활 시작과 함께 만들어온 커리어패스를 가지고 일을 할 수 있다는 기준에서 볼 때, 40세는 상징적이다.


    60세면 당연히 할아버지, 할머니 소리를 들으면서 70세 전후에 죽는게 당연했던 불과 20여년 전까지만해도 예전의 40세는 일하고 있는 산업과 분야에서 전문성과 리더십을 충분히 갖추고 있는 베테랑으로 이제 그동안 쌓아온 역량과 네트워킹으로 퇴직할 때까지

    ... 더 보기

    < 스타벅스 컵홀더의 손글씨가 말했다: 결국은 사람이다 >

    1

    ... 더 보기