메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

파이썬 라이브러리를 활용한 텍스트 분석

텍스트에서 통찰을 이끌어내는 98가지 자연어 처리 전략

한빛미디어

번역서

판매중

  • 저자 : 젠스 알브레히트 , 싯다르트 라마찬드란 , 크리스티안 윙클러
  • 번역 : 심상진
  • 출간 : 2022-10-11
  • 페이지 : 504 쪽
  • ISBN : 9791169210331
  • 물류코드 :11033
  • 초급 초중급 중급 중고급 고급
4.8점 (46명)
좋아요 : 3

텍스트마다 적절한 분석 기법은 따로 있다!

당신의 경쟁력을 완성할 텍스트 분석 전략서 

 

텍스트에서 좋은 정보를 찾는 이가 뛰어난 경쟁력을 갖춘다. 머신러닝 기반 자연어 처리 기술이 발전함에 따라 다양한 텍스트 분석 기법이 속속 등장하고 있다. 수많은 기법 중에서 어떤 방법을 언제 어떻게 사용해야 유용한 정보를 얻어낼 수 있을까? 이 책은 유엔총회 일반토의 연설문부터 트위터, 로이터 뉴스 기사 등 다양한 데이터셋을 사용하여 상황별로 가장 유용한 텍스트 분석 기법을 소개한다. 실제 모범 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라인 구축, N-그램 분석, 텍스트 벡터화 등 다양한 전략으로 텍스트 분석과 자연어 처리를 정복해보자.

 

 

700px_상세이미지_파이썬 라이브러리를 활용한 텍스트 분석.jpg

 

젠스 알브레히트 저자

젠스 알브레히트

뉘른베르크 공과 대학 컴퓨터공학과 전임 교수다. 주된 분야는 데이터 관리 및 분석으로, 특히 텍스트에 중점을 둔다. 컴퓨터과학 박사 학위를 받고 업계에서 컨설턴트 및 데이터 설계자로 10년 이상 일한 뒤, 2012년 학계로 돌아왔다. 빅데이터 관리 및 분석에 관한 여러 편의 글을 기고했다.

싯다르트 라마찬드란 저자

싯다르트 라마찬드란

현재 소비재 산업용 데이터 제품을 구축하고 있는 데이터 과학자 팀의 리더다. 통신, 은행, 마케팅 산업 전반에 걸쳐 소프트웨어 엔지니어링 및 데이터 과학 분야에서 10여 년 경력을 쌓았다. 또한 테크크런치에 소개된 왓츠앱용 스마트 개인 비서 앱 기업 WACAO를 공동 설립했다. 인도 공과대학교 루르키 캠퍼스에서 공학 학사 학위를, 인도 경영대학교 코지코드 캠퍼스에서 MBA를 취득했다. 기술을 이용해 현업의 문제를 해결하는 일에 열정적이며 개인 프로젝트로 해킹을 하며 여가를 즐긴다.

크리스티안 윙클러 저자

크리스티안 윙클러

데이터 과학자이자 머신러닝 아키텍트다. 이론 물리학 박사 학위를 받고 20년 동안 대용량 데이터 및 인공지능 분야에서 일하며 대량 텍스트 처리를 위한 확장 가능한 시스템 및 지능형 알고리즘에 주력했다. 데이터나이징 유한회사를 창립하고 여러 컨퍼런스에서 강연하며 머신러닝/텍스트 분석을 주제로 다수의 글을 게재했다.

심상진 역자

심상진

국내 IT 대기업에서 자연어 데이터 분석 및 모델러로 활동 중이다. 물리학을 전공하고, 임베딩 소프트웨어 개발, 단백질 분자 모델링 연구 및 시스템 파이프라인 구축, 기상/지리 데이터 관련 시각화 및 관리 소프트웨어 방면에서 경력을 쌓았다. 데이터 분석을 평생의 업으로 생각하고 일에 매진하고 있다. 자연어 처리가 주 업무이며, 데이터 수집 방법과 레이블링의 효율적 처리 방법을 강구하는 중이다. BERT보다 작으면서도 효율적인 구성을 가진 모델을 연구하며, 자연어를 기계어에 일대일로 대응시킬 방법을 모색하고 있다. 무엇보다 얼마 전에 태어난 아기에게 애정 어린 관심을 쏟으며 연구를 게을리하지 않으려고 노력한다.

 

 

CHAPTER 1 텍스트 데이터에서 찾는 통찰

1.1 학습 목표

1.2 탐색적 데이터 분석

1.3 데이터셋: 유엔총회 일반토의

1.4 전략: 팬더스로 데이터 개요 확인

1.5 전략: 간단한 텍스트 전처리 파이프라인 구축

1.6 단어 빈도 분석을 위한 전략

1.7 전략: 컨텍스트 내 키워드 탐색

1.8 전략: N-그램 분석

1.9 전략: 시간 및 범주에 따른 빈도 비교

1.10 마치며

 

CHAPTER 2 API로 추출하는 텍스트 속 통찰

2.1 학습 목표

2.2 API

2.3 전략: 리퀘스트 모듈을 이용한 API 호출

2.4 전략: 트위피를 사용한 트위터 데이터 추출

2.5 마치며

 

CHAPTER 3 웹사이트 스크래핑 및 데이터 추출

3.1 학습 목표

3.2 스크래핑 및 데이터 추출

3.3 로이터 뉴스 아카이브

3.4 URL 생성

3.5 전략: robots.txt 파일 해석

3.6 전략: sitemap.xml 파일로 URL 획득

3.7 전략: RSS에서 URL 획득

3.8 데이터 다운로드

3.9 전략: 파이썬을 사용한 HTML 페이지 다운로드

3.10 전략: wget을 사용한 HTML 페이지 다운로드

3.11 반정형 데이터 추출

3.12 전략: 정규 표현식을 사용한 데이터 추출

3.13 전략: HTML 파서를 사용한 데이터 추출

3.14 전략: 스파이더링

3.15 밀도 기반 텍스트 추출

3.16 올인원 접근 방식

3.17 전략: 스크래피를 사용한 로이터 아카이브 스크래핑

3.18 스크래핑과 관련된 문제

3.19 마치며

 

CHAPTER 4 통계 및 머신러닝을 위한 텍스트 데이터 준비

4.1 학습 목표

4.2 데이터 전처리 파이프라인

4.3 데이터셋: 레딧 셀프포스트

4.4 텍스트 데이터 정리

4.5 토큰화

4.6 스페이시를 사용한 언어 처리

4.7 대규모 데이터셋에서 특성 추출

4.8 더 알아보기

4.9 마치며

 

CHAPTER 5 특성 엔지니어링 및 구문 유사성

5.1 학습 목표

5.2 실험을 위한 토이 데이터셋

5.3 전략: 자신만의 벡터화 객체 구축

5.4 단어 가방 모델

5.5 TF-IDF 모델

5.6 ABC 데이터셋의 구문 유사성

5.7 마치며

 

CHAPTER 6 텍스트 분류 알고리즘

6.1 학습 목표

6.2 데이터셋: JDT 버그 보고

6.3 전략: 텍스트 분류 시스템 구축

6.4 텍스트 분류를 위한 최종 코드

6.5 전략: 교차 검증을 사용한 현실적인 정확도 메트릭 추정

6.6 전략: 그리드 검색을 통한 하이퍼파라미터 조정

6.7 텍스트 분류 시스템 요약 및 결론

6.8 마치며

6.9 더 읽어보기

 

CHAPTER 7 텍스트 분류기

7.1 학습 목표

7.2 전략: 예측 확률을 사용한 분류 신뢰도 결정

7.3 전략: 예측 모델의 특성 중요도 측정

7.4 전략: LIME을 사용한 분류 결과 설명

7.5 전략: ELI5를 사용한 분류 결과 설명

7.6 전략: 앵커를 사용한 분류 결과 설명

7.7 마치며

 

CHAPTER 8 비지도 학습: 토픽 모델링 및 클러스터링

8.1 학습 목표

8.2 데이터셋: 유엔총회 일반토의

8.3 비음수 행렬 분해(NMF)

8.4 잠재 시맨틱 분석/인덱싱

8.5 잠재 디리클레 할당(LDA)

8.6 전략: 워드 클라우드를 사용한 토픽 모델 결과 비교

8.7 전략: 단락의 토픽 분포 및 시간 변화 계산

8.8 젠심을 사용한 토픽 모델링

8.9 전략: 클러스터링을 통한 텍스트 데이터 구조 파악

8.10 추가 아이디어

8.11 요약 및 추천

8.12 마치며

 

CHAPTER 9 텍스트 요약

9.1 학습 목표

9.2 텍스트 요약

9.3 전략: 주제 표현을 이용한 텍스트 요약

9.4 전략: 지시자 표현을 사용한 텍스트 요약

9.5 텍스트 요약 방법의 성능 측정

9.6 전략: 머신러닝을 이용한 텍스트 요약

9.7 마치며

9.8 더 읽어보기


CHAPTER 10 단어 임베딩으로 의미 관계 탐색

10.1 학습 목표

10.2 시맨틱 임베딩 케이스

10.3 전략: 사전 훈련된 모델에 유사한 질의 사용

10.4 자체 임베딩 학습 및 평가를 위한 전략

10.5 임베딩 시각화를 위한 전략

10.6 마치며

10.7 더 읽어보기

 

CHAPTER 11 텍스트 데이터를 이용한 감성 분석

11.1 학습 목표

11.2 감성 분석

11.3 데이터셋: 아마존 고객 리뷰

11.4 전략: 어휘 기반 감성 분석

11.5 지도 학습 접근법

11.6 전략: 텍스트 데이터 벡터화 및 지도 학습 알고리즘 적용

11.7 딥러닝을 사용한 사전 훈련된 언어 모델

11.8 전략: 전이 학습 기법과 사전 훈련된 언어 모델 사용

11.9 마치며

11.10 더 읽어보기

 

CHAPTER 12 지식 그래프 구축

12.1 학습 목표

12.2 지식 그래프

12.3 데이터셋: 로이터-21578

12.4 개체명 인식

12.5 상호 참조 해결

12.6 전략: 동시 발생 그래프 생성

12.7 관계 추출

12.8 지식 그래프 생성

12.9 마치며

12.10 더 읽어보기


CHAPTER 13 프로덕션에서 텍스트 분석

13.1 학습 목표

13.2 전략: 콘다를 사용한 파이썬 환경 구성

13.3 전략: 컨테이너를 사용한 재현 가능 환경 구성

13.4 전략: 텍스트 분석 모델을 위한 REST API 생성

13.5 전략: 클라우드 공급자를 사용한 API 배포 및 확장

13.6 전략: 빌드 버전의 관리 및 배포 자동화

13.7 마치며

13.8 더 읽어보기

이럴 땐 이렇게! 

98가지 분석 전략으로 텍스트를 정복하라

 

텍스트는 문맥에 크게 의존하고 있어 컴퓨터가 이해하는 데 많은 어려움이 있었다. 하지만 최근 들어 통계 기술과 머신러닝 알고리즘이 발전하며 텍스트를 분석하는 다양한 방식이 탄생했다. 그렇다면 이 많은 텍스트 분석 기법 중에서 내가 분석하려는 텍스트에 딱 맞는 방법을 찾을 수 있을까? 이 책은 저자들이 여러 비즈니스 영역에서 텍스트 분석 프로젝트를 진행한 경험을 바탕으로 텍스트에 맞는 분석 전략 98가지를 소개한다.

각 장에서는 API나 크롤링을 이용한 텍스트 수집, 정규표현식이나 인공지능을 활용한 유사 단어 탐색, 단어 사이 관계를 파악하는 지식 그래프 생성 같은 텍스트 분석의 모든 과정마다 필요한 다양한 전략을 소개한다. 이때 사용하는 데이터는 유엔총회 연설 데이터, 깃허브 이슈 모음, 커뮤니티 게시글 모음 등 실제로 마주할 수 있는 텍스트로 여러 상황이나 데이터에 적합한 맞춤형 분석 전략을 소개한다. 전략마다 넘파이(NumPy), 트랜스포머스(Transformers), 사이킷런(scikit-learn), 사이파이(SciPy), 스페이시(spaCy) 등 텍스트 분석에 필요한 라이브러리를 사용하며, 각자 가지고 있는 데이터와 요구 사항에 맞게 변경해 분석해볼 수 있도록 코드의 뼈대도 함께 제공한다. 지금 당장 새로운 정보를 알아내야 할 텍스트가 있다면 이 책에서 소개하는 적절한 전략을 찾아 텍스트를 정복하자.

 

 

대상 독자

  • 갖고 있는 텍스트에 적합한 분석법을 판단하려는 개발자
  • 빠르게 초기 결과를 만들어서 프로젝트의 성공 가능성을 검토하려는 기획자
  • 문제를 풀기 위한 베이스라인을 빠르게 작성해야 하는 데이터 과학자

 

주요 내용

  • API와 웹페이지에서 데이터를 추출하는 법
  • 텍스트 데이터를 통계 분석과 머신러닝에 사용할 수 있도록 전처리하는 법
  • 머신러닝을 활용한 분류, 주제 모델링, 요약 기법
  • 단어 임베딩을 활용한 구문 유사도 시각화 방법
  • 명명된 개체와 그 관계를 기반으로 한 지식 그래프 구축법

 

추천사

 

첫 리서치 때 이 책이 있었다면 큰 도움이 되었을 겁니다. 탄탄한 기초와 수많은 연구를 토대로 머신러닝을 비즈니스 프로젝트에 접목할 만한 예제가 많아 매우 실용적입니다.

_K.V.S. 딜립, 그레이아톰 개발자

 

엔지니어링 분야의 체계적인 요구와 데이터 과학의 반응적 특성을 매끄럽게 결합했습니다. 기업 프로젝트에 도입 가능한 해법과 혁신적인 기술, 탐색 시나리오를 균형 있게 소개합니다. 실력을 한 단계 높이고자 하는 데이터 엔지니어에게 추천합니다.

_크레이그 트림, 캐주얼리티 링크 시니어 엔지니어

 

구글링한 결과를 그대로 옮겨 적고 제대로 돌아가기만을 바랐다면, 이 책을 읽고 나서는 프로젝트를 완성할 코드를 바로 떠올릴 수 있을 겁니다. 소개하는 전략마다 명확한 이름이 붙고 코드를 중심으로 한 설명 덕분에 시간과 수고를 덜게 됩니다.

_니란트 카슬리월, Verloop.io

 

이 책은 오늘날 생산 시스템에서 수행되는 텍스트 분석 및 NLP 분야에 활용할 유용한 방법과 기술을 빠짐없이 포괄적으로 살펴봅니다. 현업에서 영감을 받은 데이터셋과 사용 사례를 통해 대규모 조직에서 마주할 복잡한 비즈니스 문제의 해결 방법을 통찰하게 됩니다.

_수딥 로이 챠우더리, Eugene.ai 창업자 겸 CEO

  

 

KakaoTalk_Photo_2023-03-31-08-21-19 001.jpeg

 

 

 

  이 책은 데이터 분석에 관심 있는 분들이라면 흥미롭게 볼 주제들을 가지고, 텍스트 분석에 필요한 기술과 전략들을 상세하게 설명하고 있습니다. 

책의 구성에 대해서 간략하게 적어보면 API와 웹페이지에서 데이터를 추출하는 법, 텍스트 데이터 전처리, 머신러닝 활용, 단어 임베딩 시각화 방법, 지식 그래프 구축법 등 다양한 주제로 되어 있습니다. 저는 서버개발자로 일하고 있고, 딥러닝이나 머신런닝에 대한 지식이 없습니다만, 책을 읽기에 어렵지 않은 편이었습니다.

실제로 실무에서 고객들이 작성한 메모에서 대표키워드를 뽑아내는 로직을 개선하는 업무가 있어서 조금 더 깊이 알기 위해 웹 검색과 함께 읽었습니다. 특히, 이책의 TF-IDF 에 대해서 설명하고, 실습하는 챕터가 많이 도움되었습니다.

 

KakaoTalk_Photo_2023-03-31-08-21-19 003.jpeg

 

 텍스트 분석을 처음 시작하는 사람들에게도, 이미 경험이 있는 사람들에게도 도움이 될 수 있는 책이라고 생각됩니다. 그리고, 저와 같은 현장에서 일하는 사람들뿐만 아니라, 텍스트 처리에 대해서 흥미만 가진분, 학문적인 배경을 가진 분들도 이 책을 통해 다양한 영감을 얻을 수 있을 거라고 확신합니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이런 와중 이 책을 받았다시의적절하다고 할 수 있다파이썬 라이브러리를 활용한 텍스트 분석이라는 책인데, 고난도 자연어처리까지는 아니지만 어떻게 텍스트 데이터를 컴퓨터를 활용하여 처리할 수 있는지 알려준다최신 머신 러닝 내용까지는 아니지만, LDA나 NMF와 같은 전통적인 분석 방식과 텍스트 임베딩 정도 수준까지 나온다사실 분석도 분석인데이 책 앞부분은 데이터를 어떻게 모을지어떤 식으로 다루는지에 대한 내용도 꽤 있다.

 

 

 

표지는 다음과 같고파이썬 라이브러리 기반 책이라 그런지 뱀이 그려져 있다.

 

 

옮긴이의 말이 인사이트가 좀 있었다컴퓨터는 여러 종류의 데이터 중 텍스트를 가장 이해하기 어려워한다 하였고컴퓨터가 데이터를 잘 이해할 수 있도록 만드는 것은 결국 우리의 몫이다.

 

 

5번 목차 (특성 엔지니어링 및 구문 유사성)와 10번 목차 (단어 임베딩으로 의미 관계 탐색)에는 꽤 유용하고 읽을만한 내용들이 수록되어 있다특히임베딩은 머신 러닝에서 정말 유용하고 넓게 사용되는 개념인데임베딩의 정의부터 프리트레인 모델에서 얻은 임베딩 벡터를 기반으로 분석하는 방법을 소개한다임베딩을 이용해 데이터를 처리하는 것은 꼭 자연어 처리가 아니더라도 넓게 사용되는 기법이라 유용할 것이다.

 

 

이 책에는 이런 Warning 이 중간중간 나온다독자들이 따라 해 보다가 마주할 수 있는 문제들을 미리 예상해서 해결법을 적어놓은 것인데저자의 전문성과 센스를 엿볼 수 있었다.

 

 

이 3개의 사진은 책을 읽다 보며 내가 반가워서 찍은 부분들이다나는 자연어 처리를 다루지는 않지만행렬 기반으로 수학적으로 뭘 좀 진행하다 보니 이런 개념들을 자주 보게 된다비음수분해 (NMF; Non-negative matrix factorization)의 경우에도 자연어처리에서 사용이 된다는 것은 알고 있었는데여기서 다시 마주했다.


이 책은 ChatGPT가 엄청난 센세이션을 불러일으키고 있는 현재 참 시의적절한 책이다특히컴퓨터 비전이 압도적인 레드오션이라고 평가되고 있는 현재자연어처리의 경우는 비교적 괜찮은데이 책이 기초가 될 것이다

 

111.jpg

 

최근들어 가장 몰입도 있게 즐겁게 읽은 책이었다.

 

웹스크래핑 및 텍스트 분석을 제대로 공부하고 싶었는데 이 책을 만난건 뭐랄까~ 

 

노사연 언니의 '만남'의 가사처럼

"우리 만남은 우연이 아니야.

 그것은 우리의 바램이었어~"

 

​그렇다. "이 책은 나의 바램이었어" 라고 표현할 수 있을 것 같다.

다만 이책이 한국어 분석이었다면 얼마나 좋았을까!

그렇다고 실망할 것은 아니다. 

 

이 책을 통해서 NLP 자연어 분석에 대한 다양한 라이브러리를 활용한 다양한 솔루션을 확인할 수 있기 때문이다.

 

​"파이썬 라이브러리를 활용한 텍스트 분석"에서는 

'UN총회 일반토의','트위터', '로이터 웹사이트', 'ABC 뉴스 헤드라인', '아마존 제품리뷰' 등

업무에 실제 사용하기에  꼭 필요한 문서들을 데이터셋으로 활용한다.

 

텍스트 분석을 위한 자료 수집 부터 전처리 방법과 머신러닝을 활용한 분석 방법, 감정분석 에서 구글 클라우드에 API로 배포하기까지 다루고 있다.

 

​이 책은 텍스트 분석 에서 필요할 때 찾아볼 수 있는 백과사전 처럼 활용할 수도 있고

처음부터 끝까지 정독하면서 파이썬을 활용한 텍스트 분석을 공부하기에도  좋은 책이다.

 

​이 책이 좋은 이유는 텍스트분석에서 활용할 수 있는 다양한 라이브러리를 소개해 주고 있다는 것이다.

SCrapy, spaCy, Transformers, NLTK 등  텍스트 분석을 처음 해보거나, NLP입문자에게 다양한 라이브러리를 소개해 주고 있다. 

 

​NLP(자연어 처리)는 나에게 버거운 당신이고, 

텍스트분석 역시 이제서야 왕초보를 지난 나에게도 이 책은 잘 읽혔다.

파이썬과 Pandas, numpy를 어느 정도 알고 있다면 이 책을 소화할 수 있을 것이다.

 

​다양하고 재미있는 예제는 지금 당장이라도 컴퓨터를 켜고 따라하고 싶게 만든다.

그리고 나는 예제를 따라했을 뿐인데... 결과물에 성취감도 크다. 

 

​이 책을 만난 건 우연이었지만 이제 우리의 만남은 바램이었어!

 

"이 책은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 "

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

"혼자 공부하는 데이터 분석 with 파이썬" 을 읽고 회사 업무에 파이썬을 적용하였고 적용후에 텍스트 분석 및 활용을 하는중에 좀더 고급 기술을 학습할 수 있는 "파이썬 라이브러리를 활용한 텍스트 분석"을 읽어 보게 되었습니다.

 

