스파크를 이용한 자연어 처리 : 대규모 텍스트를 다루는 가장 효율적인 딥러닝을 만나다

Book description

아파치 스파크 위에 구축된 자연어 처리 라이브러리인 Spark NLP는 정확성과 빠른 속도, 넓은 확장성을 지원한다. 이 책은 Spark NLP로 효율적인 애플리케이션을 설계하고 제작하는 방법을 소개한다. 구체적인 예제와 친절한 설명을 통해 기본적인 언어학과 문자 체계부터 감성 분석, 검색 엔진 구축까지 Spark NLP를 사용하는 데 필요한 모든 것을 다룬다. 또한 NLP 애플리케이션 개발 시 매우 중요한 성능 문제도 살펴보며 실무에 응용하기 전 꼭 알아야 할 내용을 빠짐없이 담았다. 예제를 따라 하며 딥러닝과 Spark NLP 라이브러리로 자신만의 확장 가능한 NLP 애플리케이션을 만들어보자.

Table of contents

  1. 지은이·옮긴이 소개
  2. 옮긴이의 말
  3. 이 책에 대하여
  4. 감사의 말 (1/3)
  5. 감사의 말 (2/3)
  6. 감사의 말 (3/3)
  7. PART I 기초
    1. CHAPTER 1 시작하기
      1. 1.1 Spark NLP와 자연어 처리
      2. 1.2 기타 도구
      3. 1.3 환경 설정
        1. 1.3.1 전제 조건 확인하기
        2. 1.3.2 아파치 스파크 시작하기
        3. 1.3.3 코드 확인하기
      4. 1.4 아파치 스파크에 익숙해지기
        1. 1.4.1 Spark NLP로 아파치 스파크 시작하기
        2. 1.4.2 아파치 스파크에서 데이터 로드하기
      5. 1.5 Spark NLP를 사용한 Hello World (1/2)
      6. 1.5 Spark NLP를 사용한 Hello World (2/2)
    2. CHAPTER 2 자연어 처리 기초
      1. 2.1 자연어 처리 정의
        1. 2.1.1 언어의 기원
        2. 2.1.2 구어 대 문어
      2. 2.2 언어학
        1. 2.2.1 음성학과 음운론
        2. 2.2.2 형태론
        3. 2.2.3 구문론
        4. 2.2.4 의미론
      3. 2.3 사회언어학
        1. 2.3.1 형식
        2. 2.3.2 문맥
      4. 2.4 화용론
        1. 2.4.1 로만 야콥슨 모델
        2. 2.4.2 화용론 사용 방법
      5. 2.5 문자 (1/2)
      6. 2.5 문자 (2/2)
        1. 2.5.1 기원
        2. 2.5.2 알파벳
        3. 2.5.3 아브자드
        4. 2.5.4 아부기다
        5. 2.5.5 음절문자
        6. 2.5.6 표어문자
      7. 2.6. 인코딩
        1. 2.6.1 ASCII
        2. 2.6.2 유니코드
        3. 2.6.3 UTF-8
      8. 2.7. 연습 문제: 토큰화
        1. 2.7.1 영어 토큰화
        2. 2.7.2 그리스어 토큰화
        3. 2.7.3 그으즈어 토큰화(암하라어)
      9. 2.8. 참고 자료
    3. CHAPTER 3 아파치 스파크의 NLP 라이브러리
      1. 3.1 병렬처리, 동시성과 분산 컴퓨팅 (1/2)
      2. 3.1 병렬처리, 동시성과 분산 컴퓨팅 (2/2)
        1. 3.1.1 아파치 하둡 이전의 병렬화
        2. 3.1.2 맵리듀스와 아파치 하둡
        3. 3.1.3 아파치 스파크
      3. 3.2 아파치 스파크의 아키텍처 (1/2)
      4. 3.2 아파치 스파크의 아키텍처 (2/2)
        1. 3.2.1 물리적 아키텍처
        2. 3.2.2 논리적 아키텍처
      5. 3.3 스파크 SQL과 Spark MLlib (1/3)
      6. 3.3 스파크 SQL과 Spark MLlib (2/3)
      7. 3.3 스파크 SQL과 Spark MLlib (3/3)
        1. 3.3.1 변환자
        2. 3.3.2 추정자와 모델
        3. 3.3.3 평가자
      8. 3.4 NLP 라이브러리
        1. 3.4.1 함수형 라이브러리
        2. 3.4.2 애너테이션 라이브러리
        3. 3.4.3 기타 라이브러리의 NLP
      9. 3.5 Spark NLP (1/3)
      10. 3.5 Spark NLP (2/3)
      11. 3.5 Spark NLP (3/3)
        1. 3.5.1 애너테이션 라이브러리
        2. 3.5.2 스테이지
        3. 3.5.3 사전 훈련된 파이프라인
        4. 3.5.4 피니셔
      12. 3.6 연습 문제: 토픽 모델 구축
      13. 3.7 참고 자료
    4. CHAPTER 4 딥러닝 기초
      1. 4.1 경사 하강법
      2. 4.2 역전파 (1/3)
      3. 4.2 역전파 (2/3)
      4. 4.2 역전파 (3/3)
      5. 4.3 합성곱 신경망
        1. 4.3.1 필터
        2. 4.3.2 풀링
      6. 4.4 순환 신경망
        1. 4.4.1 시간에 따른 역전파
        2. 4.4.2 엘먼 신경망
        3. 4.4.3 LSTMs
      7. 4.5 연습 문제 1
      8. 4.6 연습 문제 2
      9. 4.7 참고 자료
  8. PART II 빌딩 블록
    1. CHAPTER 5 단어 처리
      1. 5.1 토큰화
      2. 5.2 어휘 감소 (1/2)
      3. 5.2 어휘 감소 (2/2)
        1. 5.2.1 어간 추출
        2. 5.2.2 표제어 추출
        3. 5.2.3 어간 추출 대 표제어 추출
        4. 5.2.4 맞춤법 교정
        5. 5.2.5 정규화
      4. 5.3 단어 가방
      5. 5.4 CountVectorizer
      6. 5.5 n-gram
      7. 5.6 시각화: 단어 및 문서 분산
      8. 5.7 연습 문제
      9. 5.8 참고 자료
    2. CHAPTER 6 정보 검색
      1. 6.1 역 인덱스 (1/2)
      2. 6.1 역 인덱스 (2/2)
        1. 6.1.1 역 인덱스 작성
      3. 6.2 벡터 공간 모델 (1/2)
      4. 6.2 벡터 공간 모델 (2/2)
        1. 6.2.1 불용어 제거
        2. 6.2.2 역문서 빈도
        3. 6.2.3 스파크에서의 벡터화
      5. 6.3 연습 문제
      6. 6.4 참고 자료
    3. CHAPTER 7 분류와 회귀
      1. 7.1 BoW 기능
      2. 7.2 정규식 특성
      3. 7.3 특성 선택
      4. 7.4 모델링
        1. 7.4.1 나이브 베이즈
        2. 7.4.2 선형 모델
        3. 7.4.3 의사 결정과 회귀 트리
        4. 7.4.4 딥러닝 알고리즘
      5. 7.5 반복
      6. 7.6 연습 문제
    4. CHAPTER 8 케라스를 사용한 시퀀스 모델링
      1. 8.1 문장 분할 (1/2)
      2. 8.1 문장 분할 (2/2)
        1. 8.1.1 은닉 마르코프 모형
      3. 8.2 섹션 분할
      4. 8.3 품사 태깅
      5. 8.4 조건부 무작위장
      6. 8.5 청킹 및 구문 분석
      7. 8.6 언어 모델
      8. 8.7 순환 신경망 (1/2)
      9. 8.7 순환 신경망 (2/2)
      10. 8.8 연습 문제: 문자 n-gram
      11. 8.9 연습 문제: 단어 언어 모델
      12. 8.10 참고 자료
    5. CHAPTER 9 정보 추출
      1. 9.1 개체명 인식
      2. 9.2 상호 참조 해결
      3. 9.3 어서션 상태 감지
      4. 9.4 관계 추출 (1/2)
      5. 9.4 관계 추출 (2/2)
      6. 9.5 마치며
      7. 9.6 연습 문제
    6. CHAPTER 10 주제 모델링
      1. 10.1 k-평균
      2. 10.2 잠재 의미 분석
      3. 10.3 음수 미포함 행렬 분해
      4. 10.4 잠재 디리클레 할당
      5. 10.5 연습 문제
    7. CHAPTER 11 단어 임베딩
      1. 11.1 Word2Vec
      2. 11.2 글로브
      3. 11.3 패스트텍스트
      4. 11.4 변환자
      5. 11.5 ELMo, BERT와 XLNet
      6. 11.6 doc2vec
      7. 11.7 연습 문제
  9. PART III 애플리케이션
    1. CHAPTER 12 감성 분석과 감지
      1. 12.1 문제 진술과 제약
        1. 12.1.1 해결할 문제
        2. 12.1.2 제약 조건
        3. 12.1.3 문제 해결
      2. 12.2 프로젝트 계획
      3. 12.3 솔루션 설계
        1. 12.3.1 모델 학습 및 측정
        2. 12.3.2 스크립트 작성
      4. 12.4 솔루션 구현 (1/2)
      5. 12.4 솔루션 구현 (2/2)
        1. 12.4.1 데이터 호출
        2. 12.4.2 데이터 검토
        3. 12.4.3 데이터 처리
        4. 12.4.4 기능화
        5. 12.4.5 모델
        6. 12.4.6 평가
        7. 12.4.7 검토
        8. 12.4.8 배포
      6. 12.5 솔루션 테스트와 측정
        1. 12.5.1 비즈니스 지표
        2. 12.5.2 모델 중심 지표
        3. 12.5.3 인프라 지표
        4. 12.5.4 과정 지표
        5. 12.5.5 오프라인 대 온라인 모델 측정
      7. 12.6 검토
        1. 12.6.1 초기 배포
        2. 12.6.2 대체 계획
        3. 12.6.3 다음 단계
      8. 12.7 마치며
    2. CHAPTER 13 지식 베이스 구축
      1. 13.1 문제 진술과 제약
        1. 13.1.1 해결할 문제
        2. 13.1.2 제약 조건
        3. 13.1.3 문제 해결
      2. 13.2 프로젝트 계획
      3. 13.3 솔루션 설계
      4. 13.4 솔루션 구현 (1/2)
      5. 13.4 솔루션 구현 (2/2)
      6. 13.5 솔루션 테스트와 측정
        1. 13.5.1 비즈니스 지표
        2. 13.5.2 모델 중심 지표
        3. 13.5.3 인프라 지표
        4. 13.5.4 과정 지표
      7. 13.6 검토
      8. 13.7 마치며
    3. CHAPTER 14 검색엔진
      1. 14.1 문제 진술과 제약 조건
        1. 14.1.1 해결할 문제
        2. 14.1.2 제약 조건
        3. 14.1.3 문제 해결
      2. 14.2 프로젝트 계획
      3. 14.3 솔루션 설계
      4. 14.4 솔루션 구현
      5. 14.5 솔루션 테스트 및 측정
        1. 14.5.1 비즈니스 지표
        2. 14.5.2 모델 중심 지표
      6. 14.6 검토
      7. 14.7 마치며
    4. CHAPTER 15 챗봇
      1. 15.1 문제 진술 및 제약
        1. 15.1.1 해결할 문제
        2. 15.1.2 제약 조건
        3. 15.1.3 문제 해결
      2. 15.2 프로젝트 계획
      3. 15.3 솔루션 설계
      4. 15.4 솔루션 구현 (1/3)
      5. 15.4 솔루션 구현 (2/3)
      6. 15.4 솔루션 구현 (3/3)
      7. 15.5 솔루션 테스트 및 측정
        1. 15.5.1 비즈니스 지표
        2. 15.5.2 모델 중심 지표
      8. 15.6 검토
      9. 15.7 마치며
    5. CHAPTER 16 객체 문자 인식
      1. 16.1 OCR 작업의 종류
        1. 16.1.1 인쇄된 텍스트와 PDF에서의 텍스트 이미지
        2. 16.1.2 손으로 직접 쓴 텍스트에서의 이미지
        3. 16.1.3 환경에서의 텍스트 이미지
        4. 16.1.4 대상 텍스트 이미지
        5. 16.1.5 다양한 문자 체계의 참고 사항
      2. 16.2 문제 진술 및 제약
        1. 16.2.1 해결할 문제
        2. 16.2.2 제약 조건
        3. 16.2.3 문제 해결
      3. 16.3 프로젝트 계획
      4. 16.4 솔루션 구현
      5. 16.5 솔루션 테스트 및 측정
      6. 16.6 모델 중심 지표
      7. 16.7 검토
      8. 16.8 마치며
  10. PART IV NLP 시스템 구축
    1. CHAPTER 17 다국어 지원
      1. 17.1 언어 유형
      2. 17.2 시나리오: 학술 논문 분류
      3. 17.3 다양한 언어의 텍스트 처리
        1. 17.3.1 합성어
        2. 17.3.2 형태학적 복잡성
      4. 17.4 전이 학습과 다국어 딥러닝
      5. 17.5 언어 간 검색
      6. 17.6 체크리스트
      7. 17.7 마치며
    2. CHAPTER 18 수동 레이블링
      1. 18.1 가이드라인
      2. 18.2 시나리오: 학술 논문 분류
      3. 18.3 레이블러 간 동의
      4. 18.4 반복 레이블링
      5. 18.5 텍스트 레이블링
        1. 18.5.1 분류
        2. 18.5.2 태그 지정
      6. 18.6 체크리스트
      7. 18.7 마치며
    3. CHAPTER 19 NLP 애플리케이션 제작
      1. 19.1 Spark NLP 모델 캐시
      2. 19.2 Spark NLP와 텐서플로 통합 (1/2)
      3. 19.2 Spark NLP와 텐서플로 통합 (2/2)
        1. 19.2.1 스파크 최적화의 기본
        2. 19.2.2 설계 수준의 최적화
        3. 19.2.3 프로파일링 도구
        4. 19.2.4 모니터링
        5. 19.2.5 데이터 리소스 관리
        6. 19.2.6 NLP 기반 애플리케이션 테스트
        7. 19.2.7 단위 테스트
        8. 19.2.8 통합 테스트
        9. 19.2.9 기초 안정성 테스트와 정밀 테스트
        10. 19.2.10 성능 테스트
        11. 19.2.11 사용성 테스트
        12. 19.2.12 NLP 기반 애플리케이션 데모
      4. 19.3 체크리스트
        1. 19.3.1 모델 배포 체크리스트
        2. 19.3.2 확장 및 성능 체크리스트
        3. 19.3.3 테스트 체크리스트
      5. 19.4 마치며
  11. 찾아보기 (1/2)
  12. 찾아보기 (2/2)

Product information

  • Title: 스파크를 이용한 자연어 처리 : 대규모 텍스트를 다루는 가장 효율적인 딥러닝을 만나다
  • Author(s): 이창현, 앨릭스 토머스
  • Release date: August 2021
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791162244654