Top

자연어 처리의 정석 [자연어 처리의 A-Z 과거부터 최근 연구까지]

  • 원서명Introduction to Natural Language Processing (ISBN 9780262042840)
  • 지은이제이콥 에이젠슈테인(Jacob Eisenstein)
  • 옮긴이이동근, 김근호
  • ISBN : 9791161756455
  • 50,000원
  • 2022년 05월 30일 펴냄
  • 페이퍼백 | 690쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

요약

자연어 처리와 머신러닝/딥러닝을 통합하고 해당 과정들을 자세하게 설명하는 책이다. 전통적인 통계 기반의 자연어 처리 방법에서 시작해 최근의 딥러닝/머신러닝 방법을 사용한 자연어 처리 방법까지 다룬다. 먼저, 지도/비지도학습과 관련한 머신러닝 방법론에 대해 설명한 후, 자연어 처리를 다루는 여러 알고리듬을 알아본다. 전통적인 알고리듬인 시퀀스, 트리, 그래프 등을 사용해서 어떻게 자연어를 다루는지 설명한다.
엔지니어와 연구자들이 자연어 처리를 다루기 위해 필요한 언어학 지식에 대해서도 충분히 알아본다. 형태소, 품사에서 시작해서 구조적 표현으로 컴퓨터가 인식하기 위한 연산으로 적용되는지 설명하며, 언어에 대한 형식적인 논리를 위한 방법부터 단어 임베딩까지 의미를 표현하고 해석하는 방법을 다룬다. 마지막에는 문서에서 정보를 추출하는 방법, 기계 번역, 텍스트를 직접 생성하는 것까지 최근의 응용 사례에 대한 방법까지 빼놓지 않고 이야기한다.
결과적으로 이 책은 머신러닝과 언어학을 자연어 처리라는 하나의 목표 아래 통합하며, 최근의 자연어 처리 연구를 이해하고 적용할 수 있도록 만들어주기에 더할 나위 없는 책이다.

추천의 글

“자연어 처리는 컴퓨터과학에서 매우 중요하며 빠르게 성장하고 있는 분야다. 근래에 자연어 처리 실무를 하려면 머신러닝 알고리듬과 언어학에 대한 이해가 꼭 필요하다. 저자 제이콥은 자연어 처리 분야에서 실제로 다루는 주요 방법과 응용의 핵심을 소개한다. 이 책은 데이터에 기반한 NLP에 대해 관심 있고 트렌드를 선도할 모든 학생과 연구자들의 갈증을 해소할 수 있는 기념비적인 작품이라 생각한다.”
— 알렉산더 러쉬(Alexander Rush)/ 코넬대학교 컴퓨터과학과 교수 & Hugging Face 연구자

“자연어 처리를 배우는 모든 사람이 꼭 읽어야 할 책이다. 언어학적 기본 지식부터 최근의 딥러닝 알고리듬까지 많은 분야를 아우르는 통합된 시각을 제공한다. 또한 기술적으로 탄탄하면서 쉽게 이해할 수 있도록 쓴 책이다.”
— 루크 제틀모이어(Luke Zettlemoyer)/ 워싱턴대학교 컴퓨터공학부 교수, 페이스북 AI 리서치 연구 책임자

“딥러닝 혁명이 시작된 이후로 자연어 처리에 관한 가장 포괄적이고 최신 자료로 구성된 책이다. 최신 AI와 NLP 알고리듬에 꼭 필요한 것에 대해 기본부터 응용된 내용까지 접할 수 있을 것이다.”
— 리차드 소처(Richard Socher)/ 前 세일즈포스 책임 과학자, 現 you.com CEO

“이 책은 자연어 처리의 토대를 만드는 방법과 알고리듬을 위주로 탁월하게 설명한다. 자연어 처리를 연구하는 사람과 학생들에게 이 책을 강력하게 추천한다.”
— 휘 토우 응(Hwee Tou Ng)/ 싱가포르국립대학교 컴퓨터과학과 교수

이 책에서 다루는 내용

이 책은 자연어 처리의 다양한 핵심 개념을 다룬다. 자연어 처리 작업을 위한 수많은 문제는 다음의 여러 방법을 사용해 해결할 수 있다.

◆ 탐색: 비터비 탐색, CKY 알고리듬, 스패닝 트리, 이동 감소, 정수 선형 프로그래밍, 빔 탐색
◆ 학습: 최대 우도 추정, 로지스틱 회귀, 퍼셉트론, 기댓값 - 최대화, 행렬 분해, 역전파

