--- id: 비지도-학습 title: "비지도 학습" category: "AI_and_ML" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["Unsupervised Learning", "비지도 학습", "비지도 추출", "Unsupervised Keyword Extraction", "통계 기반 학습", "데이터 주도적 학습"] duplicate_of: "" source_trust_level: "A" confidence_score: 0.95 created_at: 2026-06-09 updated_at: 2026-06-09 review_reason: "" merge_history: [] tags: ["research", "키워드 산출 방법", "ML", "soynlp", "TextRank"] raw_sources: ["GitHub - lovit/soynlp", "TextRank를 이용한 키워드 및 핵심 문장 추출", "기계학습 기반 언어분석 기술을 통해, 텍스트 안에 문장 전체를 요약문으로 추출하는 시스템에 관한 연구 - DBpia", "언어 네트워크 분석을 이용한 코로나19 위험인식과 예방행위에 관한 이해", "사용자 검색 의도(Search Intent) | InterAd"] applied_in: ["soynlp/WordExtractor", "soynlp/NounExtractor", "KR-WordRank", "TextRank", "NetMiner 4 (언어 네트워크 분석)"] github_commit: "503eaee" --- # [[비지도 학습]] ## 🎯 한 줄 통찰 (One-line insight) 비지도 학습은 사전 라벨링된 데이터 없이 원본 말뭉치의 통계적 변동성과 구조적 연결성을 분석하여 언어의 핵심 객체와 의미 관계를 스스로 식별하는 데이터 주도적(Data-driven) 분석 체계이다. [S1], [S2], [S3] ## 🧠 핵심 개념 (Core concepts) 1. **통계 기반 경계 학습 (Statistical Boundary Learning):** Cohesion score 및 Branching Entropy와 같은 수치를 통해 단어의 결합 응집력과 경계의 불확실성을 계산하여 단어를 추출한다. [S1] 2. **그래프 기반 랭킹 (Graph-based Ranking):** 단어 간의 공생(Co-occurrence) 관계를 그래프로 모델링하고 PageRank 알고리즘을 적용하여 상대적 중요도를 산출한다. [S2] 3. **미등록 단어 해소 (OOV Resolution):** 학습 데이터에 존재하지 않는 신조어나 도메인 특화 용어를 문맥적 패턴을 통해 실시간으로 인식할 수 있다. [S1] 4. **동질적 말뭉치 의존성 (Homogeneous Corpus Dependency):** 통계적 패턴을 활용하기 위해 유사한 용어 체계를 공유하는 대규모 문서 집합에서 가장 높은 성능을 발휘한다. [S1] ## 🧩 추출된 패턴 (Extracted patterns) - **Recursive Importance 전파:** 특정 노드(단어)의 중요도는 그와 연결된 다른 중요 노드들에 의해 결정되는 재귀적 구조를 가진다(TextRank). [S2] - **L-R(Left-Right) 구조 휴리스틱:** 한국어 어절을 'L(명사/동사/형용사) + R(조사/어미)'로 분해하여 통계적 점수가 높은 L 파트를 식별하는 패턴이다. [S1] - **중심성 지표 분석:** 언어 네트워크 내에서 단어 간의 연결 구조를 통해 아이겐벡터 중심성이나 매개 중심성을 산출하여 핵심어를 식별한다. [S4] ## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria) | 항목 (Option) | 장점 | 단점 | 언제 선택 | | :--- | :--- | :--- | :--- | | **비지도 학습 (soynlp/TextRank)** | 라벨링 데이터가 불필요하며 신조어 대응력이 탁월함. [S1], [S2] | 일정 규모 이상의 데이터셋이 필요하며 연산 비용이 발생함. | 도메인 특화 용어나 신조어가 많은 비정형 텍스트 분석 시. | | **지도 학습 (Supervised)** | 정답지가 있어 높은 정확도를 보장하며 품사 판별이 명확함. | 라벨링 비용이 크고 사전(Dictionary)에 없는 단어 인식 불가. [S1] | 정제된 표준어 기반의 소규모 문서 분석 시. | | **사전 기반(Dictionary-based)** | 가장 빠르고 직관적이며 명확한 기준 제공. | 언어의 변화 속도를 따라가지 못해 OOV 문제 발생. [S1] | 고정된 전문 용어 체계를 가진 안정적인 데이터 처리 시. | ## 📖 세부 내용 (Details) ### 1. 통계적 단어 추출 기법 - **응집도(Cohesion Score):** 연속된 글자들이 하나의 단어로 뭉쳐질 가능성을 측정한다. `soynlp`에서는 특정 문자열이 주어졌을 때 다음 글자가 나올 확률의 통계적 패턴을 분석한다. [S1] - **브랜칭 엔트로피(Branching Entropy):** 특정 단어 뒤에 올 수 있는 글자의 다양성(불확실성)을 측정하여, 엔트로피가 급증하는 지점을 단어의 경계로 간주한다. [S1] - **Accessor Variety:** 단어의 좌우에 등장하는 서로 다른 인접 단어의 종류를 파악하여 단어의 독립성을 평가한다. [S1] ### 2. 그래프 기반의 키워드 추출 (TextRank) - 텍스트를 토큰화한 후 단어를 노드(Node)로, 단어 간의 공생 관계를 엣지(Edge)로 설정한다. [S2] - PageRank 알고리즘을 기반으로, "영향력 있는 단어에 의해 인용되거나 함께 등장하는 단어는 중요도가 높다"는 원리를 따른다. [S2] - 별도의 학습 말뭉치 없이 단일 문서 또는 작은 문서군 내의 구조만으로 핵심어와 핵심 문장을 추출할 수 있는 비지도 학습의 대표적 사례이다. [S2] ### 3. 언어 네트워크 분석 (Semantic Network Analysis) - 내용 분석과 사회 네트워크 분석을 결합하여 텍스트 내부의 개념 구조를 시각화한다. [S4] - 연구자의 주관적 개입을 최소화하면서 텍스트가 내포한 본연의 구조적 핵심 내용을 체계적으로 추출할 수 있다. [S4] - **아이겐벡터 중심성(Eigenvector Centrality):** 단순히 연결된 노드 수뿐만 아니라, 연결된 노드의 중요도까지 가중치를 두어 전체 네트워크 상의 영향력을 파악한다. [S4] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - **데이터 규모의 딜레마:** 비지도 학습은 학습 데이터가 필요 없다는 장점이 있으나, 통계적 유의미성을 확보하기 위해서는 반대로 어느 정도 규모가 있는 '동질적 집단'의 문서가 확보되어야 한다는 전제 조건이 따른다. [S1] - **PageRank 수식 수정:** 초기 논문에 제시된 PageRank의 합이 1이 되어야 한다는 설명과 달리, 실제 수식 적용 시 합이 전체 페이지 수(N)가 되는 오류가 있어 학계에서 수정된 수식이 공유되고 있다. [S2] ## 🛠️ 적용 사례 (Applied in summary) - **soynlp 라이브러리:** 한국어 뉴스 기사에서 '트와이스', '아이오아이' 등 신조어를 사전 학습 없이 자동으로 추출하는 `WordExtractor`에 적용됨. [S1] - **KR-WordRank:** HITS 알고리즘을 활용하여 토크나이저 학습 없이도 substring graph에서 실시간 키워드를 추출함. [S1] - **코로나19 위험 인식 연구:** 일반인 대상 인터뷰 텍스트를 언어 네트워크 분석(NetMiner 4)으로 처리하여 연령대별 핵심 인식 구조(가족, 마스크, 짜증 등)를 도출함. [S4] ## 💻 코드 패턴 (Code patterns) ```python # soynlp의 WordExtractor를 이용한 비지도 단어 추출 패턴 from soynlp.word import WordExtractor # 1. 동질적 말뭉치(sentences) 준비 및 학습 word_extractor = WordExtractor( min_count=5, # 최소 출현 빈도 max_length=10 # 단어 최대 길이 ) word_extractor.train(sentences) # list of strings # 2. 통계 지표(Cohesion, Entropy) 기반 단어 추출 words = word_extractor.extract() # 3. 특정 단어의 통계 점수 확인 예시 print(words['자연어'].cohesion_forward) print(words['자연어'].right_branching_entropy) ``` [S1] ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual (실제 오픈소스 `soynlp` 라이브러리 및 학술 연구 방법론으로 검증됨) - **출처 신뢰도:** A (전문 라이브러리 공식 문서, DBpia 등재 학술 논문 기반) - **신뢰 점수:** 0.95 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 관련 문서 링크 (Related document links) ### 상위/유사 개념 - [[키워드 산출 방법]] — 비지도 학습이 적용되는 주된 목적. - [[자연어 처리 (NLP)]] — 비지도 학습을 통해 해결하고자 하는 기술적 도메인. [S1], [S2] - [[TextRank]] — 그래프 기반 비지도 학습의 핵심 알고리즘. [S2] ### 심층 후속 질문 (Deeper Research Questions) - 비지도 학습 모델의 성능을 평가하기 위한 '정답지'가 없을 때, 골드 스탠다드(Gold Standard)를 어떻게 설정할 것인가? - 문서의 이질성(Heterogeneity)이 높아질 때 발생하는 통계적 노이즈를 어떻게 상쇄할 수 있는가? - L-R 구조 분석에서 한국어 특유의 불규칙 활용이 단어 점수 산출에 미치는 영향은? - 그래프 기반 랭킹에서 덤핑 팩터(Damping Factor) d=0.85가 한국어 텍스트 구조에서도 최적의 값인가? - 매개 중심성이 높은 단어를 제거했을 때 전체 텍스트의 의미적 응집도가 얼마나 무너지는가? ### 실무 적용 맥락 - **Implementation:** `soynlp`를 통해 사전 구축 비용 없이 신규 도메인 단어장(Dictionary) 자동 생성. [S1] - **System Design:** 실시간 스트리밍 텍스트 데이터에서 트렌드 키워드를 포착하는 파이프라인 설계. [S1] - **Operation / Maintenance:** 말뭉치가 변화함에 따라 주기적으로 추출기를 재학습시켜 통계 정보 업데이트 필요. [S1] ### 인접 주변 주제 - [[토픽 모델링]] — 문서 군집 내에서 잠재적 주제를 찾아내는 또 다른 비지도 방식. - [[임베딩 (Embedding)]] — 단어를 벡터 공간에 매핑하여 의미론적 관계를 파악하는 기술. [S5] ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[키워드 산출 방법]] - **관련 개념:** [[자연어 처리 (NLP)]], [[TextRank]], [[soynlp]], [[언어 네트워크 분석]] - **참조 맥락:** 사전 정보가 없는 대규모 비정형 데이터 분석, 신조어 탐지, 학술적 텍스트 구조 분석 시 참조. ## 📚 출처 (Sources) - [S1] lovit/soynlp GitHub (https://github.com/lovit/soynlp) - 한국어 비지도 학습 라이브러리 가이드 - [S2] TextRank를 이용한 키워드 추출 가이드 (soyyeong 블로그) - [S3] 기계학습 기반 언어분석 기술 연구 (김분도, 숭실대학교 대학원 논문) - [S4] 언어 네트워크 분석을 이용한 코로나19 위험인식 연구 (장사랑, 손애리 - 보건교육건강증진학회지) - [S5] 사용자 검색 의도(Search Intent) 이해 (InterAd 인사이트) ## 📝 변경 이력 (Change history) - 2026-06-09: Initial draft generated via Datacollector_MAC P-Reinforce engine. 통계 기반 및 그래프 기반 비지도 학습 기법을 통합하여 문서화 완료.