우선 "파이썬 라이브러리를 활용한 텍스트 분석" 책은 텍스트 분석을 실제 업무에 활용하는 사람을 대상으로 쓰여 있습니다.

전체적으로 파이썬 문법, 함수, 라이브러리 등에 대한 것을 학습한 후에 "파이썬 라이브러리를 활용한 테스트 분석" 을 읽어보는 것을 추천할 수 있을 것 같습니다.

저 같은 경우에는 파이썬 책을 여러권 학습한 후에 해당 책을 읽었을때 큰 문제없이 학습할 수 있었습니다.

"혼자공부하는 파이썬", "혼자 공부하는 데이터 분석 with 파이썬", "혼자공부 하는 머신러닝 딥러닝" 같은 책과 같이 읽기를 추천합니다.

 

"파이썬 라이브러리를 활용한 텍스트 분석" 책도 훌륭하지만 실습을 하거나 소스를 직접 쳐보고 학습할때는 GitHub에 올려있는 소스를 참조하는것을 추천합니다. 책에 없는 환경설정이나 그 밖의 버전에 따른 문제점들도 개선되어 있어서 GitHub를 참조하여 공부하는게 많은 도움이 되었습니다.

 

"파이썬 라이브러리를 활용한 텍스트 분석" 책은 총 13개의 챕터로 구성되어 있습니다.

각 챕터별로 어떤 데이터셋 과 어떤 라이브러리를 사용하였는지 상세히 설명하고 있으며 각 라이브러리를 통한 개선 방향도 제시하고 있었습니다.

해당 내용을 보면서 각 라이브러리를 활용한다면 실제 업무에서도 많은 도움이 될 수 있다고 생각합니다.

주어진 문제를 어떻게 분석하고 그리고 어떤방식으로 해결할 수 있는지 그리고 어떤 라이브러리를 활용할 수 있는지 각 챕터마다 접근 방법을 제시하는 구성으로 되어 있습니다.

확실히 파이썬은 라이브러리와 많은 예제를 보면서 학습하는게 실력을 업그레이드 하는 길이라고 생각합니다.

"파이썬 라이브러리를 활용한 텍스트 분석" 은 라이브러리 및 기법등을 업무에 활용하기를 추천합니다.

 

"파이썬 라이브러리를 활용한 텍스트 분석" 책에 실려 있는 예제도 훌륭하다고 할 수 있을것 같습니다. 각 챕터에 데이터 셋에 대한 내용을 보면 : 유엔총회 일반토의, 아마존 고객 리뷰, ABC 뉴스 등 실제적인 데이터 셋 이면서 관련 데이터셋을 통해 전략 및 모델을 토대로 원하는 텍스트를 추출하는 방법은 다른 책에는 없는 "파이썬 라이브러리를 활용한 텍스트 분석" 의 장점이라고 생각합니다.

다만 아쉬운 점은 해당 책이 번역서라서 한글 데이터 셋 예제가 없는게 조금은 아쉬웠습니다. 하지만 옮긴이의 말에 쓰여 있는 내용과 같이 한글로 적용한다고 해도 대응하는 모델을 인터넷에서 쉽게 찾을 수 있다고 쓰여 있습니다. 아직 한글로 된 내용을 따로 테스트 해보지는 않았지만 해당 내용도 인터넷을 통해 쉽게 라이브러리를 찾아 적용할 수 있을거라고 생각합니다.

 

정리하자면 "파이썬 라이브러리를 활용한 텍스트 분석" 책은 테스트 분석 활용에 대한 고급 기법을 설명하는 책 입니다.

데이터 분석 및 인공지능의 텍스트 전처리를 수행할때 읽어보는것을 추천합니다. 많은 문제점을 개선할 수 있습니다.

 



 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

책제목 : 파이썬 라이브러리를 활용한 텍스트 분석

저자 : 젠스 알브레히트, 싯다르트 라마찬드란, 크리스티앙 윙클러

옮김 : 심상진

출판년도 : 2022/10/11

 

 

책을 읽기 전에...

 

요즘 나의 관심사는 데이터 가공 처리 부분이다.

예전부터 직업 특성상 데이터 가공 관련 작업은 많이 하긴 했지만

실생활에 관련된 데이터를 가공처리하여 실생활에 활용하는 작업을 해 보진 않았다.

최근 몇몇개의 책을 통해 많이 작업해 본 것들이 웹의 데이터를 가공하여

간단한 어플을 만드는 것, 또는 주어진 데이터를 가공해서 자동입력해주는 어플들을 

예제로 만들다 보니 데이터 활용, 가공에 많은 관심이 생겼다.

특히 웹에서 제공되는 데이터는 정말 방대해서 이를 잘 가공해서 제공한다면

훨씬 편하게 양질의 데이터를 얻고 실생활에 활용할 수 있을것 같다.

텍스트를 분석하는 좀 더 고차원의 기법들이나 노하우를 배우거나,

한번 파이프라인이나 프레임워크등을 구축한다면 좀 더 효율적이고 쉽게

작업을 할수 있을것 같아 해당분야를 좀 더 배우고 싶었다.

 

책의 내용...

Chapter 01 텍스트 데이터에서 찾는 통찰

Chapter 02 API로 추출하는 텍스트 속 통찰

Chapter 03 웹사이트 스크래핑 및 데이터 추출

Chapter 04 통계 및 머신러닝을 위한 텍스트 데이터 준비

Chapter 05 특성 엔지니어링 및 구문 유사성

Chapter 06 텍스트 분류 알고리즘

Chapter 07 텍스트 분류기

Chapter 08 비지도 학습 : 토픽 모델링 및 클러스터링

Chapter 09 텍스트 요약

Chapter 10 단어 임베딩으로 의미 관계 탐색

Chapter 11 텍스트 데이터를 이용한 감정 분석

Chapter 12 지식 그래프 구축

Chapter 13 프로덕션에서 텍스트 분석 사용

 

책의 목차만 봐도 책의 내용을 대강 짐작할 수 있긴 하지만 좀 더 적어보자면...

시작은 역시 파이썬 라이브러리의 데이터 처리에서 가장 인기 있는 팬더스 라이브러리로

분석하는 것 부터 시작한다.

그 이후로는 여러가지 데이터(깃허브, 트위터, 위키 api, 웹사이트, jdt 등)를 가지고

다양한 라이브러리(리퀘스트, 뷰티풀 수프, 리더빌리티, 스크래피, 레직스, 스페이시, 사이킷 런,

넘파이, 앵커, 젠심, 트렌스포머스, FastAPI, 도커 등)를 활용하여 인기있는 API에서

데이터를추출하거나, 파이썬의 활용도가 높은 웹페이지 다운로드, 콘텐츠 추출을 등을 한다.

머신러닝 관련해서도 추가적인 관련 내용을 소개하는 챕터도 있고

이 머신러닝을 활용해서 텍스트를 요약하거나 데이터 셋 가공에서

의미적 유사성을 탐색하여 시각화 하거나 상품 리뷰에서 소비자의 감성을 식별하는 등의

활용 학습도 진행한다.

 

책을 읽고나서

이 책은 데이터 과학자와 개발자가 텍스트 분석 및 자연어 처리를 비즈니스에 쉽게

도입할 수 있도록 해 주는 활용서의 개념이다.

파이썬 생태계를 활용해서 텍스트 분석 및 머신러닝을 설명하긴 하지만

파이썬 기본 라이브러리등 파이썬의 기본 내용들은 이미 독자가

알고 있다고 가정하고 있기에 어느정도 파이썬이나 파이썬 라이브러리에 대한

처리 경험과 지식이 동반되어 있어야 한다.

그리고 오렐리 책은 늘 느끼는 거지만 교과서 같은 느낌이 있다.

명확하고 정확한 내용을 간결한 방법으로 알려준다.

효율적인 정보제공을 좋아하는 사람이라면 이러한 스타일을 좋아할 거고

좀 더 친절하고 가독성이 있고 읽기 쉽게되어 있는 책을 좋아한다면

오렐리 책은 딱딱하다는 느낌을 받을 수 있다.

책 내용은 파이썬을 활용하여 텍스트 분석에 대한 고급 활용 지식을

체계적이고 깔끔하게 서술하고 있어서 개인적으로는 마음에 드는 도서였다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

깃허브 저장소 : https://github.com/blueprints-for-text-analytics-python/blueprints-text

 

GitHub - blueprints-for-text-analytics-python/blueprints-text: Jupyter notebooks for our O'Reilly book "Blueprints for Text Anal

Jupyter notebooks for our O'Reilly book "Blueprints for Text Analysis Using Python" - GitHub - blueprints-for-text-analytics-python/blueprints-text: Jupyter notebooks for our O'Re...

github.com

책 소개 : https://www.hanbit.co.kr/store/books/look.php?p_code=B8501475551 

 

파이썬 라이브러리를 활용한 텍스트 분석

분석하려는 텍스트에 맞는 처리 기법을 소개하는 도서로 실제 모범 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라인 구축, N-그램 분석, 텍스트 벡터화 등 다양한 전략과 그때 필

www.hanbit.co.kr


1_표지.jpg

 

이 책은 Python을 사용하여 자연어 처리 및 텍스트 분석에 대한 실용적인 지식을 얻고자 하는 모든 사람에게 적극 권장됩니다. 주제에 대한 전반적인 이해를 향상시키기에 충분한 정보를 제공합니다.

 

『파이썬 라이브러리를 활용한 텍스트 분석』이 책은 번역서이기에, 영어 텍스트를 기반으로 실습을 진행합니다. 개인적으로, 챕터별로 하시면서 '한글'데이터를 검색해서 구하셔서 여기서 사용한 라이브러리나 한국어에 맞는 토크나이저나 형태소 분석기 등을 이용해서 비슷하게 결과물이 나오도록 하면 더 좋은 실습이 될 것입니다. 

 

3_내용2.jpg

텍스트 분석의 프로세스를 파악하려고 하는 목적을 가진다면 적절한 책입니다. NLP를 처음 접하시거나 하는 분에게 적합합니다. 파이썬과 pandas 등은 어느 정도 할 줄 아셔야 실습하기 편합니다. 최신 NLP 기법을 배운다는 생각보다는 '기본틀'을 익힌다고 생각하시면 추천드리고 싶은 책입니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한 줄 요약 : 텍스트 데이터를 집중적으로 파고드는 파이썬 활용 도서

 


 

《파이썬 라이브러리를 활용한 텍스트 분석》

이번에 리뷰할 책은 《파이썬 라이브러리를 활용한 텍스트 분석》이다.

이전에 리뷰했던 《파이썬 라이브러리를 활용한 데이터 분석》과 시리즈처럼 보이지만 읽고 나니 《파이썬 라이브러리를 활용한 텍스트 분석》(이하 '텍스트 분석')이 심화과정으로 보는게 맞는 것 같다.

《파이썬 라이브러리를 활용한 데이터 분석》과 공통점
1. 로우 데이터를 활용가능하게 정제하는 방법을 알려준다
2. 정제된 데이터를 목적에 맞게 활용할 때 유용한 라이브러리를 알려준다

 

파이썬 및 데이터 처리에 대해 다루는 다른 도서들과 비슷하게 커뮤니티에서 자주 언급되는 라이브러리를 사용한다.

라이브러리의 사용법을 몰랐다면 처음 다루는 것에도 부담없게 상세한 예제와 설명도 함께 수록되어 있다.

라이브러리 활용에 익숙하다면 기존에 본인이 사용하던 방식과 어떻게 다른지, 활용 팁을 배울 수 있다.

 


《파이썬 라이브러리를 활용한 데이터 분석》과 차이점
1. 데이터 중 텍스트만을 전문적으로 다루고 있다
2. 파이썬 기초 문법은 다루지 않고 있다(=좀 더 숙련자를 위한 책)

 

'텍스트 분석'은 일단 파이썬 기초 문법을 다루고 있지 않다. 파이썬 기초 문법에 익숙하지 않다면 기본서와 함께 봐야 한다.

문법을 다루고 있지 않다는 점이 내겐 좋았다. 심화 학습을 하길 원해서 구매한 책에 기초 문법이 절반넘게 실려있고, 실제 배우고 싶던 내용은 채 절반이 되지 않는 책도 많았기 때문이다.

그리고 '텍스트 분석'은 '텍스트'라는 주제에 심도있게 빠져들 수 있다. 책은 지면이 한정되어 있다. 그래서 소리, 사진, 영상 등 '데이터'라는 포괄적인 주제에 대해 다룰 경우 깊이감있게 다루기가 어렵다. 하지만 '텍스트 분석'이라는 제목에 걸맞게 텍스트 분석에 대해 심도있게 다룬다. 다만, 번역서의 특성상 다루는 자료가 한국어가 아닌 영어를 기반으로 하고 있어서 아쉬움이 남는다. 이 점은 파이썬 커뮤니티가 활발하기 때문에 한국어 텍스트 분석 라이브러리도 찾아보면 동일하게 배울 수 있을 듯 하다.

 

 

《파이썬 라이브러리를 활용한 텍스트 분석》 장점
1. 실습 예제를 구글 코랩에서 테스트해볼 수 있게 구성되어 있다. 물론 파이썬을 포함한 개발환경을 직접 구성해서 테스트해볼 수도 있다.
2. 전공서적처럼 딱딱하지 않지만 그와 비슷하게 깊이감 있는 심화 학습이 가능한 구성이 좋았다.

3. 머신러닝에 대해서도 살짝 경험할 수 있어서 다음에 무엇을 배우면 좋을지 방향성 설정하기 좋았다.


일반적은 파이썬 활용 데이터 입문서를 보면 파이썬 문법에 대한 설명이 책의 절반이고, 나머지 절반은 시각화 라이브러리 활용 예제 몇개 다루는 식으로 구성되어 있다. 하지만 《파이썬 라이브러리를 활용한 텍스트 분석》은 다양한 데이터 중 '텍스트'에 초점을 맞춰서 목표로 하는 영역을 깊이있게 볼 수 있다.

 

텍스트 데이터는 정형화된 자료와 달리 단어 하나에도 전체 의미가 달라지곤해서 숨은 의미, 주제를 찾기가 쉽지 않다.
그래서인지 이 책에선 '비지도 학습' 같은 머신러닝 영역도 다루고 있다. 물론 데이터 수집(크롤링), 정제와 같은 일반적인 내용도 담고 있다. 

 

산더미 같은 데이터 중 텍스트 데이터를 추출하고, 텍스트 데이터를 가공하여 최종 결과물까지 만드는 하나의 사이클을 경험할 수 있는 것이다.

 

 


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
리뷰를 위해 한빛미디어에서 책을 제공받았지만 주관적인 생각을 그대로 적었습니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

『파이썬 라이브러리를 활용한 텍스트 분석』은 파이썬을 이용한 자연어 처리 및 텍스트 분석에 대한 입문서입니다. 데이터 분석에서 매우 중요한 텍스트 처리에 대하여 분석하는 방법에 대해 자세히 설명하고 있습니다.

 

파이썬의 언어로 기반하고 있고, 자연어 처리의 기술을 익히기 위한 필수 참고 서적이라 생각합니다. 다양한 라이브러리와 패키지들을 사용하여 텍스트 데이터를 처리하고 분석을 담고 있습니다. 

 

또한 프로젝트를 진행하며 실무 기술에 대해서 배울 수 있습니다.

 

자연어 처리에 대한 기본적인 지식이 있다면 책을 잘 활용하여 자연어 처리에 대한 이해도를 높일 수 있게 만들어진 책입니다.

 

예제 코드가 많고 데이터가 많이 포함되어 있어 독자들이 실습해보면서 이론을 익히기가 굉장히 좋은 책입니다.

 

텍스트 분석의 필요성이 느꼈다면, 이 책을 꼭 참고해보시면 좋겠습니다.

 

집안이 노란 조명이라 표지가 노란색으로 나왔다 ^^;

 

Author: 젠스 알브레히트, 싯다르트 라마찬드란, 크리스티안 윙클러 지음 / 심상진 옮김

출판사: 한빛미디어

Score /5: ⭐️⭐️⭐️⭐️⭐️

요즘 Chat GPT의 열풍이 엄청납니다. 그와 비슷하게 개발자들에게는 MS Github의 copilot과 같은 AI를 활용한 어시스턴트 툴도 나오고 MS Office도 곧 copilot과 같은 AI를 통한 생산성 향상이 새삼 깊이 와 닿습니다.
하지만 이러한 기술도 데이터가 있어야 합니다. 머신러닝의 여러가지 분야가 있겠지만 기본적으로 텍스트의 의미를 분석하는(자연어 처리) 분야가 있습니다. 해당 기술을 기반으로 챗봇, 더 나아가 ChatGPT같은 기술이 나오지 않았을까요?
저는 이런 기술을 활용하는 것도 좋지만 어떻게 이러한 기술이 성립하는지 더 궁금한 사람입니다.
저와 같은 사람에게  『파이썬 라이브러리를 활용한 텍스트 분석』을 추천합니다. 텍스트 마이닝에 대한 전반적인 이해와 파이썬을 이용하여 텍스트 마이닝을 실제로 해볼 수 있습니다.

이 책에서는 텍스트 마이닝의 다양한 분야를 다루며, 각 분야에 적합한 머신러닝 알고리즘을 소개하고 있습니다. 또한, 이 책에서는 파이썬을 이용하여 텍스트 데이터를 처리하고 분석하기 위해 필요한 다양한 라이브러리와 도구들을 자세히 설명하여 초보자부터 전문가까지 모두에게 유용한 정보를 제공합니다.

이 책은 텍스트 마이닝 및 자연어 처리에 관심이 있는 데이터 과학자, 연구자, 엔지니어, 개발자, 학생 등 다양한 분야의 사람들에게 유용한 정보를 제공합니다. 파이썬을 이용하여 텍스트 데이터를 처리하고 분석하는 방법을 배우고자 하는 분들이라면, 이 책을 통해 전문적인 지식과 기술을 습득할 수 있을 것입니다.

파이썬 또는 텍스트 마이닝을 몰라도 됩니다!

파이썬 및 텍스트 마이닝이 뭔지 몰라도 됩니다. 텍스트 마이닝의 기본 개념부터 시작하여, 텍스트 데이터를 다루기 위한 가장 기초적인 파이썬 문법부터 다루고 있습니다. 이를 토대로, 이 책은 텍스트 마이닝의 다양한 분야를 소개하고 있으며, 파이썬을 이용하여 텍스트 데이터를 처리하고 분석하기 위한 다양한 라이브러리와 도구들을 자세히 설명하고 있습니다. 이 책에서는 자연어 처리를 위한 다양한 기술들과 머신러닝 알고리즘을 소개하여, 텍스트 데이터를 다양한 방식으로 분석하는 방법을 배울 수 있습니다.

솔직히 말해서 제 백그라운드는 데이터 쪽이 아닙니다. 하지만 이 책의 내용을 보고 해당 내용을 이해하는데 전혀 문제가 없었습니다. 실례로 저는 텍스트 데이터를 이용한 감성분석에 대해서 전혀 모르지만 책의 내용을 이해하는데 문제가 없었습니다. 

좋았던 점

  • 텍스트 마이닝에 대해서 명확한 이해를 할 수 있음
  • 초보자가 접근하기에 무리가 없음

독자에게 필요한 점

  • 꼭 파이썬이나 판다스 라이브러리를 알 필요는 없지만 이미 알고 있다면 플러스 요인이 됨

총평하자면, 이 책은 파이썬을 이용하여 텍스트 데이터를 처리하고 분석하는 방법을 배우고자 하는 분들에게 매우 추천되는 책입니다. 이 책을 통해 전문적인 지식과 기술을 습득하면, 텍스트 데이터를 처리하고 분석하는 방법에 대한 이해도가 크게 향상될 것입니다. 또한, 이 책에서는 각 분야에 적합한 머신러닝 알고리즘을 소개하고 있어, 머신러닝 기술을 활용하여 텍스트 데이터를 분석하고자 하는 분들에게도 매우 유용한 정보를 제공합니다.
내용이 어렵다면 필요한 부분부터 보시길 바랍니다. 모든것을 하나씩 보는 방법도 중요하지만 전체적인 맥락을 한번 살펴보고 필요한 부분을 채워주는 레퍼런스로서도 훌륭합니다.

따라서, 이 책은 텍스트 마이닝 및 자연어 처리 분야에 대한 관심이 있는 분들에게 매우 유용한 책이며, 파이썬을 이용한 텍스트 분석에 대한 전문적인 지식과 기술을 습득하고자 하는 분들에게 매우 추천합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평임."

 

데이터 바다에 살고 있는 요즘,

데이터들의 80%이상이 비정형 데이터라는 사실 알고계셨나요?

그중 가장 대표적인 비정형 데이터는 텍스트 데이터라고 합니다.

현재 여러 비즈니스 분야에서 텍스트 분석을 통해

유의미한 정보를 얻고있다고 하는데요.

최근 저도 텍스트 분석에 관심이 생겨

텍스트 분석에 입문을 해보고자

“ 파이썬 라이브러리를 활용한 텍스트 분석 ”을 읽어보았습니다.

* 참고 사항

이 책은 판다스(Pandas) 같은 기본 라이브러리를 비롯한

파이썬에 대한 기본 내용을 숙지하고 있다는 가정하에 설명을 해주고있습니다.

 

output_2409908879.jpg

이 책은 유엔총회 일반토의 연설문, 깃허브 및 트위터 같은 인기 웹사이트, 로이터 뉴스기사 등 다양한 데이터 셋을 활용하여 상황별로 가장 유용한 텍스트 분석 기법을 소개합니다. 데이터 분석을 공부하면서 이론적으로는 이해하였지만 막상 실생활에서 데이터 분석을 활용하려고 할 때는 막막한 적이 많았었는데요. 이 책 속에서는 실생활 속 다양한 데이터셋들을 다루고 있어, 익숙한 텍스트를 예시로 텍스트 분석 기법을 배울 수 있었고 해당 상황에서 어떤 솔루션을 적용해야하는 지 알 수 있어서 좋았습니다.

 

