日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记

發(fā)布時間:2023/12/20 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【莫煩Python】機(jī)器要說話 NLP 自然語言處理教程 W2V Transformer BERT Seq2Seq GPT 筆記

  • 教程與代碼地址
  • P1 NLP行業(yè)大佬采訪
  • P2 NLP簡介
  • P3 1.1 課程目標(biāo)
  • P4 2.1 搜索引擎簡介
  • P5 2.2 搜索引擎算法(TF-IDF 檢索)
  • P6 2.3 Sklearn 搜索的擴(kuò)展
  • P7 3.1 詞向量可以這樣理解
  • P8 3.2 訓(xùn)練詞向量 W2V CBOW算法
  • P9 3.3 詞向量Skip Gram 算法
  • P10 4.1 理解句子 句向量
  • P11 4.2 Seq2Seq 語言生成模型
  • P12 4.3 CNN也能理解語言
  • P13 5.1 注意力 語言模型
  • P14 5.2 Attention 注意力算法
  • P15 5.3 請注意 注意力
  • P16 5.4 Transformer 自注意語言模型
  • P17 6.1 大規(guī)模預(yù)訓(xùn)練模型
  • P18 6.2 一詞多義 ELMo
  • P19 6.3 GPT 單向語言模型
  • P20 6.4 BERT 雙向語言模型
  • P21 7.1 語言模型的應(yīng)用

教程與代碼地址

筆記中,圖片和代碼基本源自up主的視頻和代碼

視頻地址: 【莫煩Python】機(jī)器要說話 NLP 自然語言處理教程 W2V Transformer BERT Seq2Seq GPT
代碼地址: https://github.com/MorvanZhou/NLP-Tutorials
講義地址:https://mofanpy.com/tutorials/machine-learning/nlp/
如果想要爬蟲視頻網(wǎng)站一樣的csdn目錄,可以去這里下載代碼:https://github.com/JeffreyLeal/MyUtils/tree/%E7%88%AC%E8%99%AB%E5%B7%A5%E5%85%B71

P1 NLP行業(yè)大佬采訪

動手敲代碼,復(fù)現(xiàn)代碼,做項目最重要

P2 NLP簡介

將文本轉(zhuǎn)化成一串?dāng)?shù)字(encode),然后讓機(jī)器去理解,再生成一串?dāng)?shù)字,再轉(zhuǎn)化成文本(decode)。

P3 1.1 課程目標(biāo)

P4 2.1 搜索引擎簡介

在一篇文章可以被搜索之前,搜索引擎安排小蜘蛛spider爬取網(wǎng)頁重點部分,分別對待,比如重點關(guān)注標(biāo)題、時間、正文。將這些信息給予不同的權(quán)重后,存儲在便于快速檢索的數(shù)據(jù)庫中。

傳統(tǒng)的構(gòu)建索引方法:索引圖片視頻等是基于它周圍的文字信息,如標(biāo)題等。

深度學(xué)習(xí)的構(gòu)建索引方法:在用戶用文字搜索時,將搜索的文字內(nèi)容轉(zhuǎn)換成深度學(xué)習(xí)能識別的數(shù)字內(nèi)容,然后再和之前存儲的圖片、視頻數(shù)字信息進(jìn)行匹配,對比兩種數(shù)字之間的關(guān)聯(lián)性,然后找到最相近的內(nèi)容。這種搜索,我們有一個專業(yè)名詞叫作"多模態(tài)"搜索。

批量召回,粗排數(shù)據(jù)量都非常大,精排的數(shù)據(jù)量小,適合用深度學(xué)習(xí)
假設(shè)你開了家咨詢公司,手上有100篇材料。這時有人來找你咨詢NLP的問題,你會怎么在這100篇材料中找到合適的內(nèi)容呢?

正排索引:我們一篇一篇地閱讀,找到所有包含NLP內(nèi)容的材料,然后返回給提問者。
缺點:這種方法需要我們在每次搜索的時候,都對所有材料進(jìn)行一次閱讀,然后在材料中找到關(guān)鍵詞,并篩選出材料,效率其實非常差。

倒排索引:我們在第一次拿到所有材料時,把它們通讀一遍,然后構(gòu)建關(guān)鍵詞和文章的對應(yīng)關(guān)系。當(dāng)用戶在搜索特定詞的時候,比如“紅”,就會直接返回“紅”這個【關(guān)鍵詞索引】下的文章列表。
優(yōu)點:能夠?qū)⑦@種索引,放在后續(xù)的搜索中復(fù)用,搜索也就變成了一種詞語匹配加返回索引材料的過程。

問題:但當(dāng)處理的是海量數(shù)據(jù)的時候,通過倒排索引找到的文章可能依然是海量。
解決:對這些文章進(jìn)行排序操作,再選取排名靠前的文章列表也能幫我們節(jié)省大量的時間。處理匹配排序,最有名的算法之一叫做TF-IDF。

TF-IDF用于粗排

TF是詞頻,計算詞在當(dāng)前文章中出現(xiàn)的頻率,頻率越高,越能代表文章

