Digitization
OCR, 표 추출, 이미지 분류와 객체 탐지로 아날로그 문서를 디지털 자료로 바꾼다.
오래된 타자 문서는 말이 없지만, 그 안의 인물과 기관과 연구 주제는 서로를 가리키며 움직인다. 제6장은 LLM이 건져 올린 이름과 관계를 그대로 믿지 않는다. 먼저 문서층·메타그래프층·최종 KG층으로 나누어 출처를 보존하고, 이름을 씻고, 동일 인물을 묶은 뒤, 그래프 분석으로 과학사의 영향망을 읽는다.
제6장의 정신 모형은 단순한 OCR 파이프라인이 아니다. 문서를 읽을 수 있게 만드는 단계, 의미 단위를 추출하는 단계, 동일한 대상을 합치는 단계, 그리고 관계망에서 패턴을 발견하는 단계가 서로 다른 책임으로 나뉜다.
OCR, 표 추출, 이미지 분류와 객체 탐지로 아날로그 문서를 디지털 자료로 바꾼다.
사람·기관·직함·연구 분야 같은 도메인 개체를 찾는다.
누가 누구와 대화했고, 어디에서 일했으며, 무엇을 연구했는지 추출한다.
모델링, 정규화, 정제, 개체 해소를 거쳐 최종 지식그래프를 만든다.
중심성, 커뮤니티, 경로 패턴, 그래프 ML로 구조를 분석한다.
시각화, 패턴 발견, 질의응답으로 기록을 의사결정 가능한 지식으로 전환한다.
RAC 자료는 현대의 정제된 데이터셋과 다르다. 종이는 낡고, 표기는 줄어들고, 연구 분야는 사라졌으며, 한 인물은 여러 이름으로 나타난다. 이 장은 이러한 불편을 제거하지 않고, 설계 조건으로 받아들인다.
스캔과 OCR이 선행되어야 한다. Amazon·Microsoft 계열 서비스나 오픈소스 Tesseract 같은 선택지가 있지만, 역사 문서의 오탈자는 다음 단계까지 이어진다.
현재의 사전이나 지식베이스만으로는 과거 자연과학의 명칭을 포괄하기 어렵다. 완전한 NER 사전을 미리 만드는 전략은 현실성이 낮다.
S., U.Cal.처럼 당시 작성자만의 축약이 등장한다. 범용 상호참조 모델은 실패했지만, GPT는 프롬프트 문맥에서 일부 약칭을 암묵적으로 복원했다.
연구 분야·기술·치료법·질병을 하나의 도메인 개체군으로 다룬다. 세분성 차이가 커서 추후 의미 기반 군집화가 필요하다.
한 페이지에 수십 개 관계가 존재할 수 있다. 관계 스키마가 느슨하면 쓸모없는 관계가 늘고, 너무 좁으면 중요한 연결이 사라진다.
이름 변형, 여러 대화 참여자, 유사하지만 다른 주제, 수개월·수년간 이어지는 대화 사슬을 다뤄야 한다.
프로그램 담당자 일지와 이사회 회의록을 하나의 KG에서 맞추면, 어떤 대화가 어떤 연구비 지원으로 이어졌는지 추적할 수 있다. 이 장에서는 범위를 영향 네트워크에 한정하지만, 장기 목표는 자료 간 인과적 선행 패턴을 탐색하는 데 있다.
과거에는 각 난점을 위해 별도의 NER·RE·상호참조 모델과 대규모 라벨 데이터를 마련해야 했다. 이 장은 적절한 지식표현, LLM 선택, 프롬프트 설계가 초기 진입비용을 크게 낮춘다는 입장을 취한다. 다만 이후의 정규화와 개체 해소까지 사라지는 것은 아니다.
LLM 출력은 최종 지식이 아니라 원재료다. 제6장은 원문과 추출 흔적을 남긴 채, 정제된 지식으로 올라가는 세 개의 층을 설계한다. 이 층위가 있어야 잘못 합쳐진 개체를 되돌리고, 최종 그래프를 다시 만들 수 있다.
각 일지 파일은 File 노드가 되고, OCR로 얻은 각 면은 Page 노드가 된다. 파일명·위치·작성자와 정제된 페이지 텍스트가 이 층에 남는다.
페이지마다 발견된 개체 언급은 모두 별도 Entity 노드로 만든다. 같은 이름처럼 보여도 먼저 병합하지 않는다. 추출 관계는 RELATED_TO_ENTITY에 관계 타입을 속성으로 남긴다.
정규화·정제·개체 해소가 끝난 결과는 Person, Title, Organization, Occupation 같은 도메인 노드와 WORKS_ON, WORKS_FOR 같은 의미 관계로 재구성된다.
LLM은 원하는 형식에 최대한 맞추지만, 같은 인물을 여러 이름으로 내놓고 관계를 잘못 연결할 수 있다. 중간층이 없으면 오류의 원문을 찾기 어렵고, 정제 규칙을 바꿨을 때 전체 그래프를 안전하게 재생성하기도 어렵다.
긴 문서는 토큰 한계와 품질 저하 때문에 청킹이 필요하다. 이 장의 가장 단순한 예는 페이지 단위 분할이다. 각 페이지의 언급을 별도 노드로 남기면 최종 지식이 어디에서 왔는지 거꾸로 추적할 수 있다.
시각화에서 노드나 관계를 선택하면, 그 지식이 추출된 원문 조각을 다시 보여줄 수 있다. 결과만 제시하는 것이 아니라 근거가 놓인 페이지를 함께 제시한다.
데이터 과학자는 어떤 언급이 잘못 합쳐졌는지 추적하고, 개체 해소 규칙을 조정한 뒤 최종 그래프를 재생성할 수 있다.
메타그래프의 상위 개체·관계 통계를 살핀 뒤, 그래프 연결성을 해치는 표현 차이를 먼저 고친다.
// 사람 이름 앞의 직함을 제거하고 정규화 이름을 저장 MATCH (e:Entity {label: "Person"}) WITH e, removeLeadingTitle(e.name) AS normalized SET e.name_normalized = normalized
// 대소문자가 의미를 바꾸지 않는 연구 분야는 소문자로 통일 MATCH (e:Entity {label: "Occupation"}) SET e.name_normalized = toLower(e.name)
위 코드는 원문 Listing 6.1의 목적을 짧게 재구성한 개념 예시다. 핵심은 원본 name을 덮어쓰지 않고 name_normalized를 별도 속성으로 두는 데 있다.
Eleanor Smith와 E. Smith가 같은 사람인지 판단하려면 문자열만으로는 부족하다. 같은 대학에 속하고, 같은 연구를 다루고, 같은 대화 공동체에 등장한다면 신호가 겹친다. 그래프는 이 겹침을 경로로 보여준다.
성은 같고 이름 또는 이니셜이 호환되는지 본다. 성만 같다는 이유로 합치면 오탐이 늘어난다.
같은 기관의 WORKS_FOR, 유사 연구의 WORKS_ON 같은 주변 관계를 함께 본다.
Louvain 커뮤니티 소속, 임베딩 기반 Occupation 유사도, 계층적 군집을 추가 신호로 사용할 수 있다.
Ernest Lawrence의 세 가지 언급을 하나로 묶는 사고 과정을 체험하는 교육용 도구다.
문자열·기관·주제 신호가 겹치므로 동일 인물 후보를 하나의 연결 성분으로 묶을 근거가 충분하다.
문자열과 관계 조건을 만족하는 언급 사이에 유사 관계를 만든다.
약하게 연결된 성분을 찾아 같은 실체 후보군을 만든다.
후보군에서 가장 긴 이름을 대표 이름으로 선택한다.
해소된 개체와 관계로 최종 KG층을 생성한다.
기관명에서 Foundation처럼 흔한 단어는 유사도 판단을 흐릴 수 있으므로 도메인별 stopword 설계가 필요하다.
최종 KG가 만들어지면 질문은 “무엇이 들어 있는가”에서 “누가 연결을 만들었는가”로 이동한다. 제6장은 과학자 사이의 TALKED_ABOUT, TALKED_WITH, WORKS_WITH, STUDENT_OF를 하나의 지적 네트워크로 보고 중심성과 경로를 분석한다.
노드 크기를 betweenness 중심성으로 표현하면, 서로 떨어진 연구자 집단을 잇는 인물이 두드러진다. Niels Bohr와 Ernest Lawrence뿐 아니라 덜 알려진 연결자도 조사 대상으로 떠오른다.
연구 주제에서 최대 2-hop까지 확장하고 전역 PageRank로 인물 크기를 조정한다. Lawrence, Bohr, Harlow Shapley, James B. Conant가 가까운 영향권에 나타난다.
Johns Hopkins와 Harvard의 연구자 사이를 최대 3-hop으로 탐색하면 Irving Langmuir가 유력한 연결자로 보인다. 관계의 sentiment까지 살피면 균형 있는 인터뷰 대상을 고를 수 있다.
// 특정 Occupation과 연결된 사람에서 시작해 영향 관계를 1~2 hop 확장 MATCH path = (topic: Occupation)<-[:WORKS_ON]-(person: Person) -[:TALKED_ABOUT|TALKED_WITH|WORKS_WITH|STUDENT_OF*1..2]- (neighbor: Person) WHERE topic.name = $occupation RETURN path
사이클로트론 주변 그래프에 비교생리학자 Laurence Irving이 등장했다. 같은 페이지의 Ernest Lawrence 때문에 LLM이 이름을 Lawrence Irving으로 혼동하고 관계 추출까지 잘못 연결한 사례다. 그래프가 정교해 보여도 원자료를 잘못 읽으면 구조화된 오류가 된다. 따라서 분석자가 노드와 관계를 승인·기각할 수 있는 피드백 루프가 필수다.
Irving Langmuir와 Langmuir가 별도 노드로 남은 이유는, 성만 기록된 페이지에 추가 관계가 부족해 개체 해소가 실패했기 때문이다. 중복은 단순 결함이 아니라 어떤 증거가 부족했는지 알려주는 운영 신호다.
TALKED_ABOUT에 sentiment를 담으면, Bernal이 Dorothy Wrinch에 부정적이고 Langmuir가 Bernal에 부정적이라는 맥락을 읽을 수 있다. 연결 유무를 넘어 관계의 태도까지 의사결정에 사용한다.
표본 그래프는 방향을 보여줬지만, 생산 수준의 시스템은 더 긴 문서, 더 많은 개체 유형, 다른 자료군, 대화의 연속성까지 다뤄야 한다.
프롬프트를 반복 개선하거나 LLM을 fine-tuning하여 개체·관계 정확도를 높인다.
RAC 프로젝트에서는 ChatGPT-3.5-Turbo로 일지 항목의 경계를 식별했다. 일반적으로 한 항목은 3쪽 미만이어서 관련 페이지를 함께 처리할 수 있었다.
기본 규칙을 다른 개체 유형으로 확장하고, Wikidata 같은 지식베이스와의 entity disambiguation을 결합한다.
이사회 회의록에서 grant를 추출해 일지의 대화와 연결하면, 영향력 있는 과학자나 기존 수혜자의 추천이 지원 결정에 선행했는지 분석할 수 있다.
nuclear physics, isotopes, heavy nitrogen처럼 세분성이 다른 주제를 연결한다. SentenceBERT 또는 GPT 임베딩과 agglomerative hierarchical clustering이 유용한 결과를 보였다.
날짜·인터뷰어·인터뷰이·주제를 묶어 대화를 독립 노드로 만들고, 후속 대화 사슬과 grant를 연결한다. 이를 위해 고품질 RE와 비지도 Occupation 해소가 필요하다.
제6장의 결론은 LLM과 KG를 경쟁 관계로 보지 않는다. LLM은 문서를 읽고, KG는 읽은 결과를 검증 가능한 구조로 남긴다. 비싼 언어 모델을 한 번 사용해 오래 활용할 수 있는 지식 자산을 만드는 것이 핵심이다.
노드·관계·원문 근거를 추적하고, 충돌하는 출처와 추론 경로를 사용자가 직접 검사할 수 있다.
LLM을 그대로 fine-tuning해 질문만 던지는 방식보다, 사실을 추출해 KG로 남기면 무엇이 포함되고 누락됐는지 점검할 수 있다.
거대한 모델을 계속 호출하거나 재학습하지 않고, 한 번 만든 KG를 장기간 분석과 서비스에 활용한다. 업데이트는 비교적 저렴한 배치 작업으로 수행할 수 있다.
전체 구조에서 세부 경로까지 오가며 가설을 세우고, 시각적으로 확인하거나 반박할 수 있다.
그래프 알고리즘과 ML을 이용해 패턴을 분석하면서, 질문에 대한 답이 만들어지는 과정을 분석자가 통제한다.
문서에서 개체와 관계를 잘 추출하는 것만으로는 충분하지 않다. 출처를 보존하는 중간층, 정규화 가능한 이름, 다중 신호에 기반한 개체 해소, 검증 가능한 분석 루프가 함께 있어야 지식그래프가 조직의 자산이 된다.
그래프 모델링은 사용 사례에 맞게 정보를 저장하는 설계 행위다. 좋은 스키마는 생성·정제·정규화·개체 해소와 후속 분석을 단순하게 만든다.
고품질 관계 추출은 비지도 그래프 기반 개체 해소를 가능하게 한다. 주변 관계는 이름 문자열만으로 알 수 없는 동일성 단서를 제공한다.
그래프 데이터 과학과 그래프 ML은 LLM 블랙박스에 지나치게 의존하지 않고도 영향, 연결, 커뮤니티, 경로 패턴을 분석하게 한다.
오류는 피할 수 없으므로, 사용자가 원문으로 돌아가 관계를 승인·기각하는 피드백 루프를 시스템 설계에 포함해야 한다.
| 항목 | 내용 |
|---|---|
| Fig. 6.1 | 비정형 문서 → 디지털화 → NER/RE → KG → Graph Data Science → 인사이트 |
| Fig. 6.2 | Document, Metagraph, Final KG의 3계층 스키마 |
| Listing 6.1 | 사람 이름의 직함 제거와 Occupation 소문자 정규화 |
| Fig. 6.3 | Ernest Lawrence의 세 언급을 관계 신호로 해소하는 예 |
| Fig. 6.4 | Betweenness로 스타일링한 지적 영향 네트워크 |
| Listing 6.2 | 사이클로트론 연구 주변 영향망을 찾는 수-hop 질의 |
| Fig. 6.5 | 사이클로트론 2-hop 영향망과 PageRank 기반 노드 크기 |
| Fig. 6.6 | Johns Hopkins–Harvard 사이의 최대 3-hop 물리학 영향망 |
Knowledge Graphs and LLMs in Action 제6장, 인쇄면 115~128쪽의 논지·용어·구성을 바탕으로 한국어로 재구성했다. 코드와 도식은 학습을 위해 축약·재도식화했으며, 상호작용 점수는 원문 실험 수치가 아닌 개념 설명용 표현이다.