Top

자연어 처리와 컴퓨터 언어학 [파이썬으로 개발하는 자연어 처리 서비스]

  • 원서명Natural Language Processing and Computational Linguistics: A practical guide to text analysis with Python, Gensim, spaCy, and Keras (ISBN 9781788838535)
  • 지은이바르가브 스리니바사 디지칸(Bhargav Srinivasa-Desikan)
  • 옮긴이마창수
  • ISBN : 9791161753140
  • 30,000원
  • 2019년 06월 28일 펴냄
  • 페이퍼백 | 392쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으실 수 있습니다.
요약

자연어 처리와 컴퓨터 언어학 알고리즘을 사용해 추론하고 데이터를 이해할 수 있는 방법을 제시한다. 통계적 머신 러닝 방법과 최신 딥러닝 기술을 활용한 방법들도 자세히 알아보며, 파이썬과 젠심, 케라스와 같은 도구를 사용해 알고리즘을 다룬다.
텍스트 문자열을 다루기 위한 함수에서부터 품사 태깅, 구문분석, 개체명 인식 및 토픽 모델링 등 다양한 고급 응용 알고리즘까지 자세히 다룬다.

이 책에서 다루는 내용

■ 텍스트 분석이 중요한 이유
■ NLP 용어와 파이썬 도구와 데이터 세트 이해
■ 텍스트 데이터의 전처리 및 정제 방법
■ 텍스트 데이터의 벡터 공간 표현 변환
■ 스파이시를 이용한 텍스트 처리
■ 자신의 컴퓨터 언어학을 위한 NLP 모델 학습
■ 젠심과 사이킷런으로 텍스트를 위한 통계적 학습 및 토픽 모델 알고리즘 사용
■ 케라스로 텍스트 분석을 위한 딥러닝 기술 적용

이 책의 대상 독자

파이썬 숙련자를 대상으로 하지만, 파이썬 초보자도 충분히 따라올 수 있다. 통계에 대한 기본적 이론이 책을 이해하는 데 도움이 될 것이다. 기본 언어학을 이해하는 데 도움이 되는 첫 번째 원칙인 NLP에 대해 소개한다.

이 책의 구성

1장, ‘텍스트 분석의 이해’
텍스트 분석 분야에서 지금과 같은 시기는 없었다. 쉽게 이용할 수 있는 데이터, 분석과 연구를 위해 사용할 수 있는 머신 러닝, 컴퓨터 언어학 이론과 텍스트 컴퓨터 처리를 수행할 수 있는 강력한 오픈 소스 도구들이 산재해 있고 이전에 보지 못한 속도로 발전하고 있다. 1장에서는 텍스트 분석이 정확히 무엇인지, 텍스트 분석을 배우는 동기와 이유가 무엇인지에 대해 자세히 알아본다.

2장, ‘텍스트 분석을 위한 파이썬 팁’
1장, ‘텍스트 분석의 이해’에서 텍스트 분석을 수행하기 위해 강력하고 사용하기 쉬운 언어인 파이썬을 사용해볼 것이라고 했다. 2장에서는 이를 확인하면서 텍스트 분석을 위해 알아둬야 할 기본적인 파이썬 활용법에 대해 다룬다. 이것이 중요한 이유는 무엇일까? 독자 여러분이 파이썬에 대한 기본적인 지식과 고등학교 수준의 수학적 배경이 있다고 가정하지만 텍스트 분석을 위해 파이썬 코드를 작성하고 문자열을 다루는 것은 웹 프레임워크인 장고(Django)를 사용해 웹 사이트를 구축하는 것과는 아주 다르다.

3장, ‘스파이시 언어 모델’
2장, ‘텍스트 분석을 위한 파이썬 팁’에서 텍스트 분석에 대해 소개할 때 텍스트 분석 파이프라인을 위해 필요한 상세한 기술적 내용은 다루지 않았다. 3장에서는 스파이시 언어 모델을 소개한다. 이 모델은 텍스트 분석의 첫 번째 단계에서 사용되며 파이프라인의 첫 번째 구성 요소가 된다. 또한 스파이시를 통해 텍스트 분석 작업을 수행하는 방법과 품사 태깅이나 NER과 같은 강력한 기능에 대해서도 알아본다. 마지막으로 스파이시를 효율적으로 사용하고 데이터를 빠르게 전처리하는 예제를 다룬다.

