이 책을 펼쳐 들었다면 여러분은 시각화에 관심이 있는 분들일 것이다. 시각화에 관한 책은 이미 많지만 "DO & DON'T" 방식으로 원리 원칙을 소개하는 것만으로는 부족하다. 결국 내 것으로 만들기 위해서는 연습이 필요하다. 이 책은 기본 원칙뿐만 아니라 그래프를 똑같이 만들어낼 수 있는 실습 과정을 모두 담고 있다. 책의 순서대로 이론을 익히고 예제 코드를 차근차근 따라 해보면 충분한 연습이 될 것이다.
그런데 왜 R일까? 통계용 혹은 논문 작성을 위해 쓰던 R 언어가 빅데이터의 확산과 데이터 과학의 발달을 맞아 저변이 넓어지고 있다. 프로그래밍 언어라고 해서 지레 겁먹을 필요는 없다(저자도 프로그래머가 아니며 주변에 실재하는 사회과학 데이터를 청중에게 전달하는 직업을 갖고 있다). 마이크로소프트 엑셀을 다룰 줄 알고 피봇 테이블까지 써 봤다면 기본 문법과 개념을 익히는 데는 크게 어렵지 않을 것이다. 더구나 R을 이용하면 대량의 데이터를 엑셀보다 훨씬 빠르게 편집하거나 필터링하고 집계할 수 있어 매우 유용하다. R에는 이렇게 집계한 데이터를 시각화해주는 편리한 라이브러리 ggplot2를 필두로 더 유용한 라이브러리와 그 밖의 새로운 기능이 속속들이 개발되고 있다.
마지막 장까지 완독하면서 이런 기술(skill)을 모두 익히고 나면 본질의 문제 즉, 데이터를 읽어내는 눈을 갖는 것이 중요하다는 깨달음을 얻을 것이다. 이 책은 그 다음 단계로 나아가는 데 길잡이가 돼 줄 수 있다. 원제는 『Data Visualization: A Practical Introduction』이지만, 'The Art of Data Visualization(데이터 시각화의 비법 혹은 비책)'이라고 붙여도 좋았을 듯싶다.
요컨대 이론적 기초 없이 무턱대고 코딩부터 시작하면 원칙을 놓친 결과물이 나온다. 반대로 시각화의 원리와 원칙부터 익혔다면 이제 그 다음은 어떻게 해야 할지, 이론을 실제로 어떻게 구현하고 만들어내는지가 궁금할 것이다. 이 책은 어느 한쪽에 치우치지 않고 이론과 실습 두 가지를 균형 있게 소개한다. 온라인에서 별도로 예시와 코드를 찾을 필요가 없다. 갭마인더(gapminder) 데이터셋처럼 사회현상과 관련된 데이터를 직접 그림과 도표로 바꾸다 보면 자신이 가진 데이터와 현실 문제에 어떻게 적용하면 좋을지 아이디어가 떠오를 것이다.
이 책의 원제는 『Natural Language Processing with Python Cookbook』이다. 제목에서 알 수 있듯이 파이썬보다는 자연어 처리에 초점 맞춰져, 파이썬은 도구로 사용하는 셈이다. 파이썬은 다양한 라이브러리가 잘 갖춰져 있어 텐서플로(TensorFlow)를 비롯한 '딥러닝'용 언어로 주목받는 것은 물론, 프로그래밍 초보자나 학생들의 코딩 입문용에 이르기까지 전천후로 쓰이는 언어다. 바꿔 말해, 자연어 처리를 배우기에 적합한 언어인 것이다. 파이썬 언어의 문법을 모르더라도 책에 나오는 레시피를 차근차근 따라 해보며 동작 원리를 파악할 수 있지만, 구문(syntax)을 세세하게 설명하지 않으므로 파이썬의 기본적인 이해는 필요하다. 만약 파이썬을 처음 접한다면 입문서를 읽어보거나 간단한 강의를 먼저 경험해볼 것을 추천한다.
이 책은 짤막한 레시피 형태의 구성으로 언제든 필요한 부분을 펼쳐볼 수 있게 돼 있다. 다만 이전 레시피가 다음 레시피에 활용되는 경우가 많으니 처음 한 번은 순서대로 읽어보고, 이후 코드 실습과 함께 원하는 부분을 다시 찾아볼 것을 권한다. 이 책에서는 자연어 처리와 관련된 전반적인 영역에 걸쳐 부품이자 재료들을 제공하고 있으니, 두 가지 혹은 그 이상의 레시피를 다양한 방식으로 조합한다면 다채로운 애플리케이션을 만들어볼 수 있을 것이다.
번역과 관련해 한마디 덧붙인다면 항상 용어의 선택이 가장 어렵다. 실무 현장에서는 갈수록 대부분의 IT 용어와 프로그래밍 용어가 원어(영어) 그대로 쓰이는 듯하다. 딥러닝을 심층 학습이라고 부르지 않는 것이 한 예다. 그렇지만 NLP는 '자연 언어 처리'라는 고유 영역이 있어 이 분야에서 통용되는 우리말이 있는 경우는 우리말로 옮겼다. 가령 'POSpart of speech'는 품사로 통일했고 'corpus', 'copora'는 '코퍼스'가 아니라 '말뭉치'로 적었다. 단, '브라운 코퍼스'와 같이 고유명사처럼 쓰이는 단어만 일부 예외를 뒀음을 참고하길 바란다.