NLP 기술의 발전으로 정보 흐름과 컴퓨팅 기능이 지속적으로 향상되었습니다. 이제 작업을 완료하는 데 필요한 정확한 정보를 검색하기 위해 검색 창에 몇 개의 문자 만 입력하면됩니다. 검색에서 제공하는 처음 몇 개의 자동 완성 옵션은 일반적으로 너무 적합하여 누군가가 검색을 도와주는 것처럼 느껴집니다.
NLP 개발의 원동력은 무엇입니까?
- 끊임없이 확장되는 비정형 웹 데이터에 대한 새로운 이해입니까?
- 처리 능력의 증가가 연구자의 생각을 따라 가고 있습니까?
- 인간 언어를 사용하여 기계와 상호 작용하는 효율성이 향상 되었습니까?
사실, 위의 모든 것은 사실 더 있습니다. 모든 검색 엔진에 "지금 자연어 처리가 왜 그렇게 중요합니까?" 라는 질문을 입력 할 수 있으며 , 다양한 이유를 제공하는 Wikipedia의 기사를 찾을 수 있습니다.
더 깊은 이유가 있는데, 그 중 하나는 일반 인공 지능 (AGI) 또는 심층 인공 지능 (Deep AI)의 가속화 된 추구입니다. 인간의 지혜는 생각을 별개의 개념으로 구성하고 저장 (기억)하고 효과적으로 공유하는 능력에만 반영 될 수 있습니다. 이를 통해 우리는 시간과 공간에 걸쳐 지능을 확장하고 두뇌를 연결하여 집단 지능을 형성 할 수 있습니다.
Steven Pinker 는 " The Stuff of Thought "( The Stuff of Thought ) 에서 요점 을 제시했습니다. 우리는 실제로 자연어로 생각합니다. 그것을 "내면의 대화"라고 부르는 것은 이유가 없습니다. 페이스 북, 구글, 엘론 머스크는 텍스트가 생각을위한 기본 커뮤니케이션 프로토콜이 될 것이라는 사실에 베팅하고 있습니다. 그들은 모두 생각, 뇌파 및 전기 신호를 단어로 변환하는 일부 프로젝트에 투자했습니다. 또한 Wolfe 가설은 언어가 우리의 사고 방식에 영향을 미친다고 믿습니다. 자연어는 의심 할 여지없이 문화와 집단 의식의 매개체입니다.
따라서 기계에 대한 인간의 사고를 모방하거나 시뮬레이션하려면 자연어 처리가 중요 할 수 있습니다. 또한 "Natural Language Processing in Action"에서 단어의 데이터 구조와 중첩 관계에 숨어있을 수있는 지능에 대한 중요한 단서를 배웁니다. 이러한 구조를 사용하고 신경망을 사용하면 무생물 시스템이 인간처럼 보이는 방식으로 자연어를 소화, 저장, 검색 및 생성 할 수 있습니다.
더 중요한 이유가 있는데, 왜 자연어를 사용하는 시스템을 작성하는 방법을 배우고 싶습니까? 세상을 구할 수 있기 때문입니다! 인공 지능 제어 문제와 '친화적 인 인공 지능'개발 도전에 대한 거물들 사이의 논의에 모두가 관심을 기울 였기를 바랍니다. Nick Bostrom, Calum Chace, Elon Musk 및 기타 많은 사람들은 인류의 미래가 친절한 기계를 개발하는 우리의 능력에 달려 있다고 믿습니다. 가까운 미래에 자연어는 인간과 기계 사이의 중요한 연결 고리가 될 것입니다.
우리가 기계를 통해 직접 "생각"할 수 있다고하더라도 이러한 아이디어는 우리 뇌의 자연스러운 단어와 언어에 의해 형성 될 가능성이 높습니다. 인간과 기계의 경계가 사라지는 것처럼 자연어와 기계어의 경계가 흐려집니다. 사실,이 라인은 "사이보그 선언문"의 출판이 George Orwell의 디스토피아 적 예언을 더 가능하고 수용 할 수있게 만들었던 1984 년에 모호해지기 시작했습니다.
"세상을 구하는데 도움이된다"라는 말이 모든 사람을 혼란스럽게하지 않기를 바랍니다. 이 책이 진행됨에 따라 독자들에게 채팅 로봇의 "두뇌"를 구축하고 연결하는 방법을 보여줄 것입니다. 이 과정에서 독자들은 인간과 기계 사이의 사회적 피드백 루프에서 작은 교란조차도 기계와 인간에게 큰 영향을 미칠 수 있음을 알게 될 것입니다. 나비가 어딘가에서 날개를 펄럭이는 것처럼 챗봇의 "이기심"을 조금만 조정하면 라이벌 챗봇간에 충돌하는 행동의 혼란스러운 폭풍을 가져올 수 있습니다. 또한 어떤 종류의 이타적인 시스템이 근시안적인 로봇으로 인한 혼란을 진정시키는 데 도움이되는 충성스러운 지지자들을 빠르게 모을 것임을 알게 될 것입니다. 친 사회적 행동의 네트워크 효과로 인해 친 사회적 협업 챗봇은 세계에 큰 영향을 미칠 수 있습니다.
이것이 바로 "Natural Language Processing in Action"의 저자들이 모인 이유입니다. 우리의 자연어를 사용하여 인터넷에서 공개적이고 정직하며 친 사회적인 커뮤니케이션을 통해 지원 커뮤니티가 형성되었습니다. 우리는 집단 지능을 사용하여 다른 반 지능적인 참가자 (기계)를 구축하고 지원합니다. 우리의 말이 모든 사람의 마음에 깊은 인상을 남기고 밈과 같은 챗봇 세계에 널리 퍼져 친 사회적 NLP 시스템 구축에 대한 열정으로 다른 사람들을 감염시키기를 바랍니다. 우리는 초 지능이 마침내 등장 할 때이 친 사회적 정신이 그것을 약간 촉진 할 수 있기를 바랍니다.
자연어 처리 실용 Python을 사용하여 텍스트를 이해, 분석 및 생성
[미국] Hobson Lane, Cole Howard, Hannas Max Hapke, Shi Liang, Lu Xiao, Tang Kexin, Wang Bin Translated
간략한 소개
이 책은 자연어 처리 (NLP)와 딥 러닝을 소개하는 실용적인 책입니다. NLP는 딥 러닝의 핵심 응용 분야가되었으며 딥 러닝은 NLP 연구 및 응용에 필요한 도구입니다. 이 책은 세 부분으로 나뉩니다. 첫 번째 부분에서는 단어 분할, TF-IDF 벡터화, 단어 주파수 벡터에서 의미 벡터로의 변환을 포함한 NLP의 기본 사항을 소개하고, 두 번째 부분에서는 신경망, 단어 벡터 및 컨벌루션 신경망을 포함한 딥 러닝에 대해 설명합니다. CNN), RNN (Recurrent Neural Network), LSTM (Long Short-Term Memory) 네트워크, 시퀀스-투-시퀀스 모델링 및주의 메커니즘과 같은 기본 딥 러닝 모델 및 방법; 세 번째 부분에서는 정보 추출, 질문 및 답변을 포함한 실제 콘텐츠를 소개합니다. 시스템 및 인간-기계 대화와 같은 실제 시스템의 모델 구성, 성능 문제 및 대처 방법.
이 책은 중급 및 상급 Python 개발자를 대상으로하며 기본 이론과 실제 프로그래밍을 모두 가지고 있으며 현대 NLP 분야의 실무자를위한 실용적인 참고서입니다.
편집자의 선택
- Python 개발자를위한 필수 자연어 처리
- 현대 자연어 처리 분야의 실무자를위한 실용적인 참조 가이드
- Xiaomi AI Lab NLP 팀에서 제공하는 번역
1.이 책은 인간의 언어를 읽고 해석 할 수있는 기계를 구축하기위한 실용적인 가이드입니다
2. 독자는 기존 Python 패키지를 사용하여 텍스트의 의미를 포착하고 그에 따라 응답 할 수 있습니다
3.이 책은 전통적인 자연어를 확장합니다. 신경망, 최신 딥 러닝 알고리즘 및 생성 기술을 포함한 처리 방법은 날짜 및 이름 추출, 텍스트 합성 및 고정 형식없이 질문에 답하는 것과 같은 실제 문제를 해결하는 데 사용됩니다 .4
. 소스 코드를 제공합니다.
딥 러닝 분야의 발전으로 다양한 애플리케이션이 텍스트와 음성을 매우 정확하게 이해할 수있게되었습니다. 결과적으로 채팅 봇은 사람을 시뮬레이션하여 위치와 매우 일치하는 이력서를 선별하고, 우수한 예측 검색을 수행하고, 문서 요약을 자동으로 생성 할 수 있습니다.이 모든 작업은 매우 저렴한 비용으로 달성 할 수 있습니다. Keras 및 TensorFlow와 같은 사용하기 쉬운 도구의 등장과 함께 새로운 기술의 개발로 인해 전문가 수준의 자연어 처리 (NLP)가 그 어느 때보 다 쉬워졌습니다.
이 책의 주요 내용
● Keras, TensorFlow, gensim 및 scikit-learn과 같은 도구 사용.
● 규칙 기반 자연어 처리 및 데이터 기반 자연어 처리.
● 확장 가능한 자연어 처리 파이프 라인.
이 책을 읽으려면 독자가 딥 러닝 지식에 대한 기본적인 이해와 중간 수준의 Python 프로그래밍 기술이 있어야합니다.
"자연어 처리 실제 전투"의 특징 :
저자 정보
목차
텍스트 처리 기계의 첫 번째 부분
1 장 NLP 3 개요
1.1 자연 언어와 언어 3 프로그래밍
1.2 마법 마법 4
5 이야기 할 수 1.2.1 기계
NLP 5 1.2.2 수학
1. 3 실용적 응용 7
1.4 컴퓨터 언어 "눈"8
1.4.1 잠금 언어 (정규식) 9
1.4.2 정규식 9
1.4.3 간단한 채팅 로봇 11
1 .4.4 또 다른 방법 14
1.5 하이퍼 스페이스에 대한 간략한 설명 17
1.6 단어 순서와 문법 19
1.7 챗봇의 자연어 파이프 라인 20
1.8 심층 처리 22
1.9 자연어 IQ 24
1.10 요약 26
제 2 장 자신 만의 어휘-단어 분할 구축 27
2.1 과제 (어간 미리보기) 28
2.2 단어 분할기를 사용하여 어휘 구축 29
2.2.1 내적 37
2.2.2 단어 측정 가방 사이의 일치 37
2.2.3 구두점 처리 38
2.2.4 어휘를 n-gram으로 확장 43
2.2.5 어휘 정규화 48
2.3 감정 55
2.3 .1 VADER : 규칙 기반 감정 분석기 56
2.3.2 Naive Bayes 58
2.4 요약 61
3 장
단어의 수학 62 3.1 단어 모음 63
3.2 벡터화 67
3.3 Zipf의 법칙 74
3.4 주제 모델링 76
3.4.1 Zipf의 법칙으로 돌아 가기 79
3.4.2 관련성 순위 80
3.4.3 도구 82
3.4.4 기타 도구 83
3.4.5 Okapi BM25 85
3.4.6 미래 Outlook 85
3.5 요약 85
4 장 단어 빈도의 의미론 87
4.1 단어 빈도에서 주제 점수로 88
4.1.1 TF-IDF 벡터와 형태 학적 병합 88
4.1.2 주제 벡터 89
4.1. 3 사고 실험 90
4.1.4 주제 점수 알고리즘 94
4.1.5 LDA 분류기 95
4.2 잠재 의미 분석 99
4.3 특이 값 분해 103
4.3.1 왼쪽 특이 벡터 U 105
4. 3.2 특이 값 벡터 S 106
4.3.3 우측 특이 벡터 VT 107
4.3.4 SVD 행렬의 방향 107
4.3.5 테마 축소 108
4.4 주성분 분석 109
4.4.1 3 차원 벡터상의 PCA 111
4.4.2 회귀 NLP 112
4.4.3 PCA 기반 단문 메시지 의미 분석 114
4.4.4 잘린 SVD 기반 단문 메시지 의미 분석 116
4.4 .5 LSA에 기반한 단문 메시지 분류의 효과 117
4.5 잠재적 인 디리클레 분포 (LDiA) 119
4.5.1 LDiA의 아이디어 120
4.5.2 LDiA 주제 모델에 기반한 단문 메시지의 의미 분석 121
4.5 .3 LDiA + LDA = 스팸 필터 124
4.5.4 공정한 비교 : 32 개의 LdiA 주제 125
4.6 거리 및 유사성 127
4.7 피드백 및 개선 129
4.8 주제 벡터의 힘 132
4 .8.1 시맨틱 검색 133
4.8.2 개선 135
4.9 요약 135
2 부 딥 러닝 (신경망)
5 장 예비 신경망 (퍼셉트론 및 역 전파) 139
5.1 신경망의 구성 140
5.1.1 Perceptron 140
5.1.2 Digital Perceptron 141
5.1.3 Bias 이해 142
5.1.4 Error Surface 153
5.1.5 다양한 유형의 Error Surface 154
5.1. 6 다중 경사 하강 법 알고리즘 155
5.1.7 Keras : Python으로 신경망 155 구현
5.1.8 Outlook 158
5.1.9 정규화 : 형식화 된 입력 159
5.2 요약 159
6 장 단어 벡터 추론 (Word2vec) 160
6. 1 의미 질의 및 비유 160
6.2 워드 벡터 162
6.2.1 벡터 지향 추론 165
6.2.2 Word2vec 표현 계산
방법 167 6.2.3 gensim 사용 방법. word2vec 모듈 175
6.2.4 사용자 지정 단어 벡터 표현 생성 177
6.2.5 Word2vec 및 GloVe 179
6.2.6 fastText 180
6.2.7 Word2vec 및 LSA 180
6.2.8 단어 관계 시각화 181
6 .2.9 부 자연스러운 단어 187
6. 2.10 Doc2vec로 문서 유사성 계산 188
6.3 요약 190
7 장 컨벌루션 신경망 (CNN) 191
7.1 의미 이해 192
7.2 툴킷 193
7. 3 컨볼 루션 신경망 194
7.3.1 빌딩 블록 195
7.3.2 단계 크기 196
7.3.3 컨볼 루션 커널의 구성 196
7.3.4 채우기 198
7.3.5 학습 199
7.4 좁은 창 199
7.4.1 Keras 구현 : 데이터 준비 201
7.4.2 컨벌루션 신경망 아키텍처 206
7.4.3 풀링 206
7.4.4 드롭 아웃 208
7.4.5 출력 계층 209
7.4.6 학습 시작 (훈련) 211
7.4.7 파이프 라인에서 모델 사용 212
7.4.8 전망 213
7.5 요약 214
Chapter 8 Recurrent Neural Network (RNN) 215
8.1 반복 네트워크 메모리 기능 217
8.1.1 시간 경과에 따른 역 전파 알고리즘 221
8.1.2 다른 순간에 가중치 업데이트 223
8.1.3 간략한 검토 225
8.1.4 어려움 225
8.1.5 Keras를 사용하여 순환 신경망 구현 226
8.2 부품 통합 230
8.3자가 학습 231
8.4 하이퍼 파라미터 232
8.5 예측 235
8.5.1 상태 저장 236
8.5. 2 양방향 RNN 236
8.5.3 인코딩 벡터 238
8.6 요약 238
9 장 기억 향상 : 장단기 기억 네트워크 (LSTM) 239
9.1 장단기 기억 (LSTM) 240
9.1.1 시간에 따른 역 전파 247
9.1.2 모델 사용 250
9.1.3 더티 데이터 251
9.1.4 "알 수없는"항목 처리 254
9.1.5 문자 수준 모델링 255
9.1.6 채팅 텍스트 생성 260
9.1.7 텍스트 추가 생성 262
9.1.8 텍스트 생성 문제 : 제어되지 않는 콘텐츠 269
9.1.9 기타 메모리 메커니즘 269
9.1.1 네트워크 270
9.2 요약 271
10 장 시퀀스-투-시퀀스 모델링 및주의 메커니즘 272
10.1 인코딩-디코딩 아키텍처 272
10.1.1 디코딩 아이디어 273
10.1.2 Deja vu? 275
10.1.3 시퀀스 간 대화 276
10.1.4 LSTM 검토 277
10.2 시퀀스 간 파이프 라인 조립 278
10.2.1 시퀀스 간 교육을위한 데이터 세트 준비 278
10.2.2 Keras 279의 Sequence-to-sequence 모델
10.2.3 시퀀스 인코더 280
10.2.4 아이디어 디코더 281
10.2.5 시퀀스 네트워크에 시퀀스 조립 282
10.3 시퀀스 네트워크에 대한 훈련 시퀀스 282
10.4 사용 챗봇을 구축하기위한 시퀀스-투-시퀀스 네트워크 284
10.4.1 훈련을위한 말뭉치 준비 285
10.4.2 문자 사전 구축 286
10.4.3 원-핫 코딩 훈련 세트 생성 286
10.4.4 시퀀스를 훈련 하여 채팅 로봇 287
10.4.5 시퀀스 조립 모델 생성 288
10.4.6 출력 시퀀스 예측 288
10.4.7 응답 생성 289
10.4.8 챗봇과 대화하기 290
10.5 향상 290
10.5.1 버킷 팅을 사용하여 훈련 복잡성 줄이기 290
10 .5.2주의 메커니즘 291
10.6 실용적인 응용 292
10.7 요약 294
파트 III 현실 세계로 들어가기 (실제로 NLP 도전)
11 장 정보 추출 (명명 된 개체 인식 및 질문 응답 시스템) 297
11.1 명명 엔티티와 관계 297
11.1.1 지식 기반 298
11.1.2 정보 추출 300
11.2 정규 패턴 300
11.2.1 정규 표현식 301
11.2.2 머신 러닝의 특징으로서 정보 추출 관련 추출 작업 302
11.3 추출 할 가치가있는 정보 303
11.3.1 GPS 위치 추출 303
11.3.2 날짜 추출 304
11.4 사람 관계 (사물) 추출 309
11.4.1 품사 태그 지정 309
11.4.2 엔티티 이름 표준화 313
11.4.3 엔티티 관계 표준화 및 추출 314
11.4.4 단어 패턴 314
11.4.5 텍스트 분할 314
11.4.6 왜 split ( '.!') 함수가 사용 되는가
Regardless of 316 11.4.7 정규식을 사용하여 문장 분할 316
11.5 실제 정보 추출 318
11.6 요약 319
12 장 채팅 시작 (대화 상자 엔진) 320
12.1 언어 기술 321
12.1.1 현대적 방법 322
12.1.2 하이브리드 방법 326
12.2 패턴 매칭 방법 327
12.2.1 AIML 기반 패턴 매칭 챗봇 328
12.2.2 패턴 매칭의 네트워크 뷰 334
12.3 지식 방법 334
12. 4 검색 (검색) 방법 336
12.4.1 컨텍스트 챌린지 336
12.4.2 챗봇 338 기반 검색 예제
12.4.3 검색 기반 챗봇 341
12.5 생성 방법 343
12.5.1 NLPIA 343
12.5.2 각 방법의 장단점 345
12.6 사 륜구동 345
12.7 설계 프로세스 347
12.8 기술 349
12.8.1 질문에 대한 예측 가능한 답변과 함께 사용 질문 349
12.8.2 흥미롭게 350
12.8.3 다른 모든 것이 실패하면 검색 350
12.8.4 인기가 높아집니다 350
12 8.5 연결
자가되기 351 12.8.6 감정적이되기 351
12.9 현실 세계 351
12.10 요약 352
13 장 확장 성 (최적화, 병렬화 및 일괄 처리) 353
13.1 너무 많음 ( 데이터)가 반드시 좋은 것은 아닙니다 353
13.2 NLP 알고리즘 최적화 354
13.2.1 색인 354
13.2.2 고급 색인 355
13.2.3 Annoy 기반 고급 색인 357
13.2.4 근사 색인을 사용하는 이유 361
13.2.5 인덱스 해결 방법 : 이산화 362
13.3 상수 수준 메모리 알고리즘 363
13.3.1 gensim 363
13.3.2 그래프 계산 363
13.4 병렬 NLP 계산 364
13.4.1 In GPU 364에서 NLP 모델 학습
13.4.2 365 대여 및 구매
13.4.3 GPU 임대 옵션 366
13.4.4 Tensor 처리 장치 TPU 367
13.5 모델 학습 중 메모리 사용량 줄이기 367
13.6 TensorBoard를 사용하여 모델 이해 369
13.7 요약 372
부록 A 책을 보완하는 NLP 도구 373
부록 B 흥미로운 Python 및 정규 표현식 380
부록 C 벡터 및 행렬 (선형 대수 기초) 385
부록 D 일반 도구 및 기계 학습 기술 391
부록 E Amazon Cloud Services (AWS)에서 GPU 설정 403
부록 F 부분적으로 민감한 해싱 415
리소스 421
용어집 428