본문 바로가기
Study Log/ADP

[ADP 필기 요약]_4과목 데이터 분석_⑪

by Maker_Potato 2026. 4. 24.

1. 텍스트 마이닝

1-1. 텍스트 마이닝이란?

텍스트 마이닝(Text Mining)은 입력된 텍스트를 구조화하고, 그 안에서 패턴이나 의미를 도출한 뒤, 결과를 평가하고 해석하는 일련의 과정입니다.

쉽게 말하면, 인터넷 데이터, 뉴스, 리뷰, 소셜미디어 글처럼 비정형 텍스트 데이터분석 가능한 형태로 바꿔서 유용한 정보를 찾는 과정입니다.

즉, 텍스트 마이닝의 핵심은 “글을 그대로 읽는 것”이 아니라 문서를 데이터처럼 바꾼 뒤 분석하는 것입니다.

 

1-2. 텍스트 마이닝의 주요 기능

텍스트 마이닝에서는 다음 기능들이 자주 등장합니다.

 

① 문서분류(Document Classification)

사전에 분류 기준이 주어진 상태에서 문서를 특정 주제로 분류하는 방법입니다.
즉, 지도학습 방식입니다.

예를 들어,

  • 스팸 메일 / 정상 메일 분류
  • 스포츠 기사 / 정치 기사 / 경제 기사 분류
    같은 문제가 여기에 해당합니다.

② 문서군집(Document Clustering)

사전에 정답 라벨 없이 비슷한 문서끼리 묶는 방식입니다.
즉, 비지도학습 방식입니다.

 

③ 정보추출(Information Extraction)

문서 안에서 중요한 개체명, 관계, 키워드 등을 뽑아내는 방법입니다.


2. 텍스트 마이닝 과정

텍스트 마이닝은 보통 다음 흐름으로 진행됩니다.

텍스트 수집 → 텍스트 전처리 → 텍스트 분석 → 텍스트 시각화

 

2-1. 텍스트 수집

텍스트는 보통 다음과 같은 방식으로 수집합니다.

  • 텍스트 저장소에서 가져오기
  • 웹페이지 HTML 크롤링
  • 뉴스, 게시판, SNS, 리뷰 데이터 수집
  • PDF, Word, CSV 등 문서 파일 불러오기

즉, 다양한 포맷의 문서에서 텍스트를 추출해
이를 분석 가능한 형태로 바꾸는 것이 시작점입니다.

 

2-2. 코퍼스(Corpus)

코퍼스(Corpus)는 텍스트 마이닝을 위해 수집된 문서들의 집합을 의미합니다.

시험에서는 코퍼스를 “텍스트 문서를 관리하는 기본 구조”로 이해하는 것이 가장 안전합니다.

R의 tm 패키지에서는 코퍼스를 다음처럼 다룹니다.

함수 의미
VCorpus() 메모리 기반 Corpus
PCorpus() 외부 파일/DB 기반 Corpus

시험 포인트
코퍼스는 “전처리가 완전히 끝난 결과물”만을 뜻하는 것이 아니라,
분석 대상이 되는 텍스트 문서들의 집합을 의미합니다.

 

2-3. tm 패키지의 기본 함수

R의 tm 패키지는 텍스트 문서를 불러오고 전처리하는 데 자주 사용됩니다.

자주 나오는 함수는 다음과 같습니다.

함수 설명
tm_map(x, FUN) Corpus에 전처리 함수를 적용
stripWhitespace 불필요한 공백 제거
tolower 대문자를 소문자로 변환
removeWords 불용어 제거
DocumentTermMatrix 문서-단어 행렬 생성

특히 DocumentTermMatrix문서별로 어떤 단어가 몇 번 등장했는지를 행렬 형태로 나타낸다는 점에서 중요합니다.


3. 텍스트 전처리와 인코딩

텍스트 전처리의 목적은 복잡한 텍스트를 분석 가능한 형태로 단순화하는 것입니다.

즉, 노이즈를 줄이고 핵심 단어를 잘 드러나게 만드는 과정입니다.

 

3-1. 전처리의 기본 흐름

일반적으로 다음 순서로 정리할 수 있습니다.

토큰화 → 불용어 처리 → 대소문자 통일 → 정제/정규화 → 어간 또는 어근 추출 → 인코딩

 

3-2. 토큰화(Tokenization)

토큰화는 텍스트를 토큰(token)이라는 작은 단위로 나누는 작업입니다.

토큰 단위는 분석 목적에 따라 달라질 수 있습니다.

  • 어절 단위
  • 단어 단위
  • 형태소 단위
  • 음절, 자소 단위

토큰화의 종류

  • 단어 토큰화: 문장을 단어 기준으로 나눔
  • 어절 토큰화: 띄어쓰기 기준으로 나눔
  • 형태소 토큰화: 형태소 단위로 분리
  • 품사 태깅: 각 단어가 어떤 품사인지 표시

