Files
2nd/10_Wiki/Topic_Blog/TextRank.md
T
koriweb 27b2c25e4d feat(wiki): Topic_Blog SEO 지식화 + orphan 연결
- Topic_Blog: 미추적 상태였던 SEO/색인 지식 문서 일괄 추적 추가
  (Google '페이지 색인 생성 보고서' 기반 신규 6종 포함:
   페이지 색인 생성 보고서/색인 생성 유효성 검사/Soft 404/NOINDEX/
   크롤링됨·발견됨-현재 색인 안 됨/SEO를 위한 HTTP 상태 코드).
- orphan 연결: 완전 고립된 지식 문서 9개를 관련 기존 문서와 양방향 링크
  (Game Design 쌍, Aerospace, Apple Vision Pro, 3D_Web_HMI, Stock 3,
   Topics_Biz). append-only, 존재 타깃만 링크(dangling 0).
도구: Datacollect/scripts/wiki_audit.mjs (중복·orphan 감사)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 14:48:16 +09:00

9.4 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
textrank TextRank AI_and_ML draft conceptual
TextRank
텍스트랭크
추출적 요약
Extractive Summarization
그래프 기반 키워드 추출
비지도 키워드 산출
A 0.90 2026-06-09 2026-06-09
research
키워드 산출 방법
NLP
Graph_Algorithm
TextRank를 이용한 키워드 및 핵심 문장 추출 | PageRank의 이해, TextRank 구현
기계학습 기반 언어분석 기술을 통해, 텍스트 안에 문장 전체를 요약문으로 추출하는 시스템에 - DBpia
GitHub - lovit/soynlp: 한국어 자연어처리를 위한 파이썬 라이브러리입니다.
KR-WordRank
추출적 요약 시스템
soykeyword

TextRank

🎯 한 줄 통찰 (One-line insight)

TextRank는 단어 간의 공생 관계를 그래프 구조로 모델링하고 PageRank의 재귀적 중요도 전파 원리를 적용하여, 별도의 학습 데이터 없이 문서 내 핵심 키워드를 식별하는 비지도 학습 알고리즘이다. [S5],[S54]

🧠 핵심 개념 (Core concepts)

  1. 추출적 요약 (Extractive Summarization): 기존 문서에서 중요도가 높은 단어나 문장을 그대로 선택하여 요약하는 방식으로, 새로운 어휘를 생성하지 않는다. [S47],[S97]
  2. 그래프 기반 랭킹 (Graph-based Ranking): 단어를 노드로, 단어 간의 공생(Co-occurrence) 관계를 엣지로 설정하여 네트워크를 구축한다. [S51],[S58]
  3. 재귀적 중요도 (Recursive Importance): 특정 단어의 중요도는 그와 연결된 다른 중요 단어들의 점수에 의해 결정되며, 이는 "영향력 있는 페이지가 인용할수록 순위가 올라간다"는 PageRank의 논리를 계승한다. [S49],[S56]
  4. 비지도 학습 (Unsupervised Learning): 대규모 사전 학습 말뭉치 없이 단일 문서 또는 소규모 문서 집합 내의 구조적 통계만으로 작동한다. [S51],[S58]

🧩 추출된 패턴 (Extracted patterns)

  • POS 필터링 패턴: 텍스트를 토큰화한 후, 명사나 동사와 같이 의미를 내포한 특정 품사만을 키워드 후보(노드)로 선별하여 분석 효율을 높인다. [S51],[S52]
  • 슬라이딩 윈도우 공생 패턴: 하나 이상의 단어로 구성된 시퀀스(n-gram) 사이의 인접성 또는 공생 빈도를 통해 엣지의 가중치를 정의한다. [S51],[S58]
  • 수렴 반복 패턴: 모든 노드의 초기 중요도를 1로 설정하고, 노드 점수의 변화가 일정 기준 이하로 수렴할 때까지 알고리즘을 반복 계산한다. [S52],[S59]

⚖️ 비교 및 선택 기준 (Comparison & decision criteria)

항목 (Option) 장점 단점 언제 선택
추출적 요약 (TextRank) 원문의 의미 왜곡이 없고 학습 데이터 요구량이 적음. [S47],[S97] 문장 간 연결이 다소 부자연스러울 수 있음. [S47] 핵심 키워드와 문장을 원문 그대로 보존해야 할 때. [S101]
추상적 요약 (Abstractive) 사람이 요약하는 것과 유사하게 자연스러운 문장 생성 가능. [S47],[S101] 방대한 양의 학습 데이터가 필요하며 할루시네이션 위험이 있음. [S97] 고도의 가독성과 요약문의 창의성이 필요할 때.
TF-IDF 구현이 매우 간단하고 통계적으로 명확함. [S98] 단어 간의 문맥적/구조적 관계(네트워크)를 반영하지 못함. 대규모 문서 집합에서 단순 빈도 기반 중요도를 뽑을 때. [S102]

📖 세부 내용 (Details)

