모두의 한국어 텍스트 분석 with 파이썬 - 기초부터 챗GPT까지, 누구나 쉽게 시작하는 자연어 처리 모두의 시리즈
박조은.송영숙 지음 / 길벗 / 2023년 5월
평점 :
장바구니담기


페이스북 게시물을 보다가 길벗출판사에서 <21차 개발자 리뷰어> 이벤트를 하고 있는 것을 발견했다. 길벗출판사에서 이번 2023년 상반기에 출판된 책들 중 한 권을 선택해서 책을 선물로 받고 리뷰하는 이벤트인데 나는 책들을 구경하다가 내 맘에 드는 <모두의 한국어 텍스트 분석 with 파이썬>이라는 책을 발견했다. 이 책이 맘에 들었던 이유는 텍스트 데이터 분석에 관심이 많은데 시중에 나와 있는 많은 책들, 인터넷 자료들은 텍스트 분석 대부분이 한국어가 아닌 영어로 맞춰져 있었기 때문에 한국어 텍스트 데이터 분석에 관심이 많은 나에게는 책과 공부자료를 찾는 것이 어려웠다. 그런데 이 책은 한국어 텍스트 분석을 다루고 있었기 때문에 나에게 딱 맞는 공부자료라는 생각이 들어 책의 서평 이벤트를 신청했고 당첨되어서 책을 받게 되었다! 감사합니다.^^ 길벗출판사님.^^



책의 저자-박조은

새로운 것을 배우고 탐구하는 것을 좋아한다. 주로 게임과 광고회사에서 백엔드 개발자로 근무해 왔다. 알파고가 등장했을 즈음에 초등학교에 입학하는 첫 아이의 육아를 위해 회사를 그만두고 오늘코드 유튜브 채널을 개설하여 데이터사이언스 분야를 탐구하기 시작했다. 여러 기회가 연결되어 다양한 도메인의 기업, 교육기관, 학교와 일하고 있다. 파이토치 한국 사용자 모임(pytorch.kr)의 운영진으로 활동하고 있으며, Microsoft MVP로 커뮤니티와 함께 나누고 성장하는 것에도 관심이 많다.

책의 저자-송영숙

송영숙은 경희대학교 국어국문학과에서 공부하고 있다. 국어학을 전공했고 전산언어학과 언어 유형론에 관심이 많다. 사람의 언어와 기계의 언어에 장벽을 조금이라고 줄여서 벽을 허물고 길을 내는 사람이 되려고 노력하고 있다.

책의 목차

1장 코랩 시작하기

LESSON OT 들어가며

LESSON 01 코랩 실행하기

____1 주석

____2 단축키

LESSON 02 코랩에서 실습 코드 열기

____1 코랩 테마

2장 파이썬에서 문자열 다루기

LESSON OT 들어가며

LESSON 01 문자열 실습 전에

LESSON 02 문자열 실습

____1 문자열 표현

____2 오류 처리

____3 표현 방법 + 오류 처리

LESSON O3 문자열을 다루는 여러 방법

____1 변수

____2 인덱싱

____3 슬라이싱

____4 문자열의 길이, 단어 수

____5 문자열 함수

____6 반복

____7 함수

____8 문자열 내장 메서드 목록

3장 라이브러리 다루기

LESSON OT 들어가며

LESSON 01 판다스

____1 데이터 프레임과 시리즈 이해하기

____2 str 접근자로 문자열 다루기

LESSON 02 넘파이

____1 넘파이 배열 이해하기

____2 맷플롯립으로 넘파이 배열 시각화하기

4장 단어 가방 모형과 TF-IDF

LESSON OT 들어가며

LESSON 01 단어 가방 모형

____1 단어 가방 모형을 만드는 방법

____2 단어 가방 모형 만들기

____3 n-gram: 앞뒤 단어 묶어서 사용

____4 min_df와 max_df: 빈도수 설정

____5 max_features: 학습 단어 개수 제한

____6 stop_words: 불용어 제거

____7 analyzer: 문자, 단어 단위 설정

LESSON 02 TF-IDF

____1 TF-IDF 가중치를 적용하는 방법