但像“我”、“是”這種詞也很高頻,這時候就需要IDF了。

IDF是逆文本頻率指數(shù),計算詞在這么多篇文章中出現(xiàn)的頻率的倒數(shù),在多篇文章都出現(xiàn),頻率就越高,頻率的倒數(shù)就越小,表示這個詞在多篇文章中沒有區(qū)分度;只在少數(shù)的文章中出現(xiàn),甚至只在一篇文章中出現(xiàn),頻率就越低,頻率的倒數(shù)就越大,表示這個詞在多篇文章中有很高的區(qū)分度,能代表這篇文章。
結(jié)合TF和IDF就是TF-IDF了

P5 2.2 搜索引擎算法(TF-IDF 檢索)

代碼見tf_idf.py,這個是up自己寫的

寫路徑的時候,字符串最好使用原始字符串,即

str = r‘./image/xxx.jpg’

P6 2.3 Sklearn 搜索的擴(kuò)展

代碼見tf_idf_sklearn.py,可以使用sklearn現(xiàn)成的方法去寫

全局指的事數(shù)據(jù)庫的全局,不是互聯(lián)網(wǎng)的全局

Query -> 搜索詞標(biāo)準(zhǔn)化 -> 搜索算法 -> 搜索結(jié)果

P7 3.1 詞向量可以這樣理解

P8 3.2 訓(xùn)練詞向量 W2V CBOW算法

代碼見CBOW.py

詞僅在詞向量空間進(jìn)行相加,而沒有在前后文空間進(jìn)行相加,相比之下,Skip Gram更好。

P9 3.3 詞向量Skip Gram 算法

代碼見skip-gram.py

CBOW和Skip Gram都沒有辦法處理一詞多義的問題。

P10 4.1 理解句子 句向量

簡而言之,Encoder負(fù)責(zé)理解上文,Decoder負(fù)責(zé)將思考怎么樣在理解的句子的基礎(chǔ)上做任務(wù)。這一套方法就是在自然語言處理中風(fēng)靡一時的Seq2Seq框架。

P11 4.2 Seq2Seq 語言生成模型

代碼見seq2seq.py

decoder預(yù)測

在使用GreedyEmbeddingSampler()作為decode的方法是有局限性的,有時候會因為忽略了前期的低分?jǐn)?shù)而錯過了后期的整體高分策略, 類似于前面芝麻最好,所以撿了芝麻,但后面卻錯過了撿西瓜的機(jī)會。而這種因局部信息不全而導(dǎo)致的策略不優(yōu),可以靠Beam search的篩選策略彌補(bǔ)。 如果使用 beam search, 我們不僅僅關(guān)注當(dāng)前最優(yōu)策略, 而且每預(yù)測一個詞時,還保持關(guān)注當(dāng)時刻所有候選詞的N個最優(yōu)策略,結(jié)束預(yù)測時,就有很大概率能夠找到全局比較優(yōu)的路徑。 舉個例子,如果我們用beam search size = 2, 意味著每次預(yù)測都記錄最優(yōu)的兩個預(yù)測,然后沿著這兩個預(yù)測繼續(xù)預(yù)測, 每次后續(xù)的預(yù)測都只挑選下一步最好的兩個預(yù)測。 這樣加大了搜索范圍,使我們有機(jī)會接觸到全局較優(yōu)路徑。

P12 4.3 CNN也能理解語言

代碼見cnn-lm.py

CNN做句向量encoding的時候有一個局限性,它要求有個句子最長的限制,句子如果超過這個長度,那么就最好截斷它。 因為就像在給圖像做卷積,圖像也是要定長定寬的,不然卷積和池化會有尺度上的問題。這是一個相比RNN的硬傷。之后我們在介紹Transformer類型的語言模型時, 也會介紹到這個硬傷。

P13 5.1 注意力 語言模型

P14 5.2 Attention 注意力算法

P15 5.3 請注意 注意力

Transformer模型:多層注意力的疊加,它使用的是一個個注意力矩陣來表示在不同位置的注意力強(qiáng)度。通過控制強(qiáng)度來控制信息通道的閥門大小。

P16 5.4 Transformer 自注意語言模型

代碼見transformer.py

P17 6.1 大規(guī)模預(yù)訓(xùn)練模型

P18 6.2 一詞多義 ELMo

代碼見ELMo.py

ELMo對你來說,只是另一種雙向RNN架構(gòu)。ELMo里有兩個RNN(LSTM), 一個從前往后看句子,一個從后往前看句子,每一個詞的向量表達(dá),就是下面這幾個信息的累積:

  • 從前往后的前文信息;
  • 從后往前的后文信息;
  • 當(dāng)前詞語的詞向量信息。
  • P19 6.3 GPT 單向語言模型

    代碼見GPT.py

    GPT 單向語言模型

    P20 6.4 BERT 雙向語言模型

    P21 7.1 語言模型的應(yīng)用

    總結(jié)

    以上是生活随笔為你收集整理的【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。