본문 바로가기
빅데이터분석기사

[빅분기] 10.5. 비정형 데이터 분석기법

by Point-Nemo 2025. 8. 29.

1. 비정형 데이터

1) 비정형 데이터란?

- 형식이 정해지지 않은 데이터로, 구조와 형태가 다르고 정형화되지 않은 문자, 음성, 이미지, 영상 데이터

 

2) 데이터의 유형

유형 내용 예시
정형 데이터 - 형태가 있으며, 연산이 가능, 주로 RDBMS에 저장됨
- 데이터 수집 난이도가 낮고 형식이 정해져있어 처리가 쉬움
- 관계형 데이터베이스, CSV 등
반정형 데이터 - 형태(스키마, 메타데이터)가 있으며 연산이 불가능 
- 데이터 수집 난이도가 중간이며 주로 API 형태로 제공됨
- XML, HTML, JSON
비정형 데이터 - 형태가 없으며, 연산이 불가능, 주로 NoSQL에 저장됨
- 데이터 수집 난이도가 높으며 수집 데이터 처리도 어려움
- 소셜데이터, 영상, 이미지, 음성

 

3) 비정형 데이터의 종류

유형 예시
텍스트 -
이미지
음성 및 영상 - 음성과 동영상은 스트리밍 형태로 구현 (인터넷에서 데이터를 실시간 전송, 구현하는 기술) 
- 스트리밍은 어떤 사운드나 비디오 파일을 하나의 형태가 아닌 여러 개의 파일로 나누어 연이어 내보내는 것
로그 - 컴퓨터의 처리 내용이나 이용 상황을 시간의 흐름에 따라 기록한 것
- 인터넷 검색 인덱싱과 같은 웹 상에서 발생하는 모든 흔적

 

4) 비정형 데이터 분석 기법

- 비정형 데이터 마이닝: 정제 과정을 통해 비정형 데이터를 정형 데이터로 만든 후 분류, 군집화, 회귀분석과 같은 분석 방법론을 적용

유형 예시
텍스트 마이닝 - 자연어 처리 방식을 이용한 정보추출 기법에 해당하며, 특정 키워드나 문맥을 기반으로 의미를 추출
오피니언 마이닝 - 소셜 미디어에서 긍정/부정/중립을 구분하여 선호도를 판별하는 기술 (분석 대상 키워드의 빈도수 측정)
사회연결망 분석 - 소셜 네트워크 서비스에 내포된 사용자간의 관계를 분석
군집 분석 - 변화가 많은 집단을 일정한 군집으로 나눠 특성을 분석하고, 다른 집단과의 차이를 관측하기 위한 분석 기법

 


2. 텍스트 마이닝

1) 텍스트 마이닝 개요

- 텍스트로부터 고품질의 정보를 도출하는 분석방법으로 입력된 텍스트를 구조화해 패턴을 도출한 후 결과를 평가 및 해석하는 과정

- 다양한 형태의 문서로부터 텍스트를 획득한 후 문서별 단어의 행렬을 만들어 추가적 분석을 수행하거나 데이터 마이닝 기법을 적용하여 통찰을 발견하고 의사결정을 지원하는 방법

- 텍스트를 추출해 하나의 레코드로 만들고 단어 구성에 따라 데이터 마트를 구성함 이후, 단어들 간의 관계를 이용해 감성분석, 워드 클라우드 분석 등을 수행한 후 해당 정보를 군집화, 분류, 소셜네트워크 분석 등에 활용함

 

2) 텍스트 마이닝 기능

문서분류 문서군집 정보추출
- 도서관에서 주제별로 책을 분류하듯이 문서의 내용에 따라 분류하는 것
- 사전에 분류 정보를 알고 있는 상태에서 주제에 따라 분류하는 지도 학습 방식
- 성격이 비슷한 문서끼리 같은 군집으로 묶어주는 방법
- 통계의 판별분석, 군집분석과 유사한 개념
- 사전에 분류 정보를 모르는 상태에서 수행하는 비지도 학습 방식
- 문서에서 중요한 의미를 지닌 정보를 추출하는 방법

 

3) 텍스트 마이닝 과정

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

 

a. 텍스트 수집

- 텍스트 저장소에서 가져오거나 웹 페이지 HTML 소스에서 필요한 텍스트 정보를 크롤링

 

b. 코퍼스

- 데이터의 정제/통합/선택/변환의 과정을 거친 후의 구조화된 텍스트 데이터로, 더 이상 추가적인 절차 없이 데이터 마이닝 알고리즘 실험에 활용될 수 있는 상태

 

c. 텍스트 전처리

- 자연어 처리에서 전처리의 지향점은 갖고있는 코퍼스로부터 복잡성을 줄이는 일

