Files
2nd/10_Wiki/Topics/Domain_Programming/From_Topic_Blog/TextRank.md
T
Antigravity Agent c24165b8bc refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 11:05:56 +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의 수학적 원리와 추출적 요약의 알고리즘 프로세스를 통합하여 작성.