Top

파이썬과 자연어 처리 [파이썬과 함께하는 NLP 애플리케이션 만들기]

  • 원서명Mastering Natural Language Processing with Python : Maximize your NLP capabilities while creating amazing NLP projects in Python (ISBN 9781783989041)
  • 지은이딥티 초프라(Deepti Chopra), 니쉬트 조쉬(Nisheeth Joshi), 이티 마투르(Iti Mathur)
  • 옮긴이유연재
  • ISBN : 9791161750255
  • 28,000원
  • 2017년 07월 25일 펴냄
  • 페이퍼백 | 320쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

요약

자연어 처리는 인간과 컴퓨터 간의 상호 작용에 관련된 인공지능(AI) 분야의 하나다. 이 책은 파이썬을 이용해 자연어 처리 애플리케이션을 개발하는 데 필요한 기술을 배우고, 이를 실제로 활용할 수 있도록 하는 지침서다. 자연 언어에 대한 기본 개념과 문자열 매칭, 스테머, 파싱, 의미 분석, 감정 분석, 정보 검색 등의 활용 예제를 살펴보며 독자들이 파이썬을 통해 자연어 처리를 빠르게 학습할 수 있도록 도와줄 것이다.

이 책에서 다루는 내용

■ 문자열 매칭 알고리즘 및 정규화 기술 구현
■ 통계 언어 모델링 기법 구현
■ 스테머, 원형화기, 형태소 생성기 개발에 대한 통찰력 습득
■ 검색 엔진 개발, n-gram 접근법과 관련된 POS 태깅 개념 및 통계 모델링 개념 구현
■ 트리뱅크(Treebank) 구조, CFG 생성, CYK 차트 파싱 알고리즘 및 Earley 차트 파싱 알고리즘 개념 습득
■ NER 기반 시스템 개발과 감정 분석의 개념 이해 및 적용
■ 정보 검색 및 텍스트 요약의 개념 이해 및 구현
■ 담화 분석 시스템 및 대용어 복원(anaphora resolution) 기반 시스템 개발

이 책의 대상 독자

합리적인 지식 수준과 파이썬에 대한 이해를 바탕으로 NLP 중급 개발자를 대상으로 한다.

이 책의 구성

1장, ‘문자열을 사용한 작업’에서는 토큰화와 정규화 같은 텍스트에 대한 사전 처리 작업을 수행하는 방법과 다양한 문자열 매칭 방법을 설명한다.
2장, ‘통계 언어 모델링’에서는 단어 빈도를 계산하고 다양한 언어 모델링 기법을 수행하는 방법을 다룬다.
3장, ‘형태학 – 시작하다’에서는 스테머, 형태소 분석기 및 형태소 생성기 개발 방법을 다룬다.
4장, ‘품사 태깅 - 단어 식별’에서는 품사 태깅 및 n-gram 접근법을 포함한 통계 모델링을 다룬다.
5장, ‘파싱 - 훈련 데이터 분석’에서는 트리 뱅크 구성, CFG 구성, CYK 알고리즘, 차트 파싱 알고리즘 및 음역의 개념에 대한 정보를 살펴본다.
6장, ‘의미 분석 – 본질 표현’에서는 얕은 의미 분석과 WordNet을 사용하는 WSD의 개념과 애플리케이션에 대해 살펴본다.
7장, ‘감정 분석 – 나는 행복하다’에서는 감정 분석의 개념을 이해하고 적용하는 데 도움이 되는 정보를 제공한다.
8장, ‘정보 검색 - 정보 접속’에서는 정보 검색 및 텍스트 요약의 개념을 이해하고 적용한다.
9장, ‘담화 분석 - 아는 것은 믿는 것이다’에서는 담화 분석 시스템과 대용어 복원 기반 시스템을 개발한다.
10장, ‘NLP 시스템의 평가 - 성능 분석’에서는 NLP 시스템을 평가하는 개념을 이해하고 적용하는 방법에 대해 살펴본다.

저자/역자 소개

지은이의 말

파이썬에서 다양한 NLP 작업을 구현하는 방법과 NLP의 최신 연구 주제에 대한 통찰력을 얻을 수 있다. 학생과 연구원이 실제 애플리케이션을 기반으로 자신의 프로젝트를 생성하는 데 도움이 되는 포괄적인 단계별 안내서다.

지은이 소개

딥티 초프라(Deepti Chopra)

