말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과
문장 경계 보정 전략과 결과
이 문서는 말씀선집 GraphRAG 연구의 PDF 추출·청크 생성 과정에서 발견된 문장 중간 시작 문제의 원인, 해결 전략, 보정 전후 테스트 결과를 논문 본문에 활용할 수 있도록 정리한다.
1. 문제 정의
3권 샘플 청크 품질 테스트에서 문장 중간 시작 의심 청크가 205개로 확인되었다. 대표 사례는 다음과 같다.
는 자녀들로...과 하나님을 배경으로...니다. 그러므로...의 사실들을 느끼고...
이 문제는 단일 원인이 아니라 세 가지 원인이 겹친 결과로 판단한다.
| 원인 | 설명 | 예시 | 영향 |
|---|---|---|---|
| 줄바꿈 기반 단어 분리 | PDF의 줄 끝과 다음 줄이 단어 내부에서 끊김 | 허락하 여, 되 는, 것입 니다 |
원문 검색은 되지만 독해 품질 저하 |
| 페이지/문단 경계 분리 | 한 문장이 페이지나 문단 블록 사이에서 끊김 | 이전 조각 예수 그리스도와 성신 + 다음 조각 과 하나님... |
청크가 조사나 어미로 시작 |
| 청크 경계 분리 | 800-1,200자 제한을 맞추며 의미상 이어지는 조각을 다음 청크로 넘김 | 이전 청크 끝이 미종결 상태인데 다음 청크가 니다.로 시작 |
RAG 답변 근거의 자연스러움 저하 |
또한 기존 205개 수치는 매우 넓은 판정식으로 계산된 값이다. 이 판정식은 이, 고, 요 같은 첫 글자도 모두 의심으로 보았기 때문에 이 싸움은, 고통의 예수, 요한계시록처럼 정상적인 제목·문장 시작도 일부 포함한다. 따라서 논문에는 기준선 판정과 정제 판정을 구분해 기술하는 것이 적절하다.
2. 해결 방향
문제를 한 번에 삭제하지 않고, 자동 보정과 경고 보존을 병행한다.
- 원문 추출 후 바로 청크하지 않는다.
- 페이지별 문단 조각을 먼저 정규화한다.
- 이전 조각이 문장 종결 부호로 끝나지 않고 다음 조각이 조사·어미로 시작하면 같은 문장으로 연결한다.
것입+니다,성신+과처럼 단어 또는 구가 끊긴 경우 공백 없이 연결한다.- 청크 생성 시 다음 청크가 조사·어미로 시작할 가능성이 있으면 최대 1,600자까지 같은 청크 안에 유지한다.
- 보정한 사실은
extraction_warnings에 남겨 추적 가능하게 한다.
이 방식은 원문을 임의로 많이 고치는 방식이 아니다. 기계적으로 명확한 경우만 자동 보정하고, 애매한 경우는 경고로 남긴다.
3. 보정 알고리즘
3.1 문단 경계 연결
| 조건 | 처리 |
|---|---|
| 이전 조각이 마침표, 물음표, 느낌표 등 문장 종결 부호로 끝나지 않음 | 다음 조각을 이어붙일 후보로 본다 |
다음 조각이 는, 은, 을, 를, 의, 에, 로, 와, 과, 도, 만, 며, 고 같은 조사로 시작 |
공백 없이 연결하거나 최소 공백으로 연결 |
다음 조각이 니다, 습니다, 겁니다, 것입니다, 다면 등 어미형으로 시작 |
공백 없이 연결 |
이전 조각이 것입, 됩니, 합니, 입니, 허락하, 되처럼 미완성 형태로 끝남 |
공백 없이 연결 |
3.2 단어 내부 공백 보정
| 보정 전 | 보정 후 | 비고 |
|---|---|---|
허락하 여 |
허락하여 |
자주 나타나는 줄바꿈 분리 |
되 는 |
되는 |
어간+어미 분리 |
하 나님 |
하나님 |
말씀선집에서 빈번한 고유 신앙어 |
것입 니다 |
것입니다에 준해 연결 |
단어 내부 분리 |
모든 한글 공백을 무조건 제거하지 않는다. 그렇게 하면 정상적인 한국어 띄어쓰기까지 훼손할 수 있기 때문이다.
3.3 청크 경계 보정
- 목표 크기: 800-1,200자 유지
- 허용 최대 크기: 1,600자
- 다음 조각이 조사·어미로 시작하거나 이전 조각이 문장 미종결이면, 1,600자 이내에서 같은 청크에 포함
- 1,600자를 넘는 경우에는 더 이상 강제로 합치지 않고
starts_mid_sentence경고를 남김
1,800자 제한도 실험했지만, 긴 청크가 과도하게 늘어나 근거 범위가 흐려질 가능성이 커졌다. 따라서 1차 DB 투입 후보는 1,600자 제한 보정본으로 둔다.
4. 보정 전후 비교
| 항목 | 기준선 청크 | 경계 보정 청크 | 해석 |
|---|---|---|---|
| 대상 권수 | 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. 권별 보정 통계
| 권수 | 입력 문단 | 보정 후 세그먼트 | 연결 보정 | 내부 공백 보정 후보 |
|---|---|---|---|---|
| 001권 | 783 | 714 | 69 | 508 |
| 091권 | 693 | 630 | 63 | 474 |
| 154권 | 647 | 602 | 45 | 463 |
| 합계 | 2,123 | 1,946 | 177 | 1,445 |
6. 검색 성능 유지 여부
| 테스트 유형 | 기준선 결과 | 보정 후 결과 | 해석 |
|---|---|---|---|
| 일반 개념/키워드 테스트 Top1 | 26/30 | 26/30 | 성능 유지 |
| 일반 개념/키워드 테스트 Top5 | 29/30 | 29/30 | 성능 유지 |
| 고유 문장형 테스트 Top1 | 30/30 | 30/30 | 성능 유지 |
| 고유 문장형 테스트 Top5 | 30/30 | 30/30 | 성능 유지 |
보정 후에도 검색 성능은 떨어지지 않았다. 따라서 문장 경계 보정은 원문 독해 품질을 개선하면서 기존 검색 성능을 유지하는 방향으로 작동했다고 볼 수 있다.
7. Top1 30/30 고유 문장형 테스트 질문
다음 30개 질문은 보정 후 청크 20260702_191959_boundary_safe를 대상으로 실행한 고유 문장형 검색 테스트에 사용되었다. 모든 질문에서 기대 권수가 1순위로 검색되었고, Top5에도 포함되었다.
| ID | 유형 | 질문 | 기대 권수 | 1순위 결과 |
|---|---|---|---|---|
| D001-01 | 제목형 | 승리하는 하나님의 정병 | 001권 | 001권 11-11쪽 vol001-00005
|
| D001-02 | 고유문장형 | 사탄의 화살의 자국 | 001권 | 001권 9-10쪽 vol001-00004
|
| D001-03 | 고유문장형 | 생명의 기름을 발라 | 001권 | 001권 9-10쪽 vol001-00004
|
| D001-04 | 고유문장형 | 새로운 부활의 붕대 | 001권 | 001권 9-10쪽 vol001-00004
|
| D001-05 | 고유문장형 | 사탄과 정면 충돌 | 001권 | 001권 11-11쪽 vol001-00005
|
| D001-06 | 개념정의형 | 정병이라는 말은 본래부터 | 001권 | 001권 11-12쪽 vol001-00006
|
| D001-07 | 개념관계형 | 싸움의 직접적인 책임 | 001권 | 001권 11-12쪽 vol001-00006
|
| D001-08 | 고유문장형 | 섭리의 전체를 책임지고 | 001권 | 001권 12-13쪽 vol001-00007
|
| D001-09 | 고유문장형 | 예수 그리스도가 왔다 가신 지 | 001권 | 001권 15-15쪽 vol001-00009
|
| D001-10 | 개념관계형 | 6천년 섭리의 전체 | 001권 | 001권 11-12쪽 vol001-00006
|
| D091-01 | 제목형 | 나는 누구에게 속해 있는가 | 091권 | 091권 7-7쪽 vol091-00001
|
| D091-02 | 장소형 | 태리타운 땅 자체 | 091권 | 091권 7-7쪽 vol091-00001
|
| D091-03 | 개념문장형 | 심정에 속하고 싶다고 | 091권 | 091권 8-9쪽 vol091-00002
|
| D091-04 | 개념문장형 | 하나님의 심정은 영원합니다 | 091권 | 091권 8-9쪽 vol091-00002
|
| D091-05 | 비교문장형 | 돈에 속하는 사람이 | 091권 | 091권 8-9쪽 vol091-00003
|
| D091-06 | 고유문장형 | 공통적인 대답 | 091권 | 091권 8-9쪽 vol091-00003
|
| D091-07 | 주제문장형 | 통일교회 자체를 두고 볼 때 | 091권 | 091권 8-9쪽 vol091-00002
|
| D091-08 | 개념문장형 | 심정적인 주체 | 091권 | 091권 8-9쪽 vol091-00003
|
| D091-09 | 고유문장형 | 여러분 자체를 중심삼고 많은 경계선 | 091권 | 091권 7-7쪽 vol091-00001
|
| D091-10 | 장소형 | 벨베디아 수련소 | 091권 | 091권 289-289쪽 vol091-00273
|
| D154-01 | 제목형 | 세계적인 승리자가 되자 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-02 | 소제목형 | 큰 사명과 큰 책임 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-03 | 고유문장형 | 민족을 지도할 수 있는 뜻 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-04 | 고유문장형 | 죄악세계에서 개인을 구하고 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-05 | 고유문장형 | 천주를 구한다는 엄청난 사명 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-06 | 개념문장형 | 악한 세계, 악한 국가 | 154권 | 154권 10-12쪽 vol154-00002
|
| D154-07 | 개념문장형 | 승리할 수 있는 기반 | 154권 | 154권 10-12쪽 vol154-00002
|
| D154-08 | 개념문장형 | 하나님의 심정세계 | 154권 | 154권 10-12쪽 vol154-00002
|
| D154-09 | 고유문장형 | 그간 비좁은 가운데서 긴 40일 | 154권 | 154권 9-10쪽 vol154-00001
|
| D154-10 | 개념문장형 | 내적 결의 | 154권 | 154권 9-10쪽 vol154-00001
|
이 질문들은 단순한 일반 개념어가 아니라 권별 제목, 장소, 특징적 문장, 개념 관계 표현을 섞어 구성했다. 따라서 이 결과는 “문단 기반 청크가 원문 근거와 권·페이지 출처를 정확히 찾아낼 수 있는가”를 확인하는 평가로 해석한다.
8. 남은 한계
이로 시작하는 표현은 조사일 수도 있고 정상적인 지시어일 수도 있다.- 설교체 문장은 문어체보다 종결 부호가 불규칙할 수 있다.
- 모든 줄바꿈 공백을 제거하면 정상 띄어쓰기까지 훼손될 수 있다.
- 제목, 날짜, 장소, 본문이 섞인 문제는 별도 메타데이터 분리 단계가 필요하다.
| 처리 항목 | 상태 |
|---|---|
| 명확한 단어/문장 분리 | 자동 보정 |
| 애매한 시작 위치 | extraction_warnings에 기록
|
| 제목/날짜/장소 혼입 | 다음 단계에서 메타데이터 분리 |
| 전체 615권 적용 | 3권 샘플 검증 후 확장 |
9. 논문 본문 삽입용 서술
본 연구는 PDF 기반 원문 추출 과정에서 발생하는 문장 경계 분리 문제를 별도의 품질 관리 항목으로 설정하였다. 초기 3권 샘플 청크에서는 기준선 판정 기준으로 205개의 문장 중간 시작 의심 청크가 발견되었다. 이 현상은 단순한 페이지 경계 문제만이 아니라, PDF 줄바꿈에 따른 단어 내부 공백, 페이지 및 문단 블록 사이의 문장 분리, 그리고 청크 길이 제한에 따른 경계 분리가 복합적으로 작용한 결과였다.
이에 본 연구는 원문 추출 후 바로 청크를 생성하지 않고, 문단 경계 보정 단계를 추가하였다. 이전 조각이 문장 종결 부호로 끝나지 않고 다음 조각이 조사 또는 어미로 시작하는 경우 두 조각을 하나의 문장 흐름으로 연결하였다. 또한 것입과 니다, 성신과 과처럼 단어 또는 구가 분리된 사례는 공백 없이 연결하였다. 청크 생성 단계에서는 다음 청크가 조사나 어미로 시작할 가능성이 있을 경우 최대 1,600자까지 같은 청크에 포함하도록 하였다. 다만 모든 오류 가능성을 임의로 제거하지 않고, 보정 사실과 잔여 의심 사례는 extraction_warnings 필드에 기록하도록 설계하였다.
보정 결과 전체 청크 수는 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을 유지하였다. 따라서 문장 경계 보정은 검색 성능을 저하시키지 않으면서 원문 청크의 독해 품질과 근거 제시 안정성을 개선한 것으로 볼 수 있다.
10. 채택 판단
1차 DB 투입 후보는 boundary_safe, hard_max_chars=1600 보정본으로 한다.
채택 이유는 다음과 같다.
- 실제 위험군이 126개에서 4개로 감소했다.
- 검색 성능이 기준선과 동일하게 유지되었다.
- 1,600자 초과 청크가 없어 근거 범위가 과도하게 넓어지지 않았다.
- 보정 사실을 경고 필드로 남겨 추후 검토 가능하다.
다음 단계에서는 제목, 날짜, 장소, 소제목을 본문에서 분리해 메타데이터화한 뒤 같은 테스트를 다시 수행한다.