4장, ‘젠심–텍스트 벡터화, 변환 및 N-그램’
지금까지는 원시 텍스트 데이터를 다뤘지만 머신 러닝이나 정보 검색(IR, Information Retrieval) 알고리즘은 이와 같은 데이터를 사용하지 않는다. 따라서 알고리즘이 텍스트 데이터를 다룰 수 있도록 벡터라 불리는 수학적 구조를 이용해 변환해야 한다. 이런 변환을 수행하는 도구인 젠심과 추가 분석 단계의 앞 단계에 연결할 사이킷런을 소개한다. 전처리의 큰 부분은 유용하지 않다고 생각되는 단어들을 빈도수를 참조해 제거하는 것이고 이를 통해 바이그램, 트라이그램, N-그램과 같은 벡터화 작업을 시작할 수 있다.

5장, ‘품사 태깅 및 응용’ 1장, ‘텍스트 분석의 이해’와 2장, ‘텍스트 분석을 위한 파이썬 팁’은 텍스트 분석과 파이썬에 대한 소개이고 3장, ‘스파이시 언어 모델’과 4장, ‘젠심–텍스트 벡터화, 변환 및 N-그램’은 좀 더 향상된 텍스트 분석을 구성할 수 있게 도와준다. 5장에서는 이런 향상된 기술의 첫 번째인 품사 태깅에 대해 설명한다. 품사 태깅이 무엇인지, 문서에서 어떻게 품사를 찾는지 그리고 품사 태깅이 어떻게 사용되는지 알아본다.

6장, ‘개체명 인식 및 응용’
5장, ‘품사 태깅 및 응용’에서 스파이시 언어 파이프라인을 이용해 매우 강력한 도구인 품사 태깅을 수행하는 방법을 알아봤다. 이제 또 다른 주제인 개체명 인식(NER, Named-Entity-Recognition)에 대해 알아본다. 언어학 및 텍스트 분석 관점에서 NER이 정확히 어떤 뜻을 갖는지 논의하고 실제 사용 예제를 다뤄본 후 스파이시를 이용해 자신의 개체명 인식기(Stanford Named Entity Recognizer)를 학습하는 법에 대해서도 배운다.

7장, ‘의존 구문 분석’
5장, ‘품사 태깅 및 응용’과 6장, ‘개체명 인식 및 응용’에서 스파이시 파이프라인이 어떻게 복잡한 컴퓨터 언어 알고리즘인 품사 태깅과 NER을 수행하는지 살펴봤다. 하지만 이것이 스파이시 기능의 전부가 아니다. 7장에서 의존 구문 분석(dependency parsing)의 강력함과 얼마나 다양한 상황과 응용에서 활용될 수 있는지 살펴본다. 스파이시를 사용하기 전에 의존 구문 분석의 이론을 살펴보고 자신만의 의존 구문 분석기를 학습한다.

8장, ‘토픽 모델링’
지금까지 컴퓨터 언어학 알고리즘과 스파이시를 다뤘고 컴퓨터 언어 알고리즘을 통해 데이터에 주석을 다는 방법과 문장의 구조를 이해하는 방법을 배웠다. 이 알고리즘이 텍스트의 좀 더 상세한 정보를 찾는 방법을 이해하는 데 도움이 됐지만 데이터의 큰 그림을 이해하는 데는 아직 미치지 못했다. 말뭉치에서 어떤 단어가 다른 단어보다 자주 나타나는가? 데이터를 그룹화하거나 숨은 테마를 찾을 수 있는가? 8장에서 이런 질문에 대한 답변과 그와 연관된 상세한 내용을 파헤쳐본다.

9장, ‘고급 토픽 모델링’
8장에서 토픽 모델의 강력함과 데이터에 대해 이해하고 탐색하는 데 얼마나 직관적인 도움이 되는지 알아봤다. 9장에서는 토픽 모델의 효용성과 말뭉치에서 제공하는 주제를 캡슐화하는 데 유용하게 쓰이는 토픽 모델을 생성하는 방법을 알아본다. 토픽 모델은 말뭉치에 포함된 문서를 이해하는 방법이므로 이전에 하지 않았던 방식으로 문서를 해석할 수 있다는 의미를 갖는다.

