자연어 처리는 복잡한 영역이라 아주 많은 자료가 존재한다. 학습자가 자연어 처리를 익히려면 여기저기 발품을 팔아야 하는 실정이다. 저자는 이와 같은 현실을 깨닫고 한 권의 책으로 파이썬 자연어 처리의 전반을 이해할 수 있게 집필했다. 이 책은 자연어 처리 기초부터 머신 러닝, 딥러닝에 이르기까지 안내서이자 참고서의 역할을 톡톡히 해낼 것이다.
저자 소개
잘라지 트하나키(Jalaj Thanaki)
데이터 과학자다. 구체적으로 말하면 데이터 과학 연구자다. 데이터 과학 관련 문제를 다루는 것을 좋아한다. 또한 데이터 과학과 인공 지능 관련 기술을 사용해 세계를 더 나은 곳으로 만들고 싶어한다. 연구 관심사는 자연어 처리, 머신 러닝, 딥러닝 및 대용량 데이터 분석이다. 사회 활동가, 여행자, 자연 애호가이기도 하다.
이승준
한아시스템에서 소프트웨어 엔지니어로 근무했으며, 현재 프리랜서로 일하고 있다. 삼각형프레스에서 출간한 『Boogazine JFC PROGRAMMING』(1997), 『Java Workshop 2.0 21일 완성』(1997), 『Boogazine Visual J++ 6.0』(1998), 『XML 기본+활용 마스터하기』(2002)를 집필했고, 『JAVA 서블릿 & JSP 프로그래밍 한꺼번에 끝내기』(2002)를 번역했다. 또한 에이콘출판사에서 출간한 『(개정판) C & C++ 시큐어 코딩』(2015), 『닷넷 개발자를 위한 AngularJS』(2016), 『파이썬 분산 컴퓨팅』(2016), 『앵귤러2 컴포넌트 마스터』(2016), 『유니티 게임 개발을 위한 절차적 콘텐트 생성』(2017), 『React 16 핵심 정리 2/e』(2018)를 번역했다.
목 차
1장. 소개
__자연어 처리에 대한 이해
__기본 애플리케이션 이해
__공생의 이점: NLP와 파이썬
__NLTK 환경 설정
__독자를 위한 팁
2장. 코퍼스와 데이터세트의 실제 이해
__코퍼스란 무엇인가?
__왜 코퍼스가 필요한가?
__코퍼스 분석 이해
__데이터 속성 타입 이해
__코포라의 여러 파일 형식 알아보기
__무료 코포라 접근용 자원
__NLP 애플리케이션용 데이터세트 준비
__웹 스크레이핑
__요약
3장. 문장 구조의 이해
__NLP의 컴포넌트 이해
__자연어 이해
__문맥 자유 문법 정의
__형태학적 분석
__구문 분석
__의미 분석
__모호성 처리
__담화 통합
__화용 분석
__요약
4장. 전처리
__코퍼스-원시 텍스트 처리
__코퍼스-원시 문장 처리
__기본 전처리
__실제적이고 사용자 정의된 전처리
__요약
5장. 피처 엔지니어링과 NLP 알고리즘
__피처 엔지니어링 이해
__NLP의 기본 피처
__NLP에 대한 기본 통계 피처
__피처 엔지니어링의 이점
__피처 엔지니어링의 과제
__요약
6장. 고급 피처 엔지니어링과 NLP 알고리즘
__워드 임베딩에 대한 기억
__word2vec의 기본 사항 이해
__word2vec 모델을 블랙박스에서 화이트박스로 변환하기
__word2vec 모델의 컴포넌트 이해하기
__word2vec 모델의 로직 이해하기
__word2vec 모델의 알고리즘 기술과 수학 이해하기
__word2vec에 관련된 사실
__word2vec 애플리케이션
__간단한 예제 구현
__word2vec의 이점
__word2vec의 문제
__실제 애플리케이션에서 word2vec은 어떻게 사용되는가?
__word2vec는 언제 사용해야 하는가?
__흥미로운 모델 개발하기
__word2vec 개념의 확장
__딥러닝에서 벡터화의 중요성
__요약
7장. NLP를 위한 규칙 기반 시스템
__규칙 기반 시스템에 대한 이해
__규칙 기반 시스템 장착의 목적
__RB 시스템의 아키텍처
__RB 시스템 개발 라이프 사이클에 대한 이해
__애플리케이션
__RB 시스템을 사용해 NLP 애플리케이션 개발
__규칙 기반 접근법과 다른 접근법 비교
__규칙 기반 시스템의 장점
__규칙 기반 시스템의 단점
__규칙 기반 시스템에 대한 과제
__단어 의미의 모호성 기본에 대한 이해
__규칙 기반 시스템의 최근 동향에 대한 논의
__요약
8장. NLP 문제에 대한 머신 러닝
__머신 러닝의 기본에 대한 이해
__NLP 애플리케이션 개발 단계
__ML 알고리즘과 기타 개념 이해
__NLP 애플리케이션을 위한 하이브리드 접근법
__요약
9장. NLU과 NLG 문제에 대한 딥러닝
__인공지능 개요
__NLU와 NLG 비교
__딥러닝에 대한 간략한 개요
__신경망의 기본 지식
__ANN 구현
__딥러닝과 심층 신경망
__딥러닝 기술과 NLG
__경사 하강법 기반의 최적화
__인공지능 대 인간지능
__요약
부록 A. 고급 도구
__저장소 프레임워크로서의 아파치 하둡
__프로세싱 프레임워크로서의 아파치 스파크
__실시간 프로세싱 프레임워크로서의 아파치 플링크
__파이썬의 시각화 라이브러리
__요약
부록 B. NLP 기술을 향상시키는 방법
__NLP로 새로운 경력 쌓기
__치트 시트
__자신의 영역 선택
__성공을 달성하기 위한 일의 민첩한 방식
__NLP와 데이터 과학에 대해 유용한 블로그
__공개 데이터세트 얻기
__데이터 과학에 필요한 수학
__요약
부록 C. 설치 안내
__파이썬, pip, NLTK 설치
__PyCharm IDE 설치하기
__종속성 설치
__프레임 설치 가이드
__질문
__요약
출판사 서평
★ 이 책에서 다루는 내용 ★
- NLP 애플리케이션을 개발하는데 사용되는 파이썬 프로그래밍 패러다임
- 코퍼스 분석과 다양한 타입의 데이터 속성 이해
- NLTK, Polyglot, SpaCy, 스탠포드 CoreNLP 등의 파이썬 라이브러리를 사용한 NLP 학습
- 피처 엔지니어링의 일부로 피처 추출과 피처 선택
- 딥러닝에서 벡터화의 장점
- 규칙 기반 시스템의 아키텍처
- NLP 문제에 대한 지도 및 비지도 머신 러닝 알고리즘 최적화와 튜닝
- 자연어 처리와 자연어 생성 문제에 대한 심층 학습 기술
★ 이 책의 대상 독자 ★
NLP를 구현해서 더 스마트한 애플리케이션을 만들려는 파이썬 개발자를 위한 책이다.
★ 이 책의 구성 ★
1장, '소개'에서는 NLP와 NLP 분야에 관련된 여러 갈래를 소개한다. NLP 애플리케이션 빌드와 NLTK 설치를 논의하는 다양한 단계를 알아본다.
2장, '코퍼스와 데이터세트의 실제 이해'에서는 코퍼스 분석의 모든 측면을 보여준다. 코퍼스에 존재하는 다양한 타입의 코퍼스와 데이터 속성을 볼 수 있다. CSV, JSON, XML, LibSVM 등과 같은 각 코퍼스 형식을 다루며, 웹 스크레이핑 예제도 살펴본다.
3장, '문장 구조의 이해'에서는 언어학인 자연어의 가장 기본적인 측면을 이해해본다. 어휘 분석, 구문 분석, 의미 분석, 모호성 처리 등의 개념을 설명한다. 모든 개념을 실질적으로 이해하는 데는 NLTK를 사용한다.
4장, '전처리'에서는 다양한 타입의 전처리 기술과 이를 사용자 정의할 수 있는 방법을 알아본다. 데이터 준비, 데이터 처리, 데이터 변환 같은 전처리 단계를 살펴본다. 이외에도 전처리의 실제적인 측면을 이해한다.
5장, '피처 엔지니어링과 NLP 알고리즘'에서는 NLP 애플리케이션의 핵심 부분을 본다. NLP 애플리케이션을 개발할 때 사용하는 머신 러닝 알고리즘에 대한 입력 생성을 위해 서로 다른 알고리즘과 도구가 어떻게 사용되는지 살펴본다. 피처 엔지니어링에서 사용되는 통계적 개념을 이해하게 되며, 도구와 알고리즘의 사용자 정의로 넘어갈 것이다.
6장, '고급 피처 엔지니어링과 NLP 알고리즘'에서는 의미론적 문제를 다루는데 사용되는 NLP의 최신 개념을 이해한다. 「왕좌의 게임(Game of Thrones)」 데이터 세트에서 벡터를 생성해 word2vec, doc2vec, GloVe 등을 알아볼 수 있을 뿐 아니라 word2vec의 실제 구현도 볼 수 있다.
7장, 'NLP를 위한 규칙 기반 시스템'에서는 규칙 기반 시스템을 구축하는 방법과 NLP용으로 동일한 시스템을 개발하는 동안 명심해야 할 모든 측면을 자세히 설명한다. 규칙 제작 과정을 보며 규칙도 직접 코딩해본다. 또한 템플릿 기반의 챗봇(chatbot)을 어떻게 개발하는지 살펴본다.
8장, 'NLP 문제에 대한 머신 러닝'에서는 머신 러닝 기술의 새로운 면을 알아본다. NLP 애플리케이션을 개발하는데 사용되는 다양한 알고리즘을 볼 수 있다. 또한 머신 러닝을 사용해 멋진 NLP 애플리케이션도 구현해본다.
9장, 'NLU와 NLG 문제에 대한 딥러닝'에서는 인공 지능의 다양한 측면을 소개한다. 인공 신경망(ANN)의 기본 개념과 자신만의 ANN을 만드는 방법을 살펴본다. 하드코어 딥러닝을 이해하고 딥러닝의 수학적 측면을 개발하며, 자연어 이해(NLU)와 자연어 생성(NLG)에 딥러닝이 얼마나 사용되는지 확인한다. 여기서도 멋진 실전 예제를 기대할 수 있다.
부록 A, '고급 도구'에서는 아파치 하둡, 아파치 스파크, 아파치 플링크 같은 다양한 프레임워크를 간략하게 소개한다.
부록 B, 'NLP 기술을 향상시키는 방법'에서는 NLP 기술을 최신 상태로 유지하는 방법을 설명하며, 지속적인 학습이 새로운 NLP 기술을 습득하는데 얼마나 도움이 되는지 의견을 제시한다.
부록 C, '설치 안내'에서는 필요한 설치에 대한 지시사항을 볼 수 있다.