본문 바로가기

방송통신대학교

맵리듀스와 텍스트마이닝 예제로 본 데이터 처리 과정

728x90
반응형
728x170

다음 <보기>와 같은 텍스트 데이터가 존재한다고 가정하자. 이 데이터가 맵리듀스 과정의 input 데이터라면 이후의 맵리듀스 과정은 어떻게 진행될 것인지 단계별로 도시하고 설명하시오. (단, Splitting 단계에서는 문장구조에 상관없이 첫 단어부터 시작하여 세 단어씩 나누어진다고 가정하고 대소문자는 구별하지 않음) (6점)
<보기>

This is a
difficult problem of
text mining algorithm
This example is
difficult The next
problem is more
difficult than this

 

 

본문

안녕하세요, 여러분! 오늘은 맵리듀스라는 멋진 알고리즘과 그 과정에서 텍스트 마이닝 문제를 다뤄볼까 합니다. 이야기를 풀어나가기 전에 잠깐, '맵리듀스(MapReduce)가 뭐에요?'라는 질문에 답해 드리겠습니다.

 

맵리듀스는 대용량 데이터를 효과적으로 처리하기 위해 구글에서 개발한 프로그래밍 모델입니다. 두 단계, 즉 '맵(Map)' 단계와 '리듀스(Reduce)' 단계로 구성되어 있습니다.

 

오늘 우리가 다룰 예제는 아래와 같습니다.

This is a 
difficult problem of 
text mining algorithm 
This example is 
difficult The next 
problem is more
difficult than this

이 데이터를 맵리듀스 과정에 넣는다면 어떻게 될까요?

 

1단계: Splitting
우선, 문장구조에 상관없이 첫 단어부터 시작하여 세 단어씩 나누어 봅시다.

This is a
difficult problem of
text mining algorithm
This example is
difficult The next
problem is more
difficult than this

2단계: Mapping
맵 단계에서는 각 split된 데이터를 key-value 쌍으로 변환합니다. 여기서 key는 단어이고, value는 1입니다.

This, 1
is, 1
a, 1
difficult, 1
problem, 1
of, 1
...

3단계: Shuffling
여기서는 key값을 기준으로 데이터를 정렬하고 그룹화합니다.

a, 1
difficult, 1
difficult, 1
difficult, 1
is, 1
...

4단계: Reducing
리듀스 단계에서는 같은 key를 가진 value들을 합산합니다.

a, 1
difficult, 3
is, 2
...

이처럼 맵리듀스 과정을 거치면 원래의 텍스트 데이터에서 각 단어가 몇 번 등장하는지를 알 수 있게 됩니다.

맵리듀스와 같은 데이터 처리 알고리즘은 대용량의 데이터를 분석하고 가공할 때 굉장히 유용합니다. 이번 예제를 통해 여러분도 맵리듀스의 기본 원리를 이해하셨기를 바랍니다.

 

여러분이 데이터 분석이나 텍스트 마이닝, 혹은 다른 관련 분야에서 일하신다면, 이러한 기본적인 알고리즘을 활용하실 때 굉장히 유용할 것입니다.

 

오늘도 유익한 시간이었기를 바라며, 다음에도 좋은 내용으로 찾아뵙겠습니다. 그럼, 행복한 하루 되세요!

 

728x90
반응형
그리드형