output_1889262193.jpg

 

https://oreil.ly/btap-code

 

* 참고 사항

책 속에 나와있는 모든 코드들은 위 깃허브 저장소에있습니다.

이 책은 각 챕터마다 문제에 대한 다양한 솔루션,

접근 방식, 해당 방식의 장단점 등을 자세하게 다루고 있는데요.

직접 실습을 해보면서 특정 문제의 해결방법과 전략의 세부사항들을 알 수 있었습니다.

실습해본 코드들은 개인적으로 필요 상황에 맞게 약간의 수정을 거쳐서 활용해볼 수 있을 거 같습니다!

파이썬 기본문법을 마스터하여 이제는 파이썬을 활용하여 의미있는 결과물을 만들어보고싶다! 

텍스트 분석에 관심이 있어 입문해보고 싶은데 어디서부터 시작하면 좋을 지 막막하다 !

요런 분들 께 꼭 추천드리고 싶습니다 :)

“ 텍스트에서 유용한 정보를 찾아내는 이가 결국 뛰어난 경쟁력을 갖춘다. ”

이 책을 통해 성공적으로 텍스트 분석에 입문해보시길 바랍니다!

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

텍스트에서 통찰을 이끌어내는 98가지 자연어 처리 전략

 

추천사

- 탄탄한 기초와 수많은 연구를 바탕으로 머신러닝이 필요한 비지니스 프로젝트에 도입할 수 있는 실용적인

예제를 가득 채운 도서

- 실력을 한 단계 높이고자 하는 데이터 엔지니에게 추천

- 코드를 중심으로 설명을 하기 때문에 시간과 수고를 줄여줌

- 텍스트 분석 및 NLP 분야에 활용할 유용한 방법과 기술을 포괄적으로 설명해 줌

 

NLP에 대한 설명보다는 현실에서 마주하는 어려움을 어떤 식으로 풀어가야 하는지를 알려주는 전략 및 코드를 

제공하는데 초점을 맞추고 있다. 

 

대상 독자

- 샘플 결괄를 빠르게 만들어 프로젝트의 성공 가능을 검토하려는 독자

- 문제를 풀기 위한 베이스라인(머신러닝 모델이 넘어야 하는 최소한의 성능)을 빠르게 작성해야 하는 독자

 

텍스트 분석이란 텍스트 형태로 제공되는 방대한 양의 정보를 분석할 수 있는 컴퓨터 프로그램을 개발하는 것

 

# Book Contents

1. 텍스트 데이터에서 찾는 통찰

2. API로 추출하는 텍스트 속 통찰

3. 웹사이트 스크래핑 및 데이터 추출

4. 통게 및 머신러닝을 위한 텍스트 데이터 준비

5. 특성 엔지니어링 및 구문 유사성

6. 텍스트 분류 알고리즘

7. 텍스트 분류기

8. 비지도 학습 : 토핑 모델링 및 클러스터링

9. 텍스트 요약

10. 단어 임베딩으로 의미 관계 탐색

11. 텍스트 데이터를 이용한 감성 분석

12. 지식 그래프 구축

13. 프로덕션에서 텍스트 분석 사용

 

* 라이브러리 : spacy 2.3.2 기준으로 작성

 

Chapter1. 텍스트 데이터에서 찾는 통찰

 

텍스트에서 단어와 구의 빈도분석은 주요한 데이터 탐색 방법이다. 

절대 단어 빈도는 대게 그다지 흥미롭지 않지만 상대적 빈도나 가중 빈도는 중요하다. 

 

텍스트를 토큰화하고, 불용어(stop words)를 필터링하고, 빈도 다이어그램(frequency diagrams)과 

워드 클라우드(word cloud)를 사용해 텍스트 콘텐츠를 분석하는 방법을 알게 된다. 

텍스트 벡터화에 필요한 요소인 TF-IDF 가중치 개념도 알게된다. 

 

자연어 처리(NLP)에서 뉴스, 트윗, 이메일, 업무 통화와 같이 텍스트 문서로 구성된 데이터 셋을 말뭉치(corpus)

라고 한다. 말뭉치의 통계적 탐색은 다양한 양상을 보인다. 

 

팬더스로 데이터 개요 확인

1. 요약 통계(summary statistics)를 계산

2. 누락된 값(misssing value)를 확인

3. 흥미로운 속성의 분포를 시각화

4. 범주 간의 분포를 비교

5. 시간 경과에 따른 변화를 시각화

 

간단한 텍스트 전처리 파이프라인 구축

텍스트 데이터 -> 변환 -> 토큰화 -> 불용어 제거 -> 준비된 토큰

 

Chapter2. API로 추출하는 텍스트 속 통찰

 

API는 사용자가 소프트웨어 응용 프로그램이나 구성요소, 서비스 등이 어떻게 구현되는지 몰라도 통신할 수 있도록

하는 인터페이스이다. API는 사용할 수 있는 요청의 종류, 사용되는 데이터 혀익, 예상 응답을 포함한 일련의

정의 및 프로토콜을 제공한다. 

 

 

Chapter3. 웹사이트 스크래핑 및 데이터 추출

 

웹사이트 스크래핑 방법은 세가지 단계로 구성된다.

1. 웹사이트의 모든 URL을 생성

2. 도구를 사용해 해당 URL에서 페이지를 다운로드

3. 다운로드한 페이지에서 데이터를 추출

 

크롤링 : 웹사이트의 홈페이지에서 시작해 동일한 웹사이트의 링크를 모두 다운로드한다. 

URL 생성기 : 약간 더 정교한 솔루션으로 포럼, 블로그처럼 계층적 구성으로 구성된 컨텐츠에 적합하다.

검색엔진 : 검색엔진에 특정 URL 요청해서 특정 URL만 다운로드한다.

사이트맵 : 웹사이트 최상위에서 sitemap.xml를 찾는다.

RSS : 뉴스피드용으로 고안되어 자주 변경되는 컨텐츠 소스를 구독하는데 널리 사용된다. 

 

Chapter4. 통계 및 머신러닝을 위한 텍스트 데이터 준비

 

일반적으로 데이터 준비나 데이터 전처리에는 데이터를 분석의 기초가 되는 형태로 변환할 뿐만 아니라 

분석에 방해가 되는 노이즈를 제거하는 과정도 포함된다. 

 

텍스트 전처리 파이프라인 

파이프라인은 원시 텍스트를 입력 받아 정리하고 변환하고 텍스트 컨텐츠의 기본 특성을 추출한다. 

데이터 정리 및 토큰화를 위한 정규 표현식으로 시작한 다음에 스페이시 라이브러리를 사용한 언어처리에 중점을 둔다.

스페이시는 최신 API와 최첨단 모델을 갖춘 강력한 NLP 라이브러리이다. 

 

Chapter5. 특성 엔지니어링 및 구문 유사성

 

문서 벡터화는 모든 머신러닝 작업의 기초이므로 자신만의 벡터화 객체를 설계하고 구현하는 데 시간을 할애할 것이다.

벡터화는 정교한 머신러닝 알고리즘의 기본 기술이지만 문서 간의 유사성을 계산하는 데 자체적으로 사용할 수 있다. 

텍스트가 포함된 거의 모든 머신러닝 프로젝트(ex: 분류, 토픽 모델링, 감성 감지)에는 기본적으로 문서 벡터가 필요하다.

다양한 벡터화를 시도하고 매개변수를 사용하거나 조정해 생성된 특성 공간을 관찰하는 것이 좋다. 이 부분에 많은 시간을

투자해야 한다. 

 

Chapter6. 텍스트 분류 알고리즘

 

텍스트 분류는 텍스트 데이터 및 텍스트 벡터화 같은 NLP 기술을 사용해 지정된 문서에 범주형 대상 변수를 할당하는

지도 학습 알고리즘의 예다. 분류 알고리즘은 다음 범주를 특성화할 수 있다.

 

- 이진 분류 

- 다중 클래스 분류

- 다중 레이블 분류

 

텍스트 분류의 다음 단계는 적절한 알고리즘을 사용해 지도 머신러닝 모델을 훈련하는 것이다.

서포트 벡터 머신(SVM)은 텍스트 분류 작업에 사용되는 인기 있는 알고리즘이다. 

 

모델의 정확도를 수치화하는 데 사용할 수 있는 메트릭 중 세가지를 소개하면 

정확도(Accuracy), 정밀도(Precision), 재현율(Recall)이 있다. 

 

Chapter7. 텍스트 분류기

 

- LIME을 사용한 분류

- ELI5를 사용한 분류

- 앵커를 사용한 분류 

 

신뢰할수 있는 머신러닝 솔루션을 구축하려는 경우, 모델을 정작 신뢰하고 맡길수 있다는 점이 점차 중요해질 것이다. 

 

Chapter8. 비지도 학습 : 토픽 모델링 및 클러스터링

 

토픽 모델링은 문서 모음에서 토픽(주제)을 찾는 통계 기술을 사용해 문제를 해결한다. 

벡터화에 따라 다양한 종류의 주제를 찾을 수 있는데, 주제는 특성(단어, N-그램 등)의 확률 분포로 구성된다. 

 

다양한 토픽 모델링 방법을 심층적으로 살펴보고 방법 간의 차이점과 유사점 찾고 사용 예를 제시한다. 

 

다양한 알고리즘과 구현이 있으므로 다양한 방법을 실험하고 주어진 텍스트 말뭉치에 대해 어떤 방법이 최상의

결과를 산출하는지 확인하는 것이 좋다. 

 

Chapter9. 텍스트 요약

 

텍스트 요약은 텍스트 정보를 몇 줄 또는 단락으로 짧게 압축해 대부분의 사용자가 이해할 수 있도록 한다.

요약 방법은 크게 '추출 방법'과 '추상화 방법'으로 분류한다. 

추출 요약방법은 주어진 텍스트 본문에서 중요한 구 또는 문장을 찾고, 이들을 적절히 결합해 전체 텍스트의 요약을 생성한다.

추상화 요약방법은 사람처럼 의역해서 요약을 생성한다. 일반적으로 중요한 단어나 문장을 선택하는 것이 아니라 문법적으로

올바른 텍스트 요약을 제공하는, 구문과 문장을 생성 할 수 있는 심층 신경망(DNN)을 사용한다. 심층 신경망을 훈련하는

과정에서는 많은 훈련 데이터가 필요하고 자연어 생성, 의미론적 분할 같은 NLP 내의 여러 하위 도메인을 다뤄야 한다. 

 

Chapter10. 단어 임베딩으로 의미 관계 탐색

 

유사성은 머신러닝 작업의 기본이다. 단어 가방 모델을 기반으로 '텍스트 유사도'를 계산하는 방법을 보았듯이

문서에 대한 TD-IDF 벡터가 두개 주어지면 코사인 유사도를 계산하며 이 정보를 사용해 유사한 문서를 검색, 클러스터링, 

분류할 수 있다. 

 

단어 임베딩을 훈련하기 위한 알고리즘으로 Word2Vec 및 FastText 임베딩이 있다. 

 

Chapter11. 텍스트 데이터를 이용한 감성 분석

 

텍스트에서 감성을 이해하려면 직접적이지도 분명하지도 않은 측면을 추론해야 하기 때문에 어렵다. 

텍스트 조각의 감성은 구, 문장, 문서에서 결정할 수 있다. 감성은 각 문장과 단락에서 계산할 수 있다. 

 

감성분석을 수행하는 기술은 간단한 규칙기반 기술과 머신러닝 접근 방식으로 나눌 수 있다. 

규칙기반 기술은 주석이 달린 훈련 데이터가 필요하지 않기 때문에 적용하기가 쉽다. 지도학습 방식은 더 나은 결과를

제공하겠지만 데이터에 레이블을 지정하는 노력이 추가로 필요하다. 

 

- 어휘를 기반으로 한 감성 분석

- 텍스트 데이터에서 추가 특성을 구축한 후, 지도 머신러닝 알고리즘을 적용한 감성 분석

- 전이 학습 방법과 BERT 같은 사전 훈련된 언어 모델을 사용한 감성 분석

 

Chapter12. 지식 그래프 구축

 

지식 그래프는 큰 시멘틱 네트워크다. 사람, 장소, 이벤트 또는 회사와 같은 개체인 노드와 이러한 노드간의 형식화된

관계를 나타내는 간선(edge)로 구성된다. 

 

정보 추출 과정

- 개체명인식 -> 상호 참조 연결 -> 개체 연결 작업 -> 관계 추출

 

https://gephi.org/

 

Chapter13. 프로덕션에서 텍스트 분석

 

Rest API(Fast API)를 사용해 동작하는 머신러닝 모델을 배포하는 방법을 소개하고 더 빠른 런타임을 위해 

클라우드 인프라(GCP)를 사용하는 방법도 소개한다. 

 

총평

 

텍스트 분석에 관한 책은 많이 있다. 하지만 텍스트 분석을 위해 전략적으로 설명해주는 책은 이 책이다. 

머신러닝부터 딥러닝까지 수많은 기법에 대해 자세히 설명을 해주고, 유엔총회 연설문 부터 트위터, 뉴스기사 등

다양한 샘플 데이터셋을 이용해서 상황별로 가장 유용한 텍스트 분석 기법을 소개한다. 

실제 모범 사례를 기반으로 상황에 맞춰 설계한 전처리 파이프라인 구축, 텍스트 분류, 감성분석 등 다양한 분야에 대해 알려주고 있다. 

파이썬 라이브러리를 활용한 텍스트 분석을 쉽게 도전해 볼수 있도록 도와줄 것이다. 

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



KakaoTalk_20230326_144110811.jpg

 

 

『파이썬 라이브러리를 활용한 텍스트 분석』은 파이썬을 이용한 자연어 처리 및 텍스트 분석에 대한 입문서로, 현대의 디지털 데이터 분석에서 매우 중요한 역할을 하는 텍스트 데이터를 처리하고 분석하는 방법에 대해 자세히 설명하고 있습니다.

 

이 책은 파이썬 언어를 기반으로 하는 자연어 처리와 텍스트 분석 기술을 익히기 위한 필수 참고서입니다. 파이썬으로 구현된 여러 가지 라이브러리와 패키지들을 사용하여 텍스트 데이터를 처리하고 분석하는 방법을 담고 있어 실제로 프로젝트를 진행하면서 필요한 실무 기술들을 배울 수 있습니다.

 

이 책은 텍스트 데이터의 전처리, 토큰화, 형태소 분석, 품사 태깅, 문서 분류, 감성 분석, 토픽 모델링 등 다양한 텍스트 분석 기술을 다루고 있습니다. 특히, 파이썬에서 자연어 처리를 위해 주로 사용되는 NLTK(Natural Language Toolkit)와 KoNLPy 등 다양한 라이브러리의 사용법과 활용 방법을 상세하게 설명하고 있습니다.

 

이 책은 파이썬 언어와 자연어 처리에 대한 기본적인 지식이 있는 독자라면 쉽게 따라 할 수 있도록 구성되어 있습니다. 또한 책 안에는 예제 코드와 데이터가 많이 포함되어 있어서 독자들이 직접 실습해볼 수 있도록 도와줍니다.

 

전반적으로 이 책은 파이썬을 이용한 자연어 처리와 텍스트 분석에 대한 실무 지식을 배우고 싶은 독자라면 반드시 읽어야 하는 책 중 하나입니다. 책에 수록된 내용들은 실무에서 매우 유용하게 사용될 수 있을 뿐만 아니라, 이 분야에 대한 전반적인 이해를 높이기에도 충분합니다.

> 진행에 앞서

현재 시점에서 파이썬은 다양한 분야에서 활용되고 있다.

시간은 많이 흘렀지만 현재까지 크게 사용되고 있는 머신러닝 분야를 비롯하여, 웹 서버, REST API 서버 등의 개발로도 사용이 되고, 유틸성 툴을 개발하는 목적으로도 사용된다.

파이썬은 인터프리터 언어이기에 생각의 흐름대로 작성하면 된다는 특성을 이용하여 누구나 쉽게 접근할 수 있다는 점이 큰 장점으로 활용된다고 생각한다. 물론 퍼포먼스 측면에서 상당히 연산 능력이 필요한 코드를 작성할 경우 타 언어에 비해서는 매우 낮은 퍼포먼스를 보이는 경우도 있기에 무조건 추천할만하다고 여겨지지는 않지만, 컴퓨팅 파워는 점점 올라가고, 코어 라이브러리는 C 언어로 작성된 케이스가 많기 때문에, 실제 사용하는 입장에서는 로직 자체에만 집중할 수 있는 파이썬을 선택하지 않을까 생각이 되었다.

파이썬이 부상하기 전에는 스크립트 언어인 쉘 스크립트로 유틸성 작업을 진행한 경우가 많지만, 그마저도 더 작성하기 쉬운 파이썬으로 많이 대체되었다는 생각이다.

그 중 오늘 리뷰할 이 책은 텍스트에 집중한 책이며, 텍스트 분석을 요리조리 진행하는 데 파이썬이 일조하는 것을 보여주고 있다.

 

> 책에 대한 간단한 정보

앞 표지

역시 파이썬은 원어 뜻처럼 비단뱀이 어울린다.

표지 설명을 보니 이건 비단뱀이라기 보다는 톱날비늘독사라고 하는데, 그렇게 구체적으로 아는 사람이 아니고서는 그냥 파이썬의 비단뱀을 떠올릴 듯 하다.

그리고 제목이 매우 정직하다는 생각을 했다. 책의 전체를 요약해 놓은 제목이다.

파이썬 라이브러리를 활용해서 텍스트 분석을 했기 때문이다.

다만, 영문으로는 Blueprints for Text Analytics Using Python으로 되어있으며, 이는 청사진 혹은 설계도를 의미하는 블루프린트를 나타내고 있다. 즉, 직역하면 파이썬을 이용한 텍스트 분석의 청사진 정도가 될 것 같다.


그리고, 이 내용을 좀 더 뒷바침 하고 싶었는지, '텍스트에서 통찰을 이끌어내는 98가지 자연어 처리 전략'이라고 말하고 있다.

이 부분이 매우 흥미롭게 만드는 부분이라고 생각이 든다. 텍스트 분석을 하고자 하는 사람에게 아주 다양한 방법을 제시하고 있다는 뜻으로 보여지기 때문이다.


> 인상깊은 부분들

개요를 가장 앞에서 말하고 있다.

이 책의 앞부분에 나온 개요이다. 텍스트 데이터에서 찾는 통찰, API로 추출하는 텍스트 속 통찰, 웹사이트 스크래핑 및 데이터 추출, 통계 및 머신러닝을 위한 텍스트 데이터 준비, 특성 엔지니어링 및 구문 유사성, 텍스트 분류 알고리즘, 텍스트 분류기, 비지도 학습: 토픽 모델링 및 클러스터링, 텍스트 요약, 단어 임베딩으로 의미 관계 탐색, 텍스트 데이터를 이용한 감성 분석, 지식 그래프 구축, 프로덕션에서 텍스트 분석 사용이 그 개요들이며, 그에 따른 데이터 셋은 어떤 것을 이용하였고, 라이브러리로는 어떤 것을 활용했는지 잘 요약해 놓았다.

이것만 잘 보아도 이 책에서 말하는 바를 대략 유추할 수 잇으며, 개요를 좀 더 잘 활용하는 사람이라면, 각 라이브러리를 선택하면 결국 어떤 것을 결과적으로 얻어올 수 있는지도 알게 될 것이라고 생각한다.


초반에 나오는 전략

간단한 텍스트 전처리 파이프라인을 구축하기 위한 도표이다.

원 자료인 데이터셋을 이용하여 이것을 의미있는 데이터로 활용하기 위해 가공하는 순서가 되겠다.

이것을 토큰화를 잘 시키면 가져온 데이터로 빈도수를 추출할 수 있으며, 그 경우 의미있는 학습 데이터를 만드는 데 사용하기에도 좋을 것이다. 이 파이프라인을 기초로 하여 다음에 나오는 많은 내용들에 대해 잘 처리할 수 있다고 생각한다.


수식도 나온다..

머신러닝을 공부하며 가장 어려운 부분이 수식부분이었는데, 이 부분을 보면서 이 책에서도 설마 수식을 많이 다루는 것인가 하는 두려움에 앞섰다.

다행히도 실습 위주의 내용이 대부분이었으며, 이 경우에는 빈도수에 대한 특별하게 이해를 돕기 위한 수식을 잠시 인용한 정도로 보면 될 것 같다. 그래서 나처럼 수식에 약한 사람이라 할지라도 이런 부분은 가볍게 보고 지나가면 될 것 같다.


리퀘스트를 이용해서 URL 호출

본 내용 중 가장 친근한 부분이다.

파이썬의 request 모듈은 http url 통신을 위해 흔하게 사용되는 라이브러리이며, 즉 이것을 이용한다는 말은 URL을 활용하여 데이터를 가져오겠다는 의미이다. 실제로 이 곳에서는 Github, Twitter 등의 URL 통신을 활용한 처리를 바탕으로 하고 있으며, 이 결과를 json으로 가져와서 처리하도록 되어있다.

물론 일부 코드 내용은 날짜를 기반으로 처리되는 부분이 있었고, 그 부분에서 최근 날짜로 바꾸지 않으면 처리가 매우 늦어서 문제가 되는 코드도 있다. 그런 부분들은 눈치껏 적절하게 수정하고 실행하다보면 REST API의 처리 및 그곳에서 텍스트까지 이렇게 추출이 상대적으로 가볍게 된다는 사실을 알게 될 것이다.


실습한 내용

api.github.com을 활용하여 내가 원하는 데이터를 쿼리로 가져올 수 있다. 가져온 결과로 저장소의 순위를 알 수 있었다.

실습을 하고 싶은 사람은 Pycharm 혹은 IntelliJ IDEA를 권하고 싶다.


웹사이트 스크래핑을 다룬다.

98가지를 다루고 있는 책이므로, 그 중에서 빠질 수 없는 부분이 웹사이트 스크래핑에 대한 부분이다.

