Top

예제로 배우는 자연어 처리 기초 [NLP 알고리즘, 텍스트 분류와 요약, 감성 분석]

  • 원서명Natural Language Processing Fundamentals (ISBN 9781789954043)
  • 지은이쇼홈 고시(Sohom Ghosh), 드와이트 거닝(Dwight Gunning)
  • 옮긴이김창엽, 최민환
  • ISBN : 9791161753959
  • 35,000원
  • 2020년 03월 20일 펴냄
  • 페이퍼백 | 432쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

요약

자연어 처리 분야에 입문할 때 필요한 기본기를 닦는 데 많은 도움을 주는 책이다. 텍스트 데이터를 수집하고 전처리하는 과정을 알아보고, 다양한 자연어 처리 알고리즘과 시각화를 적용해 텍스트 데이터에 내재된 지식을 추출하는 방법을 다룬다. 자연어 처리 과정에서 자주 활용하는 SpaCy, 젠심(Gensim)과 같은 라이브러리를 학습해, 실무에서 적용할 수 있는 애플리케이션을 개발할 수 있는 초석을 마련해 줄 것이다.

이 책에서 다루는 내용

■ 데이터 수집, 검증, 정제
■ 파이썬을 활용한 데이터 분석과 머신러닝 작업 수행
■ 전산언어학의 기초 이해
■ 자연어 처리 작업에 대한 일반적인 모델 구현
■ 적절한 평가 지표를 사용한 모델 성능 평가
■ 텍스트 데이터에 대한 시각화, 정량화, 탐색적 분석 수행

이 책의 대상 독자

NLP를 활용한 결과물을 만들고자 텍스트 데이터를 수집하고 분석하려는 초보자와 중급 수준의 데이터 과학자, 머신러닝 개발자 등에게 적합한 책이다. 파이썬에서 데이터 타입, 함수 작성, 라이브러리 불러오기를 사용해 코딩을 해봤다면 내용을 이해하기 좀 더 수월할 것이다. 언어학과 확률에 대한 경험이 있다면 역시 도움이 되겠지만 반드시 필요하지는 않다.

이 책의 구성

이 책은 파이썬 코드로 텍스트를 불러오는 매우 기초적인 작업부터 시작해 NLP에 적합한 형태로 텍스트를 정제, 어간 추출, 토큰화하는 데 필요한 파이프라인에 따라 진행된다. 그런 다음, 가장 일반적으로 사용되는 NLP 라이브러리를 사용해 NLP 통계적 방법, 벡터 표현, 모델 작성 등과 같은 기본기를 다진다. 마지막으로 여러 응용 분야에서 NLP 모델과 코드를 사용하는 실사례를 다룬다.

저자/역자 소개

지은이의 말

지금껏 자연어 처리에 능숙하지 않았다면, 이 책으로 시작해보자. 자연어 처리 분야를 포괄적으로 담은 이 안내서는 파이썬 라이브러리와 NLP 개념을 효과적으로 사용해 다양한 문제를 해결하는 방법을 보여준다.
NLP와 그 응용 분야를 예제로 실습하면서 배운다. 초반부에서는 문제 정의, 텍스트 데이터 수집, 모델링을 위한 텍스트 데이터 준비 등 문제 해결에 필요한 초기 단계를 소개한다. 고급 NLP 알고리즘과 시각화 기술의 개념을 익히면서 비정형 데이터에서 정보를 추출하고 시각화 결과로 나타내는 애플리케이션 작성 방법을 배운다. 계속해서 NLP 기반 기술을 익히면서 좀 더 유용한 애플리케이션 개발에 집중하며, 챗봇(chatbot)에 사용하는 NLP 기술을 적용해 질문에 답하는 방법을 알아본다.
후반부에서는 문제 해결에 가장 적합한 유형의 NLP 작업을 식별하는 것에서 시작해 spaCy나 젠심과 같은 도구를 사용해 감성 분석을 수행하기까지 다양한 범위의 작업을 수행해볼 수 있다. 이 책을 다 읽으면 사람의 언어를 해석하는 애플리케이션을 작성하는 데 필요한 지식을 익힐 수 있을 것이다.

지은이 소개

쇼홈 고시(Sohom Ghosh)

자연어 처리 분야의 전문 지식을 갖춘 열정적인 ‘데이터 탐정(data detective)’이다. 여러 국제 학회와 저널에서 다수의 논문을 발표했다.

드와이트 거닝(Dwight Gunning)