한글 텍스트의 경우 형태소 분석이 중요하므로, R에서는 KoNLP 패키지가 자주 언급됩니다.

 

3-3. 불용어 처리

불용어(stopwords)는 분석 목적상 큰 의미를 가지지 않는 단어입니다.

예를 들어,

  • 조사
  • 접속사
  • 자주 등장하지만 의미가 약한 단어
    등이 이에 해당합니다.

불용어 처리는 텍스트의 잡음을 줄여
핵심 의미가 더 잘 드러나도록 돕습니다.

 

3-4. 정제(Cleansing)와 정규화(Normalization)

이 둘은 비슷해 보여도 구분해서 알아두는 것이 좋습니다.

구분 의미
정제(Cleansing) 노이즈 제거
정규화(Normalization) 다른 표현을 같은 표현으로 통일

예를 들어,

  • 특수문자 제거
  • 숫자 제거
  • HTML 태그 제거
    는 정제에 가깝고,
  • 대소문자 통일
  • 축약형 통일
  • 표기 변형 통일
    은 정규화에 가깝습니다.

3-5. 어간 추출과 어근 추출

둘 다 단어 수를 줄이기 위한 정규화 기법이지만, 방식은 다릅니다.

구분 설명
어간 추출(Stemming) 규칙 기반으로 어미를 잘라내는 방식
어근 추출(Lemmatization) 단어의 사전적 기본형을 찾는 방식

즉,

  • 어간 추출: 빠르지만 다소 거칠 수 있음
  • 어근 추출: 더 정확하지만 복잡할 수 있음

3-6. 텍스트 인코딩

텍스트는 그대로는 수치분석이 어렵기 때문에, 결국 숫자 벡터나 행렬 형태로 변환해야 합니다.

 

① 원-핫 인코딩(One-Hot Encoding)

단어마다 하나의 차원을 만들어 0과 1로 표현하는 방식입니다.

장점은 단순하다는 것이고,
단점은

  • 차원이 너무 커지고
  • 단어 간 의미적 유사성을 반영하지 못한다는 점입니다.

② BoW(Bag of Words)

BoW는 문서에서 단어의 등장 횟수만 기록하는 방식입니다.
중요한 특징은 단어의 순서를 고려하지 않는다는 점입니다.

즉, 문서를 “단어 주머니”처럼 보고 빈도만 세는 방식입니다.

 

③ TF-IDF

TF-IDF는 단순 빈도가 아니라, 문서 안에서는 자주 나오지만 전체 문서에서는 드물게 나오는 단어에 더 높은 가중치를 부여하는 방법입니다.

  • TF(Term Frequency): 특정 문서에서 해당 단어가 얼마나 자주 등장했는가
  • IDF(Inverse Document Frequency): 전체 문서에서 그 단어가 얼마나 드물게 등장하는가

즉, TF-IDF는 “그 문서에서 중요한 단어”를 더 잘 드러내기 위한 가중치 방식입니다.

 

④ 워드 임베딩(Word Embedding)

워드 임베딩은 단어의 의미를 연속형 벡터 공간에 표현하는 방법입니다.

원-핫 인코딩과 달리,

  • 차원이 비교적 작고
  • 단어 간 유사도를 반영할 수 있으며
  • 코사인 유사도나 거리 계산을 통해 의미적 유사성을 파악할 수 있습니다.

예를 들어 의미가 비슷한 단어는
벡터 공간에서도 가까운 위치에 놓이게 됩니다.

시험 포인트

원-핫 인코딩: 단순하지만 희소성 큼

  • BoW: 단어 순서 무시, 빈도 중심
  • TF-IDF: 중요도 가중치 반영
  • 워드 임베딩: 의미 유사도 반영 가능

4. 텍스트 분석과 시각화

4-1. 텍스트 분석

전처리와 인코딩이 끝난 뒤에는 문서의 의미를 파악하기 위해 여러 분석 기법을 적용합니다.

대표적으로 다음이 있습니다.

  • 토픽 모델링
  • 감정 분석
  • 텍스트 분류
  • 텍스트 군집화

4-2. 토픽 모델링(Topic Modeling)

토픽 모델링은 문서 집합에서 함께 등장하는 단어 패턴을 바탕으로 잠재된 주제를 추출하는 기법입니다.

즉, 여러 문서가 있을 때 “이 문서들은 어떤 주제들을 중심으로 구성되어 있는가?”를 자동으로 파악하는 방법입니다.

토픽은 보통 함께 등장할 가능성이 높은 단어들의 집합으로 이해하면 됩니다.

