말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과 문서 원본 보기
←
말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
= 문장 경계 보정 전략과 결과 = 이 문서는 [[말씀선집 GraphRAG 연구]]의 PDF 추출·청크 생성 과정에서 발견된 문장 중간 시작 문제의 원인, 해결 전략, 보정 전후 테스트 결과를 논문 본문에 활용할 수 있도록 정리한다. == 1. 문제 정의 == 3권 샘플 청크 품질 테스트에서 <code>문장 중간 시작 의심 청크</code>가 205개로 확인되었다. 대표 사례는 다음과 같다. * <code>는 자녀들로...</code> * <code>과 하나님을 배경으로...</code> * <code>니다. 그러므로...</code> * <code>의 사실들을 느끼고...</code> 이 문제는 단일 원인이 아니라 세 가지 원인이 겹친 결과로 판단한다. {| class="wikitable" ! 원인 !! 설명 !! 예시 !! 영향 |- | 줄바꿈 기반 단어 분리 || PDF의 줄 끝과 다음 줄이 단어 내부에서 끊김 || <code>허락하 여</code>, <code>되 는</code>, <code>것입 니다</code> || 원문 검색은 되지만 독해 품질 저하 |- | 페이지/문단 경계 분리 || 한 문장이 페이지나 문단 블록 사이에서 끊김 || 이전 조각 <code>예수 그리스도와 성신</code> + 다음 조각 <code>과 하나님...</code> || 청크가 조사나 어미로 시작 |- | 청크 경계 분리 || 800-1,200자 제한을 맞추며 의미상 이어지는 조각을 다음 청크로 넘김 || 이전 청크 끝이 미종결 상태인데 다음 청크가 <code>니다.</code>로 시작 || RAG 답변 근거의 자연스러움 저하 |} 또한 기존 205개 수치는 매우 넓은 판정식으로 계산된 값이다. 이 판정식은 <code>이</code>, <code>고</code>, <code>요</code> 같은 첫 글자도 모두 의심으로 보았기 때문에 <code>이 싸움은</code>, <code>고통의 예수</code>, <code>요한계시록</code>처럼 정상적인 제목·문장 시작도 일부 포함한다. 따라서 논문에는 <b>기준선 판정</b>과 <b>정제 판정</b>을 구분해 기술하는 것이 적절하다. == 2. 해결 방향 == 문제를 한 번에 삭제하지 않고, 자동 보정과 경고 보존을 병행한다. # 원문 추출 후 바로 청크하지 않는다. # 페이지별 문단 조각을 먼저 정규화한다. # 이전 조각이 문장 종결 부호로 끝나지 않고 다음 조각이 조사·어미로 시작하면 같은 문장으로 연결한다. # <code>것입</code> + <code>니다</code>, <code>성신</code> + <code>과</code>처럼 단어 또는 구가 끊긴 경우 공백 없이 연결한다. # 청크 생성 시 다음 청크가 조사·어미로 시작할 가능성이 있으면 최대 1,600자까지 같은 청크 안에 유지한다. # 보정한 사실은 <code>extraction_warnings</code>에 남겨 추적 가능하게 한다. 이 방식은 원문을 임의로 많이 고치는 방식이 아니다. 기계적으로 명확한 경우만 자동 보정하고, 애매한 경우는 경고로 남긴다. == 3. 보정 알고리즘 == === 3.1 문단 경계 연결 === {| class="wikitable" ! 조건 !! 처리 |- | 이전 조각이 마침표, 물음표, 느낌표 등 문장 종결 부호로 끝나지 않음 || 다음 조각을 이어붙일 후보로 본다 |- | 다음 조각이 <code>는</code>, <code>은</code>, <code>을</code>, <code>를</code>, <code>의</code>, <code>에</code>, <code>로</code>, <code>와</code>, <code>과</code>, <code>도</code>, <code>만</code>, <code>며</code>, <code>고</code> 같은 조사로 시작 || 공백 없이 연결하거나 최소 공백으로 연결 |- | 다음 조각이 <code>니다</code>, <code>습니다</code>, <code>겁니다</code>, <code>것입니다</code>, <code>다면</code> 등 어미형으로 시작 || 공백 없이 연결 |- | 이전 조각이 <code>것입</code>, <code>됩니</code>, <code>합니</code>, <code>입니</code>, <code>허락하</code>, <code>되</code>처럼 미완성 형태로 끝남 || 공백 없이 연결 |} === 3.2 단어 내부 공백 보정 === {| class="wikitable" ! 보정 전 !! 보정 후 !! 비고 |- | <code>허락하 여</code> || <code>허락하여</code> || 자주 나타나는 줄바꿈 분리 |- | <code>되 는</code> || <code>되는</code> || 어간+어미 분리 |- | <code>하 나님</code> || <code>하나님</code> || 말씀선집에서 빈번한 고유 신앙어 |- | <code>것입 니다</code> || <code>것입니다</code>에 준해 연결 || 단어 내부 분리 |} 모든 한글 공백을 무조건 제거하지 않는다. 그렇게 하면 정상적인 한국어 띄어쓰기까지 훼손할 수 있기 때문이다. === 3.3 청크 경계 보정 === * 목표 크기: 800-1,200자 유지 * 허용 최대 크기: 1,600자 * 다음 조각이 조사·어미로 시작하거나 이전 조각이 문장 미종결이면, 1,600자 이내에서 같은 청크에 포함 * 1,600자를 넘는 경우에는 더 이상 강제로 합치지 않고 <code>starts_mid_sentence</code> 경고를 남김 1,800자 제한도 실험했지만, 긴 청크가 과도하게 늘어나 근거 범위가 흐려질 가능성이 커졌다. 따라서 1차 DB 투입 후보는 1,600자 제한 보정본으로 둔다. == 4. 보정 전후 비교 == {| class="wikitable sortable" ! 항목 !! 기준선 청크 !! 경계 보정 청크 !! 해석 |- | 대상 권수 || 001, 091, 154권 || 001, 091, 154권 || 동일 샘플 |- | 전체 청크 수 || 1,031개 || 949개 || 분리 조각이 합쳐져 청크 수 감소 |- | 평균 글자 수 || 1,043.1자 || 1,074.7자 || 목표 범위 유지 |- | 중앙값 || 1,065자 || 1,080자 || 분포 안정 |- | 최대 글자 수 || 1,470자 || 1,599자 || 1,600자 제한 준수 |- | 1,600자 초과 청크 || 0개 || 0개 || 과도한 장문 청크 없음 |- | 300자 미만 청크 || 0개 || 2개 || 일부 짧은 잔여 조각 존재 |- | 목차/점선 노이즈 || 0개 || 0개 || 노이즈 제거 유지 |- | 3쪽 초과 청크 || 0개 || 0개 || 출처 범위 안정 |- | 문장 중간 시작 의심, 기준선 판정 || 205개 || 88개 || 넓은 판정 기준으로도 57.1% 감소 |- | 문장 중간 시작 의심, 정제 판정 || 147개 || 7개 || 실제 위험군 기준 95.2% 감소 |- | 핵심 위험군 판정 || 126개 || 4개 || 조사·어미 시작 중심으로 96.8% 감소 |} == 5. 권별 보정 통계 == {| class="wikitable" ! 권수 !! 입력 문단 !! 보정 후 세그먼트 !! 연결 보정 !! 내부 공백 보정 후보 |- | 001권 || 783 || 714 || 69 || 508 |- | 091권 || 693 || 630 || 63 || 474 |- | 154권 || 647 || 602 || 45 || 463 |- | 합계 || 2,123 || 1,946 || 177 || 1,445 |} == 6. 검색 성능 유지 여부 == {| class="wikitable" ! 테스트 유형 !! 기준선 결과 !! 보정 후 결과 !! 해석 |- | 일반 개념/키워드 테스트 Top1 || 26/30 || 26/30 || 성능 유지 |- | 일반 개념/키워드 테스트 Top5 || 29/30 || 29/30 || 성능 유지 |- | 고유 문장형 테스트 Top1 || 30/30 || 30/30 || 성능 유지 |- | 고유 문장형 테스트 Top5 || 30/30 || 30/30 || 성능 유지 |} 보정 후에도 검색 성능은 떨어지지 않았다. 따라서 문장 경계 보정은 원문 독해 품질을 개선하면서 기존 검색 성능을 유지하는 방향으로 작동했다고 볼 수 있다. == 7. 남은 한계 == * <code>이</code>로 시작하는 표현은 조사일 수도 있고 정상적인 지시어일 수도 있다. * 설교체 문장은 문어체보다 종결 부호가 불규칙할 수 있다. * 모든 줄바꿈 공백을 제거하면 정상 띄어쓰기까지 훼손될 수 있다. * 제목, 날짜, 장소, 본문이 섞인 문제는 별도 메타데이터 분리 단계가 필요하다. {| class="wikitable" ! 처리 항목 !! 상태 |- | 명확한 단어/문장 분리 || 자동 보정 |- | 애매한 시작 위치 || <code>extraction_warnings</code>에 기록 |- | 제목/날짜/장소 혼입 || 다음 단계에서 메타데이터 분리 |- | 전체 615권 적용 || 3권 샘플 검증 후 확장 |} == 8. 논문 본문 삽입용 서술 == 본 연구는 PDF 기반 원문 추출 과정에서 발생하는 문장 경계 분리 문제를 별도의 품질 관리 항목으로 설정하였다. 초기 3권 샘플 청크에서는 기준선 판정 기준으로 205개의 문장 중간 시작 의심 청크가 발견되었다. 이 현상은 단순한 페이지 경계 문제만이 아니라, PDF 줄바꿈에 따른 단어 내부 공백, 페이지 및 문단 블록 사이의 문장 분리, 그리고 청크 길이 제한에 따른 경계 분리가 복합적으로 작용한 결과였다. 이에 본 연구는 원문 추출 후 바로 청크를 생성하지 않고, 문단 경계 보정 단계를 추가하였다. 이전 조각이 문장 종결 부호로 끝나지 않고 다음 조각이 조사 또는 어미로 시작하는 경우 두 조각을 하나의 문장 흐름으로 연결하였다. 또한 <code>것입</code>과 <code>니다</code>, <code>성신</code>과 <code>과</code>처럼 단어 또는 구가 분리된 사례는 공백 없이 연결하였다. 청크 생성 단계에서는 다음 청크가 조사나 어미로 시작할 가능성이 있을 경우 최대 1,600자까지 같은 청크에 포함하도록 하였다. 다만 모든 오류 가능성을 임의로 제거하지 않고, 보정 사실과 잔여 의심 사례는 <code>extraction_warnings</code> 필드에 기록하도록 설계하였다. 보정 결과 전체 청크 수는 1,031개에서 949개로 감소하였고, 평균 글자 수는 1,043.1자에서 1,074.7자로 소폭 증가하였다. 기준선 판정에 따른 문장 중간 시작 의심 청크는 205개에서 88개로 감소하였으며, 실제 조사·어미 시작을 중심으로 한 핵심 위험군은 126개에서 4개로 감소하였다. 이는 약 96.8%의 감소에 해당한다. 동시에 일반 개념/키워드 검색 테스트는 Top1 26/30, Top5 29/30으로 유지되었고, 고유 문장형 검색 테스트 역시 Top1 30/30, Top5 30/30을 유지하였다. 따라서 문장 경계 보정은 검색 성능을 저하시키지 않으면서 원문 청크의 독해 품질과 근거 제시 안정성을 개선한 것으로 볼 수 있다. == 9. 채택 판단 == 1차 DB 투입 후보는 <code>boundary_safe</code>, <code>hard_max_chars=1600</code> 보정본으로 한다. 채택 이유는 다음과 같다. * 실제 위험군이 126개에서 4개로 감소했다. * 검색 성능이 기준선과 동일하게 유지되었다. * 1,600자 초과 청크가 없어 근거 범위가 과도하게 넓어지지 않았다. * 보정 사실을 경고 필드로 남겨 추후 검토 가능하다. 다음 단계에서는 제목, 날짜, 장소, 소제목을 본문에서 분리해 메타데이터화한 뒤 같은 테스트를 다시 수행한다. [[분류:말씀선집 GraphRAG 연구]]
말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보