미국의 금융 서비스 규제 기관인 FINRA의 데이터 과학자다. NLTK, 젠심(Gensim), spaCy와 같은 가장 널리 사용되는 NLP 도구를 사용해 파이썬 기반 머신러닝과 실무에서 풍부한 경험을 쌓았다.

옮긴이의 말

CNN, RNN(LSTM, GRU) 등을 다양한 방식으로 활용하는 많은 연구가 계속 진행돼 왔지만, 최근 트랜스포머(Transformer), ELMO, GPT, BERT 등의 연구를 기반으로 여러 자연어 처리 태스크에서도 뛰어난 성능을 나타내는 주목할 만한 여러 연구 결과들이 계속 발표되고 있다.
스마트폰에서 사용하는 여러 앱이나 방문하는 사이트에서도 챗봇을 제공하는 사례가 점점 늘어나고 있으며, 기업에서도 매일매일 쌓여가는 수많은 로그로부터 고객의 행동이나 생각, 소비 및 구매 패턴, 추천 방안, 보안 이슈들을 파악하고자 자연어 처리 알고리즘을 활용하고 있다.
이 책은 다양한 자연어 처리 알고리즘의 기반이 되는 기초 지식을 다룬다. 자연어 처리의 개념과 자연어 처리의 과정을 소개하고 품사 태깅, 불용어 처리, 정규화, 어간 추출, 표제어 추출 등 텍스트 데이터를 다룰 때 반드시 필요한 기반 기술을 하나씩 살펴본다. 실무에 다양한 방식으로 적용해볼 수 있는 텍스트 분류기를 만들어보고, 텍스트를 수집하는 데 반드시 필요한 기술인 스크래핑을 소개한다. 다음으로 대량의 문서를 일일이 읽지 않아도 문서의 주제를 파악할 수 있는 토픽 모델링 방법을 자세히 다루고, 활발한 연구가 이뤄지고 있는 텍스트 요약 및 생성 분야를 소개한다. 자연어 처리 분야에 딥러닝을 적용하는 데 가장 중요한 임베딩을 소개한 뒤, 실무에서 다양한 방식으로 적용해볼 수 있는 감성 분석 애플리케이션을 구현해본다. 이 책을 통해 자연어 처리 분야에 입문할 때 반드시 알아야 할 내용을 다양한 예제를 구현해가면서 쉽게 익힐 수 있을 것이다.

옮긴이 소개

김창엽

데이터 분석과 머신러닝에 관심이 많아 고려대학교 산업경영공학과 데이터 사이언스 및 비즈니스 어낼리틱스(DSBA) 연구실에서 박사 과정을 밟고 있다. 이전에는 안랩에서 9년간 근무하며 악성코드 대응 및 침해사고 분석 업무를 수행했다. 옮긴 책으로는 에이콘출판사에서 출간한 『텐서플로 入門』(2016), 『리눅스 바이너리 분석』(2016), 『모의 해킹을 위한 메타스플로잇』(2014), 『케라스로 구현하는 딥러닝과 강화학습』(2017), 『딥러닝 데이터 전처리 입문』(2018), 『머신 러닝을 활용한 컴퓨터 보안』(2019) 등이 있다.

최민환

5G 초연결 통신과 인공지능 분야에 관심이 많아서 한양대학교 전자통신공학과 지능 통신 시스템 연구실에서 무선 통신 신호 처리 및 분류 기법 관련 연구를 주로 수행했다. 졸업 후, 현재는 KT 융합기술원 인프라연구소에서 인공지능과 네트워크 관련 연구를 수행 중이다

목차