- 코퍼스 데이터가 필요에 맞게 전처리 되지 않은 상태라면 해당 데이터를 사용하고자하는 용도에 맞게 토큰화 / 정제/ 정규화하는 작업

 

토큰화 -> 불용어 처리 -> 대소문자 통일 -> 어근 추출 -> 텍스트 인코딩

 

※ 토큰화 

https://magazine.hankyung.com/business/article/202010133532b

- 주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업

- 토큰의 단위는 어절/형태소/음절/자소가 될 수 있음 (형태소: 뜻을 가진 가장 작은 말의 단위)

 

- 단어 토큰화: 토큰의 기준을 단어로 하는 경우로 온점 / 컴마 / 물음표 / 세미콜론 / 느낌표 같은 구두점을 지우는 것

- 어절 토큰화: 토큰의 기준을 어절로 하는 경우로 띄어쓰기를 기준으로 잘라냄 (한국어 자연어 처리에선 지양)

- 형태소 토큰화: 형태소는 자립 형태소(그 자체로 단어)와 의존 형태소(다른 형태소와 결합)가 있음, 한국어는 같은 단어임에도 서로 다른 조사가 붙어 다른 단어로 인식될 수 있기 때문에 NLP에서 조사는 분리해 줄 필요가 있음, 한국어에서 영어의 단어 토큰화와 유사한 형태를 얻으려면 형태소 토큰화가 필요

- 품사 태깅: 단어 토큰화 과정에서 단어의 의미를 제대로 파악하기 위해 각 단어가 어떤 품사로 쓰였는지를 구분하는 작업

 

※ 불용어 처리

- 데이터에서 유의미한 단어 토큰만을 선별하기 위해 쓸모없는 단어를 제거

- NLTK에서는 100여개 이상의 영어 단어들을 불용어로 패키지 내에서 미리 정의하고 있고, 한국어에서는 기준을 정해서 직접 정의한 불용어 사전을 통해 제거할 수 있음

 

※ 정제와 정규화

- 토큰화 작업 전 또는 후로 텍스트 데이터를 용도에 맞게 정제 및 정규화 작업을 항상 함꼐 수행

- 정제는 코퍼스로부터 노이즈 데이터를 제거하는 것이고 토큰화 작업 전/후로 지속적으로 이루어짐

- 정규화는 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어주는 것

 

- 규칙에 기반하여 표기가 다른 단어들을 통합 (정규화)

- 대소문자 통일 (단어 개수를 줄이는 정규화)

- 불필요한 단어의 제거 

- 정규 표현식 (코퍼스 내에서 계속해서 등장하는 글자들을 규칙에 기반하여 한 번에 제거)

 

※ 어간 추출과 어근 추출

- 정규화 기법 중 코퍼스에 있는 단어의 개수를 줄일 수 있는 기법

- 어근이 단어의 뿌리이므로 어근을 찾아 단어의 개수를 줄일 수 있는지 판단함 (am, are, is -> be)

- 어간 추출은 정해진 규칙만 보고 단어를 잘라내는 어림짐작의 작업 (어근 추출보다 섬세함이 떨어져 사전에 없는 단어를 얻을 확률이 높음)

 

※ 텍스트 인코딩

- 원-핫 인코딩: 텍스트 내 N개의 단어를 각각 N차원의 벡터로 표현하는 방식 (단어가 포함되는 인덱스에 1을 넣고, 나머진 0으로 표현) (단어의 개수가 늘어날수록 벡터를 저장하기 위해 필요한 공간이 계속 늘어나 단어의 유사도를 표현하지 못한다는 단점 존재)

 

- 말뭉치: 문서 내에 등장하는 단어들의 순서를 전혀 고려하지 않고 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만듦, 각 단어의 등장 횟수를 수치화하는 방법이기 때문에 주로 어떤 단어가 얼마나 등장했는지를 기준으로 해당 문서가 어떤 성격, 주제를 내포하고 있는지 판단하는 작업에 주로 사용됨 (ex. 추천)

 

- TF-IDF: 각 단어의 중요도라는 개념을 가중치로 부여하는 기법으로, 가중치는 TF*IDF(단어빈도*역문서빈도)로 계산할 수 있음, 주로 문서의 유사도, 검색 결과의 중요도 결정 등에 많이 사용

 

- 워드 임베딩: 의미를 최대한 담아 단어를 벡터로 바꿔주는 모델, 비슷한 분포를 가진 단어의 주변 단어들도 비슷한 의미를 가진다는 분산표상 개념이 차용됨(ex, []를 먹었다에 [] 안엔 빵과 밥이 들어갈 수 있으니 그 둘은 유사한 역할을 한다는 것), 원-핫 인코딩과 달리 한 단어가 미리 정의된 차원에서 연속형의 값을 갖는 벡터로 표현되므로 필요한 벡터 공간이 훨씬 적고, 각 차원은 모두 정보를 가지고 있으므로 벡터 연산을 통해 단어 벡터 간 유사도를 구할 수 있음

 