5장 연합뉴스 타이틀 주제 분류

LESSON OT 들어가며

LESSON 01 데이터 선택하기

LESSON 02 분류 과정

LESSON 03 분류를 위한 기본 설정

____1 라이브러리 불러오기

____2 시각화를 위한 폰트 설정

LESSON 04 데이터 불러오기

LESSON 05 데이터 전처리하기

____1 데이터 전처리를 위한 데이터 병합

____2 정답값 빈도수 확인

____3 문자 길이 확인

____4 맷플롯립과 시본을 이용해 히스토그램으로 시각화

____5 주제별 글자와 단어의 빈도 확인

LESSON 06 문자 전처리하기

____1 숫자 제거

____2 영문자는 모두 소문자로 변경

____3 형태소 분석기로 조사, 어미, 구두점 제거

____4 불용어 제거

LESSON 07 학습, 시험 데이터 세트 분리하기

LESSON 08 단어 벡터화하기

LESSON 09 학습과 예측하기

____1 랜덤 포레스트 분류기

____2 교차 검증

____3 학습

LESSON 10 답안지 불러오기

6장 국민청원 데이터 시각화와 분류

LESSON OT 들어가며

LESSON 01 분석 과정

LESSON 02 분석을 위한 기본 설정

____1 라이브러리 불러오기

LESSON 03 판다스로 데이터 불러오기

____1 구글 드라이브에 파일 다운로드

____2 다운로드한 데이터 살펴보기

____3 결측치가 있는지 확인하기

LESSON 04 판다스 데이터 분석과 시각화

____1 답변 대상 청원 열 추가

____2 청원 기간별 분석

____3 청원 기간과 분야별 분석

____4 시각화

LESSON 05 soynlp로 워드클라우드 그리기

____1 라이브러리와 데이터

____2 토큰화

____3 텍스트 데이터 전처리

____4 워드클라우드 그리기

____5 명사만 추출해 시각화

LESSON 06 머신러닝으로 국민청원 데이터 이진 분류하기

____1 지도학습과 데이터 세트 분리

____2 이진 분류 대상 정하기

____3 평균을 기준으로 투표수 예측하기

____4 전처리하기

____5 학습 세트와 시험 세트 만들기

____6 단어 벡터화하기

____7 TF-IDF 가중치 적용하기

____8 LightGBM으로 학습시키기

____9 평가하기

____10 예측하기

____11 예측 결과의 정확도 평가하기

7장 ‘120다산콜재단’ 토픽 모델링과 RNN, LSTM

LESSON OT 들어가며

LESSON 01 분석 과정

LESSON 02 잠재 디리클레 할당으로 토픽 분류하기

____1 라이브러리 설치 및 데이터 불러오기

____2 단어 벡터화하기

____3 잠재 디리클레 할당 적용하기

____4 pyLDAvis를 통한 시각화하기

____5 유사도 분석하기

LESSON 03 순환 신경망으로 텍스트 분류하기

____1 라이브러리와 데이터 불러오기

____2 학습/시험 데이터 세트 분리하기

____3 레이블값을 행렬 형태로 만들기

____4 벡터화하기

____5 패딩하기

LESSON 04 모델 만들기

____1 Bidirectional LSTM

____2 모델 컴파일하기

____3 학습하기

____4 예측하기

____5 평가하기

8장 인프런 이벤트 댓글 분석

LESSON OT 들어가며

LESSON 01 분석 과정

LESSON 02 분석을 위한 기본 설정

____1 라이브러리 불러오기

____2 데이터 불러오기

LESSON 03 데이터 전처리

____1 중복된 글 제거하기

____2 소문자로 변환하기

LESSON 04 문자열 분리로 ‘관심강의’ 분리하기

LESSON 05 벡터화하기

LESSON 06 TF-IDF로 가중치를 주어 벡터화하기

LESSON 07 군집화하기

____1 KMeans

____2 MiniBatchKMeans

____3 클러스터 예측 평가하기

____4 실루엣 계수 분석하기

9장 ChatGPT를 사용한 문장 생성 자동화

LESSON OT 들어가며