목차
  • 1장. 자연어 처리 소개
    • 소개
    • NLP의 역사
    • 텍스트 분석과 NLP
      • 예제 1: 기본적인 텍스트 분석
    • NLP의 다양한 단계
      • 토큰화
      • 예제 2: 단순 문장의 토큰화
      • PoS 태깅
      • 예제 3: PoS 태깅
      • 불용어 제거
      • 예제 4: 불용어 제거
      • 텍스트 정규화
      • 예제 5: 텍스트 정규화
      • 철자 수정
      • 예제 6: 단어 및 문장 철자 수정
      • 어간 추출
      • 예제 7: 어간 추출
      • 표제어 추출
      • 예제 8: 표제어 추출을 사용해 기본 단어 추출
      • NER
      • 예제 9: 개체명 취급
      • 단어 중의성 해결
      • 예제 10: 단어 중의성 해결
      • 문장 경계 인식
      • 예제 11: 문장 경계 인식
      • 실습 1: 원시 텍스트 전처리
    • NLP 프로젝트 활성화
      • 데이터 수집
      • 데이터 전처리
      • 피처 추출
      • 모델 개발
      • 모델 평가
      • 모델 배포
    • 요약

  • 2장. 기본적인 피처 추출 방법
    • 소개
    • 데이터 타입
      • 구조 기반 데이터 분류
      • 내용 기반 데이터의 범주화
    • 텍스트 데이터 정제
      • 토큰화
      • 예제 12: 텍스트 정제와 토큰화
      • 예제 13: n-그램 추출
      • 예제 14: 다른 패키지로 텍스트 토큰화 - 케라스와 TextBlob
      • 토크나이저의 종류
      • 예제 15: 다양한 토크나이저를 사용한 텍스트 토큰화
      • 토큰화의 이슈들
      • 어간 추출
      • RegexpStemmer
      • 예제 16: RegexpStemmer를 사용해 진행형 형태의 단어를 기본 단어로 변환
      • 포터 형태소 분석기
      • 예제 17: 포터 형태소 분석기
      • 표제어 추출
      • 예제 18: 표제어 추출
      • 예제 19: 단어의 단수화와 복수화
      • 언어 번역
      • 예제 20: 언어 번역
      • 불용어 제거
      • 예제 21: 불용어 제거
    • 텍스트로부터 피처 추출
      • 원시 텍스트에서 일반적인 피처 추출
      • 예제 22: 원시 텍스트에서 일반적인 피처 추출
      • 실습 2: 텍스트에서 일반적인 피처 추출하기
      • 단어 모음
      • 예제 23: BoW 생성
      • 지프의 법칙
      • 예제 24: 지프의 법칙
      • TF-IDF
      • 예제 25: TF-IDF 표현
      • 실습 3: 텍스트에서 특수한 피처 추출하기
    • 피처 엔지니어링
      • 예제 26: 피처 엔지니어링(텍스트 유사도)
      • 단어 구름
      • 예제 27: 단어 구름
      • 다른 시각화 방법들
      • 예제 28: 다양한 시각화(종속 구문 분석 트리와 개체명)
      • 실습 4: 텍스트 시각화
    • 요약

  • 3장. 텍스트 분류기 개발
    • 소개
    • 머신러닝
      • 비지도 학습
      • 계층적 군집화
      • 예제 29: 계층적 군집화
      • K-평균 군집화
      • 예제 30: K-평균 군집화
      • 지도 학습
      • 분류
      • 로지스틱 회귀
      • 나이브 베이즈 분류기
      • K-최근접 이웃
      • 예제 31: 텍스트 분류(로지스틱 회귀, 나이브베이즈, KNN)
      • 회귀
      • 선형 회귀
      • 예제 32: 텍스트 데이터를 사용한 회귀분석
      • 트리 기반 방법
      • 랜덤 포레스트
      • GBM과 XGBoost
      • 예제 33: 트리 기반 방법(의사 결정 트리, 랜덤 포레스트, GBM, XGBoost)
      • 샘플링
      • 예제 34: 샘플링(단순 무작위 추출법, 층화 추출법, 다단계 추출법)
    • 텍스트 분류기 개발
      • 피처 추출
      • 피처 엔지니어링
      • 상호 연관된 피처 제거
      • 예제 35: 높은 상관관계 피처들 제거(토큰)
      • 차원 축소
      • 예제 36: 차원 축소(PCA)
      • 모델 유형 결정
      • 모델 성능 평가
      • 예제 37: RMSE와 MAPE 계산
      • 실습 5: 엔드 투 엔드 텍스트 분류기 개발
    • NLP 프로젝트를 위한 파이프라인 구축
      • 예제 38: NLP 프로젝트를 위한 파이프라인 구축
    • 모델 저장 및 불러오기
      • 예제 39: 모델 저장 및 불러오기
    • 요약

  • 4장. 웹에서 텍스트 데이터 수집하기
    • 소개
    • 웹 페이지를 스크래핑해 데이터 수집하기
      • 예제 40: HTML 파일에서 태그 기반 정보 추출하기
    • 웹 페이지에서 내용 불러오기
      • 예제 41: 온라인 텍스트 데이터 수집
      • 예제 42: 주피터 노트북의 내용 분석하기(HTML 형식)
      • 실습 6: 온라인 HTML 페이지에서 정보 추출하기
      • 실습 7: 정규 표현식을 사용해 데이터 추출 및 분석하기
    • 준정형 데이터 다루기
      • JSON
      • 예제 43: JSON 파일 다루기
      • 실습 8: 온라인 JSON 파일 다루기
      • XML
      • 예제 44: 로컬에 있는 XML 파일 다루기
      • API를 사용해 실시간 데이터 불러오기
      • 예제 45: API를 사용한 데이터 수집
      • API 생성
      • 실습 9: 트위터에서 데이터 추출하기
      • 로컬 파일에서 데이터 추출하기
      • 예제 46: 로컬 파일에서 데이터 추출하기
      • 예제 47: 로컬 파일에 다양한 작업 수행
    • 요약

  • 5장. 토픽 모델링
    • 소개
    • 토픽 찾기
      • 테마 찾기
      • 탐색적 데이터 분석
      • 문서 군집화
      • 차원 축소
      • 역사 분석
      • 단어 모음
    • 토픽 모델링 알고리즘
      • 잠재 의미 분석
      • LSA - 동작 방식
      • 예제 48: 잠재 의미 분석을 활용한 로이터 뉴스 기사 분석
      • 잠재 디리클레 할당
      • LDA 동작 방식
      • 예제 49: 항공사 트윗에 있는 토픽
      • 토픽 핑거프린팅
      • 예제 50: 토픽 벡터를 사용한 문서 시각화
      • 실습 10: 제퍼디 질문에 대한 토픽 모델링
    • 요약

  • 6장. 텍스트 요약과 텍스트 생성
    • 소개
    • 자동 텍스트 요약이란?
      • 자동 텍스트 요약의 이점
    • 텍스트 요약의 고수준 뷰
      • 목적
      • 입력
      • 출력
      • 추출적 텍스트 요약
      • 추상적 텍스트 요약
      • 시퀀스 투 시퀀스
      • 인코더-디코더
    • TextRank
      • 예제 51: TextRank 기초
    • 젠심을 사용한 텍스트 요약
      • 실습 11: 젠심 텍스트 요약기를 사용해 다운로드한 페이지 요약하기
    • 단어 빈도를 이용한 텍스트 요약
      • 예제 52: 단어 빈도수 텍스트 요약
    • 마르코프 체인을 사용한 텍스트 생성
      • 마르코프 체인
      • 예제 53: 마르코프 체인을 사용한 텍스트 생성
    • 요약

  • 7장. 벡터 표현
    • 소개
    • 벡터 정의
    • 벡터 표현을 사용하는 이유
      • 인코딩
      • 문자 수준 인코딩
      • 예제 54: ASCII 값을 사용한 문자 인코딩
      • 예제 55: 넘파이 배열을 사용한 문자 수준 인코딩
      • 위치 기반 문자 수준 인코딩
      • 예제 56: 위치를 사용한 문자 수준 인코딩
      • 원핫 인코딩
      • 원핫 인코딩의 주요 단계
      • 예제 57: 문자 원핫 인코딩 - 수동적인 방법
      • 예제 58: 케라스를 활용한 문자 수준 원핫 인코딩
      • 단어 수준 원핫 인코딩
      • 예제 59: 단어 수준 원핫 인코딩
      • 단어 임베딩
      • Word2Vec
      • 예제 60: 단어 벡터 학습
      • 사전 학습된 단어 벡터 사용
      • 예제 61: 사전 학습된 단어 벡터 불러오기
      • 문서 벡터
      • 문서 벡터의 활용
      • 예제 62: 영화 대화를 문서 벡터로 변환하기
      • 실습 12: 문서 벡터를 활용해 유사한 영화 대사 찾기
    • 요약

  • 8장. 감성 분석
    • 소개
    • 왜 감성 분석이 필요한가?
    • 감성 분석의 성장
      • 감성의 수익 창출
      • 감성의 유형
      • 주요 아이디어와 용어
      • 감성 분석의 응용 분야
    • 감성 분석에 사용하는 도구들
      • 주요 클라우드 제공업체의 NLP 서비스
      • 온라인 마켓플레이스
      • 파이썬 NLP 라이브러리
      • 딥러닝 라이브러리
    • TextBlob
      • 예제 63: TextBlob 라이브러리를 사용한 기본적인 감성 분석
      • 실습 13: TextBlob 라이브러리를 사용해 트윗 감성 분석하기
    • 감성 분석 데이터의 이해
      • 예제 64: 감성 분석 데이터 불러오기
    • 감성 모델 학습
      • 예제 65: TF-IDF와 로지스틱 회귀를 사용한 감성 모델 학습
    • 요약

  • 부록

도서 오류 신고

도서 오류 신고

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

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

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