前言
從高中開(kāi)始接觸數(shù)學(xué)和統(tǒng)計(jì)學(xué)以來(lái),我就一直對(duì)數(shù)字著迷。分析學(xué)(analytics)、數(shù)據(jù)科學(xué)以及最近的文本分析技術(shù)均出現(xiàn)較晚,大概是在幾年前,當(dāng)時(shí)關(guān)于大數(shù)據(jù)(big data)和數(shù)據(jù)分析的炒作越來(lái)越猛烈,甚至有些瘋狂。就個(gè)人而言,我認(rèn)為其中很多都是過(guò)度炒作,但是也有一些令人興奮的東西,因?yàn)檫@些技術(shù)在新工作、新發(fā)現(xiàn)以及解決人們先前認(rèn)為不可能解決的問(wèn)題方面展現(xiàn)了巨大的可能性。
自然語(yǔ)言處理(Natural Language Processing,NLP)一直深深吸引著我,因?yàn)槿四X科學(xué)和人類(lèi)認(rèn)知能力確實(shí)令人著迷。如果嘗試在機(jī)器中重塑這種傳遞信息、復(fù)雜思維和情緒的能力,那一定是令人驚喜的。當(dāng)然,盡管我們?cè)谡J(rèn)知計(jì)算(cognitive computing)和人工智能(Artificial Intelligence,AI)方面的發(fā)展突飛猛進(jìn),但現(xiàn)在尚且無(wú)法實(shí)現(xiàn)這一點(diǎn)。僅通過(guò)圖靈測(cè)試可能是不夠的,機(jī)器真正能復(fù)制人的方方面面嗎?
當(dāng)今,對(duì)于NLP和文本分析應(yīng)用,迫切需求從非結(jié)構(gòu)化、原始文本數(shù)據(jù)中提取有用信息和可行見(jiàn)解的能力。到目前為止,我一直在努力解決各種問(wèn)題,面臨諸多挑戰(zhàn),并隨著時(shí)間的推移吸取了各種各樣的經(jīng)驗(yàn)教訓(xùn)。本書(shū)涵蓋了我在文本分析領(lǐng)域?qū)W到的大部分知識(shí),僅僅從一堆文本文檔中建立一個(gè)花哨的詞云是不夠的。
在學(xué)習(xí)文本分析方面,最大的問(wèn)題或許不是信息缺乏,而是信息過(guò)多,通常這稱(chēng)為信息過(guò)載(information overload)。海量的資源、文檔、論文、書(shū)籍和期刊包含了大量的理論資料、概念、技術(shù)和算法,它們常常使該領(lǐng)域的新手不知所措。解決問(wèn)題的正確技術(shù)是什么?文本摘要如何真正有效?哪些才是解決多類(lèi)文本分類(lèi)的框架?通過(guò)將數(shù)學(xué)和理論概念與現(xiàn)實(shí)用例的Python實(shí)現(xiàn)相結(jié)合,本書(shū)嘗試解決這個(gè)問(wèn)題,并幫助讀者避免迄今為止我所遇到的一些急迫問(wèn)題。
本書(shū)采用了全面的和結(jié)構(gòu)化的介紹方法。首先,它在前幾章中介紹了自然語(yǔ)言理解和Python結(jié)構(gòu)的基礎(chǔ)知識(shí)。熟悉了基礎(chǔ)知識(shí)之后,其余章節(jié)將解決文本分析中的一些有趣問(wèn)題,包括文本分類(lèi)、聚類(lèi)、相似性分析、文本摘要和主題模型。本書(shū)還將分析文本的結(jié)構(gòu)、語(yǔ)義、情感和觀點(diǎn)。對(duì)于每個(gè)主題,將介紹基本概念,并使用一些現(xiàn)實(shí)世界中的場(chǎng)景和數(shù)據(jù)來(lái)實(shí)現(xiàn)涵蓋每個(gè)概念的技術(shù)。本書(shū)的構(gòu)想是呈現(xiàn)一幅文本分析和NLP的藍(lán)海,并提供必要的工具、技術(shù)和知識(shí)以處理和解決工作中遇到的問(wèn)題。我希望你能覺(jué)得本書(shū)很有幫助,并祝你在文本分析的世界中旅途愉快!
目錄
譯者序
前言
第1章自然語(yǔ)言基礎(chǔ)
1.1自然語(yǔ)言
1.1.1什么是自然語(yǔ)言
1.1.2語(yǔ)言哲學(xué)
1.1.3語(yǔ)言習(xí)得和用法
1.2語(yǔ)言學(xué)
1.3語(yǔ)言句法和結(jié)構(gòu)
1.3.1詞
1.3.2短語(yǔ)
1.3.3從句
1.3.4語(yǔ)法
1.3.5語(yǔ)序類(lèi)型學(xué)
1.4語(yǔ)言語(yǔ)義
1.4.1詞匯語(yǔ)義關(guān)系
1.4.2語(yǔ)義網(wǎng)絡(luò)和模型
1.4.3語(yǔ)義表示
1.5文本語(yǔ)料庫(kù)
1.5.1文本語(yǔ)料庫(kù)標(biāo)注及使用
1.5.2熱門(mén)的語(yǔ)料庫(kù)
1.5.3訪問(wèn)文本語(yǔ)料庫(kù)
1.6自然語(yǔ)言處理
1.6.1機(jī)器翻譯
1.6.2語(yǔ)音識(shí)別系統(tǒng)
1.6.3問(wèn)答系統(tǒng)
1.6.4語(yǔ)境識(shí)別與消解
1.6.5文本摘要
1.6.6文本分類(lèi)
1.7文本分析
1.8小結(jié)
第2章Python語(yǔ)言回顧
2.1了解Python
2.1.1Python之禪
2.1.2應(yīng)用:何時(shí)使用Python
2.1.3缺點(diǎn):何時(shí)不用Python
2.1.4Python實(shí)現(xiàn)和版本
2.2安裝和設(shè)置
2.2.1用哪個(gè)Python版本
2.2.2用哪個(gè)操作系統(tǒng)
2.2.3集成開(kāi)發(fā)環(huán)境
2.2.4環(huán)境設(shè)置
2.2.5虛擬環(huán)境
2.3Python句法和結(jié)構(gòu)
2.4數(shù)據(jù)結(jié)構(gòu)和類(lèi)型
2.4.1數(shù)值類(lèi)型
2.4.2字符串
2.4.3列表
2.4.4集合
2.4.5字典
2.4.6元組
2.4.7文件
2.4.8雜項(xiàng)
2.5控制代碼流
2.5.1條件結(jié)構(gòu)
2.5.2循環(huán)結(jié)構(gòu)
2.5.3處理異常
2.6函數(shù)編程
2.6.1函數(shù)
2.6.2遞歸函數(shù)
2.6.3匿名函數(shù)
2.6.4迭代器
2.6.5分析器
2.6.6生成器
2.6.7itertools和functools模塊
2.7類(lèi)
2.8使用文本
2.8.1字符串文字
2.8.2字符串操作和方法
2.9文本分析框架
2.10小結(jié)
第3章處理和理解文本
3.1文本切分
3.1.1句子切分
3.1.2詞語(yǔ)切分
3.2文本規(guī)范化
3.2.1文本清洗
3.2.2文本切分
3.2.3刪除特殊字符
3.2.4擴(kuò)展縮寫(xiě)詞
3.2.5大小寫(xiě)轉(zhuǎn)換
3.2.6刪除停用詞
3.2.7詞語(yǔ)校正
3.2.8詞干提取
3.2.9詞形還原
3.3理解文本句法和結(jié)構(gòu)
3.3.1安裝必要的依賴(lài)項(xiàng)
3.3.2機(jī)器學(xué)習(xí)重要概念
3.3.3詞性標(biāo)注
3.3.4淺層分析
3.3.5基于依存關(guān)系的分析
3.3.6基于成分結(jié)構(gòu)的分析
3.4小結(jié)
第4章文本分類(lèi)
4.1什么是文本分類(lèi)
4.2自動(dòng)文本分類(lèi)
4.3文本分類(lèi)的藍(lán)圖
4.4文本規(guī)范化處理
4.5特征提取
4.5.1詞袋模型
4.5.2TFIDF模型
4.5.3高級(jí)詞向量模型
4.6分類(lèi)算法
4.6.1多項(xiàng)式樸素貝葉斯
4.6.2支持向量機(jī)
4.7評(píng)估分類(lèi)模型
4.8建立一個(gè)多類(lèi)分類(lèi)系統(tǒng)
4.9應(yīng)用
4.10小結(jié)
第5章文本摘要
5.1文本摘要和信息提取
5.2重要概念
5.2.1文檔
5.2.2文本規(guī)范化
5.2.3特征提取
5.2.4特征矩陣
5.2.5奇異值分解
5.3文本規(guī)范化
5.4特征提取
5.5關(guān)鍵短語(yǔ)提取
5.5.1搭配
5.5.2基于權(quán)重標(biāo)簽的短語(yǔ)提取
5.6主題建模
5.6.1隱含語(yǔ)義索引
5.6.2隱含Dirichlet分布
5.6.3非負(fù)矩陣分解
5.6.4從產(chǎn)品評(píng)論中提取主題
5.7自動(dòng)文檔摘要
5.7.1隱含語(yǔ)義分析
5.7.2TextRank算法
5.7.3生成產(chǎn)品說(shuō)明摘要
5.8小結(jié)
第6章文本相似度和聚類(lèi)
6.1重要概念
6.1.1信息檢索
6.1.2特征工程
6.1.3相似度測(cè)量
6.1.4無(wú)監(jiān)督的機(jī)器學(xué)習(xí)算法
6.2文本規(guī)范化
6.3特征提取
6.4文本相似度
6.5詞項(xiàng)相似度分析
6.5.1漢明距離
6.5.2曼哈頓距離
6.5.3歐幾里得距離
6.5.4萊文斯坦編輯距離
6.5.5余弦距離和相似度
6.6文檔相似度分析
6.6.1余弦相似度
6.6.2海靈格-巴塔恰亞距離
6.6.3Okapi BM25排名
6.7文檔聚類(lèi)
6.8最佳影片聚類(lèi)分析
6.8.1kmeans聚類(lèi)
6.8.2近鄰傳播聚類(lèi)
6.8.3沃德凝聚層次聚類(lèi)
6.9小結(jié)
第7章語(yǔ)義與情感分析
7.1語(yǔ)義分析
7.2探索WordNet
7.2.1理解同義詞集
7.2.2分析詞匯的語(yǔ)義關(guān)系
7.3詞義消歧
7.4命名實(shí)體識(shí)別
7.5分析語(yǔ)義表征
7.5.1命題邏輯
7.5.2一階邏輯
7.6情感分析
7.7IMDb電影評(píng)論的情感分析
7.7.1安裝依賴(lài)程序包
7.7.2準(zhǔn)備數(shù)據(jù)集
7.7.3有監(jiān)督的機(jī)器學(xué)習(xí)技術(shù)
7.7.4無(wú)監(jiān)督的詞典技術(shù)
7.7.5模型性能比較
7.8小結(jié)