바나스탈리 대학(Banasthali University)의 조교수다. 주요 연구 분야는 전산 언어학, 자연어 처리 및 인공지능이다. 여러 저널 및 컨퍼런스에서 간행물을 발간했으며 관련 프로그램 위원회에서도 활동하고 있다.

니쉬트 조쉬(Nisheeth Joshi)

바나스탈리 대학(Banasthali University)의 부교수다. 관심 분야는 전산 언어학, 자연어 처리 및 인공지능이다. 인도에서 언어 기술 기금 및 연구(Language Technology Funding and Research)를 총괄하는 최상위 기관인 인도 정부(Govt) 정보 기술부(Department of Information Technology)에서 TDIL 프로그램의 배심 전문가로도 활동하고 있다. 여러 저널 및 컨퍼런스에서 간행물을 발간했으며 관련 프로그램 위원회 및 편집 위원으로도 활동한다.

이티 마투르(Iti Mathur)

바나스탈리 대학(Banasthali University)의 조교수다. 관심 분야는 전산 의미론 및 온톨로지 공학(ontological engineering)이다. 인도 정부(Govt)의 전자 정보 기술부(Department of Electronics and Information Technology,DeitY TDIL) 프로그램의 배심 전문가로도 활동하고 있다. 여러 저널 및 컨퍼런스에서 간행물을 발간했으며 관련 프로그램 위원회 및 편집 위원으로 활동한다.

옮긴이의 말

파이썬은 네덜란드 개발자 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어 중 하나다. 파이썬은 문법이 복잡하지 않고 쉬워서 초보자들도 쉽게 다가갈 수 있는 인터프리터 프로그래밍 언어다. 하지만 우리나라의 경우 C, JAVA 중심의 프로그래밍 환경이 대중적이라서 파이썬 같은 그 외의 프로그래밍 언어는 접해볼 수 있는 기회가 적다. 심지어 10년 넘게 프로그래머 개발자로 근무한 나의 경우에도 파이썬을 접한 것은 불과 수 년 전이었다.
파이썬은 미국에서 교육용 프로그래밍 언어로 사용하면서 점차 세계적으로 인기를 얻기 시작했고 파이썬을 사용하는 기업과 프로그래머도 증가했다. 이제 국내 대학에서도 교양 수업으로 파이썬을 채택하고 있다. 또한 수많은 라이브러리의 제공으로 자연어 처리, 머신 러닝 등의 분야에서 파이썬을 사용하고 있다.
이 책은 파이썬을 이용한 자연어 처리(NLP)를 다룬다. 자연 언어는 최근에 새롭게 등장한 개념이 아니다. 예전부터 연구됐던 인공지능의 한 분야다. 자연 언어라는 개념이 생소한 독자들은 내용을 이해하는 데 약간의 어려움도 있을 것이다. 개인적으로는 이 책을 살펴보기 전에 학창 시절 배웠던 문장 및 언어의 기본 구조를 살펴보는 것을 추천한다. 이 책을 이해하는 데 많은 도움이 될 것이다. 또한 파이썬 기본서가 아니기에 파이썬에 대한 기본 지식이 있는 독자를 대상으로 한다. 독자들은 이 책으로 문자열 매칭, 알고리즘 및 정규화 기술 구현, 스테머, 검색 엔진 개발, 담화 분석 등을 다양한 예제와 함께 살펴보면서 점점 능숙하게 자연 언어를 처리하는 자신을 발견할 수 있을 것이다.

옮긴이 소개

유연재

동국대학교 재학 중이던 2002년부터 여러 회사에서 개발 업무로 경력을 쌓아 왔다. 현재는 더케이손해보험에서 일반보험시스템 개발 업무를 담당하고 있다. IT에 관해서는 편식하지 않고 다양한 분야에서 멀티플레이어가 되려고 노력하는 프로그래머다. 옮긴 책으로는 에이콘출판사에서 출간한 『자바 네트워크 프로그래밍』(2016)이 있다.

목차