LESSON 01 생성 모델의 개념

LESSON 02 생성 모델의 파라미터 크기와 종류

LESSON 03 ChatGPT 사용하기

LESSON 04 한국어 생성 서비스: 뤼튼



책의 특징

이 책의 목표는 텍스트를 분석하는 데 바탕이 되는 데이터의 기초를 이해하고, 코퍼스 또는 텍스트 데이터를 파이썬으로 분석하는 방법을 익히는 2가지 목표가 있다고 한다. 이를 위해서 1~3장에서는 파이썬 실습에 필요한 프로그래밍 기초에 대해 먼저 학습한다.

1장에서는 본문에서 사용할 구글 코랩(Google Colaboratory Colab)에 대해서 알아본다.

이어지는 2, 3장에서는 파이썬의 기초를 다룬다.

2장에서는 텍스트(문자열)를 다루는 데 필요한 파이썬의 기초를 배운다.

3장에서는 파이썬으로 텍스트를 다룰 때 쓸 수 있는 유용한 라이브러리에 대해서 배운다. 데이터 분석과 머신러닝에 광범위하게 쓰이는 판다스와 넘파이 라이브러리 핵심을 알아본다. 두 라이브러리 외에 많이 사용하는 사이킷런 라이브러리도 소개한다.

파이썬의 기초와 라이브러리 사용법을 배운 뒤, 이것들을 적용하고 응용해서 이후부터는 다양한 한국어 데이터에 파이썬을 적용해 본다.

4장에서는 텍스트 분석에 널리 쓰이는 분석 방법인 단어 가방(Bag of Words, BOW) 모형과 TF-IDF(Term Frequency-Inverse Document Frequency) 방법을 살펴본다.

5장에서는 뉴스 데이터라는 텍스트를 분류해 본다. 이 장에서는 연합뉴스 타이틀을 주제별로 분류해 본다. 제목을 놓고 그 범주를 맞춰본다. 단어 가방 모형을 사용해 텍스트를 학습시키고 분류한 결과가 정답과 일치하는지 확인해 본다. 이를 위해서 간단한 텍스트 분류를 통해 머신러닝 알고리즘이 학습할 수 있도록 단어를 수치화하는 방법, 머신러닝 모델을 통해 학습 및 예측하는 방법을 알아본다.

6장에서는 국민청원 데이터를 시각화해 데이터를 탐색해 본다. 국민청원 데이터를 판다스를 통해 데이터를 샬펴보고 KoNLPy와 soynlp로 특정 형태소를 추출하거나 제거해 본다. 그리고 머신러닝으로 텍스트 데이터를 이진 분류해 본다. 이를 진행하면서 텍스트 데이터 분석에 입문하고 간단한 머신러닝까지 활용해 본다.

7장에서는 120다산콜재단이라는 365일 24시간 상담 서비스를 제공하는 2007년 다산콜센터로 시작한, 서울시의 행정 상담 민원 서비스의 질문과 답변 데이터를 사용한다. 이 장은 두 가지 부분으로 구성되어 있다. (1.' 120다산콜재단' 데이터를 토픽별로 분석 시각화, 2.RNN, LSTM을 통한 모델링) 먼저 잠재 디리클레 할당을 통한 토픽 모델링으로 분석하고, 토픽 모델링을 시각화해 주는 pyLDAvis를 이용해 시각화해 본다. 그리고 학습, 시험 데이터를 분리해 RNN으로 모델을 만들어 학습시켜 본다.

책의 장점

