Top

파이썬 자연어 처리의 이론과 실제 [효율적인 자연어 처리를 위한 머신 러닝과 딥러닝 구현하기]

  • 원서명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, ‘설치 안내’에서는 필요한 설치에 대한 지시사항을 볼 수 있다.

저자/역자 소개

지은이의 말

제목인 『Python Natural Language Processing』은 이 책에 대해 여러 가지를 생각하게 만든다. 여러분은 독자로서 자연어 처리(NLP: natural language processing)의 모든 측면을 처음부터 배울 수 있는 기회를 얻게 된다. 나는 이 책에서 NLP 개념을 매우 간단한 언어로 설명했으며 이 분야를 잘 이해할 수 있게 실용 예제를 소개한다. 예제를 구현하다 보면 NLP 기술을 향상시킬 수 있다. 재미있을 것 같지 않은가?
이제 NLP 분야에 대해 내가 친구나 동료로부터 받은 가장 일반적인 질문에 답해보겠다. 이 질문들은 내가 이 책을 쓰는 데 정말로 큰 영감을 주었다. 내게 있어서는 모든 독자에게 이 책의 집필 이유를 알리는 것이 아주 중요하다. 그렇다면 시작해보자!
일단 독자에게 중요한 질문에 답하고 싶다. 몇 가지 질문부터 답하겠다. 내가 보통 묻는 첫 번째 질문은 “NLP란 무엇인가?”이다. 두 번째 질문은 “파이썬이 주로 NLP 애플리케이션을 개발하는데 사용되는 이유는 무엇인가?”이다. 마지막으로 가장 중요한 질문은 “NLP를 배우기 위해 사용할 수 있는 자원은 무엇인가?”이다. 이제 답변을 알아보자.
첫 번째 질문에 대한 대답으로, NLP는 인간처럼 말하고 쓰고 읽거나 이해하는 언어다. 따라서 자연어는 의사 소통 수단이다. 전산과학 알고리즘, 수학 개념, 통계 기법을 사용해 우리는 머신도 인간이 하듯이 언어를 이해할 수 있게 언어를 처리하려고 한다. 이를 NLP라고 한다.
이제 두 번째 질문, “사람들이 주로 NLP 애플리케이션을 개발하는데 파이썬을 사용하는 이유는 무엇일까?”에 대한 대답을 해보겠다. 여러분과 나누고 싶은 사실이기도 한데, 매우 간단하고 직설적으로 말하면 파이썬에는 NLP 애플리케이션을 개발할 때 쉽게 사용할 수 있는 라이브러리가 많다. 또한 여러분이 C, 또는 C ++ 코딩 경험이 있다면 메모리 누수를 걱정할 필요가 없다. 파이썬 인터프리터가 이를 처리하기 때문에 주요 코딩 부분에만 집중할 수 있다. 게다가 파이썬은 코더 친화적(coder-friendly)인 언어다. 다른 객체 지향 언어에 비해 몇 행의 코드만 작성하면 훨씬 많은 작업을 수행할 수 있다. 따라서 이러한 모든 사실로 인해 사람들은 파이썬을 사용해 신속한 프로토타입 제작을 위한 NLP 및 기타 데이터 과학 관련 애플리케이션을 개발할 수 있다.
마지막 질문은 내게 중요한데 그 이유는 내 친구에게 위의 답변을 설명하곤 했고, 그들은 여러 사항을 들은 후에 NLP를 배우고 싶다면서 이용할 수 있는 자원은 무엇인지 물었기 때문이다. 예전에는 책, 블로그, 유튜브 동영상, Udacity, Coursera 같은 교육 플랫폼 등을 추천했지만 며칠 후 도서, 블로그, 그 외 형태의 하나로 된 자원이 있는지 물었다. 불행히도 내 대답은 “아니오.”였다. 나는 그때 모든 자원을 일일이 이용하는 것이 어렵다고 느꼈으며, 결국 이 책을 집필하게 된 것이다.
그래서 나는 이 책에서 모든 사람에게 유용한 NLP의 필수 부분을 모두 다루려고 노력했다. 좋은 소식은 파이썬을 사용한 실용적인 예제를 담았기 때문에 독자는 이론적으로나 실제적으로 모든 개념을 이해할 수 있다는 것이다. 나는 독자가 쉽게 알 수 있게 읽기, 이해, 코딩이라는 3개의 주요 과정에 따라 이 책을 썼다.

지은이 소개

잘라지 트하나키(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 설치하기
    • 종속성 설치
    • 프레임 설치 가이드
    • 질문
    • 요약

관련 블로그 글

컴퓨터와 인간의 소통 방법, 자연어 처리


 


 

최근 핸드폰, 스피커, 리모콘 등 다양한 기계를 음성 인식으로 조작하는 모습을 쉽게 볼 수 있다.

단순한 기계 조작은 물론이고 실제 사람과 대화하듯이 궁금한 것을 묻고 답하는 것도 가능하다.

이외에도 기계 번역, 챗봇, 검색 엔진 등 다양한 분야에서 자연어 처리 기술을 쉽게 찾아볼 수 있다.

 





자연어: 일반 사회에서 자연히 발생하여 쓰이는 언어로, 인공적으로 만들어진 언어인 인공어와 구분하여 부르는 개념 

인공어: 자연적으로 생성된 자연어와 달리 한 사람이나 여러 사람의 의도와 목적에 따라 만들어진 언어

 

자연어 처리란 사용자가 입력하는 자연어를 분석하고 처리해 컴퓨터가 이해할 수 있는 형태로 만드는 기술이다.

자연어 처리에는 사람들이 사용하는 다양한 단어와 각 단어가 사용되는 상황, 상호작용하는 방식 등 방대한 양의 언어 데이터가 필요하며, 사용자가 입력한 데이터의 형태, 구문, 의미 등의 분석을 통해 텍스트를 이해하고 적합한 결과를 출력한다.

지난해 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여 개의 레시피를 접할 수 있다.

자연어 처리에 관심이 있는 독자라면 이 책을 통해 다양한 상황에서 자연어 처리를 어떻게 구현하는지 확인해보자.



CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안