토픽 모델링은

  • 뉴스 이슈 분석
  • 여론 흐름 파악
  • 문서 주제 자동 추출
    같은 문제에 활용됩니다.

4-3. 감정 분석(Sentiment Analysis)

감정 분석은 문장에서 주관적인 감성을 나타내는 정보를 찾아 긍정 / 부정 / 중립 성향을 분석하는 방법입니다.

리뷰 분석, 고객 반응 분석, 브랜드 평판 분석 등에서 많이 사용됩니다.

 

4-4. 텍스트 분류

텍스트 분류는 문서를 미리 정한 카테고리로 분류하는 기법입니다.

대표적으로

  • 스팸 분류
  • 뉴스 기사 분류
  • 고객 문의 유형 분류
    등이 있습니다.

이는 지도학습 방식이라는 점이 중요합니다.

 

4-5. 텍스트 군집화

텍스트 군집화는 비슷한 문서끼리 자동으로 묶는 방법입니다.

사전 라벨 없이 문서 구조를 탐색한다는 점에서 비지도학습 방식입니다.

 

4-6. 텍스트 시각화

텍스트 데이터는 시각화를 통해 구조를 더 쉽게 이해할 수 있습니다.

대표적인 방법은 다음과 같습니다.

 

① 워드 클라우드

문서에서 자주 등장하는 단어를 크게 보여주는 시각화입니다.
핵심 키워드를 직관적으로 파악하는 데 유리합니다.

 

② 의미 연결망 분석

문서에 함께 등장하는 단어들 간의 관계를
노드와 링크 형태의 네트워크로 표현하는 방법입니다.

즉,

  • 단어 또는 구를 노드로 보고
  • 함께 등장하는 관계를 링크로 나타내어
    문서 안의 의미 구조를 파악합니다.

5. 정보 검색의 적절성

정보 검색이나 텍스트 분류에서는 정밀도(Precision)재현율(Recall) 이 매우 중요합니다.

구분 의미
정밀도(Precision) TP / (TP + FP) 정답이라고 예측한 것 중 실제 정답의 비율
재현율(Recall) TP / (TP + FN) 실제 정답 중에서 맞게 찾아낸 비율

혼동행렬로 정리하면


  실제 참(Positive) 거짓(Negative)
예측 참(Positive) TP FP
거짓(Negative) FN TN

시험 포인트

정밀도: “내가 맞다고 한 것 중 실제로 맞은 비율”

  • 재현율: “실제로 맞는 것 중 내가 찾아낸 비율”

6. 사회연결망 분석(Social Network Analysis)

6-1. 사회연결망 분석이란?

사회연결망 분석(SNA)은 개인과 집단들 간의 관계를 노드(node)와 링크(link)로 모델링하여, 네트워크의 구조와 확산 과정을 계량적으로 분석하는 방법입니다.

즉, 사람과 사람, 고객과 고객, 고객과 상품처럼 객체들 사이의 연결 구조를 분석하는 기법입니다.

사회연결망에서는

  • 개인 또는 집단 = 노드
  • 관계 또는 연결 = 링크(edge)
    로 표현합니다.

6-2. SNA의 표현 방식

사회연결망 분석은 보통 다음과 같은 방식으로 표현합니다.

 

① 집합론적 방법

객체 간 관계를 쌍(pairs of elements) 으로 표현합니다.

 

② 그래프 이론 방법

객체를 점(노드)으로 표현하고, 관계를 선(링크)으로 표현합니다.

 

③ 행렬 방법

행과 열에 객체를 배치하고, 관계가 있으면 1, 없으면 0을 넣는 방식입니다.

행렬 방식에서는 다음도 자주 구분합니다.

  • 1원(1-Mode) 자료: 행과 열에 같은 개체가 놓이는 경우
  • 2원(2-Mode) 자료: 행과 열에 다른 개체가 놓이는 경우

예를 들어 고객-상품 행렬은 2원 자료입니다.

 

6-3. 준연결망

준연결망은 직접적인 상호작용이 없어도 공통 대상을 기준으로 관계를 인위적으로 구성한 네트워크입니다.

예를 들어 고객-상품 구매 행렬에서,

  • 같은 상품을 구매한 고객끼리 연결하면 고객 네트워크
  • 같은 고객에게 구매된 상품끼리 연결하면 상품 네트워크
    를 만들 수 있습니다.

즉, 거래 데이터를 활용해
직접 관찰되지 않은 관계를 네트워크로 확장하는 방식입니다.


7. 사회연결망 분석의 중심성

네트워크 안에서 어떤 노드가 얼마나 중요한지를 측정하는 대표적인 방법이 중심성(Centrality) 입니다.

 

7-1. 연결정도 중심성(Degree Centrality)

한 노드에 직접 연결된 다른 노드의 수를 의미합니다.
연결 수가 많을수록 중심성이 높습니다.

