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

텍스트 마이닝 6 - 코랩으로 응용 실습해보기 1 : 데이터 로딩 및 형태소 분석 본문

인공지능/머신러닝

텍스트 마이닝 6 - 코랩으로 응용 실습해보기 1 : 데이터 로딩 및 형태소 분석

huenuri 2024. 9. 20. 08:35

이제 오후 공부 마지막 시간이다. 텍스트 마이닝 기초 수업이 끝났고 이제 응용에 들어가려고 한다. 


 

 

텍스트 마이닝 응용 실습해보기

 

군산대학교에서 한국어 세종 딕셔너리라는 이름으로 좋음에 해당되는 것과 싫음에 해당되는 감성 분석을 분류했다. 감성 사전을 이용한 분석은 전통적으로 사용하던 방식이다. 먼저 감성 사전에 해당 단어가 있는지 없는지 판별하고, 단어의 긍정 부정에 따라 점수를 부여한다.

최근에는 사람들이 사용하는 단어가 다양하다보니 인공지능 기술을 사용해 분석한다. 어떤 문장이나 단어에서 긍정, 부정적 느낌에 대한 라벨링을 진행한다. 그런 다음 인공지능 모델을 통해 학습을 한후 분석하는 방식을 말한다. 우리는 case2를 진행해볼 것이다.

 

데이터는 한국어 혐오 표현 그대로 할 것이다.


 

 

데이터 준비하기

 

 

 

 

이 코드를 실행하면 이렇게 두 개의 파일이 생긴다. 이제 코랩으로 이동할 준비가 된 것이다.

 

 

 

 

 

딥러닝으로 넘어가면 GPU 자원 때문에 코랩을 많이 사용한다고 한다. 지난번에 허깅페이스 공부할 때 코랩을 사용했었는데 아직도 어떻게 사용하지는 잘 몰라서 한참동안 헤맸다. 이 파일 하나 만드는 게 왜이렇게 어렵던지.. 나머지 부분은 집에 가서 이이서 학습을 하는 중이다.

 

 

 

코랩은 인터넷이 꼭 연결되어야 사용할 수 있으며 연결을 끊어버리면 사용하던 자료가 다 날라갈 수도 있다. 따라서 코랩을 사용할 때는 구글 드라이브와 연동하며 사용하는 것이 좋다. 파일을 올려도 연결을 해제하면 올렸던 데이터가 다 사라지는 걸 볼 수 있다.

휘발성이 있기는 하지만 리눅스 기반이고 빠르게 개발 환경을 구축할 수 있어 개발자들이 많이 사용하는 편이다.


 

 

코랩으로 텍스트 마이닝 실습 해보기

 

두 개의 파일을 업로드한다. 그런 다음 코드를 작성해본다.

 

 

 

 

 

 

KoNLPy 관련 문서

 

 

 

KoNLPy에서 지원하는 5개의 클래스를 소개하고 있다. 각각 형태소를 분리해주는 클래스인데 분리해주는 방식이 조금씩 다르다. Mecab은 윈도우에서는 사용하기 어렵고 리눅스에서 활용하기 좋으며, 코랩에서는 매캅을 그려볼 수 있다.


 

 

 

okt와 kkma 사용해보기

 

mecab은 제외하고 두 개의 클래스만 객체 생성을 해주었다.

 

 

클래스마다 형태소의 분리가 조금씩 다르다. kkma는 좀더 세분화하여 분리하고 있다.

 

 

이렇게 서로 다른 방식으로 형태소를 분리해보았다.

 

 


 

 

Mecab 설치하기

 

파일에 이렇게 mecab이 생겼다. 조금 늦게 생겨서 무슨 문제가 있나 했었다.

 

 

 

설치하는데 시간이 좀 걸렸다. 그리고 tqdm을 사용하는데 뭔가 오류가 떴다.

 

 

 

이건 이모지를 사용해서 라고 한다. 이제 이모지를 제거하는 작업을 진행할 것이다.

 

 

 

 

kkma로 하자 시간이 굉장히 많이 걸린다. 이건 주석 처리하고 다른 작업을 진행해볼 것이다. 그러기 전에 매캅을 설치했으면 세션을 다시 시작해야 한다. 런타임 연결 해제 및 삭제는 PC 자원을 완전히 지우는 초기화이고, 세션 다시 시작은 remote 같은 개념이다.

 

 

 

드디어 되었다. 이 코드 하나 작성하는데 30분 이상 걸린 것 같다. 매캅 객체를 생성하면 세션을 한번 재시작해야 하는 걸 꼭 기억하자. kkma에서는 10~30분 정도 걸렸지만 mecab에서는 몇 초만에 처리가 되었다. 속도가 훨씬 빠르니 꼬꼬마처럼 디테일하게 형태로 분석을 할 때가 아니면 메캅을 사용하는 것이 더 좋다. 하지만 매캅은 리눅스 기반의 운영체제에서 사용 가능하다.

 

 

 


 

 

 

학습을 마치고

코랩으로 텍스트 마이닝 작업을 진행해보았다. 처음 코드를 쓰는 것부터 얼마나 어렵던지.. 잘 안되는 게 많은데다 이건 선생님이 코드도 제공해주시지 않아서 일일히 하나하나 확인하며 써야 했다.

그래도 공부는 많이 되는 것 같다. 이제 아침 수업에 가서 텍스트 마이닝 응용 공부를 마저 하고 오늘 저녁부터는 정처기 실기 시험 공부를 하려고 한다.