10장, ‘텍스트 군집화 및 분류’
9장, ‘고급 토픽 모델링’에서 토픽 모델링과 문서와 하위 구조를 조직화하고 이해하는 데 도움이 되는 방법들에 대해 알아봤다. 이제 머신 러닝을 이용한 두 가지 특별한 작업인 군집화와 분류에 대해 알아본다. 이 두 작업의 직관적 이론이 무엇인지 그리고 유명한 파이썬 머신 러닝 라이브러리인 사이킷런을 이용해 어떻게 수행할 수 있는지 알아본다.

11장, ‘유사 질의 및 요약’
일단 문서를 벡터 형태로 표현하기 시작하면 문서 간의 유사도나 거리를 찾을 수 있는데 이것이 바로 11장에서 배울 내용이다. 이제 표준 bog-of-word 또는 텍스트 문서의 토픽 모델 표현을 위한 TF-IDF와 같은 여러 가지 다른 벡터 표현법에 대해 알게 될 것이다. 또한 젠심에서 매우 유용한 특징 구현 방법에 대해 배우고 문서 요약과 키워드 추출 작업에서 이를 사용해볼 것이다.

12장, ‘Word2Vec, Doc2Vec과 젠심’
이 책의 앞 부분에서 벡터에 대해 많은 얘기를 나눴다. 벡터는 수학적 형태로 텍스트 데이터를 이해하고 표현하는 데 사용하며 이 표현은 모든 머신 러닝 방법에서도 기반이 된다. 한 단계 더 나아가 단어의 의미를 더 잘 내포하고 있는 벡터 표현을 생성하기 위해 머신 러닝 기술을 사용한다. 이 기술을 일반적으로 워드 임베딩이라고 하는데 Word2Vec(워드투백)과 Doc2Vec(독투백)이 가장 유명한 방법이다.

13장, ‘텍스트를 위한 딥러닝’
지금까지 토픽 모델링, 군집화, 분류, 텍스트 요약 등 여러 가지 의미에서 텍스트 데이터를 다루기 위한 머신 러닝의 활용에 대해 살펴봤다. 또한 품사 태깅과 개체명 인식기를 머신 러닝을 통해 직접 수행해봤다. 13장에서는 머신 러닝의 최첨단 기술 중 하나인 딥러닝에 대해 알아본다. 딥러닝은 생물학적 구조에서 영감을 얻어 만들어진 알고리즘으로, 텍스트를 이용한 작업을 수행하도록 도와주는 알고리즘이자 구조를 갖는 머신 러닝의 한 형태다. 이 작업 중 일부는 텍스트 생성, 분류 및 워드 임베딩이다. 13장에서는 딥러닝의 기초적인 내용과 텍스트를 위해 자신만의 딥러닝 모델을 구현하는 방법에 대해 알아본다.

14장, ‘케라스와 스파이시를 이용한 딥러닝’
13장에서 텍스트 데이터를 위한 딥러닝 기법에 대해 소개했고 신경망을 맛보기 위해 순환 인공 신경망(RNN, Recurrent Neural Networks)을 이용해 텍스트 생성을 시도해봤다. 14장에서는 텍스트를 위한 딥러닝 기술과 분류를 위해 케라스 모델을 설정하고 딥러닝을 위해 스파이시 파이프라인과 통합하는 방법을 알아본다.

15장, ‘감정 분석과 챗봇’
지금까지 텍스트 분석 과제를 시작할 수 있는 다양한 요소 기술을 갖췄으므로 이제 좀 더 복잡하고 무게감 있는 프로젝트에 대해 고려해볼 필요가 있다. 책 전반에 걸쳐 탐구해온 많은 개념들을 요약한 일반적인 2개의 텍스트 분석 프로젝트는 감정 분석과 챗봇이다. 이미 이 프로젝트를 위한 방법들을 대부분 다뤄봤고 15장에서는 어떻게 스스로 이러한 애플리케이션을 구성할 수 있는지에 대한 가이드를 제공한다. 챗봇이나 감정 분석 파이프라인을 구성하기 위해 필요한 코드를 모두 제공하지는 않지만 독자들이 이러한 프로젝트를 구성할 때 도움이 되는 다양한 기법에 대해 소개한다.

저자/역자 소개

지은이의 말