목차
  • 1장. 문자열을 사용한 작업
    • 토큰화
      • 텍스트를 문장으로 토큰화
      • 다양한 언어의 텍스트 토큰화
      • 문장을 단어로 토큰화
      • TreebankWordTokenizer를 사용한 토큰화
      • 정규 표현식을 사용한 토큰화
    • 정규화
      • 문장 부호 제거
      • 소문자와 대문자로 변환
      • 불용어 처리
      • 영어의 불용어 계산
    • 토큰의 대체 및 수정
      • 정규 표현식을 사용한 단어 대체
      • 텍스트를 다른 텍스트로 대체하는 예제
      • 토큰화 전에 대체 수행
      • 반복되는 문자 처리
      • 반복 문자를 삭제하는 예제
      • 단어를 동의어로 대체
      • 단어를 동의어로 대체하는 예제
    • 텍스트에 지프의 법칙 적용
    • 유사 척도
      • 편집 거리 알고리즘을 사용한 유사 척도
      • 자카드 계수를 사용한 유사 척도
      • 스미스 워터맨 거리를 사용한 유사 척도 적용
      • 그 외 문자열 유사도 메트릭
    • 요약

  • 2장. 통계 언어 모델링
    • 단어 빈도 이해
      • 주어진 텍스트의 MLE 개발
      • 은닉 마르코프 모델 추정
    • MLE 모델의 스무딩 적용
      • 에드온 스무딩
      • Good Turing
      • 크네저 네이 추정
      • 위튼 벨 추정
    • MLE의 백-오프 메커니즘 개발
    • 믹스 앤 매치를 얻기 위한 데이터 보간법 적용
    • 혼잡도를 통한 언어 모델 평가
    • 모델링 언어에서 메트로폴리스 헤이스팅스 적용
    • 언어 처리에서 깁스 샘플링 적용
    • 요약

  • 3장. 형태학 – 시작하기
    • 형태학 소개
    • 스테머 이해
    • 원형복원 이해
    • 비영어 언어의 스테머 개발
    • 형태소 분석기
    • 형태소 생성기
    • 검색 엔진
    • 요약

  • 4장. 품사 태깅 - 단어 식별
    • 품사 태깅 소개
      • 기본 태깅
    • POS-tagged corpora 생성
    • 기계 학습 알고리즘 선택
    • n-gram 접근법과 관련된 통계 모델링
    • pos-tagged data를 사용한 청커 개발
    • 요약

  • 5장. 파싱 - 훈련 데이터 분석
    • 파싱 소개
    • 트리뱅크 구성
    • 트리뱅크의 문맥 자유 문법 규칙 추출
    • CFG에서 확률적 문맥 자유 문법 생성
    • CYK 차트 파싱 알고리즘
    • Earley 차트 파싱 알고리즘
    • 요약

  • 6장. 의미 분석 - 본질 표현
    • 의미 분석 소개
      • NER 소개
      • 은닉 마르코프 모델을 사용한 NER 시스템
      • 기계 학습 툴킷을 사용한 NER 훈련
      • POS 태깅을 사용한 NER
    • Wordnet의 synset id 생성
    • Wordnet을 사용한 의미 판별
    • 요약

  • 7장. 감정 분석 - 나는 행복하다
    • 감정 분석 소개
      • NER를 사용한 감정 분석
      • 기계 학습을 사용한 감정 분석
      • NER 시스템의 평가
    • 요약

  • 8장. 정보 검색 - 정보 접속
    • 정보 검색 소개
      • 불용어 제거
      • 벡터 공간 모델을 사용한 정보 검색
    • 벡터 공간 스코링 및 질의 연산자 상호 작용
    • 잠재 의미 색인을 이용한 IR 시스템 개발
    • 텍스트 요약
    • 질의 응답 시스템
    • 요약

  • 9장. 담화 분석 - 아는 것은 믿는 것이다.
    • 담화 분석 소개
      • 중심화 이론을 사용한 담화 분석
      • 대용어복원
    • 요약

  • 10장. NLP 시스템의 평가 - 성능 분석
    • NLP 시스템 평가의 필요성
      • NLP 도구(POS 태거, 스테머, 형태소 분석기) 평가
      • 골드 데이터를 사용한 파서 평가
    • IR 시스템의 평가
    • 오류 식별 메트릭
    • 어휘 매칭 기반 메트릭
    • 구문 매칭 기반 메트릭
    • 얕은 의미 매칭을 사용한 메트릭

관련 블로그 글

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


 


 

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

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

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

 





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

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

 

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

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

지난해 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행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.30 : 아래서 3행]

[p.32 : 코드 아래에서 5행]
sent= She secured
->
sent=" She secured

[p.100 : 아래에서 3행]
토큰화가 적절하게 수행되지 않으면 이 후에 텍스트를 원래의 구성 요소로 분할하는 과정에 대한 형태소 분석을 수행할 수 있다.
->
토큰화가 적절하게 수행되지 않아도, 이 후에 텍스트를 원래의 구성 요소로 분할하는 과정에서 형태소 분석을 수행할 수 있다.

[p.235 : 9행]
ap = API(auth)
->
ap = API(authen)