1、自然語言處理概述
自然語言處理(Natural Language Processing,NLP)是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。它研究人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的理論和方法。融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)等于一體的科學(xué)。旨在從文本數(shù)據(jù)中提取信息。目的是讓計(jì)算機(jī)處理或“理解”自然語言,以執(zhí)行自動(dòng)翻譯、文本分類和情感分析等。自然語言處理是人工智能中最為困難的問題之一。
2、自然語言處理入門基礎(chǔ)
2.1 數(shù)學(xué)基礎(chǔ)
(1)線性代數(shù)
向量、 矩陣、距離計(jì)算(余弦距離、歐式距離、曼哈頓距離、明可夫斯基距離、切比雪夫距離、杰卡德距離、漢明距離、標(biāo)準(zhǔn)歐式距離、皮爾遜相關(guān)系數(shù))
(2)概率論
隨機(jī)試驗(yàn)、條件概率、全概率、貝葉斯定理、信息論
(3)統(tǒng)計(jì)學(xué)
圖形可視化(餅圖、條形圖、熱力圖、折線圖、箱線圖、散點(diǎn)圖、雷達(dá)圖、儀表盤)
數(shù)據(jù)度量標(biāo)準(zhǔn)(平均數(shù)、中位數(shù)、眾數(shù)、期望、方差、標(biāo)準(zhǔn)差)
概率分布(幾何分布、二項(xiàng)分布、正態(tài)分布、泊松分布)
統(tǒng)計(jì)假設(shè)檢驗(yàn)
2.2 語言學(xué)基礎(chǔ)
語音、詞匯、語法
2.3 Python基礎(chǔ)
廖雪峰教程,Python從入門到實(shí)踐
2.4 機(jī)器學(xué)習(xí)基礎(chǔ)
統(tǒng)計(jì)學(xué)習(xí)方法、機(jī)器學(xué)習(xí)周志華、機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
2.5 深度學(xué)習(xí)基礎(chǔ)
CNN、RNN、LSTM
2.6 自然語言處理的理論基礎(chǔ)
統(tǒng)計(jì)自然語言處理(宗成慶第二版)、Python自然語言處理、數(shù)學(xué)之美(第二版)
3、自然語言處理的主要技術(shù)范疇
3.1 語義文本相似度分析
語義文本相似度分析是對(duì)兩段文本的意義和本質(zhì)之間的相似度進(jìn)行分析的過程。
3.2 信息檢索(Information Retrieval, IR)
信息檢索是指將信息按一定的方式加以組織,并通過信息查找滿足用戶的信息需求的過程和技術(shù)。
3.3 信息抽取(Information Extraction)
信息抽取是指從非結(jié)構(gòu)化/半結(jié)構(gòu)化文本(如網(wǎng)頁、新聞、 論文文獻(xiàn)、微博等)中提取指定類型的信息(如實(shí)體、屬性、關(guān)系、事件、商品記錄等),并通過信息歸并、冗余消除和沖突消解等手段將非結(jié)構(gòu)化文本轉(zhuǎn)換為結(jié)構(gòu)化信息的一項(xiàng)綜合技術(shù)。
3.4 文本分類(Text Categorization)
文本分類的任務(wù)是根據(jù)給定文檔的內(nèi)容或主題,自動(dòng)分配預(yù)先定義的類別標(biāo)簽。
3.5 文本挖掘(Text Mining)
文本挖掘是信息挖掘的一個(gè)研究分支,用于基于文本信息的知識(shí)發(fā)現(xiàn)。文本挖掘的準(zhǔn)備工作由文本收集、文本分析和特征修剪三個(gè)步驟組成。目前研究和應(yīng)用最多的幾種文本挖掘技術(shù)有:文檔聚類、文檔分類和摘要抽取。
3.6 文本情感分析(Textual Affective Analysis)
情感分析是一種廣泛的主觀分析,它使用自然語言處理技術(shù)來識(shí)別客戶評(píng)論的語義情感,語句表達(dá)的情緒正負(fù)面以及通過語音分析或書面文字判斷其表達(dá)的情感等。
3.7 問答系統(tǒng)(Question Answering, QA)
自動(dòng)問答是指利用計(jì)算機(jī)自動(dòng)回答用戶所提出的問題以滿足用戶知識(shí)需求的任務(wù)。不同于現(xiàn)有搜索引擎,問答系統(tǒng)是信息服務(wù)的一種高級(jí)形式,系統(tǒng)返回用戶的不再是基于關(guān)鍵詞匹配排序的文檔列表,而是精準(zhǔn)的自然語言答案。
3.8 機(jī)器翻譯(Machine Translation,MT)
機(jī)器翻譯是指利用計(jì)算機(jī)實(shí)現(xiàn)從一種自然語言到另外一種自然語言的自動(dòng)翻譯。被翻譯的語言稱為源語言(source language),翻譯到的語言稱作目標(biāo)語言(target language)。
機(jī)器翻譯研究的目標(biāo)就是建立有效的自動(dòng)翻譯方法、模型和系統(tǒng),打破語言壁壘,最終實(shí)現(xiàn)任意時(shí)間、任意地點(diǎn)和任意語言的自動(dòng)翻譯,完成人們無障礙自由交流的夢(mèng)想。
3.9 自動(dòng)摘要(Automatic Summarization)
自動(dòng)文摘(又稱自動(dòng)文檔摘要)是指通過自動(dòng)分析給定的一篇文檔或多篇文檔,提煉、總結(jié)其中的要點(diǎn)信息,最終輸出一篇長(zhǎng)度較短、可讀性良好的摘要(通常包含幾句話或數(shù)百字),該摘要中的句子可直接出自原文,也可重新撰寫所得。
3.10 語音識(shí)別(Speech Recognition)
語言識(shí)別指的是將不同語言的文本區(qū)分出來。其利用語言的統(tǒng)計(jì)和語法屬性來執(zhí)行此任務(wù)。語言識(shí)別也可以被認(rèn)為是文本分類的特殊情況
4、自然語言處理基本點(diǎn)
4.1 語料庫(Corpus)
語料庫中存放的是在語言的實(shí)際使用中真實(shí)出現(xiàn)過的語言材料;語料庫是以電子計(jì)算機(jī)為載體承載語言知識(shí)的基礎(chǔ)資源;真實(shí)語料需要經(jīng)過加工(分析和處理),才能成為有用的資源。
4.2 中文分詞(Chinese Word egmentation)
(1)中文分詞指的是將一個(gè)漢字序列切分成一個(gè)一個(gè)單獨(dú)的詞。分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。
(2)現(xiàn)有的分詞方法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法、基于統(tǒng)計(jì)的分詞方法和基于深度學(xué)習(xí)的中文分詞。推薦
(3)比較流行的中文分詞工具:jieba、StanfordNLP、HanLP、SnowNLP、THULAC、NLPIR
4.3 詞性標(biāo)注(Part-of-speech tagging)
(1)詞性標(biāo)注是指為給定句子中的每個(gè)詞賦予正確的詞法標(biāo)記,給定一個(gè)切好詞的句子,詞性標(biāo)注的目的是為每一個(gè)詞賦予一個(gè)類別,這個(gè)類別稱為詞性標(biāo)記(part-of-speech tag),比如,名詞(noun)、動(dòng)詞(verb)、形容詞(adjective)等。
(2)詞性標(biāo)注是一個(gè)非常典型的序列標(biāo)注問題。最初采用的方法是隱馬爾科夫生成式模型, 然后是判別式的最大熵模型、支持向量機(jī)模型,目前學(xué)術(shù)界通常采用的結(jié)構(gòu)是感知器模型和條件隨機(jī)場(chǎng)模型。近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,研究者們也提出了很多有效的基于深層神經(jīng)網(wǎng)絡(luò)的詞性標(biāo)注方法。
4.4 句法分析(Parsing)
(1)基于規(guī)則的句法結(jié)構(gòu)分析
(2)基于統(tǒng)計(jì)的語法結(jié)構(gòu)分析
4.5 詞干提?。⊿temming)
詞干提取是將詞語去除變化或衍生形式,轉(zhuǎn)換為詞干或原型形式的過程。詞干提取的目標(biāo)是將相關(guān)詞語還原為同樣的詞干。
4.6 詞形還原(Lemmatization)
詞形還原是將一組詞語還原為詞源或詞典的詞目形式的過程。
4.7 停用詞過濾
停用詞過濾是指在文本中頻繁出現(xiàn)且對(duì)文本信息的內(nèi)容或分類類別貢獻(xiàn)不大甚至無貢獻(xiàn)的詞語,如常見的介詞、冠詞、助詞、情態(tài)動(dòng)詞、代詞以及連詞等。
4.8 詞向量化(Word Vector)
詞向量化是用一組實(shí)數(shù)構(gòu)成的向量代表自然語言的叫法。這種技術(shù)非常實(shí)用,因?yàn)?a href="http://www.socialnewsupdate.com/v/tag/1247/" target="_blank">電腦無法處理自然語言。詞向量化可以捕捉到自然語言和實(shí)數(shù)間的本質(zhì)關(guān)系。通過詞向量化,一個(gè)詞語或者一段短語可以用一個(gè)定維的向量表示。(word2vec)
from gensim.models import Word2Vec
4.9 命名實(shí)體消歧(Named Entity Disambiguation)
命名實(shí)體消岐是對(duì)句子中的提到的實(shí)體識(shí)別的過程。
例如,對(duì)句子“Apple earned a revenue of 200 Billion USD in 2016”,命名實(shí)體消岐會(huì)推斷出句子中的Apple是蘋果公司而不是指一種水果。一般來說,命名實(shí)體要求有一個(gè)實(shí)體知識(shí)庫,能夠?qū)⒕渥又刑岬降膶?shí)體和知識(shí)庫聯(lián)系起來。
4.10 命名實(shí)體識(shí)別(named entity recognition)
命名實(shí)體識(shí)別是識(shí)別一個(gè)句子中有特定意義的實(shí)體并將其區(qū)分為人名,機(jī)構(gòu)名,日期,地名,時(shí)間等類別的任務(wù)。
5、特征處理
5.1 特征提?。‵eature Extraction)
特征提取是指將機(jī)器學(xué)習(xí)算法不能識(shí)別的原始數(shù)據(jù)轉(zhuǎn)化為算法可以識(shí)別的特征的過程。
舉例(文本分類特征提取步驟):
(1)對(duì)訓(xùn)練數(shù)據(jù)集的每篇文章,我們進(jìn)行詞語的統(tǒng)計(jì),以形成一個(gè)詞典向量。詞典向量里包含了訓(xùn)練數(shù)據(jù)里的所有詞語(假設(shè)停用詞已去除),且每個(gè)詞語代表詞典向量中的一個(gè)元素。
(2)在經(jīng)過第一步的處理后,每篇文章都可以用詞典向量來表示。這樣一來,每篇文章都可以被看作是元素相同且長(zhǎng)度相同的向量,不同的文章具有不同的向量值。這也就是表示文本的詞袋模型(bag of words)。
(3)針對(duì)于特定的文章,如何給表示它的向量的每一個(gè)元素賦值呢?最簡(jiǎn)單直接的辦法就是0-1法了。簡(jiǎn)單來說,對(duì)于每一篇文章,我們掃描它的詞語集合,如果某一個(gè)詞語出現(xiàn)在了詞典中,那么該詞語在詞典向量中對(duì)應(yīng)的元素置為1,否則為0。
5.2 特征選擇( Feature Selection)
當(dāng)數(shù)據(jù)預(yù)處理完成后,我們需要選擇有意義的特征輸入機(jī)器學(xué)習(xí)的算法和模型進(jìn)行訓(xùn)練。特征選擇是指去掉無關(guān)特征,保留相關(guān)特征的過程,也可以認(rèn)為是從所有的特征中選擇一個(gè)最好的特征子集。特征選擇本質(zhì)上可以認(rèn)為是降維的過程。
from sklearn.feature_extraction.text import TfidfVectorizer
5.3 降維(Dimension Reduction)
6、模型選擇
6.1 馬爾可夫模型、隱馬爾可夫模型、層次化隱馬爾可夫模型、馬爾可夫網(wǎng)絡(luò)
(1)應(yīng)用:詞類標(biāo)注、語音識(shí)別、局部句法剖析、語塊分析、命名實(shí)體識(shí)別、信息抽取等。應(yīng)用于自然科學(xué)、工程技術(shù)、生物科技、公用事業(yè)、信道編碼等多個(gè)領(lǐng)域。
(2)馬爾可夫鏈:在隨機(jī)過程中,每個(gè)語言符號(hào)的出現(xiàn)概率不相互獨(dú)立,每個(gè)隨機(jī)試驗(yàn)的當(dāng)前狀態(tài)依賴于此前狀態(tài),這種鏈就是馬爾可夫鏈。
(3)多元馬爾科夫鏈:考慮前一個(gè)語言符號(hào)對(duì)后一個(gè)語言符號(hào)出現(xiàn)概率的影響,這樣得出的語言成分的鏈叫做一重馬爾可夫鏈,也是二元語法。二重馬爾可夫鏈,也是三元語法,三重馬爾可夫鏈,也是四元語法
6.2 條件隨機(jī)場(chǎng)(CRF)
(1)條件隨機(jī)場(chǎng)用于序列標(biāo)注,中文分詞、中文人名識(shí)別和歧義消解等自然語言處理中,表現(xiàn)出很好的效果。原理是:對(duì)給定的觀察序列和標(biāo)注序列,建立條件概率模型。條件隨機(jī)場(chǎng)可用于不同預(yù)測(cè)問題,其學(xué)習(xí)方法通常是極大似然估計(jì)。
(2)條件隨機(jī)場(chǎng)模型也需要解決三個(gè)基本問題:特征的選擇、參數(shù)訓(xùn)練和解碼。
6.3 貝葉斯網(wǎng)絡(luò)
貝葉斯網(wǎng)絡(luò)又稱為信度網(wǎng)絡(luò)或信念網(wǎng)絡(luò)(belief networks),是一種基于概率推理的數(shù)學(xué)模型,其理論基礎(chǔ)是貝葉斯公式。
6.4 最大熵模型
7、NLP常用工具
(1)Anaconda
Anaconda是一個(gè)用于科學(xué)計(jì)算的Python開發(fā)平臺(tái),支持 Linux,Mac和Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本Python并存、切換以及各種第三方包安裝問題。Anaconda利用conda命令來進(jìn)行package和environment的管理,并且已經(jīng)包含了Python和相關(guān)的配套工具。Anaconda集成了大量的機(jī)器學(xué)習(xí)庫以及數(shù)據(jù)處理必不可少的第三方庫,比如NumPy,SciPy,Scikit-Learn以及TensorFlow等。
(2)Scikit-learn
Scikit-learn是廣受歡迎的入門級(jí)機(jī)器學(xué)習(xí)庫,包含大量的機(jī)器學(xué)習(xí)算法和特征提取實(shí)現(xiàn),使用非常簡(jiǎn)便。Scikit-learn實(shí)現(xiàn)的是淺層學(xué)習(xí)算法,神經(jīng)網(wǎng)絡(luò)僅實(shí)現(xiàn)了多層感知機(jī)。
(3)TensorFlow
TensorFlow是谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),可被用于語音識(shí)別或圖像識(shí)別等多項(xiàng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域。
(4)Keras
Keras是一個(gè)高級(jí)別的Python神經(jīng)網(wǎng)絡(luò)框架,能在TensorFlow或者 Theano 上運(yùn)行。Keras的作者、谷歌AI研究員Francois Chollet宣布了一條激動(dòng)人心的消息,Keras將會(huì)成為第一個(gè)被添加到TensorFlow核心中的高級(jí)別框架,這將會(huì)讓Keras變成Tensorflow的默認(rèn)API。
(5)Gensim
Gensim是一款開源的第三方Python工具包,用于從原始的非結(jié)構(gòu)化的文本中,無監(jiān)督地學(xué)習(xí)到文本隱層的主題向量表達(dá)。它支持包括TF-IDF,LSA,LDA,和word2vec在內(nèi)的多種主題模型算法,支持流式訓(xùn)練,并提供了諸如相似度計(jì)算,信息檢索等一些常用任務(wù)的API接口。
(6)NLTK
在NLP領(lǐng)域中,NLTK是最常使用的一個(gè)Python庫。
(7)Jieba. Jieba,結(jié)巴分詞是最受歡迎的中文分詞工具。
8、NLP語言模型
(1)詞的獨(dú)熱表示(one-hot representation)
(2)Bag of Words
(3)Bi-gram 和 N-gram
(4)詞的分布式表示(distributed representation)
(5)共現(xiàn)矩陣(Cocurrence martrix)
(6)神經(jīng)網(wǎng)絡(luò)語言模型(Neural Networ Language model,NNLM)
(7)word2vec
連續(xù)詞袋模型(Continuous Bag of Words,CBOW)Skip-Gram模型
9、快速入門NLP方法
(1)認(rèn)真看完一本NLP相關(guān)的書,堅(jiān)持看完一部視頻。
(2)看這兩年相關(guān)方向的綜述論文,然后看一些經(jīng)典的論文和最新論文。
(3)獨(dú)立實(shí)現(xiàn)一個(gè)小型的自然語言處理項(xiàng)目。
(4)可以在Github上找到很多相關(guān)的開源代碼,選一個(gè)自己感興趣的方向進(jìn)行研究。
10、自然語言處理學(xué)習(xí)資料
(1)我愛自然語言處理
(2)一文讀懂自然語言NLP
(3)中文分詞原理與工具
(4)自然語言處理項(xiàng)目資源庫匯總
-
人工智能
+關(guān)注
關(guān)注
1807文章
49029瀏覽量
249683 -
自然語言
+關(guān)注
關(guān)注
1文章
292瀏覽量
13657 -
nlp
+關(guān)注
關(guān)注
1文章
490瀏覽量
22629
發(fā)布評(píng)論請(qǐng)先 登錄
如何優(yōu)化自然語言處理模型的性能
如何使用自然語言處理分析文本數(shù)據(jù)
自然語言處理與機(jī)器學(xué)習(xí)的關(guān)系 自然語言處理的基本概念及步驟
語音識(shí)別與自然語言處理的關(guān)系
什么是LLM?LLM在自然語言處理中的應(yīng)用
ASR與自然語言處理的結(jié)合
循環(huán)神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用
使用LSTM神經(jīng)網(wǎng)絡(luò)處理自然語言處理任務(wù)
自然語言處理的未來發(fā)展趨勢(shì)
自然語言處理與機(jī)器學(xué)習(xí)的區(qū)別
自然語言處理的應(yīng)用實(shí)例
使用LLM進(jìn)行自然語言處理的優(yōu)缺點(diǎn)
Llama 3 在自然語言處理中的優(yōu)勢(shì)
AI大模型在自然語言處理中的應(yīng)用
AI智能化問答:自然語言處理技術(shù)的重要應(yīng)用

評(píng)論