말씀선집 GraphRAG 연구/DB 구조 설계와 테스트 결과

현 아카이브
(토론 | 기여)님의 2026년 7월 2일 (목) 18:40 판 (말씀선집 GraphRAG DB 구조 설계와 테스트 결과 등록)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

DB 구조 설계와 테스트 결과

이 문서는 말씀선집 GraphRAG 연구의 데이터베이스 구조 설계, 청크 구조, 3권 샘플 테스트 결과를 논문 본문 또는 부록에 옮길 수 있는 형태로 정리한다.

현재 결과는 전체 615권 투입 전의 1차 샘플 실험이다. 따라서 최종 성능이 아니라, 구조 설계의 타당성과 테스트 방법을 검증하기 위한 기준선으로 해석한다.

1. 샘플 데이터

항목 내용
원본 위치 ~/ffwpcb/말씀선집
전체 자료 규모 PDF 615권, 약 207,548쪽, 약 765MB
샘플 권수 001권, 091권, 154권
샘플 선택 방식 001권 고정, 나머지 2권 랜덤 선택
랜덤 seed 5751795
추출 도구 pdftotext -layout
청크 방식 문단 기반, 800-1,200자 목표, 짧은 조각 병합

2. DB 구조 설계

2.1 기본 원칙

  • 원본 PDF는 NAS에 보존한다.
  • DB에는 원본 파일 경로, 추출 텍스트, 청크, 임베딩, 지식그래프 관계, 테스트 결과만 저장한다.
  • 모든 청크는 권과 페이지 출처를 잃지 않아야 한다.
  • 추출 오류 가능성은 삭제하지 않고 경고 필드로 남긴다.
  • 검색 평가는 DB와 함께 관리하여 재현 가능하게 한다.

2.2 관계형 DB 테이블 설계

테이블 용도 주요 필드
source_files 원본 PDF 파일 등록 file_id, volume, file_name, source_path, file_size, sha256, page_count
volumes 권 단위 메타데이터 volume, title, page_count, source_file_id
sermons 설교 단위 구조 sermon_id, volume, title, date, place, scripture, page_start, page_end
pages PDF 페이지별 추출 텍스트 page_id, volume, pdf_page, printed_page, raw_text, normalized_text
paragraphs 문단 단위 텍스트 paragraph_id, volume, page_start, page_end, paragraph_index, text, warnings
chunks RAG 검색 기본 단위 chunk_id, volume, page_start, page_end, sermon_id, section_title, text, char_count, paragraph_count, warnings
chunk_embeddings 벡터 검색 chunk_id, embedding_model, embedding, created_at
extraction_warnings 추출 우려사항 기록 warning_id, target_type, target_id, warning_type, detail
retrieval_test_queries 검색 평가 질의 query_id, query, expected_volume, expected_page, query_type
retrieval_test_runs 검색 평가 실행 run_id, run_at, retrieval_method, chunk_version, notes
retrieval_test_results 검색 평가 결과 run_id, query_id, rank, chunk_id, score, is_expected_volume

2.3 그래프 DB 구조

GraphRAG 고도화 단계에서는 Neo4j 또는 동등한 그래프 저장소를 사용한다.

노드 의미
Volume 말씀선집 권
Sermon 설교 단위
Page 페이지
Chunk 검색 청크
Person 인물
Place 장소
Concept 핵심 개념
DoctrineTerm 섭리/교리 용어
Event 사건
Topic 주제군
관계 의미
CONTAINS 포함 관계
NEXT 순차 관계
MENTIONS 언급 관계
EXPLAINS 설명 관계
RELATED_TO 의미 관련
CONTRASTS_WITH 대비 관계
EVIDENCE_OF 근거 관계
BELONGS_TO_TOPIC 주제 소속

3. 청크 구조

필드 설명
chunk_id 권수와 순번을 포함한 고유 ID
volume 말씀선집 권수
file_name 원본 PDF 파일명
page_start 청크 시작 PDF 페이지
page_end 청크 종료 PDF 페이지
sermon_title 설교 제목
section_title 소제목
date 설교 날짜
place 설교 장소
paragraph_count 청크 안 문단 수
char_count 청크 글자 수
text 청크 본문
extraction_warnings 추출 우려사항

추출 우려사항

경고 유형 의미 예시
word_spacing_suspected 줄바꿈으로 단어 내부 공백 발생 가능 허락하 여, 되 는
page_boundary_join_needed 페이지 경계에서 문장 연결 필요 이전 페이지 문장이 종결되지 않음
starts_mid_sentence 청크가 문장 중간에서 시작 는 자녀들로...
metadata_mixed_in_text 제목/날짜/장소가 본문에 섞임 1977년 1월 16일...
short_fragment_merged 짧은 조각을 앞 청크에 병합 300자 미만 조각

4. 샘플 청크 생성 결과