잘 알려진 금융앱도 스크래핑을 기본 기법으로 하여 처리한 부분이 있는데, 이 부분도 그만큼 흥미로운 부분이었다.

일반 웹사이트로 만들어진 곳이라고 해서 포기할 필요가 없다는 의미이기도 하다.


뒷 표지

데이터를 처리하기 위해 우선 텍스트 분석부터 시작해야 한다.

그런 처리를 위해 이 책을 활용하면 좋다는 이야기가 잘 적혀있다고 생각한다.


> 괜찮은 부분

1. 텍스트 분석에 대해 집중해서 알려준다.

이 책은 오로지 텍스트 분석에 대한 책이다. 주제가 다양하지 않다고 생각할 수 있지만, 텍스트 분석은 어느 분야에서나 필요할 수 있다. 다른 주소의 데이터 뿐 아니라, 하다못해 내가 누적해 온 로그 데이터를 활용하기 위한 목적으로 텍스트 분석을 할 수도 있다. 그렇게 다양한 방법으로 텍스트를 분석해야 한다면, 본인에게 가장 맞는 전략을 선택할 수 있도록 도와준다. 텍스트 분석이 비단 머신러닝에만 국한된 행위가 아니기 때문에, 개발자라면 누구나 한 번쯤 이 책을 접하는 것은 도움이 될 것이라고 생각한다.


2. 짤막한 코드 스니펫으로 실습하면서 따라갈 수 있도록 안내한다.

코드 스니펫이 다양한 곳에 퍼져있다. 그래서 각 코드에 대한 파일 이름을 별도의 타이틀로 붙여서 표기하지도 않았다. 이런 방식을 사용하면, 어떻게 실습 코드를 실행해야 하는지 따라하는 입장에서는 답답할 수 있다고 생각한다. 하지만, 반대로 코드의 작은 부분이라도 어떤 때에 사용하는지 필요한 조각 자체를 찾는 데에는 매우 유용하다.


3. 데이터 분석을 다룬 책임에도 수식이 많이 나오지 않아, 일반 개발자에게 친숙하게 느껴질 수 있다.

항상 데이터 분석이나 머신러닝 책을 보면서 아쉬웠던 부분은 수식이 우선된다는 점이다. 이해를 돕기 위해서는 수식이 필요할 수 있으나, 이런 것으로 어려움을 느끼고 상당수의 페이지는 스킵하는 경우도 많다. 이 책은 코드 위주와 개발자가 아는 언어 중심으로 풀어나갔다. 물론 수식이 전혀 없다는 점은 아니지만, 이정도면 충분히 친숙함을 느끼기에 좋다고 생각한다.

 

> 아쉬운 부분

1. 일부 내용이 최신화가 되지 않아서 실습에 애를 먹을 수 있다.

트위터의 개발자 센터에 접속하는 부분이나 깃헙에서 데이터를 가져올 때 날짜 지정에 대한 부분 등 최신화가 되지 않는 부분 때문에, 트러블 슈팅에 적지않은 시간을 할애해야만 했다. 이 실습의 본질은 아닐 수 있지만, 제대로 진행하기에는 필요한 부분이었으며, 날짜에 영향을 받는 부분은 현재 날짜를 고려하여 값을 입력할 수 있도록 안내했다면 좋았을 것 같다.


2. 파이썬 자체에 대한 사전지식 없이는 보기 어려울 수 있다.

파이썬을 사용하기 위해서는 무엇을 설치하거나 확인해야 하는지, 개발 도구로는 어떤 것을 사용해야 할 지, 환경 구성을 위해서는 어떤 프로그램을 설치하거나 설정해야 하는지 등에 대해서는 전혀 나오지 않는다. 그저 파이썬 코드만 나오기 때문에, 본인이 익숙한 환경이 이미 있다면 빠르게 실습하면서 책을 읽을 수 있다. 하지만, 그렇지 않다면 사전 공부를 따로 해 와야만 실습에 문제가 없을 것이다.


3. 한국어를 염두에 둔 예제가 포함되지 않았다.

이 책은 텍스트 분석에 대한 책이다. 따라서 한국어에 대한 텍스트 분석도 아마 기대하는 사람이 있을 것이다. 하지만, 이 책은 번역서로써 영문을 기반으로 하고 있다. 그래서 분석도 영문 분석을 예시로 들고 있다. 물론 영문 텍스트 분석을 충분히 했다면, 한국어 텍스트를 스스로 응용할 수 있을지 모르나, 이왕이면 번역자 입장에서도 조금의 자료라도 한국어에 대한 특성을 말해주었더라면 국내 독자에게 좀 더 활용할만한 데이터를 만드는 데 도움이 되었을 것 같다.


 

> 추천 독자

- 파이썬에 대한 사전 지식이 있는 개발자

- 다양한 분야에서 유틸을 개발하는 도구로 파이썬을 사용하려는 개발자

 

> 개인적인 평점

- 가격: 6 / 10

- 내용: 7 / 10

- 디자인: 8 / 10

- 구성: 7 / 10

 

> 정보

저자: 젠스 할브레히트, 싯다르트 라마찬드란, 크리스티안 윙클러

옮긴이: 심상진

출판사: 한빛미디어

가격: 35,000원

전체 페이지: 503페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.




<서론 및 추천 대상>

텍스트 분석을 할 때 고려해야 하는 문제와 과정들은 혼자 리서치를 통해 진행하기에 복잡한 측면이 있다. 토큰화, 불용어 처리 등의 데이터 전처리 과정을 거쳐, 목적에 따라 텍스트를 분류할 혹은 요약할 모델을 구축하고 평가하는 전체적인 시퀀스의 세세한 단계마다 확인해야 할 사항들이 차고 넘친다.

그렇기에 이런 여정에서 가이드가 필요하다면 이 책을 추천한다. 텍스트 분석, 혹은 데이터 분석이 처음이 아닌 분들에게 대다수 추천하는데 입문자에게는 이보다 난이도가 쉬운 책을 추천하고 싶다. 이 책이 초보자에게는 난이도가 있기도 하고 책의 코드 중 직접 추가해 실행해야 하는 부분들이 있기 때문이다. (ex. library import 및 data 가져오는 부분의 설명 생략) Github의 노트북과 책의 코드가 다른 점도 있어 초보자들이 그 차이를 확인하고 실행하기에 어려운 점도 있고 말이다. 하지만 다양한 상황(API, 스크래핑, 텍스트 분류&요약, 감성 분석)을 훈련하고 학습할 수 있도록 제목처럼 거시적인 청사진을 제공하므로 텍스트 분석을 하시는 대다수의 분들에게 추천드리는 바이다.

 

<책 구성>

챕터마다 다른 주제를 다루고 있어 책의 패턴이 존재하지는 않지만 간단하게 살펴보자면 다음과 같다.

 

'학습 목표 -> ('데이터셋 설명') -> '전략'(평균 3~4개의 전략으로 구성, 그 안의 전략 세부내용 소챕터로 존재) -> '요약'

 

챕터가 세세하게 나눠져 있어 흐름이 헷갈리거나 이해가 되지 않는 부분이 있을 때 쉽게 앞의 내용을 확인할 수 있으며, 마지막 요약 또한 핵심 내용만 뽑아 흐름을 정리해주는 느낌으로 구성돼 있는 점이 구성상 장점이다.

 

<책의 난이도>

  1. 수학, 수리적 내용

    1. 수식이 많이 나오는 편은 아니지만 간혹 나오는 편이다. 난이도는 하단과 같다. 조건부 확률 및 로그, 벡터 등에 대한 수학적 사전 지식이 요구된다. 이해를 돕기 위해 수식으로 나타낸 부분이 몇 가지 존재하고, 어렵지 않게 이해할 수 있는 수준이다.

 

2. 선행 지식이 필요한 내용

1. 3장&4장

1. 필수는 아니지만 API, 스크래핑을 사용해본 경험이 있으면 좋다. API의 개념이 생소하거나 HTML의 기본적인 요소에 대한 지식이 부족하다면(어떤 식으로 흐름이 진행되는지 파악이 어렵다면) 함수를 만드는 과정이나 코드가 이해하기 어려울 수 있다. 예를 들자면 API 호출 및 자격 증명을 얻는 과정, URL을 호출한 결과를 확인할 때 tag 개념의 부재로 추출을 하는 단계에 고충이 존재할 수 있다.

 

2. 딥러닝 혹은 머신러닝의 전체적인 단계를 구현해봤거나 알고 있으면 좋다. 앞의 내용을 정확히 이해하고 있어야(ex. 앞에서 만들어놨던 함수 및 선언해놨던 변수와 만든 이유 등) 왜 이 단계를 수행하고 있는지 이해할 수 있는데, 난이도가 있고 단계가 복잡하기에 베이직한 흐름을 알고 있는 상태라면 도움이 될 것이다.

 

 

<리뷰>

저자가 영미권 사람이기에 모든 예시가 영문이기에, 한글에 적용하기는 어렵지 않을까라는 걱정이 처음에 들긴 했다. 물론 교재에 나온 라이브러리를 사용할 순 없으니 직접 토크나이징이나 개체명 인식 등에 사용될 한글 모델을 직접 서치하고 찾아야 하고, 라이브러리를 익히는 번거로움은 존재하나 한글 교재에서 찾기 힘든 단계들을 배웠다는 점에서 적용하는 데 큰 어려움은 없을 것 같다. 또 풀고 싶은 문제에 따라 다른 모델을 찾아야 하는 귀찮음은 항상 존재하니 말이다.

지은이의 감사의 말에서, 챕터 하나를 구성할 때 얼마나 많은 시간이 소요되는지를 체험하고 놀랐다는 구절이 있다. 이 말대로 지은이가 독자의 이해를 위해 어떤 노력들을 했는지 확인할 수 있었다. 이런 책에서는 흐름을 배우고 그걸 적용하는 것이 중요한데, 목차의 정확한 요약과 세세함이 돋보였고 실제로 길을 잃었을 때 목차를 확인하고 다시 흐름을 파악하는데 큰 도움을 얻었다. 이 책을 공부하는 독자들이 목차 및 노트북을 적극적으로 활용하길 바라는 바다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 





한빛미디어의 '나는 리뷰어다' 활동의 일환으로 '파이썬 라이브러리를 활용한 텍스트 분석'이라는 기술서적에 대한 서평이자 리뷰를 해보고자 합니다. 아무래도 기술서적이고 현재 제 개발 실력과 수준으로 이 책을 한 번 읽고 소화한다거나 모든 내용을 명확히 이해했다고 할 수는 없겠으나 책의 구성이나 좋았던 점 위주로 글을 남겨보고자 하니 이 도서에 대해 관심이 있으신 분이 있으시다면 조금이나 이 서평이 도움이 되시기를 바라는 마음으로 리뷰를 남겨보고자 합니다.

 

 

그리고 이번 서적은 기존에 제가 서평을 작성했던 '목차 및 요약', '좋았던 점', '아쉬웠던 점' 등으로 정리하기에는 너무 내용이 방대하고 해당 서적이 담고 있고, 활용되어야 하는 목적에 부합되지 않는다고 생각되어 개괄적으로 초보 개발자로써, 그리고 해당 내용에 대해 관심을 가지고 공부하려는 1인으로써 접근해보고자 합니다. 

 

 

먼저, 이 책은 파이썬을 활용하여 개발을 하고 있고, 여러 플랫폼과 소셜네트워크 등 인터넷 환경에 존재하는 헤아릴 수 없이 많은 텍스트(정보의 홍수 속에서 지금도 매일 매 순간 어마어마한 정보가 생성되고, 가공되고, 공유되고 있으니...)를 분석하여 의미있는 데이터로 만들고 싶은 분이라면 다 방면으로 활용할 수 있는 도서라 생각됩니다.

 

 