1. 알고리즘의 기원과 수리적 구조

  • TextRank는 2004년에 제안되었으며, 1998년 세르게이 브린과 래리 페이지가 발표한 구글 검색 엔진의 핵심 알고리즘인 PageRank를 기반으로 한다. [S47],[S54]
  • PageRank의 수식 $PR(A) = \frac{(1-d)}{N} + d(\frac{PR(T1)}{C(T1)} + ... + \frac{PR(Tn)}{C(Tn)})$을 활용하며, 여기서 $d$(Damping Factor)는 일반적으로 0.85로 설정되어 사용자가 무작위로 링크를 클릭할 확률을 반영한다. [S50],[S57]
  • 단순 합산이 아닌 정규화된 값을 사용하는데, 이는 특정 단어(혹은 페이지)가 링크를 많이 가질수록 개별 연결에 기여하는 비중이 낮아짐을 의미한다. [S49],[S56]

2. 키워드 추출 프로세스

  • 토큰화 및 필터링: 문장을 단어 단위로 나누고 POS 태깅을 통해 불필요한 불용어를 제거한다. [S51],[S58]
  • 그래프 구축: 필터링된 단어 시퀀스를 노드로 추가하고, 정해진 윈도우 크기 내에서 함께 등장하는 단어들 사이에 엣지를 연결한다. [S51],[S52]
  • 반복 계산 및 정렬: 모든 노드에 대해 중요도를 재귀적으로 계산하여 값이 수렴하면, 최종 점수를 기준으로 정렬하여 Top N개의 키워드를 산출한다. [S52],[S59]

3. 추출적 요약의 특징

  • TextRank는 새로운 단어를 생성하지 않고 기존 문서 내에서 '중요도가 높은 문장'을 그대로 추출하므로 의미 왜곡의 위험이 낮다. [S47],[S54]
  • 이는 특히 학습 데이터가 부족한 환경에서 고성능의 요약 서비스를 제공하는 데 유용하다. [S97],[S101]

⚖️ 모순 및 업데이트 (Contradictions & updates)

  • PageRank 수식의 오류 지적: 초기 논문에서는 모든 웹페이지 PR 값의 합이 1이 된다고 설명했으나, 실제 수식 구조상 합이 전체 페이지 수(N)가 되는 모순이 발견되어 위키피디아 등에서 수정된 수식이 제안되었다. [S50],[S57]

🛠️ 적용 사례 (Applied in summary)

  • KR-WordRank: TextRank의 원리를 활용하되, 토크나이저 학습 없이도 HITS 알고리즘을 통해 substring graph에서 키워드를 추출하는 라이브러리로 구현되었다. [S4],[S16]
  • 추출 요약 시스템: Seq4Word와 같은 기법과 결합하여, TF-IDF로 계산된 가중치를 바탕으로 키워드가 포함된 문장을 역으로 선정해 요약문을 구성하는 시스템에 적용된다. [S99],[S103]

💻 코드 패턴 (Code patterns)

소스 내에 직접적인 TextRank 알고리즘 구현 코드는 명시되지 않았으나, 관련 라이브러리인 KR-WordRank의 사용 환경은 다음과 같다.

# TextRank 원리를 활용한 한국어 키워드 추출 라이브러리 설치
pip install krwordrank

[S16],[S34]

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual (PageRank 이론 및 학술 논문의 추출 요약 방법론 기반)
  • 출처 신뢰도: A (구글 창립자의 논문 원리 설명 및 DBpia 등재 학술 자료)
  • 신뢰 점수: 0.90
  • 중복 검사 결과: 신규 생성 (New discovery)

상위/유사 개념

심층 후속 질문 (Deeper Research Questions)

  • 덤핑 팩터(d) 값을 0.85에서 한국어 텍스트 특성에 맞춰 조정할 경우 키워드 추출의 정확도는 어떻게 변하는가?
  • TextRank에서 윈도우 크기(Window Size) 설정이 단어 간 의미적 관계 형성에 미치는 영향은 무엇인가?
  • 문장 요약 시 단순 단어 빈도 기반인 TF-IDF 가중치와 TextRank의 그래프 중심성 점수를 결합할 때의 시너지 효과는? [S99]
  • 한국어의 교착어적 특성(조사, 어미)을 고려한 POS 필터링의 최적 조합은 무엇인가? [S52]

실무 적용 맥락

  • Implementation: KR-WordRank 등을 활용하여 사전 없이도 실시간 트렌드 키워드 추출 가능. [S16]
  • System Design: 대규모 문서의 경우 그래프 구축 및 수렴 계산을 위한 연산 자원 최적화 설계 필요. [S50]
  • Operation / Maintenance: 문서의 성격(뉴스, 댓글 등)에 따라 적절한 필터링 규칙과 윈도우 크기를 튜닝해야 함. [S5]

인접 주변 주제

🔗 지식 그래프 (Knowledge Graph)

📚 출처 (Sources)

  • [S5, S47-S52, S54-S60] TextRank를 이용한 키워드 및 핵심 문장 추출 (soyyeong 기술 블로그)
  • [S11, S97-S104] 기계학습 기반 언어분석 기술 및 추출 요약 연구 (DBpia, 김분도)
  • [S4, S16, S22, S34] lovit/soynlp 및 관련 라이브러리 가이드 (GitHub 공식 문서)

📝 변경 이력 (Change history)

  • 2026-06-09: Initial draft generated via Datacollector_MAC P-Reinforce engine. PageRank의 수학적 원리와 추출적 요약의 알고리즘 프로세스를 통합하여 작성.