Python自然語言處理實戰:核心技術與演算法

Python自然語言處理實戰:核心技術與演算法
定價:414
NT $ 360
  • 作者:塗銘
  • 出版社:機械工業出版社
  • 出版日期:2018-05-01
  • 語言:簡體中文
  • ISBN10:7111597672
  • ISBN13:9787111597674
  • 裝訂:平裝 / 281頁 / 16k / 19 x 26 cm / 普通級 / 單色印刷 / 1-1
 

內容簡介

這是一本自然語言處理理論和實踐完美結合的教材。讀者在瞭解自然語言處理全貌的同時,可以根據本書的一些實踐案例快速上手並應用於自己的項目中。作者結合自己的實踐經驗,重點介紹了真實場景下快速構建一些自然語言處理專案所需的技能,並提供了一些工具推薦或演算法實現。
 
本書著眼于實際應用場景,主要介紹了分詞、詞性標注和名實體識別、句法分析等基本技術,並通過剖析近年來在自然語言處理領域大放光彩的深度學習技術,力求快速地帶領讀者入門自然語言處理。作者在後還通過在大資料平臺上的實戰專案,完整呈現了真實場景下自然語言處理專案的整個環節,以供讀者參考。
 

作者介紹

塗銘,阿裡巴巴資料架構師,對大資料、自然語言處理、Python、Java相關技術有深入的研究,積累了豐富的實踐經驗。曾就職於北京明略資料,是大數據方面的高級諮詢顧問。在工業領域參與了設備故障診斷專案,在零售行業參與了精准行銷項目。在自然語言處理方面,擔任導購機器人專案的架構師,主導開發機器人的語義理解、短文本相似度匹配、上下文理解,以及通過自然語言檢索產品庫,在專案中構建了NoSQL+文本檢索等大資料架構,同時也負責問答對的整理和商品屬性的提取,帶領NLP團隊構建語義解析層。

劉祥,百煉智慧自然語言處理專家,主要研究知識圖譜、NLG等前沿技術,參與機器自動寫作產品的研發與設計。曾在明略資料擔當資料技術合夥人兼資料科學家,負責工業、金融等業務領域的資料採擷工作,在這些領域構建了諸如故障診斷、關聯帳戶分析、新聞推薦、商品推薦等模型。酷愛新技術,活躍於開源社區,是SparkMLlib和Zeppelin的Contributor。

劉樹春,七牛雲高級演算法專家,七牛Al實驗室NLP&OCR方向負責人,主要負責七牛NLP以及OCR相關項目的研究與落地。在七牛人工智慧實驗室工作期間,參與大量NLP相關專案,例如知識圖譜、問答系統、文本摘要、語音相關系統等;同時重點關注NLP與cv的交叉研究領域,主要包括視覺問答(VQA),圖像標注(ImageCaption)等前沿問題。曾在IntelDCSG資料與雲計算部門從事機器學習與雲平臺的融合開發,專案獲得IDF大獎。碩士就讀于華東師範大學機器學習實驗室,在校期間主攻機器學習、機器視覺、影像處理,並在相關國際會議發表多篇SCI/EI論文。
 

目錄