Jupyter Notebook 을 활용하고 있고, pandas 와 같은 라이브러리에 어느정도 익숙해져 있고, 익숙해져 있다면 금상첨화입니다. 만약 그렇지 못하면 이 책 서두에도 친절하게 튜토리얼 사이트를 알려주는데, learnpython.org || docs.python.org || Data camp (https://oreil.ly/oB-eH) || http://pandas.pydata.org || https://scikit-learn.org || 허깅페이스의 트랜스포머스 라이브러리 Data camp (https://oreil.ly/f5Ped) || NPL라이브러리 젠심 https://oreil.ly/YJ4Pz || 코드예제 참조 깃허브 저장소 https://oreil.ly/YJ4Pz 등을 참고해보면 좋을 것 같습니다. 더 자세한 튜토리얼 관련 url 는 활용 케이스마다 해당 페이지에 기재되어 있으니 참고하시기 바랍니다.

 

 

여러가지 흥미로운 자료들이 많았지만 특히, 주식 차트 형태의 데이터 시각화 작업과 워드 클라우드 및 스크래핑 / 크롤링 전략 및 사용 사례 소개 등의 내용에 높은 관심이 갔습니다. 왠지 사례에 소개된 내용을 따라하면 저도 곧바로 소셜 네트워크 및 인터넷 상에서 무수히 많은 사람들이 관심을 보이고 있는 키워드를 단숨에 뽑아내 캐취할 수 있을 것만 생각이 들었기 때문입니다. 곧 정신을 차리고.. 언제즈음 dreams come true 할 수 있을까 생각해보았습니다.

 

 

Pandas 는 깔끔하고 보기 쉽게 정리해주는 유용한 라이브러리 중 하나 임에 분명하지만 이미 일로써 접한 라이브러리였기 조금은 등한 시 하게 되는.. 어쩌면 일을 하는 느낌을 받지 않고 싶어 회피한 것일지도 모르겠네요. 하지만 데이터 분석 및 시각화하는데 pandas를 빼놓을 수는 없으니 잊지 말아야겠습니다^^;

 

 

이 책을 읽으면서 다시 한 번 깨닫고 생각하게 된 부분이 바로 데이터 수집도 중요하지만 데이터 정제 및 관련 전처리 작업의 중요성이었습니다. 유용한 관련 데이터를 얼마나 잘 정제하여 어떤 변수 혹은 변인에도 큰 변동폭 혹은 오류를 보이지 않거나 최소화할 수 있느냐가 관건이 아닌가 싶습니다. 데이터를 잘 가공하고 원하는 방향으로 이끌어가는 것은 관리자의 스킬일 수 있으나, raw data의 정제를 통한 가치있는 DB로의 생성/관리가 선행되어야 함을 인지할 수 있었습니다.

 

 

그리고 무엇보다 제가 모르고 있는 영역들이 이렇게나 많고, 앞으로 배워야할 것들이 너무나 많음에 평생 배움과 함께 해야함에 대해 인지하고 통감할 수 있었습니다. 솔직히 말해 이 책에 실린 내용 중 10분의 1이라도 제대로 이해했다면 다행이지 않을까 싶은 생각이 듭니다. 앞으로 필요할 때 마다 이 책을 꺼내볼 예정이고, 여러 케이스에서 도움을 받을 수 있는 책인지라 자주 접하면서 이해도를 높여나갈 예정입니다.

 

 

기술 서적.. 특히, 개발 관련 서적은 한 번 쭈욱~ 훑어보더라도 나중에는 결국 내가 쓰고 싶고, 활용하고 싶은 문법이나 모듈, 라이브러리 관련 내용을 찾게 되어 있는지라 이번처럼 처음부터 끝까지 완독을 하지는 않을 것 같지만 옆에 두고 필요할 때마다 꺼내 찾아 볼 수 있는 도서가 되지 않을까 싶다. 이 책에 담긴 여러가지 활용법과 사례, 케이스 중 어느 하나라도 실재 제가 직접 개발하거나 활용하게 된다면 '파이썬 라이브러리를 활용한 텍스트 분석' 리뷰어 활동 후속편 꼭 올릴 수 있도록 하겠습니다.

 

 

해당 서적에 담긴 내용과 정보 그리고 케이스가 너무 많아 하나하나 소개하거나 다룰 수 없음에 양해 부탁드리며, 오늘도 어제보다 성장한 개발러가 되시기 바라며 서평 마무리합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

파이썬 라이브러리를 활용한 텍스트 분석

ChatGPT가 굉장히 많은 관심을 받고 있는데, 이러한 챗봇을 만들기 위해선 기본 텍스트 분석 역량이 필요하다. 나는 텍스트를 분석하는 것에 흥미를 매우 느끼고 있어서 이런 저런 분석들을 하고 있다. 복습도 하고 싶었고, 새로운 내용이 있다면 따로 기록하고 싶었다.

 

Pandas 라이브러리로 분석하는 기본 방법부터 시작한다. 열에 대한 요약 통계 계산, 시각화, 결측값 등을 말이다.

이후에는 정규 표현식을 이용해서 토큰화를 진행하고, 불용어처리도 진행한다. 여기서 활용되는 라이브러리는 spaCy와 nltk이다. spaCy를 활용한 경험이 없어도 이 교재를 통해서 쉽게 배울 수 있다.

 

또한, API로 데이터를 추출하는 방법을 알려준다. 본 교재는 트위터 API를 활용해서 데이터를 추출하는 방법을 알려준다. API뿐만 아니라, Selenium을 활용한 크롤링도 알려준다.

 

 

텍스트 분류, 감정 분석, 텍스트 요약 등에서 자주 사용되는 알고리즘과 잘 알려지지 않은 시각화 라이브러리를 알려준다. TF-IDF, LDA 등의 기본적인 알고리즘부터 LIME, ELI5 시각화 라이브러리도 알려준다. 책 후반에는 단어 임베딩으로 의미 관계를 탐색하는데 이는 seq2seq, transformer, bert를 이해하는 데 토대가 되기 때문에 굉장히 중요하다. 마지막 챕터는 지식 그래프 구축인데, 역시나 시각화 라이브러리를 알려준다.

총평

 

  • 번역이 너무 잘되어 있다. 하지만, 책의 후반에는 오탈자가 가끔 보이긴 한다만, 이해하는데 어려운 부분은 없다.

  • 교재의 코드가 Github와는 다르기 때문에 https://oreil.ly/btap-code 으로 필사하는 게 낫다.

  • 기초로 다루기엔 충분한 교재이다. 수학적 수식이 많이 있지도 않아서 읽기 편했고 실습 위주로 되어 있어서 프로젝트에 바로 쓸 수 있다.

  • 자연어처리에 필요한 라이브러리와 시각화를 위한 독특한 라이브러리를 알려준다.

최근에 《파이썬 라이브러리를 활용한 텍스트 분석》을 읽었습니다.


최근에 《파이썬 라이브러리를 활용한 텍스트 분석: Blueprint for Text Analytics Using Python》을 읽었습니다. 비전공자인 저에게는 상당히 난해한 책이었습니다. 하지만 최근 챗GPT 열풍으로 자연어 분석과 트랜스포머 모델 등에 관심을 갖게 된 저로서는 이번 책은 파이썬 라이브러리를 활용한 텍스트 분석은 어려웠지만 흥미로운 점과 유의미한 지점이 있었습니다.


파이썬 라이브러리를 활용한 텍스트 분석 앞표지

다행히도 이 책에서는 저와 같은 비전공자도 이해할 수 있도록 다양한 예제와 설명을 통해 텍스트 분석에 대한 이해를 돕고, 파이썬 라이브러리를 사용하는 방법을 설명합니다.

토큰화, 어간 추출, 불용어 처리, N-그램, POS 태깅, 개체명 인식, 감정 분석, 토픽 모델링 등 다양한 텍스트 분석 기술에 대해 다루며, 이러한 기술들을 사용하여 실제 문제를 해결하는 방법을 다양한 예제와 함께 설명합니다.


책의 유의미한 지점 중 하나는, 파이썬 라이브러리를 사용하여 텍스트 분석을 수행할 때, 주어진 문제에 대한 올바른 접근 방법을 결정하는 것이 중요하다는 것입니다. 이를 위해, 책에서는 텍스트 분석 문제를 파악하고, 적절한 방법을 선택하고, 그 방법을 구현하는 방법을 설명합니다.


가전제품 제조업체 프로젝트에서 제품 리뷰를 분석해 고객의 구매에 영향을 미치는 요소를 파악하자

특히 실무에서 접할 수 있는 문제를 제시하고, 문제를 정의하고 분석하는 과정을 제시함으로써 텍스트 분석에 대한 이해를 돕습니다.

또한, 책에서는 텍스트 데이터를 시각화하는 방법도 다룹니다. 텍스트 데이터를 시각화하면 데이터를 쉽게 이해할 수 있으며, 텍스트 분석 결과를 시각화하면 이해하기 쉽고 효과적인 결과를 얻을 수 있습니다.

이 책은 텍스트 분석에 대한 기초 지식이 없는 사람들도 분명 처음에는 어렵겠지만 그럼에도 불구하고, 예제와 함께 파이썬 라이브러리를 사용하는 방법을 설명하여 인내심을 갖으면 따라 할 수 있도록 구성되었습니다.

최근 챗GPT 열풍으로 많은 사람들이 자연어 처리에 대한 관심이 높아졌습니다. 이번 책을 통해서 자연어 처리 인공지능에 대한 기본 이론 및 실무에서 문제해결 방법에 대해서 더욱 깊이 있게 알아보는 시간을 가져보시길 추천드립니다. 감사합니다.


 


 

주피터 노트북은 필수입니다.

일단은 파이썬 초급자에게는 추천하지 않는다.

기본 파이썬 사용법을 익히고 나서 이 책을 심화과정으로 읽는것을 추천한다.

파이썬으로 헬로월드조차 찍어보지않았던 나에게는 정말 낯설었던 책이다.

 

일단 VSCode에서 파이썬을 여는것 부터가 우당탕탕 이었다.

파이썬을 하기위해 가상환경 설정도 알아야했고.. 등등등 

이렇게 기본적으로 프로젝트 생성 및 인스톨에 대해서 이해하고 어느정도 코드를 짠 후에 이 책을 읽으면

많은 도움이 될 것같다.

 

파이썬을 처음 해보려고 이 책을 구매하게된다면... 파이썬과 더 멀어질 수도 있을 것같다.

왜냐면

 

import regex as re


def tokenize(text):

  return re.findall(r'[\w-]*\p{L}[\w-]*', text)


text = "Let's defeat COVID together in 2023~!"

tokens = tokenize(text)

print("|".join(tokens))

 

 



이런 정규식 하나 쓰려는데도 일단은 파이썬 pip나 모듈 설정, 파이썬 터미널, 아나콘다에대해서 이해하고 사용해야 하기 때문!

 

근데 파이썬 사용법을 알고나면 점차적으로 사이드 프로젝트 할 때 유용하게 쓸 수 있을 책이다. 여러 라이브러리나 텍스트 추출시 사용할 수 있는 예제들을 많이 제공해주고 설명해주고 있는 책이기 때문이다.

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B8501475551 

 

파이썬 라이브러리를 활용한 텍스트 분석

분석하려는 텍스트에 맞는 처리 기법을 소개하는 도서로 실제 모범 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라인 구축, N-그램 분석, 텍스트 벡터화 등 다양한 전략과 그때 필

www.hanbit.co.kr

 

이번에 읽게 된 책은 '파이썬 라이브러리를 활용한 텍스트 분석' 입니다.

한창 ChatGPT로 뜨거운 이때, 좋은 타이밍에 읽게 된 책인 것 같습니다.

 

책에서는 GPT에 관한 언급은 없지만 GPT 또한 해당 분석들을 거쳐서 완성된 것이 아닐까 하는 생각을 하게 되었습니다.

 

책은 3단계로 분리되는 것 같다는 느낌을 받았습니다.

- 1~4: 기초 설명 및 데이터 수집

- 5~9 : 텍스트 분류&요약

- 10~13 : 텍스트 분석

 

간단하게는 3개의 파트로 볼 수 있다고 느꼈습니다.

 

 

책의 장점

- 데이터의 수집부터 분류, 요약, 분석 등 다양한 부분을 간단하게 설명하고 있음.

- 책 자체가 읽기 편한 구조로 되어 있음. 소스코드가 깔끔하게 정리되어 있어서 가독성이 좋음.

- 다양한 텍스트 분석 기법들을 책을 통해 배울 수 있고, 독자가 직접 구현해볼 수 있도록 소스코드 제공.

 

 

리뷰

3장에서는 웹 크롤링을 통해 텍스트를 수집하는 방법에 대한 내용이 나옵니다.

텍스트 분석에 필요한 데이터를 모으는 과정이기 때문에 생각보다 상세하게 소스코드를 제공하고 있습니다.

11장에서는 텍스트의 감정분석을 진행하면서 아마존 고객 리뷰 데이터를 사용하며 분석을 진행합니다.

한글로 된 데이터가 있었다면 좋겠지만 해당 데이터를 제공하는 곳이 없을것으로 생각되기도 했습니다.

나중에 데이터를 모은다면 직접 감정분석을 돌려보는 것도 좋을것 같습니다.

 

총평

 

분석이보다 보니 책이 생각보다는 어렵습니다.

예제들이 영어로 되어있어서 그런지 모르지만 데이터를 분석하는것보다 데이터가 어떤 의미를 가지는지를 스스로 이해하는게 어려웠습니다.

 

한글로 데이터 분석을 해보기 위해 데이터를 조금씩 수정중이지만 한글에는 다른 분석기들이 많이 있으니 알아보면 좋겠다는 생각도 했습니다.

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

올해 첫 리뷰 책으로 파이썬을 이용한 텍스트 분석 책을 선택 했다.

기존에 봤던 파이썬을 이용한 데이터 분석 책의 대부분은 수치 데이터에 대한 이야기 였다면
이번 책은 글에 대한 이야기 이다.

 

컴퓨터에서 수는 비교적 다루기 쉬운 데이터에 속하는 편이다.

오죽하면 컴퓨터는 글자도 내부적으로 숫자로 처리 할까....(2진수 밖에 못다루니 당연한 얘기지만...)

 

책은 총 13장으로 구성되어 있으며 제목에서와 같이 텍스트 데이터를 모으고, 정리하고, 필요에 맞게 가공하고 그 결과물에서 데이터가 말하고 싶어 하는 의미있는 무언가를 찾는 과정을 설명 하고 있다.

 

그 과정에서 웹사이트 크롤링 같은것도 잠시 다루고 있는데 요즘 여기저기서 크롤링에 대한 요구가 많아서 상당히 유용한듯 하다.

 

텍스트 데이터를 다루는 만큼 기존에 데이터 분석에서 사용했던 라이브러리들과는 다른 라이브러리들을 많이 사용하고 있다.

이 책에서 많이 등장하는 라이브러리는 아래 두 가지가 대표적인 것으로 보이는데 scikit-learn은 기계학습을 위한 라이브러리이고 spaCy는 자연언어 처리를 위한 라이브러리 이다.

아래는 각 라이브러리의 설명을 링크해 두었다.

- scikit-learn : https://ko.wikipedia.org/wiki/Scikit-learn

- spaCy : https://en.wikipedia.org/wiki/SpaCy

 

위와 같은 라이브러리를 이용하여 유엔총회의 일반 토의 내용이나 로이터 웹사이트의 기사, 자바 개발도구 버그 리포트 내용등을 가지고 텍스트 데이터를 정형화 하여 분석 하는 내용을 다루고 있다.

 

대부분이 머신러닝과 자연어어 처리 과정을 통하는 내용이어서 그 쪽 방면으로는 크게 경험이 없는 나로서는 역시 익숙하지 않음에서 오는 생소하고 재미있는 내용들이 많은 듯 했다.

특히나 자연언어 처리라고는...대학때 전공과목이 있기는 했지만, 그 당시에는 학부생이 접근해서 이해 하기엔 너무 난해한 내용이었고 요즘 chatGPT처럼 뭔가 직접 경험 해 볼 만한 서비스도 존재 하지 않았었다.

 

그러다 보니 책에서 소개하는 단어 가방 모델(bag of words model) 같은 내용은 따로 찾아 보지 않으면 어떤 내용인지 쉽게 와 닿지가 않았었다.(이제 책볼때 점점 검색 하는 내용이 많아 지는거 같다...늙어 가고 있단....ㅜㅜ)

 

전체적으로 평하자면, 전체적으로 내용도 좋고 많이 접하지 못했던 분야의 내용이라 재미도 있는 좋은 책인 것 같다.

보다보니 이 책도 O'Reilly 책인데, 개인적으로 O'Reilly 책이 실패한 적이 별로 없고 내용이나 구성이 나랑 잘 맞는거 같다는 생각이 든다.

 

 


시중에 많은 NLP 서적이 있지만,

풍부한 현실 예제를 통해 자연어 처리의 스킬들을 습득할 수 있습니다.

빅데이터에 대한 관심이 높다.
처음부터 원하는 데이터를 확보할 수 있으면 좋겠지만 그런 행운을 얻기란 쉽지 않다.
여러가지 데이터 유형 중 가장 쉽고(?) 간편하게 얻을 수 있는 데이터는 ‘텍스트'이다.

 

text.jpg

 

이 책 ‘파이썬 라이브러리를 활용한 텍스트 분석'은 텍스트 데이터와 관련있는 모든 프로세스를 설명하고 있다.
데이터 수집을 위한 웹사이트 스크래핑부터 시작해서 데이터 가공에 해당하는 전처리는 물론이고 그것을 활용한 분석 결과까지 보여주고 있다.
심지어 비지도 학습을 통해 모델링까지 만들 수 있다.
여기에 활용되는 라이브러리는 모두 파이썬으로 이루어져 있다.
데이터 분석을 위해 파이썬만 사용되는 것은 아니지만, 왜 파이썬을 데이터 분석에서 많이 사용하는지를 알 수 있었다.
아직 파이썬을 자유자재로 쓸 수 있는 것은 아니지만 이 책을 보면서 파이썬의 강력함과 다양성에 다시 감탄하고 있다.

‘영어'위주의 내용이라 ‘한글'을 적용하기에는 조금은 다른 방법을 찾아봐야 한다는 것이 아쉬웠다.
자연어 처리가 결코 그리 녹녹치 않음을 다시 한번 느낀다.
그럼에도 ‘텍스트 분석'에 대한 전반적인 과정을 모두 경험해 볼 수 있어서 좋다.
머신러닝도 그 과정 중 일부이기에 함께 공부할 수 있다.
이 책을 가이드 삼아 각 단계별로 심화 학습을 하면 좋을 것 같다.

[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]
 

NLP를 개인 프로젝트에 적용할 수 있도록 안내하는 책

 텍스트를 기반으로 한 AI 모델을 만들고자할 때 이 책으로 도움을 받을 수 있다. 일기나, 말투를 기반으로 사람의 감정을 분석하는 서비스나, 문법 자동 완성 서비스 등등 사람의 말을 기반으로 AI 모델을 학습하여 제공할 수 있는 서비스는 NLP를 기반으로 한다.  

개인적으로 졸업프로젝트로 NLP를 공부해야하는 상황이었는데 우선 NLP 모델을 만들어 학습하기 전에 원하는 모델을 학습하기 위한 데이터를 준비하는 과정부터 난감하였다. 데이터를 어디서 끌어와야할지, 크롤링을 한다면 어떻게 시작해야할지 그런데 이 책은 데이터를 준비하는 과정(크롤링)부터 모은 데이터들로 할 수 있는 다양한 NLP 모델들을 소개한다. 또한 모델의 성능을 높일 수 있는 방법을 차례대로 알려준다.  

이 책을 읽으면서 가장 좋았던 점은 NLP만 덩그러니 알려주는 것이 아닌 데이터를 수집하는 과정부터 소개하기 때문에 개인 프로젝트에 쉽게 응용할 수 있겠다는 점과 성능을 발전시킬 수 있는 방법이 제시되어 있다는 점이었다. 

물론 유의해야할 점도 있는데 머신러닝에 대한 기초지식이 없다면 이 책은 읽기 어려울 수 있다. 머신러닝에 대한 기초지식이 있고 특히 NLP 모델을 만들고자할 때 이 책을 읽으면 좋을 것 같다. 또한 한국어 기반의 모델을 만들고 싶다면 조금의 개인적인 노력을 더해야 한다는 점도 염두에 두는 것이 좋다. (이 책의 예제는 영어 문장이기 때문에)

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

NLP 분야는 Transformer 기반의 언어 모델을 필두로 빠르게 발전하고 있는 상태입니다. Hugging face를 비롯해서 온라인으로 공유되는 여러 Transformer 모델과 튜토리얼은 학습자 입장에서 무척 편리합니다. 관련 경험이 별로 없는 사람이더라도, 몇 시간만 투자하면 사전 학습된 언어 모델을 Fine-tuning하여 손쉽게 본인에게 필요한 Task를 수행하는 모델을 구축할 수 있습니다.

 

당장 모델 구축이 필요한 상황이라면 이 책은 그리 큰 도움이 되지 않을 수도 있습니다. 한, 두개의 작업을 진득하게 설명하는 책이 아니기 때문입니다. 대신, 이 책은 보다 폭넓은 수많은 자연어 처리와 텍스트 분석 케이스에 대한 해답과 해결 과정을 제시합니다. 즉, 자연어 처리 전반에 대한 지식과 활용 케이스를 익히고자 하는 학습자에게 큰 도움이 될 수 있는 책입니다.

 

약 100페이지 이상을 할애하여 데이터셋 구축과 관련된 내용을 다루는 점은 특히 인상적이었습니다. 자주 등장하는 웹 스크래핑 라이브러리 뿐만 아니라, Tweepy를 비롯해 다양한 상황에서의 데이터셋 수집과 구축을 위한 라이브러리를 소개하고, 그 외의 대안까지 제시합니다. 이 과정에서 기본적인 전처리 과정까지 다루고 있기에, 5~6장까지 진행하면 학습자는 기본적인 자연어 처리 지식을 습득할 수 있습니다.

 

이후에는 기성 자연어 처리 모델들부터 시작하여, Transformer 모델까지, 일반적인 자연어처리 관련 도서와 비슷한 구성을 취합니다. 하지만 여기서도 분명한 차별점은 존재합니다. 예를 들어, 11장의 텍스트 데이터를 이용한 감성 분석 파트의 경우, 기존 도서 또는 웹 상의 여러 튜토리얼은 상당수가 BERT 등의 모델을 활용하여 Fine-tuning을 통해 손쉽게 감성 분석을 해내는 모델을 구축하는 것을 다룹니다. 하지만 이 책은 케이스 별로 문제를 해결하기 위한 여러 방안을 소개합니다. 

 

해당 파트의 경우, 아마존 고객 리뷰의 감성 분석을 위해, 먼저 어휘집을 사용하는 어휘 기반 감성 분석을 이용합니다. 이후, 더 좋은 성능을 낼 수 있는 지도 학습 접근법으로 SVM을 활용하며, 마지막으로 BERT를 이용한 Fine-tuning 기반의 감성분석 모델을 훈련 시킵니다. 

즉, 주어진 문제를 해결할 수 있는 가장 강력한 방법만을 제시하는 것이 아닌, 기성 방법론까지 제시하면서 독자가 텍스트 분석의 토대를 쌓을 수 있는 콘텐츠를 충분히 제공합니다. 또한, 문제에 따라 시간과 자원이 많이 필요한 딥러닝 모델을 사용하는 것이 반드시 정답은 아닐 수 있기에, 여러 엔지니어링 기법과 방법론을 충실히 제공한다는 점이 무척 마음에 들었습니다.

 

NLP 분야에서 Transformer 모델이 이미 범접할 수 없는 성과를 내고 있기에, 아예 Transformer만을 중점적으로 다루는 책도 다수 등장하고 있습니다. 당장 필요한 SOTA 모델을 학습하는 것도 중요하지만, 이에 못지 않게 기초부터 차근차근 다져가며 관련 지식을 쌓는 것 또한 중요하다고 생각합니다. 이제 막 첫걸음을 떼어 가시는 NLP 학습자 분들, 혹은 저처럼 NLP의 기본기를 다져가며 한층 더 관련 지식을 확장할 필요성을 느끼는 기존 학습자 분들 모두에게 추천 드릴만한 좋은 교재인 것 같습니다.

 

 

본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2022> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.

(해당 포스트에서 소개하고 있는 "파이썬 라이브러리를 활용한 텍스트 분석" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

파이썬 라이브러리를 활용한 텍스트 분석

분석하려는 텍스트에 맞는 처리 기법을 소개하는 도서로 실제 모범 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라인 구축, N-그램 분석, 텍스트 벡터화 등 다양한 전략과 그때 필

hanbit.co.kr

인공지능이 실생활에 적용되는 분야를 꼽으라면 대표적인 분야가 보통 NLP로 표현되는 자연어처리일 것이다. 몇년전만 해도 뭔가 시대를 앞서나가는 듯한 사례를 제공했던 AI assistant도 이제 다양한 업체에서 제공하는 대표적인 케이스가 되었고, 이밖에도 사용자의 감정을 이해하고 어떤 상품을 추천하는데 있어서 자연어처리는 이런 기술들을 실제로 실현시킬 수 있는 핵심 기술이 되었다.

파이썬 라이브러리를 활용한 텍스트 분석

이번에 다루는 책도 역시 이 자연어처리에 관련된 내용을 다루고 있다. 그런데 일단 책의 내용을 다루기 전에 책 제목에 대해서 언급하고 싶은게 있다. 사실 이 책의 원제는 Blueprints for Text Analytics Using Python 라는 제목을 가지고 있는데 직역을 하자면 파이썬을 활용한 텍스트 분석에 대한 청사진을 뜻한다. 제목만큼이나 이 책에서는 다양한 라이브러리와 어떻게 보면 머신러닝과 딥러닝을 활용한 자연어 처리에 대한 내용을 풍부하게 담고 있다. 그런데 한국어판에서는 파이썬 라이브러리를 활용한 텍스트 분석이라는 제목을 가졌는데, 사실 시중에 나와있는 대부분의 자연어처리 책들이 대부분 파이썬 라이브러리를 사용한다. 어떻게 보면 책이 가진 특징을 잘 못 살린 케이스가 아닌가 싶다. 물론 이런 제목을 가진 나름의 이유가 있겠지만..

아무튼 이 책은 말한대로 텍스트 분석에 필요한 전처리 기법 및 머신러닝을 통한 기본적인 분류 기법, 더 나아가 transformer를 활용한 감정 분석, knowledge graph와 같은 고급 기법들에 대한 소개가 다뤄진다. 단순히 이론적인 설명만 기술되어 있는 것이 아니라 이론 내용을 직접 다뤄볼 수 있는 예제가 같이 제공되는데, 생각보다 이 예제의 퀄리티가 좋다고 생각한다. (실제로 원서의 평에도 github을 통한 예제를 통해서 내용 이해가 쉬웠다는 내용이 있기도 하다.) 그리고 개인적으로는 물론 이론적인 내용도 어려운 부분이 있겠지만, 자연어처리를 실제로 다루면 어려운 부분 중 하나가 주변 라이브러리 사용법이 너무 복잡하다는 것인데, 이 책은 그런 부분에 대한 설명도 포함하면서 뭔가 응용을 할 수 있는 여지도 제공한다. 참고로 이 책에서는 자연어처리를 위한 라이브러리로 spaCy나 Gensim, NLTK 등을 사용했고, (아 여기까지 읽다보니까 어떻게 보면 이 관점에서 제목을 지었을 수도 있었겠다 하는 생각이 들기도 했다.) 혹시라도 이 부분이 궁금한 사람은 출판사에서 제공하는 미리보기에 각 장별 사용 라이브러리와 데이터셋에 대한 기술이 요약해서 되어 있으므로 한번 보면 좋을것 같다. 이론적인 내용을 떠나 마지막 장에서 다루는 클라우드 환경에서 데이터 분석을 할 수 있는 방법에 대해서 소개되어 있는 부분은 진짜 현업에서 활용할 수 있을 법한 내용을 다뤘기에 해당 분야로 일하는 사람들에게는 조금 더 현실적인 내용이 되지 않을까 생각한다.

[나의 한줄 추천사]

- 자연어 처리 분야는 실무에서 가장 필요한 머신러닝의 기술중에 하나일 것이다. 자연어 처리의 청사진이 드디어 나왔다.

[책 추천 이유]

- 한국어 자연어 처리 책들은 많이 나와 있는데, 오히려 "영문 자연어 처리" 는 드문 것 같다. 이 책의 예제코드들은 "영어" 기반의 자연어 처리이며, 바로 실무에 적용할 수 있도록 설명과 코드들을 제공하고 있다.

[내가 찾고자 했던 질문들]

1. 자연어 처리 분야에 필요한 기술들은 어떻게 있나?

- 데이터 수집 : 웹스크래핑, Open API 이용

- EDA : N그램을 이용한 단어 빈도 분석, 빈도 타임라인 생성, 빈도 히트맵 생성

- 전처리 : 언어감지, 맞춤법 검사, 토큰 정규화

- 모델링 : 워드 임베딩, 유사도 측정, 텍스트 분류, 텍스트 클러스터링 (비지도 학습), 텍스트 요약, 텍스트 감정분석, 지식그래프 구축

- 모델 배포 : 컨테이너 생성, Rest API 서버 구축, 배포 자동화

2. 데이터 분류 작업을 수행하려는데 데이터 불균형한 상태이다. 해결 방법은?

- 클래스의 불규형 문제는 upsampling (oversampling), donwsampling, SMOTE (oversampling 일종) 있는데, 대부분 클래스의 양을 한쪽으로 맞추는 방식이라고 보면 된다. 데이터의 질은 어느 정도 Trade Off 가 필요하며, 실험을 통해서 적합한 방법을 찾아내야 하겠다. 

3. 자연어 처리 분야에서 가장 많이 쓰이는 "감정 분석"은 어떻게 이뤄지나?

- 어휘 기반의 감정분석 사용

- 머신러닝 분류 사용

- 딥러닝을 사용한 사전 훈련된 언어 모델 사용

 

 

4. 챕터 실습을 하고 싶다면?

https://github.com/hanbit/blueprints-text

 

 

 

 

 

파이썬으로 자연어 처리를 하고 싶다면

공부해볼만한 책 한 권을 소개하고자 한다.


표지

 

원서 제목은 다음과 같다.

"Blueprints for Text Analytics Using Python"


초판


발행한지 얼마 안된 따끈따끈한 책이다.


원서는 2020년 12월에 출간되었으니

약 2년의 시차가 있어서 조금 아쉽기는 하지만

지금 공부하기 해서 활용하는데에는 부족함이 없다.


독자

 

이 책은 텍스트 분석에 대해서 처음 접하는 분들이 아니라

텍스트 분석을 실제 구현하고자 하는 분들을 위한 책이다.


제약

 

다만, 기본적으로 영어를 기반으로 하기 때문에

한글 텍스트 분석을 위해서는

추가적인 학습이 필요하긴 하다.


원서와 2년의 차이가 있는데,

이왕이면 실습 코드만이라도 한글 지원을 추가해줬으면

훨씬 더 좋았을 것 같다.


챕터 개요

 

각 챕터(장)에서 어떤 데이터셋을 사용하고

어떤 라이브러리를 이용했는지

깔끔하게 정리를 해줘서

필요할 때 손쉽게 찾아볼 수 있다.


추천 도서

 

이 책에서는 기본적인 이론 등에 대해서 설명해주지 않기 때문에

추가적으로 공부하면 좋을 책들을 추천해주고 있다.


심지어 한빛미디어 출판이 아닌 책도 추천을 해준다 ^^


본문

 

책은 아쉽게도 흑백이다.

컬러 추종자로써 조금 아쉽다 ^^


원서 eBook을 보면 컬러로 나오던데...


구성

 

각 챕터(장)별로

학습목표와 데이터셋에 대한 설명을 해준다.


해당 챕터에서 뭘 하고자 하는 것인지

어떤 데이터를 가지고 하는 것인지

설명을 해주기에 공부할 때 많은 도움이 된다.



그리고, 중요한 실습 코드 !!!


https://github.com/blueprints-for-text-analytics-python/blueprints-text


실습 코드

각 챕터별로

README.md

내용을 너무나 예쁘게 잘 작성해줘서 기분이 좋았다.


JupyterNotebook


JupyterNotebook 파일도 깔끔하게 작성되어 있다.


사실 책 내용을 보면 책에서 설명하고 있는 내용이

JupyterNotebook 파일에 작성되어 있으면

공부할 때 훨씬 더 손쉽게 접근할 수 있을 것 같지만...

그것까지 바라는 것은 욕심인 것 같기도 하고...



NLP에 대해서 기본적인 사항을 공부한 다음

실제 코드로 만져보고 싶은 분들에게는

엄청 유용한 도움이 될 책이다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."




[도서 소개]

텍스트마다 적절한 분석 기법은 따로 있다!

당신의 경쟁력을 완성할 텍스트 분석 전략서

텍스트에서 좋은 정보를 찾는 이가 뛰어난 경쟁력을 갖춘다. 머신러닝 기반 자연어 처리 기술이 발전함에 따라 다양한 텍스트 분석 기법이 속속 등장하고 있다. 수많은 기법 중에서 어떤 방법을 언제 어떻게 사용해야 유용한 정보를 얻어낼 수 있을까? 이 책은 유엔총회 일반토의 연설문부터 트위터, 로이터 뉴스 기사 등 다양한 데이터셋을 사용하여 상황별로 가장 유용한 텍스트 분석 기법을 소개한다. 실제 모범 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라인 구축, N-그램 분석, 텍스트 벡터화 등 다양한 전략으로 텍스트 분석과 자연어 처리를 정복해보자.

 

[대상 독자]

- 갖고 있는 텍스트에 적합한 분석법을 판단하려는 개발자

- 빠르게 초기 결과를 만들어서 프로젝트의 성공 가능성을 검토하려는 기획자

- 문제를 풀기 위한 베이스라인을 빠르게 작성해야 하는 데이터 과학자

 

[주요 내용]

- API와 웹페이지에서 데이터를 추출하는 법

- 텍스트 데이터를 통계 분석과 머신러닝에 사용할 수 있도록 전처리하는 법

- 머신러닝을 활용한 분류, 주제 모델링, 요약 기법

- 단어 임베딩을 활용한 구문 유사도 시각화 방법

- 명명된 개체와 그 관계를 기반으로 한 지식 그래프 구축법


[추천사]


  • K.V.S. 딜립 (그레이아톰 개발자)
    첫 리서치 때 이 책이 있었다면 큰 도움이 되었을 겁니다. 탄탄한 기초와 수많은 연구를 토대로 머신러닝을 비즈니스 프로젝트에 접목할 만한 예제가 많아 매우 실용적입니다.

  • 크레이그 트림 (캐주얼리티 링크 시니어 엔지니어)
    엔지니어링 분야의 체계적인 요구와 데이터 과학의 반응적 특성을 매끄럽게 결합했습니다. 기업 프로젝트에 도입 가능한 해법과 혁신적인 기술, 탐색 시나리오를 균형 있게 소개합니다. 실력을 한 단계 높이고자 하는 데이터 엔지니어에게 추천합니다.

  • 니란트 카슬리월 (Verloop.io)
    구글링한 결과를 그대로 옮겨 적고 제대로 돌아가기만을 바랐다면, 이 책을 읽고 나서는 프로젝트를 완성할 코드를 바로 떠올릴 수 있을 겁니다. 소개하는 전략마다 명확한 이름이 붙고 코드를 중심으로 한 설명 덕분에 시간과 수고를 덜게 됩니다.

  • 수딥 로이 챠우더리 (Eugene.ai 창업자 겸 CEO)
    이 책은 오늘날 생산 시스템에서 수행되는 텍스트 분석 및 NLP 분야에 활용할 유용한 방법과 기술을 빠짐없이 포괄적으로 살펴봅니다. 현업에서 영감을 받은 데이터셋과 사용 사례를 통해 대규모 조직에서 마주할 복잡한 비즈니스 문제의 해결 방법을 통찰하게 됩니다.



[서평]

 이 책은 데이터 과학자와 개발자가 텍스트 분석 및 자연어 처리를 비즈니스에 쉽게 도입할 수 있게 도와준다. 비즈니스에서 활용할 수 있는 전략을 소개하고 이를 직접 적용할 수 있는 솔루션에 대해서 배울수 있다. 전략은 문제에 일반적으로 적용할 수 있는 해법으로, 쉽게 복사하고 조정할 수 있는 템플릿을 제공해 해결하려는 문제에 코드를 재사용 할수 있다. 현업에서 실제 도입할 수 있는 모든 전략은 데이터 분석, 자연어처리, 머신러닝 전용 파이썬 프레임워크를 사용하고 기본적인 모델과 알고리즘을 배울수 있다. 파이썬 라이브러리를 활용한 텍스트 분석에서는 자연어 처리 모델에 대해서는 자세히 다루지는 않지만 입문하는데 필요한 정도의 기본 내용은 다루고 있다. 다양한 솔루션 접근 방식을 설명하고 각각의 장단점에 대해서 배울수 있다. 특정 종류의 문제에 대해서 해결하는 방법을 배우면서 데이터 및 요구 사항에 맞게 변경해 코드를 재사용 할수 있는 응용력을 기를수 있을것이라 생각한다. 

 

 

 "한빛미디어 리뷰어 활동을 위해서 책을 제공받아 작성된 서평입니다."


오늘 리뷰할 도서는 [파이썬 라이브러리를 활용한 텍스트 분석] 이다.

 
 
 

표지 IMG_20221127_200859.jpg

 

 
뭔가 분석을 한다는 것은 어렵고 복잡하기도 하지만 때로는 재미 있고 흥미 진진하기도 하다.
 
내가 경험한바로는... 
 
- 이미지 분석 -> 어렵고 복잡

- 텍스트 분석 -> (이미지 분석에 비해 덜 어렵고) 재미 있고 흥미 진진
 
물론 개인차가 많이 있긴 하겠지만... 어쨌든 이 책은 텍스트 분석에 대한 거의 모든 내용을 다루고 있다(내가 아는 한에서).
 
텍스트 분석을 위한 기본적인 이론과 텍스트 데이터 수집, 추출 등의 기본적인 내용에 대해서도 모두 설명하고 있으며,
 
머신러닝과 다양한 알고리즘에 대해서도 다루고 있다. 특히 8장의 비지도 학습에 대한 내용은 좀 의외였다.
 
텍스트 분석을 하는데 비지도 학습을 이용한다고? 내용이 어려워서 이해를 다 하기는 어렵지만 다른 챕터들도 신선했다.
 
마치 요즘 인공지능으로 많이 구현해서 사용한다던 기능들이 하나의 챕터들로 자리 잡고 있는거처럼 보였다.
 
마지막 13장은 대부분 부록처럼 구성해서 딱히 안보는 경우가 많은데, 이 책의 마지막은 실무에서 텍스트 분석을 
 
적용하기 위한 부분에 대해서도 다루고 있어서 좋았다.
 
아 챡운 초급자용이 아닌 초중급자용이므로 내용이 쉬운 편은 아니었다. 
 
또한 알고리즘이 모델 관련해서는 수학적인 내용도 상당히 필요하므로 역시나 어려운 내용이다.
 
분량은 500페이지가 넘어가므로 많은 내용을 담고 있어서 좋았지만,
 
한국어 처리에 대한 내용이 전혀 없다는 것과,
 
아래 보이는 히트맵이나, 워드 클라우드는 무조건 컬러 인쇄로 봐야 하는것인데 흑백이라서 조금 아쉽다.
 
 

흑백 이미지 9.png

 

 
마무리 하자면, 텍스트 분석에 관심이 있다면 이 책을 꼭 보시라. 

텍스트 분석에 대한 많은 부분을 다루고 있어서 좋은 책이라고 생각한다.
 
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

OpenAI의 DALL-E 2나 구글의 Imagen, Stability AI의 Stable Diffusion과 같은 text-to-image 딥러닝 인공지능 모델의 등장과 해당 모델들이 보여주는 놀라운 수준의 결과물들로 인해 덩달아 NLP(Natural Language Processing, 자연어 처리)에 대한 관심도 아주 높아진 듯 합니다. NLP 를 다루는 다른 책들이 보통 기본적인 개념과 내용부터 차근차근 다루는 것과 다르게 이 책은, 뭐랄까 비유하자면 마치 수능 유형별 기출문제집을 보는 느낌으로 구성되어 있습니다. Pandas 를 활용한 비교적 단순한 통계적 탐색 부터 Transformers 를 이용한 딥러닝 모델을 이용한 제품 리뷰 분석까지 현업에서 다루게 되는 대부분의 NLP 문제 해결 패턴을 설명하고 있습니다.

 

사실 명확한 결과를 보여주는 영상과는 다르게 문자를 다루는 영역은 상대적으로 흥미를 잃기 쉬운 편인데, 이 책은 실무에서 당면하게 될 문제 유형에 따라 시행착오를 줄이고 빠르게 따라갈 수 있게 내용이 구성되고 최적화 되어 있어, 집중력을 잃지 않고 보다 잘 따라갈 수 있다는 느낌을 받았습니다. 서론에서 역자가 밝히고 있듯 아쉽게도 한글에 대한 처리는 다루고 있지 않지만, 현업에서 관련 경험이 없는 상태에서 NLP 관련한 업무를 진행하게 된다면 이 책이 아주 훌륭한 길잡이가 될 것이라 생각합니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

분석에 필요한 텍스트를 수집하는 방법부터 시작해서 텍스트에서 여러 가지 방법을 통해 정보를 추출하고, 머신러닝을 통하여 분석하는 과정까지 담고 있다. 모든 코드는 깃헙을 통해 직접 실습해 볼 수 있다. 각 장마다 다른 여러가지 데이터를 사용하여 각 데이터에 따라 맞는 전략을 설명한다. 각각의 데이터를 활용하여 풀 수 있는 문제, 문제를 풀기 위해 필요한 라이브러리와 전략을 다양하게 소개하여 실제 비즈니스에서 발생하는 다양한 문제에도 쉽게 적용할 수 있다. 


1-3장에서는 다양한 데이터셋을 수집하는 방법,

4-5장에서는 텍스트를 머신러닝에 활용하기 위해 정제하고 처리하는 방법,

6-12장에서는 수집한 텍스트를 머신러닝을 통해 분류, 요약 등의 테스크를 수행하는 과정,

13장에서는 프로덕션에서 텍스트 분석을 사용하는 방법을 담고 있다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

인공지능 기술에 대한 접근성이 낮아지면서, 그 기술을 활용할 수 있는 도메인들이 많이 늘어났습니다.

대충 어느 분야에서 일하는지/관심을 갖는지에 따라 사용할 수 있는 부분이 다르긴 하지만, 전통적으로는... 신호처리나 영상 부분 혹은 전처리 과정을 통해서, 구조적 데이터로 정리된 데이터의 분류/군집/회귀(예측) 등을 위해 사용되고 있죠.

이 책은, 그 중, 자연어 문서를 처리하기 위한 방법에 대해 이야기하고 있습니다.

사실, 알파고가 나오기 전까지, 바둑은 컴퓨터가 사람을 이길 수 없다고 했었지만, (게임트리의 복잡성 때문에, 컴퓨터가 수읽기를 제대로 할 수 없다는 것이 당시 전문가들의 의견이었죠), 실제로 해 보니까 사람을 뛰어넘었죠.

이전 심볼릭 방법을 통해, 명목지(Explicit Knowledge)를 만드는 것이 목적이었던 클래식 AI를 하던 사람들이 말하던, "사람이 잘 할 수 있는 일" vs "기계가 잘 할 수 있는 일" 의 개념이 무너지기 시작한 것이죠.

자연어 처리의 복잡성 때문에, 기계가 하기에는 어렵다고 생각했던 일, 그래서, 언어학자의 지식을 어떻게 AI로 만들어야 할 것인지에 대한 문제가, 어느 순간, 그냥 자연어를 데이터로 처리해버려도 동작해버리는 결과가 나와버린 것이죠.

 

자연어 처리 능력의 놀라움은 사실, 옛날부터 인공지능을 해 왔던 사람들에게나 놀라운 일이지, 2010년 이후에 AI 기술을 접한 사람들에게는, 당연한 일인지도 모르겠습니다.

 

각설하고,

이 책은 텍스트를 처리하기 위한 기술을 13개의 챕터를 통해 알려줍니다.

챕터 1에서는 가장 기본적인 텍스트 분석의 배경인, 단어를 찾고, 빈도수를 재고, 단어들 사이의 관계를 계산하는 방법을 소개합니다.

챕터 2에서는 트위터 데이터를 가져오기 위한 API 사용법을 소개합니다.

챕터 3에서는 웹스파이더를 통해 공개된 데이터를 자동으로 가져오는 방법을 이야기합니다.

챕터 4에서는 팬더스를 이용해, 텍스트 데이터에서 단어를 뽑아내는 방법, 그리고 단어를 구분하기 위한 토큰화 방법과 관련된 이야기들 (불용어제거, 형태소, 어근 찾기, 개체명 찾기)에 대해서 이야기를 합니다.

챕터 5에서는 지금까지 본 내용을 바탕으로 간단한 실습을 해 봅니다. 이 실습이라는 것은 실제 스크레치 빌딩을 통한 실습이 아니라, 알려진 텍스트 라이브러리를 사용하는 부분입니다.

챕터 6과 7에서는 텍스트를 분류하는 방법을,

챕터 8에서는 토픽맵을 이용한 군집화 방법을,

챕터 9에서는 텍스트를 요약하는 방법을,

챕터 10에서는 최신(이라고 하기에는 이미 그 시작은 한참된 기술이죠) 기술인 단어 임베딩 기법을

챕터 11에서는 감성 분석하는 방법을

챕터 12에서는 지식그래프 그리는 방법을

챕터 13에서는 실전에서 텍스트를 분석할 때 주의해야 할 점들을

 

이야기하고 있습니다.

확실히, 텍스트 분석을 하는데 필요한 주요 텍스트 분석의 주제들과 해당 주제를 해결하기 위해 잘 알려진 라이브러리들을 사용하는 방법을 말해주고 있는 책이었습니다.

하지만.. 라이브러리 사용에 대한 부분에 좀 더 힘을 주고 있어서, 실제, 그 라이브러리의 함수가 어떻게 문제를 해결하고, 함수를 호출할 때 사용하는 파라메터의 종류와 각 종류의 의미에 대한 설명.. 즉 이론에 대한 설명 부분은 부족했습니다.

"어떻게 하는지는 알려주지만, 왜 그렇게 해야 하는지는 나중에 직접 찾아봐라"

라고 말하는 책이었습니다. 하지만, 원래 텍스트 분석이라는 분야가 너무 방대하기 때문에, 500페이지도 안되는 책 한권에 더 많은 것을 기대하는 것 자체가 무리긴 하죠. 현실적으로, 텍스트분석에 대한 입문서로는 최고의 책이 아닐가 싶었습니다.

하지만, 더 큰 문제는, 이 책은 영어로 된 텍스트를 기준으로 한다는 거죠. 그리고 한글과 영어는 다른 체계라는 것입니다. 이 책의 내용을 따라할 때, 텍스트의 언어가 바뀌면, 기대하는 결과가 나오지 않게 됩니다. 한글 처리를 하기 위해서는 다른 방법을 사용해야 한다는 점은 명심하고 해야 할 것입니다.

한글 자연어 처리를 원한다면, 이 책 말고 다른 책을 보시는 것이 맞지만, 텍스트 분석에 대한 프랙티컬 수준에서의 입문서를 찾는다면, 이 책만한 것이 없다고 할 수 있습니다.

-------------

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

-------------

 

파이썬을 바탕으로 AI개발은 이세돌과 알파고 대전 이후 많은 분야에서 투자도 하고 인력도 늘리는 추세이다.

 

비단 강화 학습뿐만 아니라 자연어 처리 등 다양한 분야에 기대가 큰 상황 속에 꾸준히 관심을 두는 분야는 텍스트 부분인데요.

텍스트 분석을 처음 접하는 분들에게 추천해 드릴만한 책이 있어서 소개해드리려고 합니다.

 

바로 ‘파이썬 라이브러리를 활용한 텍스트 분석’입니다.

 

이 책은 뉴스 등 텍스트 데이터 분석할 방법들이 상세히 서술돼 있어서 초보자분들도 쉽게 이해할 수 있습니다.

그럼 두 가지 정도로 요약해 보도록 하겠습니다.

 

 

02-.jpg

 

 

1) 데이터 수집 > 데이터 전처리 > 데이터 분석 > 시각화

데이터 처리를 할 때 제일 어려운 부분은 분석할 데이터가 없는 것입니다.

 

그럴 때 다른 곳에서 몰래 가져와서 쓰면 저작권에 위배될 수도 있어서 꺼림직하죠.

 

데이터를 관리하는 분이나 분석할 때는 어떻게 수집할지 있는 데이터를 어떻게 가공할지 생각을 많이 하는 게 중요합니다.

 

어떻게 생각을 할 수 있을까요?

이 책을 통해서 보면 데이터를 추출하는 개념부터 API 등에서 가져오는 방법까지 상세히 설명해 줍니다.

 

전체 사이클 한번 보는 것과 안 보는 것은 개념을 잡는 데 있어서 큰 차이가 납니다.

 

전체적인 그림을 이 책을 통해서 분석이 처음인 분들에게 추천합니다.

 

 

03-.jpg

 

 

2) 영어 참 좋지만, 여긴 ‘한국’

