관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

Orange 8 - 텍스트 마이닝의 개념과 과정에 대하여 본문

인공지능/머신러닝

Orange 8 - 텍스트 마이닝의 개념과 과정에 대하여

huenuri 2024. 9. 14. 09:23

이번에는 텍스트 마이닝이라고 해서 텍스트를 분류하는 방법에 대해서 알아보고 실습도 함께 진행해볼 것이다. 먼저 텍스트 마이닝이란 무엇인지 살펴보기로 하자.

모두 한번 들었던 수업이지만 처음 들었을 때는 무슨 말인지 거의 이해하지 못했다. 오늘 다시 들어보니 무척 신기했고 이런 식으로 데이터를 분류한다는 것을 알게 되었다.


 

 

 

텍스트 마이닝이란 무엇인가?

 

 

 

자연어는 컴퓨터가 알아들을 수 없는데 이를 알아들을 수 있도록 변경하는 작업을 거쳐야 한다. 

 

 

 

 

 

 

 

이런 식으로 활용된다.


 

 

텍스트 마이닝을 하는 과정

 

 

이번에 실습해볼 것은 감성 분석이다. 텍스트 마이닝을 위해서는 전처리 과정이 필요하다.

 

 

 

 

 

한국어는 형태로 단위로 분석을 하는 편이다.


 

 

 

 

 

 

1. 텍스트 데이터 수집


 

 

 

2. 텍스트 전처리

 

용도에 맞게 전처리를 하면 된다. 보통 띄어쓰기 단위로 교정한다. 이러한 과정을 토큰화라고 한다. 의미가 없는 단어는 불용어라고 하며 이를 제거해야 한다.

사소하게 데이터를 세분화하면 특성이 많아지며 좋은 결과가 나올 수 없다. 이러한 결과를 합쳐주는 것을 특성공학이라고 한다. 표현방법이 다르지만 의미가 같은 것끼리 묶어주는 작업이다. 어떤 단어의 긍정인지 부정인지는 형용사의 동사에서 표현될 수 있다. 이러한 단어들을 통합하는 과정을 정규화라고 한다.

 

어간도 모두 같은 의미이지만 컴퓨터는 모두 다른 단어로 인지한다. 텍스트 분석을 하기 전에 이렇게 다양한 방식의 전처리 과정이 필요하다.


 

 

3. 토큰화

영어는 공백 기준으로 나누는데 우리나라 언어는 교착어라고 해서 조사가 많이 붙기 때문에 컴퓨터가 분석하기에 어려운 언어라고 한다. 그래서 외국인이 배우기에 가장 어려운 언어가 한국어라고 한다.

텍스트 마이닝에서 형태소 기준으로 나누는 이유는 감성분석을 할 때 동사, 형용사에 집중되어 있기 때문이다.


 

 

 

 

자신이 분석하고자 하는 목적에 따라서 다르게 사용한다.

 

 

 

보통 2개를 많이 사용하며 바이그램이라고도 한다. 하나씩 있는 데이터도 2개씩 묶은 데이터도 모두 수치화하는데, 두 개씩 묶은 단어에서 여러번 등장한다면 아이스와 크림이 아닌 아이스크림으로 해석하는 것이다.


 

 

 

 

 

토큰화를 하는 BOW의 2가지 방식에 대하여

단어의 가방이라고 한다. 예를 들면 단어를 다 잘라서 가방에 넣는 것이다. 단어의 빈도수를 체크해서 가중치를 적용한다.

 

 

 

 

단어를 모두 추출하여 피처로 만드는 과정을 벡터화라고 한다. 어떤 단어가 많이 나오는지 볼 수 있는 방법은 수집한 단어를 토큰화하여 가방에 담는 것이다. 불용어는 밑으로 내리고 중요한 단어들을 올려주는 과정이다.

 

 

 

 

단순 카운트 기반의 벡터화는 토큰화한 단어의 빈도수만큼만 체크하는 과정이다. 하지만 문서에서 가장 많이 등장하는 단어는 the, a 이기 때문에 이러한 단어를 가장 중요하게 인식하게 된다. 단순 카운트 기반의 벡터화를 보완하기 위해 나온 것이 TF-IDF이다.

 

 

 

 

 

단어를 모두 자른 다음에 0번부터 인덱스를 묶어서 빈도를 체크하는 것이 단순 카운트 벡터화가 된다. 이때 특정 단어가 많이 등장하면 중요 단어로 분류를 해준다. 의미없이 많이 나오는 단어도 분류하기에 문맥의 의미를 반영하기 힘들다.

Word Cloud는 단어를 빈도수에 따라 많이 나오는 단어를 크게 보여준다.

 

 

 

우리는 영화 리뷰를 가져와서 평점 분석을 하는 실습을 진행하려고 한다.

 

 

 

 

이것은 특정 문서에 많이 등장하는 단어를 중요 단어로 파악한다. 모든 문서에서 자주 등장하는 단어는 의미가 없다고 판단하여 패널티를 주는 방식이다.

 

 

 

 


 

 

 

학습을 마치고

한 시간 동안 정말 많은 개념을 배운 시간이었다. 원래 오늘 아침 일찍 출발하려고 했으나 일정을 나중으로 미루고 공부를 더 하기로 했다. 집에 가면 놀고 잘 하지 않을 것 같아 오늘은 최대한 할 수 있는만큼 많이 공부하고 오후 늦게 출발할 생각이다.

이것으로 새벽 공부는 마치고 이제부터 아침 공부를 시작해볼 것이다. 텍스트 마이닝 그동안 수업 시간에 말은 많이 들어 보았으나 복습을 하지 않아서 무슨 말인지 잘 몰랐었다. 이번에 확실히 개념을 잡을 수 있어서 정말 좋았다.