이 책에서는 이러한 방법들이 어떻게 동작하는지 설명하고, 광범위한 자연어 처리 작업에 어떻게 적용할 수 있을지 다뤄본다. 또한 문서 분류, 단어 의미 모호성, 품사 태깅, 개체명 인식, 파싱, 상호 참조 해결, 관계 추출, 담화 분석, 언어 모델링, 기계 번역 등과 같은 여러 자연어 처리 작업에 대해서 함께 다룬다.

이 책의 대상 독자

어느 정도 소프트웨어 지식이 있는 엔지니어와 대학원생 수준 이상의 연구자들에게 적합한 책이다. 각 장은 서로 독립돼 있지만 어느 순간 자연스레 통합되도록 구성됐다. 필요한 부분만 찾아서 읽어도 좋고, 전체를 하나씩 훑으며 큰 줄기를 잡는 것도 좋다.

이 책의 구성

기본적인 내용을 익힌 후, 다음의 4개 주요 영역을 다룬다.
◆ 학습: 다른 섹션에서 사용되는 여러 머신러닝 툴을 만들어볼 것이다. 머신러닝에 초점을 맞춰서 설명하기 때문에 텍스트 표현이나 언어학적인 현상들은 대부분 간단하다. “bag-of-words” 텍스트 분류를 예시 모델로 다룰 것이다. 4장에서는 단어 기반의 텍스트 분석에 관해 언어학적으로 흥미로운 응용 방법을 설명한다.
◆ 시퀀스와 트리: 언어를 구조학적인 현상에 비춰 설명하는 섹션이다. 시퀀스 및 트리 표현과 이들이 만들어내는 알고리듬에 대해 다루고 이러한 표현에서 발생되는 한계점에 대해서 설명한다. 9장에서는 유한 상태 오토마타(finite-state automata)에 대해 소개하고, 영어 구문론에서의 문맥 자유 언어를 짧게 소개한다.
◆ 의미: 형식 논리에서부터 뉴럴 단어 임베딩까지 텍스트를 통해 의미를 표현하고, 계산하기 위한 내용을 다룬다. 의미론과 밀접하게 관련 있는 참조 모호성을 해결하기 위한 방법과 담화 구조에서의 다문장 분석에 대한 두 가지 주제 등을 다룬다.
◆ 응용: 자연어 처리에 대한 주요한 응용 문제인 정보 추출, 기계 번역, 텍스트 생성에 대해 설명한다. 각 장에서 뉴럴 어텐션과 같은 방법을 소개하면서 이 책의 앞부분에서 구축한 형식과 방법을 사용해 가장 잘 알려진 시스템 중 일부를 설명한다.

저자/역자 소개

지은이의 말

자연어 처리는 사람들의 언어를 컴퓨터가 다룰 수 있도록 만든 방법이다. 지난 10년 동안 자연어 처리는 우리 일상에 자연스럽게 스며들었다. 이미 기계 번역은 웹과 SNS 등에서 광범위하게 쓰이고 있고, 텍스트 분류 작업을 통해 메일함이 스팸 메일로 가득 차지 않도록 도와준다. 검색 엔진은 단순히 텍스트를 매칭해 찾는 것을 넘어섰으며, 언어의 아주 미묘한 차이를 다루는 높은 수준의 네트워크 분석도 이뤄진다. 대화 시스템은 굉장히 빠르게 보편화되고 있고, 정보를 얻고 유통하기에 굉장히 효율적인 도구로 사용되고 있다.
이런 다양한 애플리케이션은 공통적인 아이디어와 알고리듬, 언어학, 논리, 통계학 등을 바탕으로 만들어진다. 이 책은 이런 지식을 알아갈 수 있는 길잡이 역할을 하도록 집필했다.

지은이 소개

제이콥 에이젠슈테인(Jacob Eisenstein)

현재 구글에서 연구하고 있다. 구글에 합류하기 전에는 조지아공과대학교의 컴퓨터과학부(School of Interactive Computing)에서 교수로 재직했다.

옮긴이의 말