이 책은 NLP와 컴퓨터 언어학 알고리즘을 사용해 추론하고 데이터를 이해할 수 있는 방법을 제시한다. 알고리즘은 통계적 머신 러닝과 인공지능 기술을 기반으로 한다. 이런 알고리즘들을 다루기 위한 도구(파이썬과 젠심, 스파이시와 같은 도구)를 바로 사용할 수도 있다.
가장 먼저 데이터를 정제하는 방법에 대해 배운 다음 첫 번째 개념으로 컴퓨터 언어학을 수행하는 방법을 배우게 될 것이다. 이제 실제 사용하는 언어와 텍스트 예제를 파이썬을 이용해 보다 정교한 통계적 NLP와 딥러닝을 탐색할 수 있다. 훌륭한 도구를 사용해 텍스트를 태깅하고 구문을 분석하고 모델링하는 방법을 배운다. 사용해야 할 가장 최적의 프레임워크가 무엇인지 알게 될 것이며 토픽 모델을 위해 젠심을 선택하거나 딥러닝을 위해 케라스를 선택하는 것과 같이 도구를 언제 어떤 것을 선택할지 알게 될 것이다.
이 책은 자신의 NLP 프로젝트와 컴퓨터 언어 처리를 배우고 수행할 수 있도록 이론과 실습을 균형 있게 다룬다. 여러분은 풍부한 파이썬 도구의 생태계를 발견하고 흥미로운 현대 텍스트 분석의 세계로 들어갈 수 있을 것이다.

지은이 소개

바르가브 스리니바사 디지칸(Bhargav Srinivasa-Desikan)

프랑스 릴에 있는 INRIA에서 연구원으로 근무하고 있다. MODAL(데이터 분석 및 학습 모델) 팀의 일원이며 함수 학습(metric learning), 예측 변수 집계(predictor aggregation) 및 데이터 시각화를 담당하고 있다. 파이썬 오픈 소스 커뮤니티에 정기적으로 기고하고 있으며 ‘Google Summer of Code in 2016’에서 젠심(Gensim)을 이용한 동적 토픽 모델을 구현하기도 했다.
유럽과 아시아에서 열리는 파이콘과 파이데이터 행사에 고정 연사로 참석하면서 파이썬을 이용한 텍스트 분석 튜토리얼을 작성하고 있다. 파이썬 머신 러닝 패키지인 pycobra의 관리자이며 「Journal of Machine Learning Research」(MIT, 2002)를 출간했다.

옮긴이의 말

이 책의 목적은 자연어 처리의 기본부터 최신 기술인 딥러닝과 챗봇까지 컴퓨터 언어학의 관점에서 이해하는 것이다. 기존의 책들은 자연어 처리를 설명하기 위해 NLTK를 이용했지만 이 책은 실무에서 사용할 수 있는 스파이시를 이용한다. 텍스트 데이터의 중요성에서 시작해 문자를 다루는 기본적인 파이썬 함수, 알고리즘을 통한 텍스트의 토큰화, 품사 태깅, 개체명 인식, 의존 구문 분석 등과 같은 기본 분석 방법과 대표적인 벡터화 표현 방법을 설명한다. 고급 토픽 모델링과 군집화, 분류, 유사 질의 및 감정 분석 및 챗봇, 다양한 고급 텍스트 분석 방법과 잘 알려진 딥러닝 알고리즘에 이르기까지의 다양한 주제를 빠짐없이 다루고 있다. 예제를 설명하기 위해 최근 데이터 분석 및 딥러닝을 위한 개발 언어로 인지도가 높아지고 있는 파이썬 언어를 사용해 텍스트 분석에 활용될 수 있는 다양한 데이터 출처를 알려준다. 자연어 처리를 위한 수학적 이론에 집중하기보다는 컴퓨터 언어학의 관점에서 설명하고 실습으로 확인하는 과정을 통해 쉽게 이해할 수 있도록 해준다.
이 책을 통해 자연어 처리의 기본부터 고급 응용에 이르기까지 전체를 이해하는 신비한 경험을 하기 바란다.

옮긴이 소개

마창수

