- Python自然語言理解:自然語言理解系統(tǒng)開發(fā)與應用實戰(zhàn)
- (美)黛博拉·A. 達爾
- 2854字
- 2024-09-10 16:34:40
前言
自然語言理解(Natural Language Understanding,NLU)是一種建模語言的方法,使得計算機系統(tǒng)能夠處理語言文本,從而支持多種應用程序的開發(fā)。
本書是一本關(guān)于NLU的實用指南。閱讀完本書,開發(fā)人員將學會如何將NLU技術(shù)應用于各個領(lǐng)域,同時管理人員也將學會如何明確NLU在解決企業(yè)實際問題時的應用范圍。
本書通過基本概念和實際示例的逐步闡釋,首先帶你了解什么是NLU以及如何應用NLU技術(shù)。然后,本書將探討當下流行的NLU方法,并提供應用每種方法的最佳實踐,包括最新的大語言模型(Large Language Model,LLM)。在此過程中,本書還會介紹最實用的Python NLU庫。通過閱讀本書,你將不僅掌握NLU的基礎(chǔ)知識,還將學會眾多實際問題的解決方案,如數(shù)據(jù)收集、系統(tǒng)評估、系統(tǒng)改進,以及NLU部署與應用。其中最重要的是,本書不僅介紹一系列NLU方法,還會介紹在未來的工作中會用到的互聯(lián)網(wǎng)上豐富的NLU資源。
本書的目標讀者
對于那些對學習NLU感興趣或?qū)米匀徽Z言處理(Natural Language Processing,NLP)方法來解決實際問題感興趣的Python開發(fā)人員(包括計算語言學家、語言學家、數(shù)據(jù)科學家、NLP開發(fā)人員、AI會話開發(fā)者以及相關(guān)領(lǐng)域的學生)來說,閱讀本書將獲益頗多。對于那些不具備技術(shù)背景的項目經(jīng)理來說,本書的前幾章也頗有趣味性。
為了深入地理解本書,讀者需要具備一定的Python基礎(chǔ)知識,但不需要掌握與NLU相關(guān)的專業(yè)知識。
本書內(nèi)容
本書共15章,將帶領(lǐng)讀者全面而深入地理解NLU,首先介紹NLU的基本概念,然后逐步講解NLU應用領(lǐng)域和NLU系統(tǒng)開發(fā),最后探討如何改進已經(jīng)開發(fā)的系統(tǒng)。
第1章將闡釋NLU的基本概念,以及NLU與語音識別等相關(guān)技術(shù)之間的區(qū)別。
第2章將系統(tǒng)地介紹NLU的應用領(lǐng)域,并簡述每種應用程序的具體需求。此外,還將列舉一些以當前技術(shù)水平難以實現(xiàn)的應用案例。
第3章將概述NLU的主要方法及其優(yōu)缺點,包括基于規(guī)則的方法、基于統(tǒng)計的方法和基于深度學習的方法。此外,本章還將討論當今流行的預訓練模型,如BERT及其衍生模型。最后,本章將討論如何組合不同的方法形成一個解決方案。
第4章關(guān)注自然語言處理前的準備工作。本章首先討論JupyterLab和GitHub等通用工具,以及它們的安裝和使用方法。然后介紹如何安裝Python和眾多用于NLU領(lǐng)域的Python庫,包括NLTK、spaCy以及TensorFlow/Keras。
第5章將介紹如何辨別和收集用于NLU的數(shù)據(jù)。本章將討論來自數(shù)據(jù)庫、網(wǎng)絡和文檔的數(shù)據(jù),以及數(shù)據(jù)的隱私性和倫理問題,還將簡要介紹綠野仙蹤技術(shù)(The Wizard of Oz technique)和其他通過模擬生成數(shù)據(jù)的方法。對于那些無法獲得數(shù)據(jù),或希望將自己的結(jié)果與其他研究人員的結(jié)果進行比較的讀者,本章還將討論易獲得且廣泛使用的語料庫。此外,本章將進一步討論文本數(shù)據(jù)預處理的基本操作,如詞干提取和詞形還原。
第6章將討論用于獲取數(shù)據(jù)整體情況的數(shù)據(jù)分析方法,包括獲取詞頻、類別頻率等數(shù)據(jù)匯總統(tǒng)計信息。本章還將討論matplotlib等可視化工具,以及基于可視化和統(tǒng)計結(jié)果做出的各種類型的決策。
第7章將討論在選擇算法時需要考慮的各種因素,包括數(shù)據(jù)規(guī)模、訓練資源以及計劃的應用場合。本章還將討論使用嵌入向量來表示語言,為定量處理自然語言做好準備。本章最后將介紹如何使用pipeline方法組合多種算法。
第8章將討論如何將基于規(guī)則的方法用于具體的應用。本章將給出正則表達式、詞形還原、句法分析、語義角色分配和本體知識等例子。本章主要使用NLTK庫。
第9章將討論如何將統(tǒng)計機器學習方法,如樸素貝葉斯、詞頻逆文檔頻率(Term Freguency-Inverse Document Freguency,TF-IDF)、支持向量機(Support Vector Machine,SVM)和條件隨機場等,應用于文本分類、意圖識別和實體提取等任務。本章將重點關(guān)注較新的方法,以及這些方法相比于傳統(tǒng)方法的性能改進。
第10章將討論基于神經(jīng)網(wǎng)絡[全連接神經(jīng)網(wǎng)絡,循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networle,RNN)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)]的機器學習方法在文本分類、信息提取等問題上的應用。本章將對這些方法的結(jié)果與第9章的方法進行比較。本章還將討論神經(jīng)網(wǎng)絡中的超參數(shù)、學習率,以及迭代訓練等相關(guān)概念。本章使用TensorFlow/Keras庫。
第11章將介紹當前自然語言處理領(lǐng)域表現(xiàn)最出色的方法,即Transformer和預訓練模型。本章將深入探討Transformer背后的原理,并提供一個使用Transformer進行文本分類的例子。本章所有代碼都基于TensorFlow/Keras Python庫。
第12章將討論無監(jiān)督學習方法的應用,包括主題建模等內(nèi)容,強調(diào)了無監(jiān)督學習在探索數(shù)據(jù)和充分利用稀缺數(shù)據(jù)方面的價值。此外,本章還將討論部分監(jiān)督學習,如弱監(jiān)督學習和遠程監(jiān)督學習。
第13章將討論模型評價的相關(guān)問題,包括數(shù)據(jù)切分(將數(shù)據(jù)切分為訓練數(shù)據(jù)集、驗證數(shù)據(jù)集和測試數(shù)據(jù)集)、交叉驗證、評估指標(如精度、召回率、曲線下面積、消融實驗、統(tǒng)計顯著性檢測和用戶測試等)。
第14章將討論系統(tǒng)維護問題。如果原始模型性能不理想,或者現(xiàn)實情況發(fā)生了變化,那么應該如何調(diào)整模型?本章將討論在確保新數(shù)據(jù)不會降低現(xiàn)有系統(tǒng)的性能的前提下,如何添加新數(shù)據(jù)以及如何改變應用程序的結(jié)構(gòu)。
第15章將提供本書的概述和對未來發(fā)展方向的展望。本章將討論系統(tǒng)可能存在改進的地方,從而使系統(tǒng)訓練得更快、適用于更具挑戰(zhàn)性的應用程序。此外,本章還會介紹NLU領(lǐng)域的研究方向和未來技術(shù)的發(fā)展趨勢。
使用本書的先決條件
本書提供了Jupyter Notebook格式的代碼示例。要運行這些Notebook,讀者需要具備一定的Python編程基礎(chǔ),并熟悉一些基本的Python庫。此外,還需要安裝必要的軟件包。
安裝軟件包的最簡單方法是使用pip工具。pip是一個優(yōu)秀的Python包管理工具。如果你尚未在計算機上安裝pip,那么可以按照鏈接https://pypi.org/project/pip/提供的安裝說明進行安裝。
熟練掌握Python編程語言將有助于更好地理解本書中的關(guān)鍵概念。本書中的示例可以在CPU上運行,不需要使用GPU,盡管一些復雜的機器學習示例在GPU上運行的速度會更快。
本書的所有代碼示例均在Windows 11(64位)操作系統(tǒng)上通過測試,確保其可行性。本書使用的軟件/硬件和操作系統(tǒng)要求如下表所示。