공부하던 강의(NLP 224n)에서 이 책을 처음 만난 후로, 실무를 하다가 이해 안 가는 부분을 찾아보며 일주일 동안 다섯 번 정도 이 책과 저자가 쓴 글을 마주했을 때 느꼈던 운명 같은 느낌을 아직도 간직하고 있습니다. 그러고 나서 운이 좋게도 이 책을 번역할 기회가 주어졌을 때는 운명이지 않을까 생각했습니다.
어느 책이나 번역하는 일은 항상 하늘이 내린 일이라고 생각하지만, 자연어 책을 참고하며 번역하는 일은 더욱 숙명적이고도 어려운 일이었습니다. 실력이 부족한 점도 없지 않아 있었겠지만 익숙하지 않은 언어학적인 관점을 충분히 이해하고 번역해야 하기 때문입니다. 모국어도 언어학적인 관점에서 보는 한글과 실제로 사용하는 한국어가 다릅니다. 또 한글로 쓰인 수필, 소설, 에세이, 기사 등의 문장에서 느껴지는 작은 묘미를 독자들은 크게 느끼지만, 짧은 문장에도 숨겨진 문법성의 의미와 언어학적 의미를 살려서 번역하는 것은 정말 힘든 일이었습니다.
이 책은 자연어 처리의 정석이라고도 할 수 있는 교과서 스타일의 책입니다. 한국어로 잘 설명된 교과서를 보는 것도 상당한 에너지가 필요하고, 시작하기 전 마음을 다잡아야 하는데 이런 어려운 면면을 다 가진 책이라니, 이 책을 펼쳐 든 독자들도 앞으로의 길이 쉽지 않으리라 생각합니다.
하지만 확언하건대 이 책은 자연어 처리에 관한 가장 탁월하게 설명하며, 끝까지 읽으면 실력을 굉장히 향상시켜줄 것입니다. 실력이 어느 정도 쌓인 후, 실무에 적용하는 수준이 되고 나면 각각으로 쪼개져 있는 지식의 양을 더 넓히는 동시에 합칠 줄 알아야 한다고 생각합니다. 또 알고 있는 지식 사이에 듬성듬성 나 있는 구멍을 메워야 하는 시기가 온다고 생각합니다. 그런 과정에 있다면 이 책은 최고의 책입니다. 자연어 처리 분야의 일부만 연구했더라도, word2vec과 BERT를 사용하며 실무의 한 부분에만 익숙하더라도, 20년 전의 검색 엔진 분석을 위한 텍스트 파싱에만 익숙한 모든 분께 더 넓은 시야와 깊은 지식을 얻을 수 있는 책이리라 확신합니다.

옮긴이 소개

이동근

컴퓨터과학을 전공하던 중 소프트웨어 엔지니어의 길로 들어섰다. 채용과 아웃소싱 시장의 변화를 주도하고 있는 시소(seeso)를 창업했다. 수백 개의 프로젝트와 수백 명의 실무 전문가들과 작업하고 여러 업무 데이터를 활용해 프로젝트를 효율적으로 수행할 수 있는 여러 서비스를 개발했다. AI를 활용한 서비스를 꾸준히 개발하고 있으며, 팀으로 함께 일하며 성장하는 것에 관심이 많다. 여유가 있을 때는 사회 문제를 IT로 해결하는 여러 프로젝트를 수행하거나, 번역 작업을 한다. 오픈소스와 오픈소스가 가지는 문화에 존경심을 갖고 있다.

김근호

한국외국어대학교에서 영어통번역과 중국지역학을 전공했다. 어릴 적부터 언어를 좋아했고, 언어학으로 시작한 관심이 프로그래밍 언어로 이어져 지금은 백엔드 개발자로 일하고 있다. 현재는 ERP 시스템을 개발한다. 지금도 언어에 관심이 많아 프로그래밍 언어와 함께 여러 언어를 학습하는 것이 취미다.

목차