d. 텍스트 분석

- 전처리 과정이 끝나면 복합명사, 사전 미등록 단어나 줄임말 등에 대한 데이터 후처리 과정을 거쳐 해당 데이터를 분석하고 시각화함

 

※ 토픽 모델링

- 문서가 가지고 있는 여러 가지 토픽을 찾아주는 기법으로, 의미 연결망 분석 종류 중 하나

- 텍스트 데이터에서 사용된 주제어들의 동시 사용 패턴을 바탕으로 해당 텍스트들을 대표하는 특정 주제나 이슈, 주제 그룹들을 자동으로 추출하는 분석 기법

- 하나의 문서에 여러 개의 토픽이 있다고 가정하기에 토픽은 함께 등장할 확률이 높고, 유사한 의미를 가지는 단어들의 집합이라 할 수 있음

- 텍스트 데이터 내 단어들의 빈도를 통계적으로 분석하여 전체 데이터를 관통하는 잠재적 주제(토픽)를 자동으로 추출하는 분류를 진행하기 때문에 쟁점(프레임) 분석에 유리

 

※ 감성 분석

- 텍스트 문장을 분석할 때 주관적인 감성을 나타내는 정보를 찾아내어 긍정 / 부정 / 중립의 성향을 분석하는 것

- 문장에서 사용된 단어의 긍정/부정 여부에 따라 긍정적인 단어가 얼마나 많은지를 파악하여 전체 문장의 긍정/부정 여부를 파악

- 제품에 대한 선호나 평판의 추이 변화 파악에 이용하며, 오피니언 마이닝에 필수적인 분석 기술

- 포털 게시판, 블로그 등과 같은 대규모의 웹 문서를 대상으로 하기 때문에 자동화된 분석방법을 사용

 

※ 텍스트 분류

- 텍스트를 지정한 카테고리를 분류하는 기법으로, 지도 학습방법을 사용하며 텍스트 분석에서 가장 많이 사용하는 방법

- 과거에는 텍스트 분류를 할 때 머신러닝 기법을 많이 사용했지만, 최근엔 딥러닝의 성능이 텍스트 분류에 훨씬 좋음

 

※ 텍스트 군집화

- 벡터 연산을 통해 단어 벡터 간 유사도를 이용하여 단어의 관계를 파악하고 비슷한 의미를 가지는 단어들이 상대적으로 가깝게 위치하게 되면서 군집을 형성하게 되는 것

 

e. 텍스트 시각화

 

※ 워드 클라우드

https://blog.naver.com/tippingkorea/223406758376

- 문서의 키워드, 개념 등을 직관적으로 파악할 수 있도록 핵심 단어를 시각적으로 돋보이게 하는 기법

- 특정 문서 내에서 많이 언급되는 단어를 크게 표현하고 색을 달리 나타내어 주요 키워드들을 한 눈에 정리

- 주로 방대한 양의 텍스트 정보를 다루는 비정형 빅데이터를 분석할 떄 많이 사용

 

※ 의미연결망 분석

https://h21.hani.co.kr/arti/cover/cover_general/41389.html

- 문서에 포함된 단어들의 구조적 관계를 통해 의미를 분석하는 것으로, 여기서 정보 단위가 되는 단어나 구를 각각의 노드를 형성하는 개념으로 보고, 개념 간의 연결 상태를 링크로 나타낸 것

- 특정 범주를 가정하지 않은 상태에서 단어들의 빈도와 한 문장 안에서 동시에 사용되는 단어들의 관계를 통해 문서의 패턴을 분석

- 가운데에 주요 단어가 위치하며 그 주변으로 유사한 맥락의 단어들끼리 링크를 형성

- 특정 텍스트 군집 내 의미적 프레임을 파악하기에 용이하지만 많은 단어 간의 복잡한 네트워크가 생성되는 경우, 직관적인 해석이 어려움

 

4) 정보 검색의 적절성

- 정보검색이나 자연어 처리 분야에서 분석 결과를 평가하기 위해 정밀도와 재현율을 사용

https://www.fun-coding.org/post/recommend_basic8.html

구분 정의 계산식
정밀도 (Precision) - 모델이 참이라고 예측한 결과 중 실제로 참인 것의 비율 TP/TP+FP
재현율 (Recall) - 실제로 참인 것 중 모델이 참이라고 예측한 비율 TP/TP+FN

 


3. 사회연결망 분석 (SNA)

1) 사회연결망 분석

https://m.blog.naver.com/habak527527/221781168422

