본문 바로가기
[Review]/Book

[도서 리뷰] 파이썬 라이브러리를 활용한 텍스트 분석

by 해피빈이 2023. 3. 26.

> 진행에 앞서

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

시간은 많이 흘렀지만 현재까지 크게 사용되고 있는 머신러닝 분야를 비롯하여, 웹 서버, 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페이지

 

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

반응형

댓글