序一
序二
前言
第1章NLP基礎1
1.1什麼是NLP1
1.1.1NLP的概念1
1.1.2NLP的研究任務3
1.2NLP的發展歷程5
1.3NLP相關知識的構成7
1.3.1基本術語7
1.3.2知識結構9
1.4語料庫10
1.5探討NLP的幾個層面11
1.6NLP與人工智慧13
1.7本章小結15
第2章NLP前置技術解析16
2.1搭建Python開發環境16
2.1.1Python的科學計算發行版本——Anaconda17
2.1.2Anaconda的下載與安裝19
2.2規則運算式在NLP的基本應用21
2.2.1匹配字串22
2.2.2使用轉義符26
2.2.3抽取文本中的數位26
2.3Numpy使用詳解27
2.3.1創建陣列28
2.3.2獲取Numpy中陣列的維度30
2.3.3獲取本地資料31
2.3.4正確讀取資料32
2.3.5Numpy陣列索引32
2.3.6切片33
2.3.7陣列比較33
2.3.8替代值34
2.3.9資料類型轉換36
2.3.10Numpy的統計計算方法36
2.4本章小結37
第3章中文分詞技術38
3.1中文分詞簡介38
3.2規則分詞39
3.2.1正向最大匹配法39
3.2.2逆向最大匹配法40
3.2.3雙向最大匹配法41
3.3統計分詞42
3.3.1語言模型43
3.3.2HMM模型44
3.3.3其他統計分詞演算法52
3.4混合分詞52
3.5中文分詞工具——Jieba53
3.5.1Jieba的三種分詞模式54
3.5.2實戰之高頻詞提取55
3.6本章小結58
第4章詞性標注與命名實體識別59
4.1詞性標注59
4.1.1詞性標注簡介59
4.1.2詞性標注規範60
4.1.3Jieba分詞中的詞性標注61
4.2命名實體識別63
4.2.1命名實體識別簡介63
4.2.2基於條件隨機場的命名實體識別65
4.2.3實戰一:日期識別69
4.2.4實戰二:地名識別75
4.3總結84
第5章關鍵字提取演算法85
5.1關鍵字提取技術概述85
5.2關鍵字提取演算法TF/IDF演算法86
5.3TextRank演算法88
5.4LSA/LSI/LDA演算法91
5.4.1LSA/LSI演算法93
5.4.2LDA演算法94
5.5實戰提取文本關鍵字95
5.6本章小結105
第6章句法分析106
6.1句法分析概述106
6.2句法分析的資料集與評測方法107
6.2.1句法分析的資料集108
6.2.2句法分析的評測方法109
6.3句法分析的常用方法109
6.3.1基於PCFG的句法分析110
6.3.2基於最大間隔瑪律可夫網路的句法分析112
6.3.3基於CRF的句法分析113
6.3.4基於移進–歸約的句法分析模型113
6.4使用StanfordParser的PCFG演算法進行句法分析115
6.4.1StanfordParser115
6.4.2基於PCFG的中文句法分析實戰116
6.5本章小結119
第7章文本向量化120
7.1文本向量化概述120
7.2向量化演算法word2vec121
7.2.1神經網路語言模型122
7.2.2C&W模型124
7.2.3CBOW模型和Skip—gram模型125
7.3向量化演算法doc2vec/str2vec127
7.4案例:將網頁文本向量化129
7.4.1詞向量的訓練129
7.4.2段落向量的訓練133
7.4.3利用word2vec和doc2vec計算網頁相似度134
7.5本章小結139
第8章情感分析技術140
8.1情感分析的應用141
8.2情感分析的基本方法142
8.2.1詞法分析143
8.2.2機器學習方法144
8.2.3混合分析144
8.3實戰電影評論情感分析145
8.3.1卷積神經網路146
8.3.2迴圈神經網路147
8.3.3長短時記憶網路148
8.3.4載入數據150
8.3.5輔助函數154
8.3.6模型設置155
8.3.7調參配置158
8.3.8訓練過程159
8.4本章小結159
第9章NLP中用到的機器學習演算法160
9.1簡介160
9.1.1機器學習訓練的要素161
9.1.2機器學習的組成部分162
9.2幾種常用的機器學習方法166
9.2.1文本分類166
9.2.2特徵提取168
9.2.3標注169
9.2.4搜索與排序170
9.2.5推薦系統170
9.2.6序列學習172
9.3分類器方法173
9.3.1樸素貝葉斯NaiveBayesian173
9.3.2邏輯回歸174
9.3.3支持向量機175
9.4無監督學習的文本聚類177
9.5文本分類實戰:中文垃圾郵件分類180
9.5.1實現代碼180
9.5.2評價指標187
9.6文本聚類實戰:用K—means對豆瓣讀書數據聚類190
9.7本章小結194
第10章基於深度學習的NLP演算法195
10.1深度學習概述195
10.1.1神經元模型196
10.1.2啟動函數197
10.1.3感知機與多層網路198
10.2神經網路模型201
10.3多輸出層模型203
10.4反向傳播演算法204
10.5最優化演算法208
10.5.1梯度下降208
10.5.2隨機梯度下降209
10.5.3批量梯度下降210
10.6丟棄法211
10.7啟動函數211
10.7.1tanh函數212
10.7.2ReLU函數212
10.8實現BP演算法213
10.9詞嵌入演算法216
10.9.1詞向量217
10.9.2word2vec簡介217
10.9.3詞向量模型220
10.9.4CBOW和Skip—gram模型222
10.10訓練詞向量實踐224
10.11樸素Vanilla—RNN227
10.12LSTM網路230
10.12.1LSTM基本結構230
10.12.2其他LSTM變種形式234
10.13Attention機制236
10.13.1文本翻譯237
10.13.2圖說模型237
10.13.3語音辨識239
10.13.4文本摘要239
10.14Seq2Seq模型240
10.15圖說模型242
10.16深度學習平臺244
10.16.1Tensorflow245
10.16.2Mxnet246
10.16.3PyTorch246
10.16.4Caffe247
10.16.5Theano247
10.17實戰Seq2Seq問答機器人248
10.18本章小結254
第11章Solr搜尋引擎256
11.1全文檢索的原理257
11.2Solr簡介與部署258
11.3Solr後臺管理描述263
11.4配置schema267
11.5Solr管理索引庫270
11.5.1創建索引270
11.5.2查詢索引276
11.5.3刪除文檔279
11.6本章小結281
 