이 책에 아쉬운 점은 한국어에 대한 분석이 없는 점입니다.

 

세계 공용어라 영어로 된 분석 자료들은 즐비합니다.

 

논문들만 봐도 한국어로 된 좋은 논문을 찾기 어려운 것처럼 말이죠

 

하지만, 한국에서 비즈니스를 할 때 어순 문제, 말뭉치 문제 등 이슈가 크게 다가올 것입니다.

그러한 점들은 차차 영어로 된 베이스에서 텍스트 분석을 해보시면서 맥락을 이해하시고 다양한 데이터들을 수집한 후 도전해 보시면 쉽지는 않지만 노하우가 쌓이겠다고 생각합니다.

 

01-.jpg

 

 

Ps

오랜만에 텍스트 분석에 관련된 책을 읽었는데요.

다양한 라이브러리를 쓰는 방법을 잘 설명해 주고 있어서 좋았고 코드 들도 쉽게 작성돼 있어서 실습하기 편했습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”



 

 

[BOOK] 파이썬 라이브러리를 활용한 텍스트 분석  - 젠스 알브레히트, 싯다르트 라마찬드란, 크리스티안 윙클러 지음 / 심상진 옮김
 

2022-11-22 22.25.35.jpg

 

부제: "텍스트에서 통찰을 이끌어내는 98가지 자연어 처리 전략"
 
세상에는 다양한 데이터들이 있지만 인류가 가장 오랜기간 쌓아온 데이터가 있습니다.
문자, 글. 바로 텍스트입니다.
텍스트를 분석하는 것은 컴퓨터가 잘 할까요? 사람이 잘 할까요?
아마 사람이 더 잘 할 겁니다. (모국어로 작성된 글에 한정해서?)
단어의 의미, 문법이 정리되어 있지만 텍스트 속에서 변화가 심합니다.
이런 변화를 컴퓨터는 쉽게 알 수 없기 때문에 텍스트를 분석하는 것을 잘 못합니다.
컴퓨터를 활용해서 텍스트를 분석하는 것을 '자연어 처리(Natural Language Processing)'라고 합니다.
NLP는 인공지능의 한 분야로 머신러닝을 적용하여 텍스트를 처리하고 해석합니다.
 
서두가 길었습니다. 이 책은 파이썬 라이브러리를 활용해서 자연어 처리를 하는 방법에 대한 내용을 담고 있습니다.
원서의 제목이 'Blueprints for Text Analytics using Python'인데 책을 읽어보면 'blueprints'라고 쓴 이유를 알 수 있습니다.
번역서의 표지에 '98가지 자연어 처리 전략'이라는 표현이 있습니다. (원서에서는 '전략'이 'blueprint'로 작성되어 있습니다.)
 

청사진(靑寫眞) 또는 블루프린트(blueprint)는 아키텍처 또는 공학 설계를 문서화한 기술 도면을 인화로 복사하거나 복사한 도면을 말한다. 은유적으로 "청사진"이라는 용어는 어떠한 자세한 계획을 일컫는 데에 쓰인다.

 
각 장마다 텍스트 분석에 필요한 내용을 다루면서 간단한 설명과 활용 할 수 있는 전략을 소개합니다.
전략의 내용은 실제 업무에서 활용가능한 것들이라 수정해서 재활용이 가능한 것들입니다.
이런 전략(blueprint)들을 소개하는 책입니다.
전략마다 다루는 라이브러리들이 다양해서 깊이있게 파고들면서 공부하려면 시간과 노력을 많이 들여야 할 것 같네요.
파이썬으로 텍스트를 가볍게(?) 다루는 책을 찾는다면 이 책은 살며시 덮으시고, 파이썬으로 자연어 처리를 하는 방법이 궁금하다면 시간을 투자하시기 바랍니다.
이론에 대한 설명이 많지 않아서 활용 위주의 사용법을 배우기에 좋은 책입니다.
 
"한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다."

비정형 텍스트 데이터는 정형 데이터에 비해 전처리가 어렵기도 하고 또 여러 전처리 방법을 사용한다 하더라도 막상 시각화를 하거나 분석을 하다보면 제대로 된 인사이트를 얻기 위해 텍스트를 정제하는 과정이 쉽지 않음을 느낀다.

하지만 텍스트 데이터를 분석할 수 있다면 방대한 논문 속에서 트랜드를 이루는 키워드를 찾아낼 수도 있으며 방대한 텍스트를 시각화해서 인사이트를 얻는데 도움이 될 수도 있다.