a. SNA 정의

- 개인과 집단들 간의 관계를 노드와 링크로 모델링하여 그것의 위상구조와 확신 및 진화 과정을 계량적으로 분석하는 방법론

- 사회연결망은 개인의 인간관계가 인터넷으로 확대된 사람 사이의 네트워크라고 할 수 있음

- 사회연결망에서 개인 또는 집단이 하나의 노드가 되며, 노드 사이에 존재하는 연결은 선으로 표현됨

 

b. SNA 분류

※ 집합론적 방법

- 객체들의 집합에서 각 객체들 간의 관계를 관계 쌍으로 표현

A = (X1, X2), (X2, X1), (X4, X2), (X3, X1),,,
B = (X1, X2), (X2, X1), (X3, X4),,,

 

※ 그래프 이론을 이용한 방법

- 객체를 점으로 표현하고, 두 객체 간의 연결은 두 점을 연결하는 선으로 표현

 

※ 행렬을 이용한 방법

- 각 객체를 행렬의 행과 열에 대칭적으로 배치하고, i번째 객체와 j번쨰 객체간의 관계가 존재하면 (i,j)번쨰 칸에 1을 넣고, 관계가 존재하지 않으면 0을 넣음

- 1원 자료: 행과 열에 같은 개체가 배열되는 것

- 2원 자료: 행과 열에 다른 개체가 배열되는 것

- 준연결망: 고객-상품행렬에서 상품을 구매한 사람들 사이에 직접적인 상호 작용 관계가 없더라도, 관계를 인위적으로 설정해 고객과 고객, 상품과 상품 사이의 관계를 나타낸 게트워크

- 구매 트랜잭션을 이용해 고객간의 관계와 상품간의 관계를 표현하고, 고객들이 서로 동일한 상품을 1개 이상 구매했다면 그 고객들은 직접적인 상호작용이 있다고 표현 

 

2) 사회연결망 분석에서 네트워크 구조를 파악하기 위한 기법

※ 중심성

연결정도 중심성 - 한 점에 직접적으로 연결된 점들의 합, 한 점에 얼마나 많은 다른 점들이 관계를 맺고 있는지를 기준으로 그 점이 중심에 위치하는 정도를 계량화 한 것
- 연결된 노드가 많을수록 연결정도 중심성이 높아짐
근접 중심성 - 한 노드로부터 다른 노드에 도달하기까지 필요한 최소 단계의 합
- 근접 중심성이 높을수록 중앙에 위치함
매개 중심성 - 네트워크 내에서 한 점이 담당하는 매개자 혹은 중재자 역할의 정도
- 한 노드가 연결망 내의 다른 노드들 사이의 최다 연결 경로에 위치할수록 매개 중심성이 높음
위세 중심성 - 자신의 연결정도 중심성으로부터 발생하는 영향력과 자신과 연결된 타인의 영향력을 합하여 결정
- 위세가 높은 노드들과 관계가 많을수록 자신의 위세 또한 높아짐
- 보나시치 권력지수: 위세 중심성의 일반적인 형태로, 연결된 노드의 중요성에 가중치를 둬 노드의 중심성을 측정하는 법

 

3) SNA 적용

- 통신, 온라인 소셜 미디어, 게임 및 유통업체에서 관심이 많음

 

4) SNA 단계

a. 그래프 생성 단계

b. 그래프를 목적에 따라 가공하여 분석하는 단계

c. 커뮤니티를 탐지하고 각 객체 또는 노드의 역할을 정의해 어떠한 롤로 다른 객체들에게 영향력을 더 효율적으로 줄 수 있는지를 정의하는 단계

d. 위 결과를 데이터화하여 다른 데이터 마이닝 기법과 연계하는 단계

- 특히 데이터화는 SNA를 통해 얻어진 커뮤니티의 프로파일을 해당 그룹 구성원의 연령/성별/고객등급 등과 같은 고객 프로파일 평균값으로 산출해, 각 그룹에 속한 개별 고객 속성에 그룹 넘버와 롤을 결합해 추가하는 단계임

 

5) 활용방안

- 데이터가 몇 개의 집단으로 구성되는지, 집단 간의 특징은 무엇인지, 해당 집단에서 영향력있는 고객은 누구인지, 시간의 흐름과 고객 상태의 변화에 따라 다음에 누가 영향을 받을지를 기반으로 다양한 분석들에 활용됨

 

'빅데이터분석기사' 카테고리의 다른 글

[빅분기] 11.2. 분석모형 개선  (4) 2025.08.31
[빅분기] 11.1. 분석모형 평가  (4) 2025.08.31
[빅분기] 10.4. 딥러닝  (9) 2025.08.29
[빅분기] 10.3. 군집분석  (4) 2025.08.28