FOREWORD1序一不知不覺間,我們已經進入了“人工智慧”時代,如今隨處可見基於自然語言處理技術的聊天機器人,回想以前都是靠人工服務,現在都依靠機器人回答大部分的常見問題了。

過去幾年,深度學習架構和演算法在圖像識別和語音處理等領域取得了重大的進步。而在NLP(自然語言處理)領域,起初並沒有太大的進展。不過現在,NLP領域取得的一系列進展已證明深度學習技術將會對自然語言處理做出重大貢獻。一些常見的任務如實體命名識別,詞類標記及情感分析等,NLP都能提供最新的結果,並超越了傳統方法。另外,在機器翻譯領域的應用上,深度學習技術所取得的進步應該是最顯著的。

記得在上學期間感覺NLP這個領域很新鮮、很空白,決定嘗試做一下,讀完博士,感覺NLP比我最初接觸時理解的NLP更新鮮,更值得挖掘。NLP很多問題都沒有正式定義,或者說很難用統一的標準去訓練機器、很難搞benchmarkdataset,這可能也是AI的一大挑戰。

我認為現在比較成熟的AI方向都是相對確定的。比如語音辨識,拿來一段語音,就知道說的是什麼話;比如vision,貓的照片就是貓,這個人臉的照片就是這個人。NLP有一些問題就沒這麼明確。比如文本摘要,到底哪一個摘要是好的呢?機器翻譯,到底哪一個譯文是好的呢?複雜一些的情感分析,這篇報導的作者到底有沒有在暗諷這個人?如果一個問題有明確的答案,比如Waston——專門參加開心辭典回答問題,演算法訓練起來輕鬆一些。但如果一個問題本身的答案並無明確的高下之分,那演算法也無可奈何。

定義新問題,以較小的代價搜集新的資料集,開發新的evaluationmethod,這些與研究新演算法一樣有趣、有挑戰性。舉個簡單的例子。我們想讓機器自動識別出來諷刺的語氣,那麼去哪裡找諷刺的話呢?我們有現成的分析情感的工具,再利用這些有#sarcasm標籤的推文,可以訓練一個識別“什麼情況是倒楣情況”的分類器。以後就可以用這個倒楣識別器去識別沒有標籤的諷刺句子了,bootstrap一下把資料集搞大,這就是一個最初級的諷刺方面的資料集。

NLP圈裡很多人喜歡搞新的資料集,這個現象有利有弊,但這說明了有很多空白問題需要定義,有很多空白資源需要創建。本書從各個方面著手,幫助讀者理解NLP的過程,提供了各種實戰場景,結合現實專案背景,説明讀者理解NLP中的資料結構和演算法以及目前主流的NLP技術與方法論,結合資訊檢索技術與大數據應用等流行技術,最終完成對NLP的學習和掌握。

阿裡巴巴達摩院高級演算法專家黃英2018年1月17於杭州FOReWORD2序二近年來,幾乎整個人工智慧界的研究者們都注意到一個技術名詞——自然語言處理(NLP)。NLP作為人工智慧領域的一個重要分支,現在已經發展成為人工智慧研究中的熱點方向。最近幾十年來,隨著軟硬體協同發展,資料爆炸性增長,資訊超載的問題越來越嚴重,全部依賴人來分析和驅動的傳統方式,面對海量資訊的局面顯得越來越捉襟見肘。這樣的情況下,能夠自動化處理大規模文本相關的資料的NLP,即將成為未來人工智慧發展技術的新趨勢和方向。

自然語言處理作為機器學習與語言學、統計學等的綜合學科,不僅知識內容多,發展迅速,而且非常依賴於工程能力。目前,統計學以及資料驅動的方法在NLP中佔據著統治地位。同時,最近幾年深度學習不斷被引入NLP領域,越來越多的知識需要讀者去學習。這時候急需一本能夠從全域梳理NLP的書籍,幫助NLP學習者快速入門。傳統的NLP書籍對於具體問題的方法講解有足夠的思路,但是要麼是基於英文語料的講解,要麼通篇都是理論,面對複雜的中文語料環境缺乏實踐性。

本書的作者通過對前人傳統NLP技術以及新興的深度學習方法深入梳理,形成自己理解的NLP解決之道。本書在內容上平衡了理論和技術,在每章的理論之後都配備了實踐課,方便讀者能夠動手加深理解,避免成為只會誇誇其談的NLP理論“專家”。本書可以幫助研究者,特別是初學者,加強對NLP的理論與技術的學習,授人以魚的同時授人以漁,幫助讀者靈活解決實際工作當中遇到的各種NLP問題。

七牛雲AI實驗室Leader,10餘年人工智慧和深度學習研究林亦寧
網路書店 類別 折扣 價格
  1. 新書
    87
    $360