파이썬 자연어 처리의 이론과 실제 [효율적인 자연어 처리를 위한 머신 러닝과 딥러닝 구현하기]
- 원서명Python Natural Language Processing: Advanced machine learning and deep learning techniques for natural language processing (ISBN 9781787121423)
- 지은이잘라지 트하나키(Jalaj Thanaki)
- 옮긴이이승준
- ISBN : 9791161751726
- 35,000원
- 2018년 06월 29일 펴냄
- 페이퍼백 | 544쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
자연어 처리는 복잡한 영역이라 아주 많은 자료가 존재한다. 학습자가 자연어 처리를 익히려면 여기저기 발품을 팔아야 하는 실정이다. 저자는 이와 같은 현실을 깨닫고 한 권의 책으로 파이썬 자연어 처리의 전반을 이해할 수 있게 집필했다. 이 책은 자연어 처리 기초부터 머신 러닝, 딥러닝에 이르기까지 안내서이자 참고서의 역할을 톡톡히 해낼 것이다.
이 책에서 다루는 내용
█ 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, ‘설치 안내’에서는 필요한 설치에 대한 지시사항을 볼 수 있다.
목차
목차
- 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 설치하기
- 종속성 설치
- 프레임 설치 가이드
- 질문
- 요약
관련 블로그 글
컴퓨터와 인간의 소통 방법, 자연어 처리
최근 핸드폰, 스피커, 리모콘
등 다양한 기계를 음성 인식으로 조작하는 모습을 쉽게 볼 수 있다.
단순한 기계 조작은 물론이고 실제 사람과 대화하듯이 궁금한 것을 묻고 답하는 것도 가능하다.
이외에도 기계 번역, 챗봇, 검색 엔진 등 다양한 분야에서 자연어 처리 기술을 쉽게 찾아볼 수 있다.
자연어: 일반 사회에서 자연히 발생하여 쓰이는 언어로, 인공적으로 만들어진 언어인 인공어와 구분하여 부르는 개념
인공어: 자연적으로 생성된 자연어와 달리 한 사람이나 여러 사람의 의도와 목적에 따라 만들어진 언어
자연어 처리란 사용자가 입력하는 자연어를 분석하고 처리해 컴퓨터가 이해할 수 있는 형태로 만드는 기술이다.
자연어 처리에는 사람들이 사용하는 다양한 단어와 각 단어가 사용되는 상황, 상호작용하는 방식 등 방대한 양의 언어 데이터가 필요하며, 사용자가 입력한 데이터의 형태, 구문, 의미 등의 분석을 통해 텍스트를 이해하고 적합한 결과를 출력한다.
지난해 10월 구글은 AI 언어 모델인 버트(BERT)를 발표했다.
버트는 구글의 딥러닝 아키텍처인 '트랜스포머'로 구성된 자연어 처리 모델로 대표적인 자연어 처리 평가 지표인 GLUE(General Language Understanding Evaluation)와 SQuAD(Stanford Question Answering Dataset) 중 일부 항목에서 인간보다 뛰어난 성적을 보이면서 많은 주목을 받기도 했다.
활용 사례 1.
태블로 소프트웨어(Tableau Software)는 자연어 질의를 지원하는 애스크 데이터(Ask Data)를 발표했다.
애스크 데이터를 사용해 확인하고 싶은 내용을 입력하면 그에 대한 답변을 시각화 자료로 보여준다.
활용 사례 2.
아시아나항공의 챗봇 서비스 아론(Aron)에서는 간단한 문의는 물론 항공권 예약과 구매까지 가능해졌다.
아론은 애저(Azure)와 루이스(LUIS)를 활용해 개발됐으며, 다양한 메신저와 애플리케이션을 통해 서비스를 제공하고 있다.
활용 사례 3.
퀄컴 테크놀로지는 아마존의 '알렉사 보이스 서비스' 개발 키트를 기반으로 개발한 퀄컴 스마트 오디오 플랫폼을 시연했다.
차량에 설치된 스마트 오디오 플랫폼을 통해 음성으로 길을 검색하거나 음악, 영상을 재상할 수도 있다.
자연어 처리 with 파이썬은 파이썬과 자연어 툴킷(NLTK)을 이용해 자연어 처리(NLP)를 수행하는 다양한 방법을 알려주는 독창적인 레시피가 담긴 책이다.
자연어 이해, 자연어 처리, 구문 분석 등 다양한 주제를 포함해 실용적인 감정 분석부터 최신 딥러닝 기술의 적용 방법까지 자연어를 다루는 데 사용할 수 있는 60여 개의 레시피를 접할 수 있다.
자연어 처리에 관심이 있는 독자라면 이 책을 통해 다양한 상황에서 자연어 처리를 어떻게 구현하는지 확인해보자.
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.