즉, “얼마나 많은 사람과 직접 연결되어 있는가”를 보는 지표입니다.

 

7-2. 근접 중심성(Closeness Centrality)

한 노드가 다른 모든 노드에 얼마나 짧은 거리로 도달할 수 있는지를 나타내는 지표입니다.

보통 다른 노드까지의 최단거리 합의 역수 개념으로 이해합니다.
즉, 네트워크 중앙에 가까울수록 근접 중심성이 높습니다.

 

7-3. 매개 중심성(Betweenness Centrality)

한 노드가 다른 노드들 사이의 최단경로 위에 얼마나 자주 위치하는가를 나타냅니다.

즉, 네트워크 안에서 중재자, 브로커, 허브 역할을 얼마나 하는지 보여줍니다.

 

7-4. 위세 중심성(Eigenvector Centrality)

단순히 연결 수만 보는 것이 아니라, 중요한 노드와 연결되어 있는 정도까지 반영한 중심성입니다.

즉, 영향력 있는 사람들과 연결되어 있으면 그 노드의 위세 중심성도 높게 평가됩니다.

시험 포인트

  • 연결정도 중심성: 연결 수
  • 근접 중심성: 전체에 얼마나 빨리 닿는가
  • 매개 중심성: 중간에서 이어주는 힘
  • 위세 중심성: 중요한 노드와 연결된 정도

8. SNA 적용과 분석 단계

8-1. SNA 적용 분야

사회연결망 분석은 다음과 같은 분야에 활용됩니다.

  • 통신 네트워크
  • 온라인 소셜 미디어
  • 게임 사용자 네트워크
  • 유통 고객 네트워크
  • 추천 시스템
  • 이탈 예측 및 영향력 분석

대규모 데이터에서는 MapReduce나 Giraph 같은 분산처리 기반 환경과 함께 언급되기도 합니다.

 

8-2. SNA 단계

사회연결망 분석은 보통 다음 흐름으로 진행됩니다.

  1. 그래프 생성 단계
  2. 목적에 맞게 그래프를 가공·분석하는 단계
  3. 커뮤니티를 탐지하고 각 노드의 역할을 정의하는 단계
  4. 분석 결과를 다른 데이터 마이닝 기법과 연계하는 단계

즉, 
단순히 그래프를 그리는 데서 끝나는 것이 아니라
네트워크 구조를 분석하고, 다시 예측·분류 등 다른 분석과 연결하는 것까지 포함됩니다.


9. 커뮤니티 탐지(Community Detection)

커뮤니티 탐지는 네트워크 안에서 서로 밀접하게 연결된 집단을 찾아내는 방법입니다.

R에서 자주 언급되는 방법은 다음과 같습니다.

 

9-1. WALKTRAP 알고리즘

  • random walk를 이용해 커뮤니티를 찾는 방법
  • 각 정점을 하나의 커뮤니티로 두고 점차 병합해 나감

9-2. Edge Betweenness Method

  • 최단경로에 자주 포함되는 edge를 찾는 방법
  • 매개성이 높은 edge를 제거하면서 커뮤니티를 분리

10. 시험 직전 암기 포인트

텍스트 마이닝

  • 텍스트 수집 → 전처리 → 분석 → 시각화
  • Corpus = 문서 집합
  • 문서분류 = 지도학습
  • 문서군집 = 비지도학습
  • BoW = 순서 무시, 빈도 중심
  • TF-IDF = 중요도 가중치
  • 워드 임베딩 = 의미 유사도 반영

전처리

  • 토큰화: 텍스트를 단위로 나누기
  • 불용어 처리: 의미 약한 단어 제거
  • 정제: 노이즈 제거
  • 정규화: 표기 통일
  • 어간 추출 vs 어근 추출 구분

사회연결망 분석

  • 노드 = 객체, 링크 = 관계
  • 1-Mode / 2-Mode 구분
  • Degree / Closeness / Betweenness / Eigenvector 구분
  • 커뮤니티 탐지: WALKTRAP, Edge Betweenness

마무리 정리

이번 글에서는 ADP 필기에서 자주 출제되는
텍스트 마이닝과 사회연결망 분석 파트를 정리했습니다.

이 단원은 단순 암기보다
개념 간 차이를 비교해서 이해하는 공부가 훨씬 중요합니다.

특히 아래 비교는 꼭 정리해두는 것이 좋습니다.

  • 문서분류 vs 문서군집
  • 정제 vs 정규화
  • 어간 추출 vs 어근 추출
  • BoW vs TF-IDF vs 워드 임베딩
  • 연결정도 중심성 vs 근접 중심성 vs 매개 중심성 vs 위세 중심성

시험 직전에는 위 비교쌍만 다시 봐도
핵심 개념 정리에 큰 도움이 됩니다.