이 책은 이렇게 텍스트를 통해 의미를 찾기 위한 과정을 찾는 방법을 알려준다.

이 책의 특징

  • 대부분 파이썬 라이브러리를 활용한다.
  • 라이브러리를 활용하기 때문에 복잡한 수식, 통계를 직접 계산할 수 없더라도 해당 라이브러리의 활용방법을 익히게 되면 비교적 간단한 API를 통해 의미를 찾아볼 수 있다.
  • 그런면에서 파이썬 기초와 라이브러리에 대한 활용법을 알고 있는 대상에게 적합한 책이다.
  • 기본적인 라이브러리 활용법을 익히고 텍스트 분석에 대한 이론적인 내용을 어느정도 이해하고 있다면 사이킷런, Gensim, spacy 등의 라이브러리를 활용하여 의미를 찾는 방법을 소개하고 있다.

책을 읽기 전에 알고 있다면 좋은 점

  • 파이썬 기본 문법에 대한 이해와 라이브러리의 개념을 이해하고 있다면 책을 읽는데 도움이 된다.
  • 소스코드를 제공하고 있기 때문에 github( https://github.com/hanbit/blueprints-text )을 통해 실습과 책의 내용을 함께 볼 수 있다.
  • 의존성 있는 라이브러리 설치가 안 되어 있다면 동작을 하지 않을 수 있기 때문에 책의 내용을 잘 살펴보며 관련 라이브러리를 설치해야 사용할 수 있는 도구들이 있다.
  • 이 책을 읽고 어디에 활용할지에 대한 고민을 갖고 시작하는 것도 좋다.

사용하는 라이브러리

  • 각 장의 개요를 보면 사용하는 라이브러리가 나온다.
  • 사이킷런 뿐만 아니라 Gensim, Spacy, NLTK, Transformers 등의 활용방법이 나오며
  • 활용사례를 통해 각 라이브러리를 어떤 상황에서 사용하면 좋은지에 대한 감을 잡기 좋다.

텍스트 데이터를 통한 다양한 시각화 사례

  • 각종 시각화 도구 뿐만 아니라 LIME, ELI5, 그래프 등의 도구를 사용하여 텍스를 분석하고 시각화 하는 다양한 기법을 소개한다.
  • 기본적인 워드클라우드에서 시작해서 시각화나 요약, 전처리를 위한 행렬분해 기법을 통한 차원축소 방법을 다루고 있다.

텍스트 수집, 전처리, 시각화, 토픽모델링 뿐만 아니라 머신러닝, 딥러닝 기법을 활용한 텍스트 분석까지 텍스트 데이터 관련 라이브러리의 모든것을 알아볼 수 있는 책이기도 하다. 한국어 관련 전처리 도구에 대한 설명이 없다는 점이 조금 아쉽기는 하지만 텍스트 분석에 대한 A-Z 을 꼼꼼하게 알려주는 책이다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

실무에 텍스트분석을 적용하고자 한다면 참고하기 적합한 책이다.

 

필요한 코드만 짚어준다.

Info, describe 등 데이터분석 전 메타 정보 등을 확인할 때 필요한 것들을 간략하게 확인한다.

 

간단한 텍스트 전처리 파이프라인

텍스트 데이터 -> 변환 -> 토큰화 -> 불용어 제거(stopwords) -> 준비된 토큰

 

한국어는 이 불용어 처리가 그렇게 쉽게 되진 않더라. 아무래도 영어에 비해서 조사 등이 많고 한자 기반의 동음이의어도 많다. 그래서 대부분 텍스트로 뭔가 응용하고자 할 때 워드클라우드로 끝나는 경우가 많았다.

 

기본적인 NLP 내용이 포함되므로 실제 코드와 함께 내용을 복습하고 싶은 사람이라면 잘 이용할 수 있겠다.

 

데이터를 추출하는 방법에 대해서도 안내하고 있다. API라던가 웹사이트 스크래핑이라던가. 실제 텍스트 자료로 뭔가 분석을 하고자 한다면 외부 데이터를 가져와야 되는데 그 부분에 대한 내용이다. 네이버의 경우 최근 API 정책을 바꾼 걸로 아는데 과금되는 호출 수준을 확인해보는 것도 좋겠다.

 

[웹사이트 스크래핑]

URL 생성 : 사이트맵, RSS, 아카이브, 크롤링

다운로드 : request, wget, scrapy

추출 : Regex, HTML parser, Header, 휴리스틱

영속적 저장

 

robots.txt 파일을 해석하는 부분도 포함하고 있으니 이쪽도 참고하면 좋겠다.

 

[머신러닝을 위한 데이터 전처리 파이프라인]

소스 텍스트 -> 노이즈 식별-> 노이즈 제거 -> 문자 정규화 -> 데이터 마스킹 -> 정리된 텍스트 : 데이터 정리

-> 토큰화 -> 품사태깅 -> 원형 복원 -> 개체명 인식(NER) -> 준비된 텍스트 : 언어학적 처리

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

텍스트 분석에 필요한 거의 모든 기술과 라이브러리를 핵심만 쉽고 간결하게 전달하고 있어 놀랍다.

이 책의 가장 큰 장점은 생산성에 있는 것 같다. 독자로 하여금 빠른 시간 내 텍스트 분석 실무에 적응할 수 있고 한 권의 책으로 제품화까지 구상하는 데 큰 무리가 없게 구성하고 있기 때문이다.

책의 원서 제목이 “Blueprints for Text Analytics using Python”인데 가히 Blueprints라는 용어를 쓸 수 있을만큼 텍스트 분석 생태계에 필요한 전반을 한 권의 책으로 통일성있고 유기성있게 엮어냈다는 것이 신기하다.

이러한 실용적인 생산성을 높여주는 근거는 크게 두 부분으로 나눌 수 있겠다.

하나는 텍스트 생태계의 Python 라이브러리를 일목요연하게 훑어보고 바로 실전에 적용할 수 있도록 구성되었다는 점을 들 수 있고, 다른 하나로 텍스트 분석 전반에 필요한 기술을 대부분 아우르고 있다는 점을 들 수 있겠다.

먼저 텍스트 데이터를 둘러싼 Python 진영의 Pandas와 같은 기본 라이브러리에서 부터 Gensim과 같은 비교적 최신의 임베딩 라이브러리에 이르기까지 왠만한 현업 종사자도 전부 다 활용해 보진 못했을거라 추측될 정도로 방대한 라이브러리를 예제에 담아냈다.

아울러 기본적인 통계지식을 활용하여 빠르게 EDA로 데이터에 친숙해지며 감을 잡는 것을 시작으로 API나 크롤링을 통해 외부 데이터 세계를 가져와 전처리 하는 방법, 또 이를 전처리하여 활용할 수 있는 형태로 가공하는 방법, 준비된 데이터를 머신러닝에 적용해보며 토픽 모델링이나 분류 작업을 학습할 수 있음은 물론 책의 뒷부분으로 갈수록 지식그래프와 같은 시멘틱 기술을 활용하여 머신러닝의 단점을 보완할 수 있게 해주고 도커나 콘다를 이용한 배포 및 제품화까지 고려하고 있다.

조금 더 자세히 살펴보겠다. 1장에서는 주어진 데이터에 친숙해지는데 있어 가장 효율적이고 빠른 방법을 소개하고 있다.

그동안 실무에서 텍스트 분석에 임하다보면 꼬리에 꼬리를 무는 생각 때문에 시간을 많이 소요하는 일이 잦았다. 가능할지 불가능할지 혹은 주어진 데이터로 할 수 있는 일인지 조차 생각하지 못한채 거창한 아이디어를 꿈꾸다가 시간을 낭비하는 일이 종종 있는데 언제나 돌이켜보면 어느 데이터에나 적용할 수 있는 심플하고 빠른 방법을 먼저 수행하는 편이 좋았다는 생각이 들었고 나름의 정형화된 방법을 정리해 적용해오고 있었는데 1장에 제시된 방법들은 적어도 몇년 간 내가 정리한 방법보다 깔끔하고 빠르게 분석할 수 있었기에 느낀 바가 컸다.

아울러 1장에서는 데이터에 친숙해지기 위한 EDA 과정외에도 불용화나 토큰화와 같은 기본적인 전처리 방법도 배운다.

2장 ~ 3장은 API나 크롤링을 활용하여 데이터를 수집하는 노하우를 담은 장이다. 역시 짧은 지면에 데이터 수집과 관련된 시행착오를 쉽게 해결할 수 있는 방법을 잘 요약하고 있다. 의외로 데이터 분석가 중에 REST API를 호출하며 HTTP의 기본 Response Code를 해석하지 못해 쩔쩔매는 경우를 흔히 봐왔는데 친절히 코드별 대응책을 알려주고 있어 인상적이었다.

깃허브의 API, 트위피, 스크래핑 등의 예제를 따라할 수 있는 것 자체로도 좋은 예제 구성이지만 robot.txt를 시작으로 과부하로 부터 서버를 보호하기 위해 서버측에서 행하는 제약들을 유연성있게 피하며 데이터를 수집할 수 있는 좋은 팁들이 더 값지다는 생각이 든다.트위피

4장은 앞서 수집한 데이터를 가공하는데 초점을 맞춘다. 표준화 작업을 시작으로 팀 내부 간 쉽고 빠른 공유를 위해 SQLite를 활용하여 데이터를 축적하는 방법을 다루고 있으며 노이즈 제거, 토큰화, 원형추출 등 보다 심화된 전처리 방법을 다루고 있는데 이 역시 현업에서 가장 중요한 부분의 핵심만 담아내고 있어 빠른 시간 내 실무 능력을 키우는데 큰 도움이 되리라 생각한다.

5장 ~ 8장은 본격적인 머신러닝 알고리즘을 적용하는 장이다. 5장에서 머신러닝에 필요한 기본 개념들 즉, 벡터화, TF-IDF, 차원축소, 구문유사성과 관련된 기본기를 다진 후 6장에서 SVM 분류 알고리즘을 적용하며 기본적인 머신러닝 활용법을 정리해 볼 수 있다.

다른 책들과 차별화 된 부분이 주로 7장 ~ 8장에서 많이 실려있는데 기본기를 익히는 데 한 걸음 더 나아가서 피처 엔지니어링이나 XAI 측면에 집중하며 분석가로 하여금 더 나은 아이디어를 떠올리게 함은 물론 뒤에 이어질 고차원 NLP처리를 위한 탄탄한 기본기를 잡는데 도움을 준다.

예를 들면 7장에는 해석을 위한 여러 시각화 도구를 활용하는데 LIME과 같이 전통적으로 자주 활용하는 라이브러리도 등장하지만 개인적으로 ELI5나 앵커와 같이 자주 사용해보지 않은 라이브러리가 자세히 소개되고 있어 많은 도움을 받을 수 있었다.ELI5

특히 pyLDAvis와 같이 한 번도 활용해보지 못한 라이브러리도 다수 만날 수 있었는데 빠른 시간 내에 활용할 수 있게 구성되어있어 인상적이었다. 뭐든 있는지, 없는지 자체라도 알면 쉽게 학습할 수 있는데 있는지, 없는지 자체를 모르면 빙빙 돌아가고 시간을 크게 낭비하게되니 말이다.pyLDAvis

아무튼 7장 ~ 8장을 거치며 feature importance를 중심으로 데이터 모델에 대한 해석력을 확보할 수 있는 과정은 매우 유익했고, 이를 통해 토픽모델링을 실습하며 뒤에 이어질 고급 기술들의 이해력을 높이는 구성이 매우 마음에 들었다.

더불어 NMF, LDA 등의 알고리즘을 실습해보며 선형대수 등의 기초 학문 지식이 어떻게 기술에 응용되는지 볼 기회도 제공되고 있어 학문과 산업 간 연계 이해 측면에도 도움이 될 것 같다.

9장 이후에는 보다 실용적인 관점으로 책의 집필 방향이 변하는 것 같다. 사실 텍스트 요약과 같은 주제는 능히 책 한 권을 할당하고도 모자를 만큼 방대한 주제이기에 이에 대한 밑바닥을 살피는 것은 쉽지 않으므로 라이브러리를 활용하여 빠르게 원하는 답을 찾는 수준으로만 소개되어있다.

임베딩이나 의미론적 유사성을 찾는 과정 역시 Gensim과 같은 라이브러리 활용에만 초점을 맞추고 있다. 실무에서 그 내부를 들여다 볼 필요는 크게 없기에 이 자체로도 유용하다고 생각하며 앞서 언급했듯 7 ~ 8장에서 얻은 지식으로 내부를 충분히 상상하고 이해하는데 무리가 없을 것이다.

번외로 R에 비해 Python이 마음에 안 드는 대표적인 이유를 꼽자면 시각화 정도를 들 수 있겠는데 특히 Matplotlib이 개인적으로 가장 마음에 들지 않았다. 이 역시 Matplotlib만 고집하지 않고 Plotly와 같은 훨씬 좋은 라이브러리 등 예제마다 적재적소에 필요한 라이브러리를 잘 선택하며 예제를 구성하고 있어 마음에 들었다.Plotly

아무튼 앞서 배웠던 지식들을 토대로 11장에서는 감성 분석 예제로 그간의 지식을 잘 정리할 수 있게 도와준다.

12장이나 13장은 약간 부록의 성격에 가깝다. 12장은 지식그래프 구축 주제를 다루는 데 이는 시멘틱 기술 진영의 이야기이다. 자동화된 머신러닝 진영에 비해 아래 그림과 같이 사람이 지정하는 규칙에 큰 영향을 받는다.지식그래프

양 진영의 정반합이 텍스트 분석 생태계의 발전에 큰 역할을 하고 있으므로 비교 우위를 논하는 것은 별 의미가 없으며 시멘틱 기술에 관심이 있다면 최근에 작성한 관련 책 리뷰를 참고하기 바란다. 리뷰 - 시맨틱 데이터 모형화

13장은 콘다와 YAML로 개발 환경을 구성하는 방법이나 도커 환경을 구성하는 방법, 심지어 WSGI서버를 활용하여 API 서버를 구축하고 빌드 및 배포를 자동화하는 방법을 다루고 있다. 제품화와 관련된 핵심 기술을 단 하나의 챕터로 핵심만 간결하게 전달하고 있다는 점이 매우 놀라웠다.

이 부분에서 큰 그림을 잡지 못하면 좋은 모델을 갖고도 제품이나 서비스는 산으로 가는 경우가 많은데 경험이 풍부한 전문가의 전달력으로 짧은 지면에 핵심을 담아내는 능력에 감탄했다.

전반적으로 텍스트 분석에 있어 필요한 A to Z를 매우 빠르게 습득할 수 있는 책이다. 그렇기에 생산성 측면 즉, 공부한 시간 대비 가장 많은 기술과 지식을 익힐 수 있는 책이라 생각하며 빠르게 현업 및 실무에 배운 기술을 써먹을 수 있도록 안배된 책이라 생각한다.

아마도 BERT나 GPT-3와 같은 딥러닝 모델을 제외하고는 적어도 내가 아는 모든 기술이 콤팩트하게 담겨있다고 본다.

다만, 모든 책에는 독자의 수준이 중요한 것 같다. 너무 좋은 책인데도 독자가 극도로 초보자이거나 전문가여서 비판 받는 경우를 많이 봐왔다. 그렇기에 이 책 역시 독자 스스로의 수준 파악이 중요할 것 같다.

Python의 기본 문법은 물론 기본 생태계 정도는 충분히 활용해보고, 분석 계열이 아닌 IT 분야에서라도 문자열 처리 (특히, 정규표현식) 정도는 무수히 다뤄봤으며, 기본적인 머신러닝 알고리즘 혹은 통계 지식 및 선형대수 정도의 지식을 갖추고 있다면 2, 3, 13장을 제외하고는 무난한 이해가 가능하리라 생각한다.

다만 2, 3, 13장은 기본적인 IT 지식이 필요한 장이고 특히 13장은 하나하나의 주제별로 책 한 권씩 낼 수 있는 부분이라 각 챕터를 지도삼아 다른 자료를 많이 참조하면 좋을 듯 하다.

텍스트 분석에 입문한다면 가장 처음으로 볼만한 책으로 추천하고 싶다. 이 책이 기준점이 된다면 보다 고차원 적인 기술이나 모델을 익히는데 넘어야 할 장애물을 최소화할 수 있을 것 같다는 생각이 들며 이 분야의 전체 지도를 머릿속에 그리고 출발할 수 있다는 것이 전문가로 성장하는데 큰 도움을 줄 수 있을거라 생각한다.


번역, 검색, 추천등 우리 주변의 많은 서비스에서 자연어 처리가 활용되고 있습니다.

세상에는 다양한 언어가 있고 사람마다 표현 방식이 다르기 때문에 자연어를 분석해 원하는 결과를 얻어내는건 아직도 매우 어려운 일입니다.

 

이 책에서는 “영어 텍스트”를 분석하는 방법을 중점적으로 설명합니다.

텍스트 데이터를 가져와 어떤 성격인지 살펴보고 원하는 목표에 맞는 알고리즘을 적용해 결과를 추출하는 전반적인 과정을 체험할 수 있습니다.

여러 주제로 챕터를 나눠 실습을 할 수 있게 구성된 점이 참 좋았습니다.

 

실제 프로젝트에서는 정제되지 않은 데이터를 가져와(ex. 크롤링) 전처리해 사용해야 하는 경우가 많이 있습니다.

잘 정제된 데이터셋만 사용하는게 아니라 API나 웹페이지 크롤링을 통해 데이터를 가져와 전처리 하는 과정들도 잘 설명되어 있어 좋았습니다.

 

어느분야나 마찬가지지만 한권의 책으로 모든 내용을 학습할 수는 없습니다.

이 책은 제목처럼 “파이썬 라이브러리를 활용한 텍스트 분석”을 체험하고 자연어 처리를 맛볼 수 있는 최적의 도서라고 생각합니다.

 

머신러닝을 학습하고 있는, 자연어 처리를 맛보고 싶은 분들에게 이 책을 추천합니다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


정확한 시점을 지정할 수는 없겠으나 SNS를 통한 트렌드 혹은 리뷰 분석 등으로 텍스트 데이터 분석이 주목을 받은 지도 이제는 거의 10년이 다 되어갑니다. 특히 자연어처리 기술의 급부상으로 인하여 텍스트 데이터에 대한 관심이 더욱 늘어났는데요. 2-3년 전만 하더라도 텍스트 데이터 처리에 대한 자료를 일목요연하게 정리해 놓은 텍스트북이 많지 않았습니다만, 이제는 시중에 많은 텍스트 데이터 처리 혹은 자연어처리 서적이 나와있습니다.


이번에 보게 된 책도 다른 서적과 마찬가지로 텍스트 데이터 처리를 위한 전반적인 내용을 다루고 있습니다. 해당 서적의 목차 대부분은 같은 출판사에서 나온 다른 텍스트 데이터 텍스트북에서도 확인할 수 있는데요. 그렇기에 책을 처음부터 끝까지 살펴보며 아주 특별한 점을 느끼지는 못했습니다만, 그래도 해당 서적을 골라야만 하는 이유를 말씀드려보고자 합니다.



- 다른 서적에서는 잘 다루지 않는 'XAI', '지식 그래프', '프로덕션'


1) 첫 번째로 책의 7장('텍스트 분류기')에서 다루고 있는 분류 결과 설명에 대한 내용입니다. 텍스트 데이터 역시 Tabular 데이터 만큼이나 설명 가능(eXplainable)성이 많이 요구된다고 생각합니다. 텍스트 데이터를 다루는 각종 경진대회 발표를 보면 다양한 알고리즘을 사용하여 자신의 알고리즘에 대해 설명하는 모습도 볼 수 있는데요. 본 책에서는 XAI를 다루는 책에서나 볼 수 있었던 LIME, ELI5 등의 알고리즘을 통해 텍스트 데이터 분류 결과를 설명하는 방법에 대해 소개하고 있습니다.


2) 두 번째는 12장에서 다루는 지식 그래프입니다. QA와 같은 분야에서 정확한 답변을 하는 인공지능 구현을 위해 지식 그래프 기술에 많이 기대고 있습니다. 아주 큰 라지 스케일 모델이라도 특정 도메인의 지식에 대해서 물어보면 잘못된 대답을 하는 경우가 많은데요. 도메인이 한정된 분야에서는 지식 그래프를 통해 이를 해결하고자 하는 경향을 보여주기도 합니다. 이런 분야에서 지식 그래프 구축과 활용은 중요할 수 밖에 없는데요. 그럼에도 많은 텍스트 데이터 관련 서적이 이에 대해서는 자세히 다루고 있지는 않았는데, 깊이는 얕지만 이런 부분까지 커버하고 있다는 점이 인상적으로 다가왔습니다.


3) 마지막은 책의 끝부분에서 다루고 있는 프로덕션입니다. 모델을 연구-개발 했다면 마지막으로 서빙하는 단계로 넘어가야 하는데요. 이 단계에서 효율적인 프로덕션 방법이 고려되지 않는다면 미쉐린 3성급 요리를 만들어 놓고도 주방 밖으로 내지 않는 것과 같다고 할 수 있겠습니다. 텍스트 데이터를 다루는 모델이 어떻게 프로덕션 단계로 이어져 사용자에게 닿을 수 있는지 알고 싶은 분은 마지막 챕터를 주목해주시면 좋겠습니다.



책 자체는 나쁘지 않으나 이미 비슷한 주제를 다룬 책이 많다는 점에서(=책의 질과는 상관없이 타이밍에서) 아쉽다는 생각이 드네요. 본 책의 원어 제목이 'Blueprints(청사진)'으로 시작하는 만큼 텍스트 데이터 분석에 대해 개괄적인 지식을 가지고 있거나 다른 텍스트북을 가지고 있다면 굳이 살 필요는 없다고 생각합니다.