下載示例代碼文件
你可以從GitHub網(wǎng)站(https://github.com/PacktPublishing/Natural-Language-Understanding-with-Python)下載本書的示例代碼文件。如果本書的代碼有更新,那么GitHub庫中的代碼也會有相應的更新。
下載彩色圖片
我們還提供了一個PDF文件,包含本書使用的屏幕截圖和圖表的彩色圖像。你可以從以下鏈接下載:https://packt.link/HrkNr。
排版約定
本書使用了多種文本約定,以區(qū)分不同類型的信息。
文本代碼:用于表示代碼示例、數(shù)據(jù)庫表名、文件夾名、文件名、文件擴展名、路徑名、虛擬URL、用戶輸入以及Twitter句柄,例如“我們將使用ENCOAdjacency-DistributionModule對象建模鄰接矩陣”。
以下是一段代碼示例:

命令行輸入或輸出的寫法如下:

加粗字體:用于表示新術(shù)語、重要詞匯或屏幕上顯示的詞匯。例如,菜單或?qū)υ捒蛑械脑~以粗體顯示。例如,從管理面板中選擇系統(tǒng)信息。
致謝
在我的職業(yè)生涯中,大部分時間都專注于顧問工作。作為獨立顧問,我享受到的一大好處是有機會與不同機構(gòu)的各路精英一同合作。這種合作使我能夠接觸到多種多樣的技術(shù),這是我在一家或幾家公司工作時難以獲得的。
在此,我由衷感謝所有與我一同工作的同事。從我學生時代起,一直到我的整個職業(yè)生涯,我都與這些同事通力合作。感謝來自伊利諾伊大學、明尼蘇達大學、賓夕法尼亞大學、Unisys公司、MossRehab、心理語言技術(shù)公司、自閉癥語言治療機構(gòu)、Openstream、萬維網(wǎng)聯(lián)盟、萬維網(wǎng)基金會、應用語音輸入輸出協(xié)會、今日信息、新互動、大學太空研究協(xié)會、美國宇航局阿姆斯研究中心、開放語音網(wǎng)絡的同事們,鑒于人數(shù)眾多,我無法一一列舉。從他們身上,我學習到了許多寶貴的經(jīng)驗和知識。
- DBA攻堅指南:左手Oracle,右手MySQL
- 精通Nginx(第2版)
- 基于粒計算模型的圖像處理
- Django Design Patterns and Best Practices
- Visual Basic程序設計習題解答與上機指導
- Cassandra Data Modeling and Analysis
- concrete5 Cookbook
- iPhone應用開發(fā)從入門到精通
- Node.js開發(fā)指南
- Vue.js應用測試
- 大學計算機基礎(chǔ)
- Zabbix Performance Tuning
- IoT Projects with Bluetooth Low Energy
- WebStorm Essentials
- C語言程序設計教程