産品特色
編輯推薦
自然語言處理(NLP)是有關計算語言學與人工智能的研究領域之一。NLP主要關注人機交互,它提供瞭計算機和人類之間的無縫交互,使得計算機在機器學習的幫助下理解人類語言。
本書詳細介紹如何使用Python執行各種自然語言處理(NLP)任務,並幫助讀者掌握利用Python設計和構建基於NLP的應用的實踐。本書引導讀者應用機器學習工具來開發各種各樣的模型。對於訓練數據的創建和主要NLP應用的實現,例如命名實體識彆、問答係統、語篇分析、詞義消歧、信息檢索、情感分析、文本摘要以及指代消解等,本書都進行瞭清晰的介紹。本書有助於讀者使用NLTK創建NLP項目並成為相關領域的專傢。
通過閱讀本書,你將能夠:
● 實現字符串匹配算法以及標準化技術;
● 實現統計語言建模技術;
● 深刻理解詞乾提取器、詞形還原器、形態分析器以及形態生成器的開發;
● 開發搜索引擎並實現詞性標注和統計建模(包含n-gram方法)等相關概念;
● 熟悉諸如樹型庫建設、CFG建設、CYK以及Earley綫圖解析算法等相關概念;
● 開發基於NER的係統並理解和應用情感分析的相關概念;
● 理解並實現信息檢索和文本摘要等相關概念;
● 開發語篇分析係統以及基於指代消解的係統。
內容簡介
自然語言處理是計算語言學和人工智能之中與人機交互相關的領域之一。
本書是學習自然語言處理的一本綜閤學習指南,介紹瞭如何用Python實現各種NLP任務,以幫助讀者創建基於真實生活應用的項目。全書共10章,分彆涉及字符串操作、統計語言建模、形態學、詞性標注、語法解析、語義分析、情感分析、信息檢索、語篇分析和NLP係統評估等主題。
本書適閤熟悉Python語言並對自然語言處理開發有一定瞭解和興趣的讀者閱讀參考。
作者簡介
對自然語言處理理論和算法感興趣的讀者,Python程序員對自然語言處理理論和算法感興趣的讀者,Python程序員對自然語言處理理論和算法感興趣的讀者,Python程序員
目錄
第1章 字符串操作 1
1.1 切分 1
1.1.1 將文本切分為語句 2
1.1.2 其他語言文本的切分 2
1.1.3 將句子切分為單詞 3
1.1.4 使用TreebankWordTokenizer
執行切分 4
1.1.5 使用正則錶達式實現
切分 5
1.2 標準化 8
1.2.1 消除標點符號 8
1.2.2 文本的大小寫轉換 9
1.2.3 處理停止詞 9
1.2.4 計算英語中的停止詞 10
1.3 替換和校正標識符 11
1.3.1 使用正則錶達式替換
單詞 11
1.3.2 用另一個文本替換文本的
示例 12
1.3.3 在執行切分前先執行替換操作 12
1.3.4 處理重復字符 13
1.3.5 去除重復字符的示例 13
1.3.6 用單詞的同義詞替換 14
1.3.7 用單詞的同義詞替換的
示例 15
1.4 在文本上應用Zipf定律 15
1.5 相似性度量 16
1.5.1 使用編輯距離算法執行相似性度量 16
1.5.2 使用Jaccard係數執行相似性度量 18
1.5.3 使用Smith Waterman距離算法執行相似性度量 19
1.5.4 其他字符串相似性度量 19
1.6 小結 20
第2章 統計語言建模 21
2.1 理解單詞頻率 21
2.1.1 為給定的文本開發
MLE 25
2.1.2 隱馬爾科夫模型估計 32
2.2 在MLE模型上應用平滑 34
2.2.1 加法平滑 34
2.2.2 Good Turing平滑 35
2.2.3 Kneser Ney平滑 40
2.2.4 Witten Bell平滑 41
2.3 為MLE開發一個迴退機製 41
2.4 應用數據的插值以便獲取混閤
搭配 42
2.5 通過復雜度來評估語言模型 42
2.6 在語言建模中應用
Metropolis-Hastings算法 43
2.7 在語言處理中應用Gibbs
采樣法 43
2.8 小結 46
第3章 形態學:在實踐中學習 47
3.1 形態學簡介 47
3.2 理解詞乾提取器 48
3.3 理解詞形還原 51
3.4 為非英文語言開發詞乾
提取器 52
3.5 形態分析器 54
3.6 形態生成器 56
3.7 搜索引擎 56
3.8 小結 61
第4章 詞性標注:單詞識彆 62
4.1 詞性標注簡介 62
默認標注 67
4.2 創建詞性標注語料庫 68
4.3 選擇一種機器學習算法 70
4.4 涉及n-gram的統計建模 72
4.5 使用詞性標注語料庫開發
分塊器 78
4.6 小結 80
第5章 語法解析:分析訓練資料 81
5.1 語法解析簡介 81
5.2 Treebank建設 82
5.3 從Treebank提取上下文無關
文法規則 87
5.4 從CFG創建概率上下文無關
文法 93
5.5 CYK綫圖解析算法 94
5.6 Earley綫圖解析算法 96
5.7 小結 102
第6章 語義分析:意義很重要 103
6.1 語義分析簡介 103
6.1.1 NER簡介 107
6.1.2 使用隱馬爾科夫模型的
NER係統 111
6.1.3 使用機器學習工具包訓練
NER 117
6.1.4 使用詞性標注執行
NER 117
6.2 使用Wordnet生成同義詞
集id 119
6.3 使用Wordnet進行詞義消歧 122
6.4 小結 127
第7章 情感分析:我很快樂 128
7.1 情感分析簡介 128
7.1.1 使用NER執行情感
分析 134
7.1.2 使用機器學習執行情感
分析 134
7.1.3 NER係統的評估 141
7.2 小結 159
第8章 信息檢索:訪問信息 160
8.1 信息檢索簡介 160
8.1.1 停止詞刪除 161
8.1.2 使用嚮量空間模型進行
信息檢索 163
8.2 嚮量空間評分及查詢操作符
關聯 170
8.3 使用隱性語義索引開發IR
係統 173
8.4 文本摘要 174
8.5 問答係統 176
8.6 小結 177
第9章 語篇分析:理解纔是可信的 178
9.1 語篇分析簡介 178
9.1.1 使用中心理論執行語篇
分析 183
9.1.2 指代消解 184
9.2 小結 188
第10章 NLP係統評估:性能分析 189
10.1 NLP係統評估要點 189
10.1.1 NLP工具的評估(詞性標注器、詞乾提取器及形態分析器) 190
10.1.2 使用黃金數據執行解析器
評估 200
10.2 IR係統的評估 201
10.3 錯誤識彆指標 202
10.4 基於詞匯搭配的指標 202
10.5 基於句法匹配的指標 207
10.6 使用淺層語義匹配的指標 207
10.7 小結 208
深入探索語言的奧秘:自然語言處理的前沿與實踐 在信息爆炸的時代,語言是連接人類思想、傳遞知識、驅動文明進步的核心載體。我們每天都在與海量的文本和語音信息打交道,從搜索引擎的精準匹配,到智能助手的貼心服務,再到社交媒體的觀點分析,自然語言處理(NLP)技術正以前所未有的深度和廣度滲透到我們生活的方方麵麵。本書將帶您踏上一段激動人心的探索之旅,深入剖析自然語言處理的原理、算法和應用,為您揭示隱藏在文字背後的巨大潛能。 為何要理解自然語言處理? 人類語言的復雜性在於其多義性、歧義性、語境依賴性以及不斷演變的特性。機器要理解並生成人類語言,需要跨越巨大的鴻溝。自然語言處理技術正是緻力於彌閤這一鴻溝,讓計算機能夠像人類一樣“聽懂”和“說齣”語言。掌握NLP,意味著您將能: 解鎖海量信息的價值: 從數以億計的文檔、網頁、社交媒體帖子中提取有價值的信息、發現隱藏的模式、洞察用戶的情緒和意圖。 構建更智能的交互係統: 開發更自然、更人性化的聊天機器人、語音助手、智能客服,提升用戶體驗。 推動跨語言交流: 實現更精準、更流暢的機器翻譯,打破語言障礙,促進全球信息共享。 革新內容創作與分析: 自動化生成新聞報道、營銷文案,或者對現有內容進行深度分析,提供商業洞察。 在科研領域取得突破: 輔助科學研究,如文本挖掘、文獻綜述、知識圖譜構建等,加速知識發現的進程。 本書將帶您領略哪些精彩內容? 本書的設計旨在為您提供一個既有深度又有廣度的NLP知識體係。我們將從基礎概念齣發,逐步深入到核心算法和前沿技術,並結閤豐富的實戰案例,讓您在理論學習的同時,也能動手實踐,感受NLP的魅力。 第一部分:自然語言處理的基石——理解語言的本質 在開始構建復雜的NLP係統之前,我們必須首先理解語言本身以及計算機如何對其進行初步的處理。 語言的結構與構成: 我們將探討語言的基本單元,如詞語、句子、段語篇,以及它們之間的關係。瞭解詞法分析(分詞、詞性標注)、句法分析(依存關係分析、成分句法分析)等基礎任務,是理解更高級NLP技術的前提。 文本的預處理: 原始文本往往包含大量噪音,如標點符號、大小寫、特殊字符、停用詞等。本部分將詳細介紹各種文本預處理技術,如大小寫轉換、標點符號去除、停用詞移除、詞乾提取、詞形還原等,以確保後續分析的準確性。 詞匯的錶示: 如何將離散的詞語轉化為計算機可以理解和處理的數值錶示?我們將深入介紹多種詞嚮量模型,從經典的詞袋模型(Bag-of-Words)和TF-IDF,到基於神經網絡的詞嚮量模型,如Word2Vec(Skip-gram, CBOW)和GloVe。您將理解這些模型如何捕捉詞語之間的語義關係,為下遊任務提供強大的特徵錶示。 第二部分:核心NLP任務的深入解析與實踐 掌握瞭基礎知識後,我們將聚焦於NLP領域的核心任務,並深入探討實現這些任務的經典算法和模型。 文本分類與情感分析: 如何判斷一篇文章屬於哪個類彆?如何判斷一段文字錶達的情感是積極、消極還是中立?我們將學習基於樸素貝葉斯、支持嚮量機(SVM)、邏輯迴歸等傳統機器學習方法,以及基於循環神經網絡(RNN)、長短期記憶網絡(LSTM)、門控循環單元(GRU)等深度學習模型在文本分類和情感分析中的應用。 命名實體識彆(NER): 從文本中識彆齣具有特定意義的實體,如人名、地名、組織名、日期等,是信息抽取和知識圖譜構建的關鍵。我們將研究基於條件隨機場(CRF)的模型,以及利用BiLSTM-CRF等深度學習架構實現高精度的命名實體識彆。 關係抽取: 在識彆齣實體後,如何進一步理解實體之間的關係?例如,“史蒂夫·喬布斯”和“蘋果公司”之間的“創始人”關係。我們將探討規則匹配、遠程監督以及基於深度學習的關係抽取方法。 問答係統(QA): 構建一個能夠理解用戶問題並從文本中提取答案的係統是NLP領域的一大挑戰。我們將介紹不同類型的問答係統,如基於知識圖譜的問答、基於信息檢索的問答,以及近年來在開放域問答領域取得顯著進展的基於閱讀理解的模型。 機器翻譯(MT): 將一種語言的文本準確地翻譯成另一種語言是NLP最具代錶性的應用之一。我們將迴顧統計機器翻譯(SMT)的發展,並重點介紹基於神經網絡的機器翻譯(NMT),特彆是注意力機製(Attention Mechanism)和Transformer模型如何革新瞭機器翻譯的性能。 第三部分:前沿NLP技術與模型 隨著深度學習技術的飛速發展,NLP領域湧現齣許多革命性的模型和技術。本部分將帶您領略NLP的最新前沿。 預訓練語言模型(PLM): 以BERT、GPT係列為代錶的預訓練語言模型,通過在大規模無標注語料上進行預訓練,學習到瞭豐富的語言知識,並在下遊任務上錶現齣驚人的遷移學習能力。我們將深入剖析預訓練模型的原理,包括其架構(如Transformer)、預訓練任務(如Masked Language Model, Next Sentence Prediction)以及如何進行微調(Fine-tuning)以適應各種NLP任務。 生成式模型與文本生成: 除瞭理解語言,讓計算機生成自然、連貫、有意義的文本也至關重要。我們將探討序列到序列(Seq2Seq)模型在文本生成中的應用,以及如何利用預訓練模型進行文本摘要、故事生成、對話生成等。 多模態NLP: 語言不僅僅存在於文本中,還與圖像、語音等其他模態的信息緊密關聯。我們將介紹如何結閤視覺信息和語言信息,進行圖像描述生成、視覺問答等任務,以及多模態預訓練模型的最新進展。 負責任的NLP: 隨著NLP技術越來越強大,我們必須關注其潛在的倫理和社會問題,如偏見、歧視、隱私泄露等。本部分將探討如何識彆和緩解模型中的偏見,以及如何構建更公平、更安全的NLP係統。 本書的特色與優勢: 循序漸進的知識體係: 從基礎概念到高級算法,層層遞進,確保讀者能夠牢固掌握每個階段的學習內容。 豐富的實戰案例: 理論結閤實踐,通過具體的代碼示例和項目,幫助讀者將所學知識應用於實際問題。 深入的原理剖析: 不僅介紹“如何做”,更深入講解“為什麼這麼做”,幫助讀者理解算法背後的數學原理和思想。 關注前沿進展: 及時跟進NLP領域的最新研究成果和熱門技術,讓讀者站在技術的最前沿。 麵嚮廣泛讀者群體: 無論您是計算機科學專業的學生、軟件工程師、數據科學傢,還是對語言智能充滿好奇的業餘愛好者,本書都能為您提供有價值的學習資源。 誰適閤閱讀本書? 計算機科學與相關專業的學生: 為您打下堅實的NLP理論基礎,為後續深入研究或就業做好準備。 軟件工程師: 學習如何將NLP技術集成到您的産品和服務中,提升應用的智能化水平。 數據科學傢與機器學習工程師: 擴展您的技能棧,掌握處理非結構化文本數據的強大工具。 對人工智能和語言技術感興趣的個人: 開啓一段關於智能語言處理的精彩探索,瞭解AI如何理解和運用人類的語言。 踏上這段旅程,您將不僅學習到NLP的技術細節,更能深刻理解語言的強大力量,以及如何通過技術賦予機器理解和運用這種力量的能力。讓我們一起,撥開語言的迷霧,迎接智能時代的到來。
坦白說,這本書的閱讀體驗讓我感到非常驚喜。作者在撰寫過程中,似乎充分考慮到瞭讀者的“痛點”,並巧妙地加以解決。例如,書中在講解詞嵌入(Word Embeddings)時,不僅介紹瞭 Word2Vec 和 GloVe 的原理,還花瞭很大的篇幅去討論詞嚮量的優化和應用,比如如何利用詞嚮量進行文本相似度計算、文本聚類等。我印象最深刻的是,書中還提供瞭一些關於如何解決“一詞多義”問題的思路和實踐方法,這一點在很多同類書籍中都鮮有提及。更難得的是,書中對於數據偏差和模型公平性的討論,也讓我受益匪淺。在當今 AI 越來越普及的時代,關注這些倫理和實際應用層麵的問題,顯得尤為重要。《精通Python自然語言處理》在這方麵做齣瞭很好的示範。書中的代碼可讀性很強,注釋也很詳細,讓我能夠輕鬆地理解每一行代碼的作用,並且方便我進行修改和擴展。讀完這本書,我感覺自己對 NLP 的理解不再停留在錶麵,而是能夠更深入地洞察其內在機製,並能更有信心地去應對各種復雜的 NLP 挑戰。