목차
  • 1장. 개요
  • 1.1 자연어 처리와 그 이웃들
  • 1.2 자연어 처리의 세 가지 주제

  • 2장. 선형 텍스트 분류
  • 2.1 단어 가방
  • 2.2 나이브 베이즈
  • 2.3 결정 학습
  • 2.4 손실함수와 큰 마진 분류
  • 2.5 로지스틱 회귀
  • 2.6 최적화
  • 2.7 분류에서의 또 다른 주제들
  • 2.8 학습 알고리듬 요약

  • 3장. 비선형 분류
  • 3.1 피드포워드 뉴럴 네트워크
  • 3.2 뉴럴 네트워크 디자인하기
  • 3.3 뉴럴 네트워크 학습하기
  • 3.4 컨볼루셔널(합성곱) 뉴럴 네트워크

  • 4장. 언어 기반의 분류 응용
  • 4.1 감성 및 의견 분석
  • 4.2 단어 의미의 모호성
  • 4.3 텍스트 분류를 위한 의사 결정 디자인
  • 4.4 분류기 평가하기
  • 4.5 데이터 세트 만들기

  • 5장. 비지도 학습
  • 5.1 비지도 학습
  • 5.2 기댓값 최대화의 적용
  • 5.3 준지도 학습
  • 5.4 도메인 적응
  • 5.5 잠재변수가 있는 학습에 대한 여러 접근법

  • 6장. 언어 모델
  • 6.1 그램 언어 모델
  • 6.2 평활화와 할인하기
  • 6.3 순환 뉴럴 네트워크 언어 모델
  • 6.4 언어 모델 평가하기
  • 6.5 어휘집에 없는 단어

  • 7장. 시퀀스 라벨링
  • 7.1 분류에서의 시퀀스 라벨링
  • 7.2 구조 예측을 위한 시퀀스 라벨링
  • 7.3 비터비 알고리듬
  • 7.4 은닉 마르코프 모델
  • 7.5 피처를 사용한 결정하는 시퀀스 라벨링
  • 7.6 뉴럴 시퀀스 라벨링
  • 7.7 비지도 시퀀스 라벨링

  • 8장. 시퀀스 라벨링 응용
  • 8.1 품사 식별
  • 8.2 형태구문론적 속성
  • 8.3 개체명 인식
  • 8.4 토크나이제이션
  • 8.5 코드 스위칭
  • 8.6 대화 행위

  • 9장. 형식 언어론
  • 9.1 정규 언어
  • 9.2 문맥 자유 언어
  • 9.3 가벼운 문맥 의존 언어

  • 10장. 문맥 자유 파싱
  • 10.1 결정형 상향식 파싱
  • 10.2 모호성
  • 10.3 가중치가 있는 문맥 자유 문법
  • 10.4 가중치가 있는 문맥 자유 문법 학습하기
  • 10.5 문법 보정
  • 10.6 문맥 자유 파싱을 너머

  • 11장. 의존 파싱
  • 11.1 의존 문법
  • 11.2 그래프 기반 의존 파싱
  • 11.3 전이 기반 의존 파싱
  • 11.4 응용

  • 12장. 논리적 의미론
  • 12.1 의미와 표기
  • 12.2 의미의 논리적 표현
  • 12.3 의미 파싱과 람다 대수
  • 12.4 의미 파서 학습하기

  • 13장. 술어 인자 의미론
  • 13.1 의미 역할
  • 13.2 의미 역할 라벨링
  • 13.3 추상 의미 표현

  • 14장. 분포 의미와 분산 의미
  • 14.1 분포 가설
  • 14.2 단어 표현을 위한 디자인 결정
  • 14.3 잠재 의미 분석
  • 14.4 브라운 군집
  • 14.5 뉴럴 단어 임베딩
  • 14.6 단어 임베딩 평가하기
  • 14.7 분포 통계량 너머의 분포된 표현
  • 14.8 다중 단어 단위의 분포된 표현

  • 15장. 참조 해결
  • 15.1 참조 표현의 형태
  • 15.2 상호 참조 해결을 위한 알고리듬
  • 15.3 상호 참조 해결 표현하기
  • 15.4 상호 참조 해결 평가하기
  • 16장. 담화
  • 16.1 분절
  • 16.2 개체와 언급
  • 16.3 관계

  • 17장. 정보 추출
  • 17.1 개체
  • 17.2 관계
  • 17.3 사건
  • 17.4 헤지, 부정, 가정
  • 17.5 질의 응답과 기계 독해

  • 18장. 기계 번역
  • 18.1 기계 번역 작업
  • 18.2 통계적 기계 번역
  • 18.3 뉴럴 기계 번역
  • 18.4 디코딩
  • 18.5 평가 지표 훈련

  • 19장. 텍스트 생성
  • 19.1 데이터를 통한 텍스트 생성
  • 19.2 텍스트를 통한 텍스트 생성
  • 19.3 대화

  • 부록 A. 확률
  • A.1 사건 조합의 확률
  • A.2 조건부 확률과 베이즈 규칙
  • A.3 독립
  • A.4 확률변수
  • A.5 기댓값
  • A.6 모델링과 추정

  • 부록 B. 수치 최적화
  • B.1 경사 하강
  • B.2 제약 조건이 있는 최적화
  • B.3 예시: 수동적 — 능동적 온라인 학습

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.574 : 그림 18.6]