하지만 위에 소개드린 내용에 관심이 있거나, 아직 텍스트 데이터에 대해 개괄하는 책을 마땅히 정하지 못한 분에게는 책을 강력히 추천드릴 수 있겠습니다.

# 요약

- 텍스트 분석과 관련된 다양한 토픽들(웹 스크래핑, 소프트웨어 버그 분류, 뉴스 요약, 리뷰에서  감성 식별 등)을 각 chapter 의 주제로 다루고 있어서, 텍스트 분석을 실용적으로 접근해보기에 적합한 도서

 

# 장점

- https://github.com/hanbit/blueprints-text 에서 한국어로 된 설정법, 코드(ipynb), 데이터셋 등이 제공되기 때문에, 책을 읽으며 실습하기에 적합함

- 깊이 있는 이론보다 당장 적용가능한 코드에 더 관심이 있으신 분들에게 추천

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

6.jpg

 

 


요즘 데이타분석이 다양한 영역에서 각광을 받고 있다. 비단 IT 분야가 아니더라도 다양한 분야에서 다양한 데이타를 가공해서 원하는 데이타를 만드는 것이 중요한  시대가 되었다. 점점 데이타분석 능력이 중요한 시대이며 이에 따라 다양한 도구를 사용하여 데이타를 분석하고 있다. 값비싼 제품을 사용하면 좋겠지만 일반인이 데이타분석을 경험하기 위해 비용을 지불하고 사용하기는 어려울 수 있다. 이를 대신해 무료로 사용되는 도구와 라이브러리를 활용해 직접 해볼 수 있다면 좋은 대안이 될 수 있다고 생각한다.


이 책은 텍스트 분석 문제를 파이썬 생테계를 활용해 효율적으로 해결하는 방법을 알려준다. 하지만 책을 읽는 독자는 Pandas와 같은 기본 라이브러리를 비롯한 파이썬에 대한 기본 내용을 알고 있어야지만 텍스트 분석 및 머신러닝과 같은 개념을 제대로 소화할 수 있다. 즉 파이썬 경험이 없는 사람은 사전에 파이썬을 공부할 필요가 있으며 관련된 라이브러리에 대한 경험도 어느정도 할 필요가 있다. 하지만 어느정도 지식이 있다면 전반적인 내용을 이해하기는 그리 어렵지 않다. 또한 제공된 코드를 따라 실행하면 눈에 보이는 결과가 도출되기 때문에 훨씬 개념적으로 파악하기도 쉬운 부분이 있다.


이 책은 13개의 장으로 구성되어 있다. 텍스트 데이터에 대한 통찰을 얻는 것으로 시작해서 API로 추출하는 텍스트의 통찰, 그리고 웹 사이트 스크래핑을 통해 데이타를 추출하는 개념과 방식을 설명한다. 이 모든 과정에서 직접 데이타를 수집하고 분석하고 결과를 도출하는 과정을 단계 단계 쫒아가면서 테스트해볼 수 있다. 이어지는 장에서는 통계 및 머신러닝을 위해 필수적인 데이터를 준비하는 방법과 구문 유사성을 분석할 수 있는 모델을 여러가지 제시한다. 텍스트 분류 알고리즘과 이를 이용한 텍스트 분류기, 그리고 머신러닝 학습 방법 중의 하나인 비지도 학습을 통한 토픽 모델링 및 클러스터링에 대해 자세히 설명한다. 또한 텍스트에 대한 요약이나 의미 관계 분석, 감성 분석 등 텍스트 분석을 이용한 다양한 접근 방법과 모델에 대해 잘 설명하고 있다.


 

6-1.jpg


 

실제 사례를 기반으로 상황에 맞게 설계한 텍스트 전처리 파이프라이닝 구축, 텍스트 벡터화 등 다양한 전략으로 텍스트 분석 및 자연어 처리 과정을 설명하고 있어서 텍스트분석에 경험이 없더라도 각자가 원하는 형태로 가공해서 활용하기 좋은 참고 자료가 되는 것 같다. 이론적인 개념도 잘 설명되어 있지만 실제 따라하면서 결과를 볼 수 있다는 점이 이 책의 큰 장점이라고 생각한다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 

나는 매일매일 텍스트를 읽는다.

 

 

책을 읽기도하고

웹으로 다양한 사람들의 아티클들을 읽기도하고

팀즈나 카톡의 단톡에 올라온 대화 글들을 읽기도 한다.

 

 

간혹 이렇게 정보를 접하고 있다보면

통계적으로 얼마나 많은 사람들이 이런 생각을 하고 있는지

혹은 다른 어떤 다양한 의견들이 있는지 궁금해지긴 하지만

 

일일히 찾아보고 읽어보기에는 그 방대함에 엄두가 나지 않을 때가 많다.

 

 

그래서 오래전부터 관심은 있었지만 선뜻 손대지 못하고 있었던

텍스트 분석에 손을 뻗어보았다.



 

Screenshot 2022-11-23 at 9.59.36 AM.png

 

 



한국어에 적용 못함

 

아니 할 수 있으나

나같은 초보는 불가능..ㅜㅠ

하... 책을 읽고 따라가는것도 벅찬데 한국어 라이브러리를 적용하는 것은 산넘어 산 정도가 아니라.

히말라야 위를 비행기를 타고가다 뜬금없이 내던져진 기분이었다..;;;

 

'약간의 수정만 거쳐 이 책의 코드를 사용할 수 있을 것이다.' <-- 누군가에게는 공감되겠지만

나같은 초보에게는 전혀 해당되지 않았다..

 

물론..

 

제공되는 코드와 리소스들을 들여다 보며 책을 따라가보는 것은 나름 재미가 있었고

특히 제공되는 텍스트 소스들의 다양성에서

"와 이런것도 외국에서는 잘 모아두는 구나!"

"한국에도 이런 데이터들이 있나???"

하면서 색다른 인사이트를 얻기도 했다.

 

한국어 라이브러리를 제공하는 텍스트 분석 도서들이 대부분 인터넷 댓글, 뉴스 기사 분석, 블로그 텍스트 분석에 그친다면 이 책에서는 그래도 공신력있는 소스들을 통해서 어떤 인사이트를 찾아낼 수 있는지를 보여주어서 그 부분은 마음에 들었다.

 

허나... 당장 써먹어 보고 싶은건 한글로 된 것들이란 말이다..ㅜㅠ

오류가 나도 당췌 어떻게 고쳐서 써먹을 수 있는지 모르겠어서

일단은 덮어두기로 했다.

 

하.지.만.

 

파이썬에 조금은 익숙하고

텍스트 분석에 관심이 있다면

아니면 영어로 된 텍스트 분석에 관심이 있다면!!!

이 책은 큰 도움이 될 것이라고 본다.

자료를 분석하는 것 뿐만 아니라

분석을 통해 인사이트를 얻고 시각화 하는 단계까지 차근차근 잘 따라갈 수 있다.



- 목차

 

Screenshot 2022-11-23 at 10.00.15 AM.png

 

 



사실 텍스트 분석에 필요한 기술의 거의 모든것을 다 다루고 있다고 본다.

 

또한 특장점으로 코드를 한 번에 뭉터기로 주지 않고

작은 덩어리로 설명과 함께 제공한다.



 

 

Screenshot 2022-11-23 at 10.58.22 AM.png



그래서 코드 자체는 이해하고 따라 가기 쉽다.

 

 

또한 중간중간 개념 이해를 돕기 위한 그림들이 등장하는데 이또한 직관적으로 잘 표현되 있어서 좋았다.



 

 

Screenshot 2022-11-23 at 10.59.22 AM.png

 

 



마지막으로 데이터 분석 예시를 들 때에

 

 

실 데이터를 이용해서 그래프를 그려도 물론 좋지만

이 책에서 처럼 도식으로 제공하니 훨씬 더 이해하기 좋았다.



 

Screenshot 2022-11-23 at 11.00.30 AM.png

 

 



요약하면 책은 나에게 해 줄 수 있는 모든 것을 다 해줬다..

한글에 적용하지 못하는 내 미천한 파이썬 실력을 탓할뿐..ㅜㅠ

 

아쉬움이 남는 책이다.



 

 

 

 

 

 

 

도서명 : 파이썬 라이브러리를 활용한 텍스트 분석

출판사 : 한빛미디어

 

지은이 : 크리스티안 윙클러

 

독서 기간 : 2022-11-15 ~ 2022-11-26

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

 

책 표지 화면

 

 

최근들어 실무에서 자연어 처리에 대한 업무 비중이 늘어나 해당 책을 선택하여 독서를 시작하였다.

 

 

 

Chapter 1. 텍스트 데이터에서 찾는 통찰

 

Chapter 2. API로 추출하는 텍스트 속 통찰

 

Chapter 3. 웹사이트 스크래핑 및 데이터 추출

 

Chapter 4. 통계 및 머신러닝을 위한 텍스트 데이터 준비

 

Chapter 5. 특성 엔지니어링 및 구문 유사성

 

Chapter 6. 텍스트 분류 알고리즘

 

Chapter 7. 텍스트 분류기

 

Chapter 8. 비지도 학습: 토픽 모델링 및 클러스터링

 

Chapter 9. 텍스트 요약

 

Chapter 10. 단어 임베딩으로 의미 관계 탐색

 

Chapter 11. 텍스트 데이터를 이용한 감성 분석

 

Chapter 12. 지식 그래프 구축

 

Chapter 13. 프로덕션에서 텍스트 분석

 

 

 

목차만 봐도 알 수 있듯이 타 텍스트 관련 서적에 비해서 데이터 로드 부터 전처리까지 모두 다 텍스테 데이터에 한해서만 진행되어 있다.

 

 

 

챕터 1, 2 를 보면 알 수 있지만 텍스트 사이의 통찰이라는 부분은 텍스트 데이터의 본질을 파악하기 위한 부분이라고 이해하면 빠르다. 

 

 

 

하지만, 단순하게 텍스트 데이터는 어떻게 정제하며 형태소 분석을 해서 빈도수가 얼마이고 이러한 진부한 과정이 아닌 단어 빈도만으로도 TF-IDF를 이용한 빈도 분석을 진행하는 것을 볼 수 있었다.

 

 

 

나아가 N-Gram 분석과 시계열 데이터와 함께 바라보는 방법도 소개되었다.

 

 

 

챕터 2, 3은 데이터 수집에 대한 부분이 공통적으로 들어가있다. 

 

 

 

챕터 제목에서도 보이지만 챕터 2는 API를 통해 텍스트 데이터들을 추출한다. 단순 공공 데이터 포털과 같은 API를 제공해주는 곳에서 텍스트 데이터를 가져올 수도 있지만, 트위터와 같은 텍스트 기반의 방대한 데이터가 적재되어 있는 기업이 제공하는 API를 통해 데이터 수집하는 것을 볼 수 있다.

 

 

 

그리고 챕터 3는 챕터 2와 달리 웹스크래핑으로 데이터 수집에 대한 이야기를 풀어나갔다. API 처럼 표준화된 방법으로 데이터를 가져올 수 있는 것은 축복과도 같은 일이다. 하지만, 이렇게 API를 통한 방법이 아닌 웹 스크래핑이란 방법으로 데이터를 수집하는 방법을 알려주는 파트이다.

 

 

 

기존에 내가 알고 있던 selenium 방식은 설명되어 있지않고, 대부분이 request 방식으로 HTML을 추출하여 파싱하는 방법으로 설명이 되어 있다.

 

 

 

챕터 4 부터는 본격적인 분석이 진행되는 파트이다. 

 

해당 파트가 텍스트 데이터 전처리의 모든 과정을 간략히 각각 하나씩 보여주는 아주 좋은 파트라고 생각된다. 정규표현식으로 클렌징을 하고 불용어제거, 각 품사별 추출 등 거기다 추가로 맞춤법 검사까지 해당 파트의 프로세스는 일반 실무에서도 활용되는 방법들이고 순서인 것 같다.

 

 

 

챕터 5는 4와 비슷한 행태로 진행되었고, 챕터 6부터 본격적인 모델링이 시작되었다.

 

 

 

챕터 6에서는 텍스트 분류 알고리즘을 구축하는 내용을 담고있다. 샘플 분류 모델은 SVC와 Linear SVC를 기반으로 구축을 진행한다. pipline 함수를 사용해 최적의 하이퍼파라미터와 모델을 찾아내는 과정까지 포함되어있다.

 

 

 

챕터 7은 텍스트 분류기에 중점적으로 이야기를 진행한다.

 

 

 

이후 챕터들도 하나씩 살펴보면 일반적인 분류만 진행하는 것이 아닌 감성분석과 비지도 학습 방법론 등 다양한 분석 방법과 목표들이 있는 도서였다.

사실 이 책의 내용을 읽기 전까진 이 책이 '파이썬을 이용한 텍스트 데이터 전처리'에 관한 내용을 다룬 줄 알았다. 그러나 책의 내용을 펼쳐보니 python을 이용하여 텍스트 분석을 어떻게 할 지에 대해 다양한 사례를 들며 소개하고 있었다. 물론 이 책에는 텍스트 데이터를 전처리하는 내용도 들어있고, 어떤 식으로 데이터를 추출하고 저장할지에 대한 내용도 상세하게 담겨 있다!

이 책은 python을 이용한다는 것을 전제로 하고 있기에, 기본적으로 언어에 대한 이해는 있어야 한다. 또한, 영어 데이터를 다루고 있기에 한국어 데이터 예시를 찾고자 하는 분들께는 그다지 적합하지는 않다. 이 책에서도 소개하는 추천 독자는,

  • 샘플 결과를 빠르게 만들어 프로젝트의 성공 가능성을 검토하려는 독자

  • 문제를 풀기 위한 베이스라인(머신러닝 모델이 넘어야 하는 최소한의 성능)을 빠르게 작성해야 하는 독자

로 나와 있다. 그렇기에 기초 내용을 다루고 있다기 보다는 응용과 관련한 내용을 읽고 싶은 분들께 추천한다.

이 책은 개념의 원리를 깊게 다루지는 않지만, 두루두루 넓게 어떤 식으로 활용할 수 있는지를 세세하게 알려주고 있기 때문에 특정 task를 어떤 식으로 접근하면 좋을지에 대한 조언을 얻어갈 수 있을 것이다.

* "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어 '나는 리뷰어다' 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

Blueprints_for_Text_Analytics_using_Python.png

 

 

0. 소개


요즘에는 Machine Learning / Deep Learning이 일상생활에 알게 모르게 스며들어 있고, 누구나 배우고자 한다면 매우 다양한 자료를 접할 수 있습니다.


Deep Learning 분야에서 가장 먼저 큰 진전을 이루었던 것이 Image 분야이지만, 시각적인 인공지능 못지않게 인간들에게 중요한 것이 글로 쓰인 Data 즉, Text Data입니다.


NLP(Natural Language Process)를 다루는 수많은 동영상 강의, Technical Blog 등에서는 가장 기초적인 부분에서부터 최신 트렌드를 반영하는 주제까지 모두 다루고는 있습니다.


하지만, 정작 실무에 적용하려고 하면 막막한 것이 현실입니다.


정작 내가 풀려고 하는 문제에는 어떤 Model을 적용해야 하고, Text Data Preprocessing은 어떤 식으로 하면 좋은지 전혀 감이 잡히지 않습니다.


더욱더 어려운 점은 어떤 Dataset을 어떻게 구해야 하는 지도 모르는 상황인 것입니다.


이 책은 이런 문제들에 대해서 가장 좋은 대답을 제시해 줍니다.


다양한 Model을 문제에 맞게 빠르게 적용해 볼 수 있는 간단한 Code들을 제시해 주며, 필요한 Dataset을 어떻게 구할 수 있는지도 상세하게 알려줍니다.



뿐만 아니라, 각 Chapter마다 중요한 읽을거리도 제공해 줍니다. 이는 주제에 대한 배경지식을 더욱더 넓혀주는 유용한 정보가 많이 포함되어 있습니다.


또한, 매 Chap마다 다른 실제 Dataset을 사용하여 Project를 진행하기 때문에 실용적이며 현실적입니다.


실제 Project에 바로 사용할 수 있는 Dataset을 Web에서 수집하는 실용적인 방법을 소개하는 Chapter도 포함되어 있습니다.


기초적인 Text 처리에 대한 개론부터 고전적 Machine Learning / Deep Learning에 사용하는 기법 소개 및 활용 방안 소개되어 있고, 현재 실제도 많이 사용되는 최신 Algorithm / Solution도 소개하고 있습니다.


다만, 몇 가지 단점이라면 최신 NLP 기술을 다루는 것에는 상대적으로 취약하고 Deep Learning 기법보다는 주로 Machine Learning 내용이 많으며 사용하는 Model이나 Text Dataset이 영어라는 점입니다.



1. 구성


CHAPTER 1 Text Data에서 찾는 통찰

  • Text Data의 통계적 탐험 시작
  • Text Data를 다루는 데 있어서 기본적인 방법들을 소개한다.(Tokenization , 빈도 Diagram, Word Cloud , TF-IDF)


CHAPTER 2 API로 추출하는 Text 속 통찰

  • 인기 있는 API에서 Data를 추출하는 다양한 Python Module 사용
  • Text Data 분석에 사용할 Dataset을 다양한 경로(Github , 트위터 등)에서 추출하는 방법에 대해서 알아본다.
  • 특정 API를 사용하여 유용한 Dataset을 만드는 방법을 알아본다.


CHAPTER 3 Web Site 스크래피 및 Data 추출

  • 웹 페이지 다운로드, 콘텐츠 추출 전용 Python Library 사용
  • HTML Data를 얻고 도구를 통해 콘텐츠를 추출하는 방법에 대해서 알아본다.


CHAPTER 4 통계 및 머신러닝을 위한 Text Data 준비

  • Data 정리와 언어 처리 소개
  • Data Preprocessing 파이프라인 개발
  • Data 셋 : 레딧 셀프 포스트
  • Token 화를 포함한 기본적인 Text Data Preprocessing 기법 소개
  • Text Data를 생성하는데 필요한 Solution 제공
  • 정규화 방식 제안


CHAPTER 5 Feature Engineering 및 구문 유사성

  • 특성과 Vector 화 소개
  • 문서 유사도 측정
  • 문서 -> Vector 변경 시에 매우 다양한 변환 방법 소개


CHAPTER 6 Text 분류 Algorithm

  • 머신러닝 Algorithm을 사용해 소프트웨어 버그를 분류하는 Text 분류기 Algorithm
  • 지도학습 기반 Text 분류 Model을 사용해 SW 버그를 분류하는 Text 분류 Algorithm
  • JDT Bug Report Dataset을 사용
  • Data 준비, Vector 화, 분류기 결정, Train , Hyperparameter 조정 등 실제 쓸만한 Model 생성을 자세하게 소개


CHAPTER 7 Text 분류기

  • Model 및 분류 결과 설명
  • Model이 결정을 내린 이유를 확인하는 방법
  • 설명 가능한 Model은 아직 신생 분야


CHAPTER 8 비지도 학습: Topic Model 링 및 Clustering

  • 비지도 학습으로 Text에서 편향 없는 통찰 획득
  • 다양한 Topic Model 링 방법과 구체적인 장단점 확인(NMF(비음수 행렬 분해), 특잇값 분해(SVD), 잠재 디리클레 할당(LDA) )
  • 유엔 총회 일반 토의 Dataset 사용


CHAPTER 9 Text 요약

  • 규칙 기반과 Machine Learning 방식을 사용한 뉴스와 포럼 타래 글의 요약 생성
  • 입문 단계의 Text 요약 기술을 알아본다. ( 추출 방법 / 추상화 방법 )
  • LSA / TextRank 등의 기본적인 사용법 학습


CHAPTER 10 단어 Embedding으로 의미 관계 탐색

  • 단어 Embedding을 사용한 특정 Data 셋의 의미적 유사성 탐색과 시각화
  • 기존에 사용하던 TF-IDF의 단점을 알아보고, 이를 개선한 다른 Embedding 방식을 알아본다.
  • Word2Vec , FastText , GloVe


CHAPTER 11 Text Data를 이용한 감성 분석

  • 아마존 상품 리뷰에서 소비자의 감성 식별
  • Text Data에서 감성을 구분하는 Model을 학습한다.
  • 간단한 규칙을 기반으로 하는 Model에서 최신 BERT를 이용한 Model까지 활용하는 방법을 알아본다.


CHAPTER 12 지식 그래프 구축

  • 사전 훈련된 Model과 사용자 규칙을 사용해 명명된 개체와 개체의 관계 추출
  • Python의 고급 언어 처리 기능을 이용하여 개체명 인식(NER, Named-Entiry Recognition) , 상호 참조 해결(Coreference Resolution) , 관계 추출(Relation Extraction)을 위한 사용자 지정 규칙과 함께 사전 훈련된 신경망 Model을 사용하는 방법을 학습 나다.


CHAPTER 13 프로덕션에서 Text 분석

  • Google Cloud Platform에서 감성 분석 서비스를 API로 배포 및 스케일링
  • REST API를 사용하여 학습된 결과를 공유하거나 배포하는 방법에 대해서 알아본다.
  • Linux Shell or Windows PowerShell에서 잘 작동하는 방법으로 작성한다.
  • Conda / Docker 등을 이용하는 방법을 알아본다.



2. 대상 독자


이 책은 다음과 같은 독자에게 추천드립니다.


  • Text를 이용한 Machine Learning / Deep Learning Project를 수행하여야 하지만 기초가 부족하다고 느끼는 독자
  • 최신의 Transformer와 같은 Model에 대해서 공부하였지만, 정작 실제 Data를 어떻게 구하고 Machine Learning / Deep Learning에 입력해야 하는지 감이 잡히지 않으신 분들
  • Sample 결과를 빠르게 만들어 Project 성공 가능성을 확인하려는 독자
  • 문제를 풀기 위한 Baseline을 빠르게 작성해야 하는 독자

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬 라이브러리를 활용한 텍스트 분석
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬 라이브러리를 활용한 텍스트 분석
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬 라이브러리를 활용한 텍스트 분석
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실