권수 파일명 청크 수 포함 페이지 비고
001권 001권.pdf 364 약 341쪽 고정 샘플
091권 091권.pdf 325 약 321쪽 랜덤 샘플
154권 154권-김지연.pdf 342 약 345쪽 랜덤 샘플
합계 3권 1,031 약 1,007쪽 1차 테스트

5. 구조 품질 테스트 결과

항목 결과 해석
전체 청크 수 1,031개 3권 샘플 기준
평균 글자 수 약 1,043자 목표 범위에 근접
중앙값 약 1,065자 안정적 분포
최소/최대 313자 / 1,470자 매우 짧은 조각은 대부분 병합됨
목차/점선 노이즈 0개 목차 제거 성공
3쪽 초과 청크 0개 출처 범위가 과도하게 넓지 않음
문장 중간 시작 의심 205개 페이지/줄 경계 보정 필요

6. 검색 테스트 결과 요약

테스트 유형 질의 수 Top1 성공 Top5 성공 해석
일반 개념/키워드 테스트 30 26/30 29/30 반복 개념어는 1순위가 흔들릴 수 있음
고유 문장형 테스트 30 30/30 30/30 권별 고유 표현은 정확히 검색됨

일반 개념 테스트에서 일부 1순위가 흔들린 이유는 하나님의 심정, 천적인 사명, 세계적인 운세처럼 여러 권에서 반복되는 표현이기 때문이다. 이는 청크 자체의 실패라기보다 질의 유형과 랭킹 방식의 문제로 해석한다.

7. 고유 문장형 검색 테스트 결과표

ID 유형 질의 기대 권수 1순위 결과 Top1 Top5
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-11쪽 vol001-00005 성공 성공
D001-07 개념관계형 싸움의 직접적인 책임 001권 001권 12-12쪽 vol001-00006 성공 성공
D001-08 고유문장형 섭리의 전체를 책임지고 001권 001권 12-12쪽 vol001-00006 성공 성공
D001-09 고유문장형 예수 그리스도가 왔다 가신 지 001권 001권 15-15쪽 vol001-00010 성공 성공
D001-10 개념관계형 6천년 섭리의 전체 001권 001권 12-12쪽 vol001-00006 성공 성공
D091-01 제목형 나는 누구에게 속해 있는가 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-02 장소형 태리타운 땅 자체 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-03 개념문장형 심정에 속하고 싶다고 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-04 개념문장형 하나님의 심정은 영원합니다 091권 091권 7-8쪽 vol091-00002 성공 성공
D091-05 비교문장형 돈에 속하는 사람이 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-06 고유문장형 공통적인 대답 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-07 주제문장형 통일교회 자체를 두고 볼 때 091권 091권 7-8쪽 vol091-00002 성공 성공
D091-08 개념문장형 심정적인 주체 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-09 고유문장형 여러분 자체를 중심삼고 많은 경계선 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-10 장소형 벨베디아 수련소 091권 091권 238-238쪽 vol091-00235 성공 성공
D154-01 제목형 세계적인 승리자가 되자 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-02 소제목형 큰 사명과 큰 책임 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-03 고유문장형 민족을 지도할 수 있는 뜻 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-04 고유문장형 죄악세계에서 개인을 구하고 154권 154권 10-10쪽 vol154-00002 성공 성공
D154-05 고유문장형 천주를 구한다는 엄청난 사명 154권 154권 10-10쪽 vol154-00002 성공 성공
D154-06 개념문장형 악한 세계, 악한 국가 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-07 개념문장형 승리할 수 있는 기반 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-08 개념문장형 하나님의 심정세계 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-09 고유문장형 그간 비좁은 가운데서 긴 40일 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-10 개념문장형 내적 결의 154권 154권 10-10쪽 vol154-00002 성공 성공

8. 논문용 해석 문장

3권 샘플을 대상으로 한 문단 기반 청크 실험에서, 고유 문장형 질의 30개는 모두 기대 권수를 1순위로 검색하였다. 이는 권·페이지 출처를 보존한 문단 기반 청크가 원문 근거 검색에 효과적임을 보여준다. 다만 일반 개념어 질의에서는 반복 출현 개념으로 인해 1순위가 흔들리는 사례가 있었으므로, 향후 검색 단계에서는 키워드 검색, 벡터 검색, 그래프 관계 확장을 결합한 하이브리드 검색 구조가 필요하다.

또한 205개의 문장 중간 시작 의심 청크가 발견되었으므로, 최종 DB 투입 전에는 페이지 경계 문장 이어붙이기와 단어 내부 공백 보정이 필요하다. 이 문제는 현재 실험의 실패라기보다, 대규모 PDF 기반 종교 강연문 말뭉치를 처리할 때 반드시 기록하고 보정해야 할 추출 품질 관리 항목으로 본다.

9. 다음 단계

  1. 페이지 경계 문장 이어붙이기 보정본 생성
  2. 보정 전/후 품질 비교
  3. PostgreSQL + pgvector 스키마 생성
  4. 샘플 3권 청크 적재
  5. 키워드 검색, 벡터 검색, GraphRAG 검색 결과 비교

관련 문서