이 책은 프로그래밍의 기초가 없는 사람에게 텍스트 분석을 위한 키워드를 제공해 줘서 텍스트 분석을 배우고 싶은 초보자들에게 유용하고 프로그래밍 자체를 너무 깊이 있게 다루지는 않아서 프로그래밍 초보자들도 배우기 유용한 책이다. 이 책은 구글 코랩(Google Colaboratory)을 이용해서 프로그래밍을 하는데 그로 인해 파이썬과 파이썬 라이브러리를 이미 설치해 제공하므로 사용하기가 편리하다. 또한 코드뿐만 아니라 설명, 이미지, 영상도 추가할 수 있다. 그리고 다른 사람에게 내 코드를 공유할 수 있으며, 내 계정과 다른 사람의 계정 구글 드라이브와도 호환할 수 있다. 돈을 낼 필요 없이 이 모든 것을 무료로 사용할 수 있는 장점도 있다. 코랩은 구글 계정과 크롬(Chrome)이라는 2가지만 있으면 사용이 가능하다는 편리한 점이 있다. 구글 코랩을 사용해서 컴퓨터에 따로 프로그래밍 환경을 설치할 필요도 없고 코드를 하나하나 입력할 필요도 없어서 쉽고 편리하게 실습할 수 있는 환경을 제공해 준다. 필요한 경우 코드 윗줄에 코드에 대한 설명을 주석으로 넣어 주어서 코드를 학습할 때 참고하기 좋다. 시중에 나와 있는 많은 프로그래밍 책들은 흑백으로 되어있는 경우가 많은데 이 책은 알록달록한 컬러로 되어있어서 눈이 편하고 눈을 즐겁게 만들어 준다. 시중에 많은 텍스트 분석 책과 인터넷 자료에는 영어 언어를 분석하는 책과 자료들이 많아서 한국어 텍스트 분석은 공부하기가 어려운 편인데 이 책은 한국어에 중점을 맞춰서 한국어 텍스트 분석을 공부 할 수 있는 기회를 제공해 준다. 만약에 이 책에서 어려운 자연과학, 사회과학, 응용과학(공학), 의학 저술, 논문과 같은 전문적이고 학술적인 텍스트 데이터 분석을 했다면 어렵고 흥미를 느끼기 어려웠을 것 같다. 그러나 이 책에서 제공하는 텍스트 데이터가 연합뉴스. 국민청원 데이터, '120다산콜센터 재단' 인프런 이벤트 댓글 분석과 같이 우리 일상에 흔히 접할 수 있는 데이터라서 쉽고 재미있게 분석할 수 있다. 예제로 제공한 텍스트 데이터 분석을 해서 실력을 기르고 이것을 기반으로 응용해서 나만의 새로운 텍스트 데이터 분석을 할 수 있게 도와준다.

책의 후기

나는 이 책에서 구글 코랩(Google Colaboratory Colab)을 처음으로 알게 되었다. 구글 코랩으로 구글 계정과 크롬 브라우저만 있다면 굳이 파이썬 홈페이지에 들어가서 파이썬을 설치하지 않고 파이썬으로 라이브러리를 다운받지 않아도 파이썬 프로그래밍을 할 수 있다는 것이 신기하고 놀라웠다. 실습을 빠르게 할 수 있어서 좋았다. 앞으로는 구글 코랩을 애용해 봐야겠다. 숫자가 아닌 텍스트 데이터에도 머신러닝을 사용할 수 있다는 것이 신기하기도 했고 텍스트 데이터를 수치 형태의 데이터로 변환하는 작업이 흥미로웠다. 또 유튜브에 저자의 무료 텍스트 분석 강의가 있어서 보면서 따라 할 수 있었다. 실습을 하면서 어려운 점도 있었고 이해가 잘 안되는 점, 막히는 점도 있었지만, 이것저것 찾아보고 다시 해보면서 조금씩 천천히 하다 보니 문제를 해결할 수 있었다. 열심히 해서 원하는 결과가 잘 나오면 기쁘고 뿌듯하기도 했다. 이 책에서 해본 텍스트 분석을 다른 사이트에 가서 다른 사이트의 텍스트를 모아서 해봐야겠다.









댓글(1) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
dltkddnjs150 2023-08-30 23:41   좋아요 0 | 댓글달기 | URL
#개발자리뷰어 #개발자 #도서증정이벤트 #모두의한국어텍스트분석WITH파이썬 #박조은 #한국어텍스트 #데이터 #데이터분석 #텍스트 #텍스트데이터 #파이썬 #텍스트분석 #텍스트데이터분석 #파이썬 #길벗 #길벗출판사 #길벗IT #서평 #서평이벤트 #리뷰 #리뷰어 #송영숙#송영숙