약 20년간 금융, LBS, ITS, Green IT, 빅데이터, 인공지능 등 산업을 변화시키는 기술에 관심을 갖고 업무를 수행해왔다. 지금은 SK에서 인공지능 기반 IT 서비스 및 솔루션 사업화와 인공지능 기술 확산을 위해 노력하고 있다. 최근의 관심사는 파이썬과 NLP, 머신 러닝/딥러닝, 행복한 노후다. 저서로는 『과학 영재를 만드는 아두이노 교실』(에이콘, 2015)이 있고 번역서로는 『왓슨을 이용한 인공지능 서비스 입문』(책만, 2017)이 있다.

목차

목차
  • 1장. 텍스트 분석의 이해
    • 텍스트 분석의 이해
    • 데이터는 어디에 있나?
    • 가비지 입력, 가비지 출력
    • 텍스트 분석을 수행하는 이유
    • 요약
    • 참조

  • 2장. 텍스트 분석을 위한 파이썬 팁
    • 왜 파이썬인가?
    • 파이썬으로 텍스트 다루기
    • 요약
    • 참조

  • 3장. 스파이시 언어 모델
    • 스파이시 라이브러리
    • 라이브러리 설치
      • 문제 해결
      • 스파이시 언어 모델
      • 언어 모델 설치
      • 설치의 방법과 이유
      • 언어 모델을 사용한 기본 전처리
    • 텍스트 토큰화
      • 품사 태깅
      • NER
      • 규칙 기반 매치
      • 전처리
    • 요약
    • 참조

  • 4장. 젠심-텍스트 벡터화, 변환 및 N-그램
    • 젠심 소개
    • 벡터의 이해와 필요성
      • BOW
      • TF-IDF
      • 다른 표현
    • 젠심을 이용한 벡터 변환
    • N-그램과 전처리 기법들
    • 요약
    • 참조

  • 5장. 품사 태깅 및 응용
    • 품사 태깅의 이해
    • 파이썬으로 품사 태깅
      • 스파이시를 이용한 품사 태깅
    • 품사 태거의 학습
    • 품사 태그 활용 예제
    • 요약
    • 참조

  • 6장. NER 및 응용
    • NER의 이해
    • 파이썬으로 NER
      • 스파이시를 이용한 개체명 태깅
    • 개체명 인식기 학습
    • 개체명 인식기 예제 및 시각화
    • 요약
    • 참조

  • 7장. 의존 구문 분석
    • 의존 구문 분석의 이해
    • 파이썬으로 하는 의존 구문 분석
    • 스파이시를 이용한 의존 구문 분석
    • 의존 구문 분석기 학습
    • 요약
    • 참조

  • 8장. 토픽 모델링
    • 토픽 모델링의 이해
    • 젠심을 이용한 토픽 모델링
      • 잠재 디리클레 할당
      • 잠재 의미 색인
        • HDP
      • DTM
    • 사이킷런을 이용한 토픽 모델링
    • 요약
    • 참조

  • 9장. 고급 토픽 모델링
    • 고급 모델 학습 팁
    • 문서 탐색
    • 주제 일관성 및 토픽 모델 평가
    • 토픽 모델 시각화
    • 요약
    • 참조

  • 10장. 텍스트 군집화 및 분류
    • 텍스트 군집화
    • 군집화 시작하기
    • K-평균
    • 계층적 군집화
    • 텍스트 분류
    • 요약
    • 참조

  • 11장. 유사 질의 및 요약
    • 유사도 메트릭스
    • 유사 질의
    • 텍스트 요약
    • 요약
    • 참조

  • 12장. Word2Vec, Doc2Vec과 젠심
    • Word2Vec
      • 젠심으로 Word2Vec 사용하기
    • Doc2Vec
    • 다른 워드 임베딩 기술들
      • 글로브
      • 패스트텍스트
      • 워드랭크
      • 바임베드
      • 푸앵카레
    • 요약
    • 참조

  • 13장. 텍스트를 위한 딥러닝
    • 딥러닝
    • 텍스트를 위한 딥러닝
    • 텍스트 생성
    • 요약
    • 참조

  • 14장. 케라스와 스파이시를 이용한 딥러닝
    • 케라스와 스파이시
    • 케라스를 이용한 분류
    • 스파이시를 이용한 분류
    • 요약
    • 참조

  • 15장. 감정 분석과 챗봇
    • 감정 분석
      • 레딧을 이용한 데이터 마이닝
      • 트위터를 이용한 데이터 마이닝
    • 챗봇
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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