-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
nlp最新算法(nlp最新算法模型)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于nlp最新算法的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、自然語言處理基礎(chǔ)知識(shí)
NLP 是什么?
NLP 是計(jì)算機(jī)科學(xué)領(lǐng)域與 人工智能 領(lǐng)域中的一個(gè)重要方向。它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的學(xué)科。NLP 由兩個(gè)主要的技術(shù)領(lǐng)域構(gòu)成:自然語言理解和自然語言生成。
自然語言理解方向,主要目標(biāo)是幫助機(jī)器更好理解人的語言,包括基礎(chǔ)的詞法、句法等語義理解,以及需求、篇章、情感層面的高層理解。
自然語言生成方向,主要目標(biāo)是幫助機(jī)器生成人能夠理解的語言,比如文本生成、自動(dòng)文摘等。
NLP 技術(shù)基于大數(shù)據(jù)、知識(shí)圖譜、 機(jī)器學(xué)習(xí) 、語言學(xué)等技術(shù)和資源,并可以形成機(jī)器翻譯、深度問答、對(duì)話系統(tǒng)的具體應(yīng)用系統(tǒng),進(jìn)而服務(wù)于各類實(shí)際業(yè)務(wù)和產(chǎn)品。
NLP在金融方面
金融行業(yè)因其與數(shù)據(jù)的高度相關(guān)性,成為人工智能最先應(yīng)用的行業(yè)之一,而NLP與知識(shí)圖譜作為人工智能技術(shù)的重要研究方向與組成部分,正在快速進(jìn)入金融領(lǐng)域,并日益成為智能金融的基石。輿情分析輿情主要指民眾對(duì)社會(huì)各種具體事物的情緒、意見、價(jià)值判斷和愿望等。
事件(Event ):在特定時(shí)間、特定地點(diǎn)發(fā)生的事情。主題(Topic):也稱為話題,指一個(gè)種子事件或活動(dòng)以及與它直接相關(guān)的事件和活動(dòng)。專題(Subject):涵蓋多個(gè)類似的具體事件或根本不涉及任何具體事件。需要說明的是,國內(nèi)新聞網(wǎng)站新浪、搜狐等所定義的“專題”概念大多數(shù)等同于我們的“主題”概念。熱點(diǎn):也可稱為熱點(diǎn)主題。熱點(diǎn)和主題的概念比較接近,但有所區(qū)別。
1. 詞干提取
什么是詞干提?。吭~干提取是將詞語去除變化或衍生形式,轉(zhuǎn)換為詞干或原型形式的過程。詞干提取的目標(biāo)是將相關(guān)詞語還原為同樣的詞干,哪怕詞干并非詞典的詞目。
2. 詞形還原
什么是詞形還原? 詞形還原是將一組詞語還原為詞源或詞典的詞目形式的過程。還原過程考慮到了POS問題,即詞語在句中的語義,詞語對(duì)相鄰語句的語義等。
3. 詞向量化什么是詞向量化?詞向量化是用一組實(shí)數(shù)構(gòu)成的向量代表自然語言的叫法。這種技術(shù)非常實(shí)用,因?yàn)殡娔X無法處理自然語言。詞向量化可以捕捉到自然語言和實(shí)數(shù)間的本質(zhì)關(guān)系。通過詞向量化,一個(gè)詞語或者一段短語可以用一個(gè)定維的向量表示,例如向量的長度可以為100。
4. 詞性標(biāo)注
什么是詞性標(biāo)注?簡單來說,詞性標(biāo)注是對(duì)句子中的詞語標(biāo)注為名字、動(dòng)詞、形容詞、副詞等的過程。
5. 命名實(shí)體消歧
什么是命名實(shí)體消岐?命名實(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)系起來。
6. 命名實(shí)體識(shí)別
體識(shí)別是識(shí)別一個(gè)句子中有特定意義的實(shí)體并將其區(qū)分為人名,機(jī)構(gòu)名,日期,地名,時(shí)間等類別的任務(wù)。
7. 情感分析
什么是情感分析?情感分析是一種廣泛的主觀分析,它使用自然語言處理技術(shù)來識(shí)別客戶評(píng)論的語義情感,語句表達(dá)的情緒正負(fù)面以及通過語音分析或書面文字判斷其表達(dá)的情感等等。
8. 語義文本相似度
什么是語義文本相似度分析?語義文本相似度分析是對(duì)兩段文本的意義和本質(zhì)之間的相似度進(jìn)行分析的過程。注意,相似性與相關(guān)性是不同的。
9.語言識(shí)別
什么是語言識(shí)別?語言識(shí)別指的是將不同語言的文本區(qū)分出來。其利用語言的統(tǒng)計(jì)和語法屬性來執(zhí)行此任務(wù)。語言識(shí)別也可以被認(rèn)為是文本分類的特殊情況。
10. 文本摘要
什么是文本摘要?文本摘要是通過識(shí)別文本的重點(diǎn)并使用這些要點(diǎn)創(chuàng)建摘要來縮短文本的過程。文本摘要的目的是在不改變文本含義的前提下最大限度地縮短文本。
11.評(píng)論觀點(diǎn)抽取
自動(dòng)分析評(píng)論關(guān)注點(diǎn)和評(píng)論觀點(diǎn),并輸出評(píng)論觀點(diǎn)標(biāo)簽及評(píng)論觀點(diǎn)極性。目前支持 13 類產(chǎn)品用戶評(píng)論的觀點(diǎn)抽取,包括美食、酒店、汽車、景點(diǎn)等,可幫助商家進(jìn)行產(chǎn)品分析,輔助用戶進(jìn)行消費(fèi)決策。
11.DNN 語言模型
語言模型是通過計(jì)算給定詞組成的句子的概率,從而判斷所組成的句子是否符合客觀語言表達(dá)習(xí)慣。在機(jī)器翻譯、拼寫糾錯(cuò)、語音識(shí)別、問答系統(tǒng)、詞性標(biāo)注、句法分析和信息檢索等系統(tǒng)中都有廣泛應(yīng)用。
12.依存句法分析
利用句子中詞與詞之間的依存關(guān)系來表示詞語的句法結(jié)構(gòu)信息 (如主謂、動(dòng)賓、定中等結(jié)構(gòu)關(guān)系),并用樹狀結(jié)構(gòu)來表示整句的的結(jié)構(gòu) (如主謂賓、定狀補(bǔ)等)。
1、NLTK
一種流行的自然語言處理庫、自帶語料庫、具有分類,分詞等很多功能,國外使用者居多,類似中文的 jieba 處理庫
2、文本處理流程
大致將文本處理流程分為以下幾個(gè)步驟:
Normalization
Tokenization
Stop words
Part-of-speech Tagging
Named Entity Recognition
Stemming and Lemmatization
下面是各個(gè)流程的具體介紹
Normalization
第一步通常要做就是Normalization。在英文中,所有句子第一個(gè)單詞的首字母一般是大寫,有的單詞也會(huì)全部字母都大寫用于表示強(qiáng)調(diào)和區(qū)分風(fēng)格,這樣更易于人類理解表達(dá)的意思。
Tokenization
Token是"符號(hào)"的高級(jí)表達(dá), 一般值具有某種意義,無法再拆分的符號(hào)。在英文自然語言處理中,Tokens通常是單獨(dú)的詞,因此Tokenization就是將每個(gè)句子拆分為一系列的詞。
Stop Word
Stop Word 是無含義的詞,例如’is’/‘our’/‘the’/‘in’/'at’等。它們不會(huì)給句子增加太多含義,單停止詞是頻率非常多的詞。 為了減少我們要處理的詞匯量,從而降低后續(xù)程序的復(fù)雜度,需要清除停止詞。
Named Entity
Named Entity 一般是名詞短語,又來指代某些特定對(duì)象、人、或地點(diǎn) 可以使用 ne_chunk()方法標(biāo)注文本中的命名實(shí)體。在進(jìn)行這一步前,必須先進(jìn)行 Tokenization 并進(jìn)行 PoS Tagging。
Stemming and Lemmatization
為了進(jìn)一步簡化文本數(shù)據(jù),我們可以將詞的不同變化和變形標(biāo)準(zhǔn)化。Stemming 提取是將詞還原成詞干或詞根的過程。
3、Word2vec
Word2vec是一種有效創(chuàng)建詞嵌入的方法,它自2013年以來就一直存在。但除了作為詞嵌入的方法之外,它的一些概念已經(jīng)被證明可以有效地創(chuàng)建推薦引擎和理解時(shí)序數(shù)據(jù)。在商業(yè)的、非語言的任務(wù)中。
### 四、NLP前沿研究方向與算法
1、MultiBERT
2、XLNet
3、bert 模型
BERT的全稱是Bidirectional Encoder Representation from Transformers,即雙向Transformer的Encoder,因?yàn)閐ecoder是不能獲要預(yù)測的信息的。模型的主要?jiǎng)?chuàng)新點(diǎn)都在pre-train方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級(jí)別的representation。
BERT提出之后,作為一個(gè)Word2Vec的替代者,其在NLP領(lǐng)域的11個(gè)方向大幅刷新了精度,可以說是近年來自殘差網(wǎng)絡(luò)最優(yōu)突破性的一項(xiàng)技術(shù)了。BERT的主要特點(diǎn)以下幾點(diǎn):
使用了Transformer作為算法的主要框架,Trabsformer能更徹底的捕捉語句中的雙向關(guān)系;
使用了Mask Language Model(MLM)和 Next Sentence Prediction(NSP) 的多任務(wù)訓(xùn)練目標(biāo);
使用更強(qiáng)大的機(jī)器訓(xùn)練更大規(guī)模的數(shù)據(jù),使BERT的結(jié)果達(dá)到了全新的高度,并且Google開源了BERT模型,用戶可以直接使用BERT作為Word2Vec的轉(zhuǎn)換矩陣并高效的將其應(yīng)用到自己的任務(wù)中。
BERT的本質(zhì)上是通過在海量的語料的基礎(chǔ)上運(yùn)行自監(jiān)督學(xué)習(xí)方法為單詞學(xué)習(xí)一個(gè)好的特征表示,所謂自監(jiān)督學(xué)習(xí)是指在沒有人工標(biāo)注的數(shù)據(jù)上運(yùn)行的監(jiān)督學(xué)習(xí)。在以后特定的NLP任務(wù)中,我們可以直接使用BERT的特征表示作為該任務(wù)的詞嵌入特征。所以BERT提供的是一個(gè)供其它任務(wù)遷移學(xué)習(xí)的模型,該模型可以根據(jù)任務(wù)微調(diào)或者固定之后作為特征提取器。
模型結(jié)構(gòu): 由于模型的構(gòu)成元素Transformer已經(jīng)解析過,就不多說了,BERT模型的結(jié)構(gòu)如下圖最左:
對(duì)比OpenAI GPT(Generative pre-trained transformer),BERT是雙向的Transformer block連接;就像單向rnn和雙向rnn的區(qū)別,直覺上來講效果會(huì)好一些。
優(yōu)點(diǎn): BERT是截至2018年10月的最新state of the art模型,通過預(yù)訓(xùn)練和精調(diào)橫掃了11項(xiàng)NLP任務(wù),這首先就是最大的優(yōu)點(diǎn)了。而且它還用的是Transformer,也就是相對(duì)rnn更加高效、能捕捉更長距離的依賴。對(duì)比起之前的預(yù)訓(xùn)練模型,它捕捉到的是真正意義上的bidirectional context信息。
缺點(diǎn): MLM預(yù)訓(xùn)練時(shí)的mask問題
[MASK]標(biāo)記在實(shí)際預(yù)測中不會(huì)出現(xiàn),訓(xùn)練時(shí)用過多[MASK]影響模型表現(xiàn)
每個(gè)batch只有15%的token被預(yù)測,所以BERT收斂得比left-to-right模型要慢(它們會(huì)預(yù)測每個(gè)token)
BERT火得一塌糊涂不是沒有原因的:
使用Transformer的結(jié)構(gòu)將已經(jīng)走向瓶頸期的Word2Vec帶向了一個(gè)新的方向,并再一次炒火了《Attention is All you Need》這篇論文;
11個(gè)NLP任務(wù)的精度大幅提升足以震驚整個(gè)深度學(xué)習(xí)領(lǐng)域;
無私的開源了多種語言的源碼和模型,具有非常高的商業(yè)價(jià)值。
遷移學(xué)習(xí)又一次勝利,而且這次是在NLP領(lǐng)域的大勝,狂勝。
BERT算法還有很大的優(yōu)化空間,例如我們在Transformer中講的如何讓模型有捕捉Token序列關(guān)系的能力,而不是簡單依靠位置嵌入。BERT的訓(xùn)練在目前的計(jì)算資源下很難完成,論文中說的訓(xùn)練需要在64塊TPU芯片上訓(xùn)練4天完成,而一塊TPU的速度約是目前主流GPU的7-8倍。
二、自然語言處理基礎(chǔ) - NLP
什么是自然語言處理
自然語言處理 (英語:natural language processing,縮寫作 NLP) 是人工智能和語言學(xué)領(lǐng)域的分支學(xué)科。此領(lǐng)域探討如何處理及運(yùn)用自然語言;自然語言認(rèn)知?jiǎng)t是指讓電腦“懂”人類的語言。自然語言生成系統(tǒng)把計(jì)算機(jī)數(shù)據(jù)轉(zhuǎn)化為自然語言。自然語言理解系統(tǒng)把自然語言轉(zhuǎn)化為計(jì)算機(jī)程序更易于處理的形式。
自然語言處理有四大類常見的任務(wù)
什么是命名實(shí)體識(shí)別
命名實(shí)體識(shí)別(NER)是信息提取(Information Extraction)的一個(gè)子任務(wù),主要涉及如何從文本中提取命名實(shí)體并將其分類至事先劃定好的類別,如在招聘信息中提取具體招聘公司、崗位和工作地點(diǎn)的信息,并將其分別歸納至公司、崗位和地點(diǎn)的類別下。命名實(shí)體識(shí)別往往先將整句拆解為詞語并對(duì)每個(gè)詞語進(jìn)行此行標(biāo)注,根據(jù)習(xí)得的規(guī)則對(duì)詞語進(jìn)行判別。這項(xiàng)任務(wù)的關(guān)鍵在于對(duì)未知實(shí)體的識(shí)別?;诖?,命名實(shí)體識(shí)別的主要思想在于根據(jù)現(xiàn)有實(shí)例的特征總結(jié)識(shí)別和分類規(guī)則。這些方法可以被分為有監(jiān)督(supervised)、半監(jiān)督(semi-supervised)和無監(jiān)督(unsupervised)三類。有監(jiān)督學(xué)習(xí)包括隱形馬科夫模型(HMM)、決策樹、最大熵模型(ME)、支持向量機(jī)(SVM)和條件隨機(jī)場(CRF)。這些方法主要是讀取注釋語料庫,記憶實(shí)例并進(jìn)行學(xué)習(xí),根據(jù)這些例子的特征生成針對(duì)某一種實(shí)例的識(shí)別規(guī)則。
什么是詞性標(biāo)注
詞性標(biāo)注 (pos tagging) 是指為分詞結(jié)果中的每個(gè)單詞標(biāo)注一個(gè)正確的詞性的程序,也即確定每個(gè)詞是名詞、動(dòng)詞、形容詞或其他詞性的過程。
什么是文本分類
該技術(shù)可被用于理解、組織和分類結(jié)構(gòu)化或非結(jié)構(gòu)化文本文檔。文本挖掘所使用的模型有詞袋(BOW)模型、語言模型(ngram)和主題模型。隱馬爾可夫模型通常用于詞性標(biāo)注(POS)。其涵蓋的主要任務(wù)有句法分析、情緒分析和垃圾信息檢測。
GLUE benchmark
General Language Understanding Evaluation benchmark,通用語言理解評(píng)估基準(zhǔn),用于測試模型在廣泛自然語言理解任務(wù)中的魯棒性。
LM:Language Model
語言模型,一串詞序列的概率分布,通過概率模型來表示文本語義。
語言模型有什么作用?通過語言模型,可以量化地衡量一段文本存在的可能性。對(duì)于一段長度為n的文本,文本里每個(gè)單詞都有上文預(yù)測該單詞的過程,所有單詞的概率乘積便可以用來評(píng)估文本。在實(shí)踐中,如果文本很長,P(wi|context(wi))的估算會(huì)很困難,因此有了簡化版:N元模型。在N元模型中,通過對(duì)當(dāng)前詞的前N個(gè)詞進(jìn)行計(jì)算來估算該詞的條件概率。
重要文獻(xiàn)與資料
https://segmentfault.com/a/1190000015460828
https://segmentfault.com/a/1190000015284996
https://segmentfault.com/a/1190000015285996
我們介紹詞的向量表征,也稱為 word embedding 。詞向量是自然語言處理中常見的一個(gè)操作,是搜索引擎、廣告系統(tǒng)、推薦系統(tǒng)等互聯(lián)網(wǎng)服務(wù)背后常見的基礎(chǔ)技術(shù)。
在這些互聯(lián)網(wǎng)服務(wù)里,我們經(jīng)常要比較兩個(gè)詞或者兩段文本之間的相關(guān)性。為了做這樣的比較,我們往往先要把詞表示成計(jì)算機(jī)適合處理的方式。最自然的方式恐怕莫過于向量空間模型(vector space model)。 在這種方式里,每個(gè)詞被表示成一個(gè)實(shí)數(shù)向量(one-hot vector),其長度為字典大小,每個(gè)維度對(duì)應(yīng)一個(gè)字典里的每個(gè)詞,除了這個(gè)詞對(duì)應(yīng)維度上的值是1,其他元素都是0。
One-hot vector雖然自然,但是用處有限。比如,在互聯(lián)網(wǎng)廣告系統(tǒng)里,如果用戶輸入的query是“母親節(jié)”,而有一個(gè)廣告的關(guān)鍵詞是“康乃馨”。雖然按照常理,我們知道這兩個(gè)詞之間是有聯(lián)系的——母親節(jié)通常應(yīng)該送給母親一束康乃馨;但是這兩個(gè)詞對(duì)應(yīng)的one-hot vectors之間的距離度量,無論是歐氏距離還是余弦相似度(cosine similarity),由于其向量正交,都認(rèn)為這兩個(gè)詞毫無相關(guān)性。 得出這種與我們相悖的結(jié)論的根本原因是:每個(gè)詞本身的信息量都太小。所以,僅僅給定兩個(gè)詞,不足以讓我們準(zhǔn)確判別它們是否相關(guān)。要想精確計(jì)算相關(guān)性,我們還需要更多的信息——從大量數(shù)據(jù)里通過機(jī)器學(xué)習(xí)方法歸納出來的知識(shí)。
在機(jī)器學(xué)習(xí)領(lǐng)域里,各種“知識(shí)”被各種模型表示,詞向量模型(word embedding model)就是其中的一類。通過詞向量模型可將一個(gè) one-hot vector映射到一個(gè)維度更低的實(shí)數(shù)向量(embedding vector),如embedding(母親節(jié))=[0.3,4.2,−1.5,...],embedding(康乃馨)=[0.2,5.6,−2.3,...]。在這個(gè)映射到的實(shí)數(shù)向量表示中,希望兩個(gè)語義(或用法)上相似的詞對(duì)應(yīng)的詞向量“更像”,這樣如“母親節(jié)”和“康乃馨”的對(duì)應(yīng)詞向量的余弦相似度就不再為零了。
詞向量模型可以是概率模型、共生矩陣(co-occurrence matrix)模型或神經(jīng)元網(wǎng)絡(luò)模型。在用神經(jīng)網(wǎng)絡(luò)求詞向量之前,傳統(tǒng)做法是統(tǒng)計(jì)一個(gè)詞語的共生矩陣X。
X是一個(gè)|V|×|V| 大小的矩陣,Xij表示在所有語料中,詞匯表V(vocabulary)中第i個(gè)詞和第j個(gè)詞同時(shí)出現(xiàn)的詞數(shù),|V|為詞匯表的大小。對(duì)X做矩陣分解(如奇異值分解),得到的U即視為所有詞的詞向量:
但這樣的傳統(tǒng)做法有很多問題:
基于神經(jīng)網(wǎng)絡(luò)的模型不需要計(jì)算和存儲(chǔ)一個(gè)在全語料上統(tǒng)計(jì)產(chǎn)生的大表,而是通過學(xué)習(xí)語義信息得到詞向量,因此能很好地解決以上問題。
神經(jīng)網(wǎng)絡(luò)
當(dāng)詞向量訓(xùn)練好后,我們可以用數(shù)據(jù)可視化算法t-SNE[ 4 ]畫出詞語特征在二維上的投影(如下圖所示)。從圖中可以看出,語義相關(guān)的詞語(如a, the, these; big, huge)在投影上距離很近,語意無關(guān)的詞(如say, business; decision, japan)在投影上的距離很遠(yuǎn)。
另一方面,我們知道兩個(gè)向量的余弦值在[−1,1]的區(qū)間內(nèi):兩個(gè)完全相同的向量余弦值為1, 兩個(gè)相互垂直的向量之間余弦值為0,兩個(gè)方向完全相反的向量余弦值為-1,即相關(guān)性和余弦值大小成正比。因此我們還可以計(jì)算兩個(gè)詞向量的余弦相似度。
模型概覽
語言模型
在介紹詞向量模型之前,我們先來引入一個(gè)概念:語言模型。 語言模型旨在為語句的聯(lián)合概率函數(shù)P(w1,...,wT)建模, 其中wi表示句子中的第i個(gè)詞。語言模型的目標(biāo)是,希望模型對(duì)有意義的句子賦予大概率,對(duì)沒意義的句子賦予小概率。 這樣的模型可以應(yīng)用于很多領(lǐng)域,如機(jī)器翻譯、語音識(shí)別、信息檢索、詞性標(biāo)注、手寫識(shí)別等,它們都希望能得到一個(gè)連續(xù)序列的概率。 以信息檢索為例,當(dāng)你在搜索“how long is a football bame”時(shí)(bame是一個(gè)醫(yī)學(xué)名詞),搜索引擎會(huì)提示你是否希望搜索"how long is a football game", 這是因?yàn)楦鶕?jù)語言模型計(jì)算出“how long is a football bame”的概率很低,而與bame近似的,可能引起錯(cuò)誤的詞中,game會(huì)使該句生成的概率最大。
對(duì)語言模型的目標(biāo)概率P(w1,...,wT),如果假設(shè)文本中每個(gè)詞都是相互獨(dú)立的,則整句話的聯(lián)合概率可以表示為其中所有詞語條件概率的乘積,即:
然而我們知道語句中的每個(gè)詞出現(xiàn)的概率都與其前面的詞緊密相關(guān), 所以實(shí)際上通常用條件概率表示語言模型:
N-gram neural model
在計(jì)算語言學(xué)中,n-gram是一種重要的文本表示方法,表示一個(gè)文本中連續(xù)的n個(gè)項(xiàng)?;诰唧w的應(yīng)用場景,每一項(xiàng)可以是一個(gè)字母、單詞或者音節(jié)。 n-gram模型也是統(tǒng)計(jì)語言模型中的一種重要方法,用n-gram訓(xùn)練語言模型時(shí),一般用每個(gè)n-gram的歷史n-1個(gè)詞語組成的內(nèi)容來預(yù)測第n個(gè)詞。
Yoshua Bengio等科學(xué)家就于2003年在著名論文 Neural Probabilistic Language Models [ 1 ] 中介紹如何學(xué)習(xí)一個(gè)神經(jīng)元網(wǎng)絡(luò)表示的詞向量模型。文中的神經(jīng)概率語言模型(Neural Network Language Model,NNLM)通過一個(gè)線性映射和一個(gè)非線性隱層連接,同時(shí)學(xué)習(xí)了語言模型和詞向量,即通過學(xué)習(xí)大量語料得到詞語的向量表達(dá),通過這些向量得到整個(gè)句子的概率。因所有的詞語都用一個(gè)低維向量來表示,用這種方法學(xué)習(xí)語言模型可以克服維度災(zāi)難(curse of dimensionality)。注意:由于“神經(jīng)概率語言模型”說法較為泛泛,我們在這里不用其NNLM的本名,考慮到其具體做法,本文中稱該模型為N-gram neural model。
在上文中已經(jīng)講到用條件概率建模語言模型,即一句話中第t個(gè)詞的概率和該句話的前t−1個(gè)詞相關(guān)??蓪?shí)際上越遠(yuǎn)的詞語其實(shí)對(duì)該詞的影響越小,那么如果考慮一個(gè)n-gram, 每個(gè)詞都只受其前面n-1個(gè)詞的影響,則有:
給定一些真實(shí)語料,這些語料中都是有意義的句子,N-gram模型的優(yōu)化目標(biāo)則是最大化目標(biāo)函數(shù):
其中f(wt,wt−1,...,wt−n+1)表示根據(jù)歷史n-1個(gè)詞得到當(dāng)前詞wt的條件概率,R(θ)表示參數(shù)正則項(xiàng)。
Continuous Bag-of-Words model(CBOW)
CBOW模型通過一個(gè)詞的上下文(各N個(gè)詞)預(yù)測當(dāng)前詞。當(dāng)N=2時(shí),模型如下圖所示:
具體來說,不考慮上下文的詞語輸入順序,CBOW是用上下文詞語的詞向量的均值來預(yù)測當(dāng)前詞。
其中xt為第t個(gè)詞的詞向量,分類分?jǐn)?shù)(score)向量 z=U∗context,最終的分類y采用softmax,損失函數(shù)采用多類分類交叉熵。
Skip-gram model
CBOW的好處是對(duì)上下文詞語的分布在詞向量上進(jìn)行了平滑,去掉了噪聲,因此在小數(shù)據(jù)集上很有效。而Skip-gram的方法中,用一個(gè)詞預(yù)測其上下文,得到了當(dāng)前詞上下文的很多樣本,因此可用于更大的數(shù)據(jù)集。
如上圖所示,Skip-gram模型的具體做法是,將一個(gè)詞的詞向量映射到2n個(gè)詞的詞向量(2n表示當(dāng)前輸入詞的前后各n個(gè)詞),然后分別通過softmax得到這2n個(gè)詞的分類損失值之和。
我們介紹了詞向量、語言模型和詞向量的關(guān)系、以及如何通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型獲得詞向量。在信息檢索中,我們可以根據(jù)向量間的余弦夾角,來判斷query和文檔關(guān)鍵詞這二者間的相關(guān)性。在句法分析和語義分析中,訓(xùn)練好的詞向量可以用來初始化模型,以得到更好的效果。在文檔分類中,有了詞向量之后,可以用聚類的方法將文檔中同義詞進(jìn)行分組,也可以用 N-gram 來預(yù)測下一個(gè)詞。希望大家在本章后能夠自行運(yùn)用詞向量進(jìn)行相關(guān)領(lǐng)域的研究。
參考: https://www.paddlepaddle.org.cn/documentation/docs/zh/user_guides/simple_case/word2vec/README.cn.html
三、NLP第十篇-語義分析
對(duì)于不同的語言單位,語義分析的任務(wù)各不相同。在詞的層次上,語義分析的基本任務(wù)是進(jìn)行 詞義消歧(WSD) ,在句子層面上是 語義角色標(biāo)注(SRL) ,在篇章層面上是 指代消歧 ,也稱共指消解。
詞義消歧
由于詞是能夠獨(dú)立運(yùn)用的最小語言單位,句子中的每個(gè)詞的含義及其在特定語境下的相互作用構(gòu)成了整個(gè)句子的含義,因此,詞義消歧是句子和篇章語義理解的基礎(chǔ),詞義消歧有時(shí)也稱為詞義標(biāo)注,其任務(wù)就是確定一個(gè)多義詞在給定上下文語境中的具體含義。
詞義消歧的方法也分為有監(jiān)督的消歧方法和無監(jiān)督的消歧方法,在有監(jiān)督的消歧方法中,訓(xùn)練數(shù)據(jù)是已知的,即每個(gè)詞的詞義是被標(biāo)注了的;而在無監(jiān)督的消歧方法中,訓(xùn)練數(shù)據(jù)是未經(jīng)標(biāo)注的。
多義詞的詞義識(shí)別問題實(shí)際上就是該詞的上下文分類問題,還記得詞性一致性識(shí)別的過程嗎,同樣也是根據(jù)詞的上下文來判斷詞的詞性。
有監(jiān)督詞義消歧根據(jù)上下文和標(biāo)注結(jié)果完成分類任務(wù)。而無監(jiān)督詞義消歧通常被稱為聚類任務(wù),使用聚類算法對(duì)同一個(gè)多義詞的所有上下文進(jìn)行等價(jià)類劃分,在詞義識(shí)別的時(shí)候,將該詞的上下文與各個(gè)詞義對(duì)應(yīng)上下文的等價(jià)類進(jìn)行比較,通過上下文對(duì)應(yīng)的等價(jià)類來確定詞的詞義。此外,除了有監(jiān)督和無監(jiān)督的詞義消歧,還有一種基于詞典的消歧方法。
在詞義消歧方法研究中,我們需要大量測試數(shù)據(jù),為了避免手工標(biāo)注的困難,我們通過人工制造數(shù)據(jù)的方法來獲得大規(guī)模訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。其基本思路是將兩個(gè)自然詞匯合并,創(chuàng)建一個(gè)偽詞來替代所有出現(xiàn)在語料中的原詞匯。帶有偽詞的文本作為歧義原文本,最初的文本作為消歧后的文本。
有監(jiān)督的詞義消歧方法
有監(jiān)督的詞義消歧方法通過建立分類器,用劃分多義詞上下文類別的方法來區(qū)分多義詞的詞義。
基于互信息的消歧方法
基于互信息的消歧方法基本思路是,對(duì)每個(gè)需要消歧的多義詞尋找一個(gè)上下文特征,這個(gè)特征能夠可靠地指示該多義詞在特定上下文語境中使用的是哪種語義。
互信息是兩個(gè)隨機(jī)變量X和Y之間的相關(guān)性,X與Y關(guān)聯(lián)越大,越相關(guān),則互信息越大。
這里簡單介紹用在機(jī)器翻譯中的Flip-Flop算法,這種算法適用于這樣的條件,A語言中有一個(gè)詞,它本身有兩種意思,到B語言之后,有兩種以上的翻譯。
我們需要得到的,是B語言中的哪些翻譯對(duì)應(yīng)義項(xiàng)1,哪些對(duì)應(yīng)義項(xiàng)2。
這個(gè)問題復(fù)雜的地方在于,對(duì)于普通的詞義消歧,比如有兩個(gè)義項(xiàng)的多義詞,詞都是同一個(gè),上下文有很多,我們把這些上下文劃分為兩個(gè)等價(jià)類;而這種跨語言的,不僅要解決上下文的劃分,在這之前還要解決兩個(gè)義項(xiàng)多種詞翻譯的劃分。
這里面最麻煩的就是要先找到兩種義項(xiàng)分別對(duì)應(yīng)的詞翻譯,和這兩種義項(xiàng)分別對(duì)應(yīng)的詞翻譯所對(duì)應(yīng)的上下文特征,以及他們之間的對(duì)應(yīng)關(guān)系。
想象一下,地上有兩個(gè)圈,代表兩個(gè)義項(xiàng);這兩個(gè)圈里,分別有若干個(gè)球,代表了每個(gè)義項(xiàng)對(duì)應(yīng)的詞翻譯;然后這兩個(gè)圈里還有若干個(gè)方塊,代表了每個(gè)義項(xiàng)在該語言中對(duì)應(yīng)的上下文。然后球和方塊之間有線連著(球與球,方塊與方塊之間沒有),隨便連接,球可以連多個(gè)方塊,方塊也可以連多個(gè)球。然后,圈沒了,兩個(gè)圈里的球和方塊都混在了一起,亂七八糟的,你該怎么把屬于這兩個(gè)圈的球和方塊分開。
Flip-Flop算法給出的方法是,試試。把方塊分成兩個(gè)集合,球也分成兩個(gè)集合,然后看看情況怎么樣,如果情況不好就繼續(xù)試,找到最好的劃分。然后需要解決的問題就是,怎么判定分的好不好?用互信息。
如果兩個(gè)上下文集(方塊集)和兩個(gè)詞翻譯集(球集)之間的互信息大,那我們就認(rèn)為他們的之間相關(guān)關(guān)系大,也就與原來兩個(gè)義項(xiàng)完美劃分更接近。
實(shí)際上,基于互信息的這種方法直接把詞翻譯的義項(xiàng)劃分也做好了。
基于貝葉斯分類器的消歧方法
基于貝葉斯分類器的消歧方法的思想與《淺談機(jī)器學(xué)習(xí)基礎(chǔ)》中講的樸素貝葉斯分類算法相同,當(dāng)時(shí)是用來判定垃圾郵件和正常郵件,這里則是用來判定不同義項(xiàng)(義項(xiàng)數(shù)可以大于2),我們只需要計(jì)算給定上下文語境下,概率最大的詞義就好了。
根據(jù)貝葉斯公式,兩種情況下,分母都可以忽略,所要計(jì)算的就是分子,找最大的分子,在垃圾郵件識(shí)別中,分子是P(當(dāng)前郵件所出現(xiàn)的詞語|垃圾郵件)P(垃圾郵件),那么乘起來就是垃圾郵件和當(dāng)前郵件詞語出現(xiàn)的聯(lián)合分布概率,正常郵件同理;而在這里分子是P(當(dāng)前詞語所存在的上下文|某一義項(xiàng))P(某一義項(xiàng)),這樣計(jì)算出來的就是某一義項(xiàng)和上下文的聯(lián)合分布概率,再除以分母P(當(dāng)前詞語所存在的上下文),計(jì)算出來的結(jié)果就是P(某一義項(xiàng)|當(dāng)前詞語所存在的上下文),就能根據(jù)上下文去求得概率最大的義項(xiàng)了。
基于最大熵的詞義消歧方法
利用最大熵模型進(jìn)行詞義消歧的基本思想也是把詞義消歧看做一個(gè)分類問題,即對(duì)于某個(gè)多義詞根據(jù)其特定的上下文條件(用特征表示)確定該詞的義項(xiàng)。
基于詞典的詞義消歧方法
基于詞典語義定義的消歧方法
M. Lesk 認(rèn)為詞典中的詞條本身的定義就可以作為判斷其詞義的一個(gè)很好的條件,就比如英文中的core,在詞典中有兩個(gè)定義,一個(gè)是『松樹的球果』,另一個(gè)是指『用于盛放其它東西的錐形物,比如盛放冰激凌的錐形薄餅』。如果在文本中,出現(xiàn)了『樹』、或者出現(xiàn)了『冰』,那么這個(gè)core的詞義就可以確定了。
我們可以計(jì)算詞典中不同義項(xiàng)的定義和詞語在文本中上下文的相似度,就可以選擇最相關(guān)的詞義了。
基于義類詞典的消歧方法
和前面基于詞典語義的消歧方法相似,只是采用的不是詞典里義項(xiàng)的定義文本,而是采用的整個(gè)義項(xiàng)所屬的義類,比如ANMINAL、MACHINERY等,不同的上下文語義類有不同的共現(xiàn)詞,依靠這個(gè)來對(duì)多義詞的義項(xiàng)進(jìn)行消歧。
無監(jiān)督的詞義消歧方法
嚴(yán)格地講,利用完全無監(jiān)督的消歧方法進(jìn)行詞義標(biāo)注是不可能的,因?yàn)樵~義標(biāo)注畢竟需要提供一些關(guān)于語義特征的描述信息,但是,詞義辨識(shí)可以利用完全無監(jiān)督的機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)。
其關(guān)鍵思想在于上下文聚類,計(jì)算多義詞所出現(xiàn)的語境向量的相似性就可以實(shí)現(xiàn)上下文聚類,從而實(shí)現(xiàn)詞義區(qū)分。
語義角色標(biāo)注概述
語義角色標(biāo)注是一種淺層語義分析技術(shù),它以句子為單位,不對(duì)句子所包含的予以信息進(jìn)行深入分析,而只是分析句子的謂詞-論元結(jié)構(gòu)。具體一點(diǎn)講,語義角色標(biāo)注的任務(wù)就是以句子的謂詞為中心,研究句子中各成分與謂詞之間的關(guān)系,并且用語義角色來描述它們之間的關(guān)系。比如:
實(shí)際上就是填槽吧,找到句子中的時(shí)間、地點(diǎn)、施事者、受事者和核心謂詞。
目前語義角色標(biāo)注方法過于依賴句法分析的結(jié)果,而且領(lǐng)域適應(yīng)性也太差。
自動(dòng)語義角色標(biāo)注是在句法分析的基礎(chǔ)上進(jìn)行的,而句法分析包括短語結(jié)構(gòu)分析、淺層句法分析和依存關(guān)系分析,因此,語義角色標(biāo)注方法也分為 基于短語結(jié)構(gòu)樹 的語義角色標(biāo)注方法、 基于淺層句法分析結(jié)果 的語義角色標(biāo)注方法和 基于依存句法分析結(jié)果 的語義角色標(biāo)注方法三種。
它們的基本流程類似,在研究中一般都假定謂詞是給定的,所要做的就是找出給定謂詞的各個(gè)論元,也就是說任務(wù)是確定的,找出這個(gè)任務(wù)所需的各個(gè)槽位的值。其流程一般都由4個(gè)階段組成:
候選論元剪除的目的就是要從大量的候選項(xiàng)中剪除掉那些不可能成為論元的項(xiàng),從而減少候選項(xiàng)的數(shù)目。
論元辨識(shí)階段的任務(wù)是從剪除后的候選項(xiàng)中識(shí)別出哪些是真正的論元。論元識(shí)別通常被作為一個(gè)二值分類問題來解決,即判斷一個(gè)候選項(xiàng)是否是真正的論元。該階段不需要對(duì)論元的語義角色進(jìn)行標(biāo)注。
論元標(biāo)注階段要為前一階段識(shí)別出來的論元標(biāo)注語義角色。論元標(biāo)注通常被作為一個(gè)多值分類問題來解決,其類別集合就是所有的語義角色標(biāo)簽。
最終,后處理階段的作用是對(duì)前面得到的語義角色標(biāo)注結(jié)果進(jìn)行處理,包括刪除語義角色重復(fù)的論元等。
基于短語結(jié)構(gòu)樹的語義角色標(biāo)注方法
首先是第一步,候選論元剪除,具體方法如下:
將謂詞作為當(dāng)前結(jié)點(diǎn),依次考察它的兄弟結(jié)點(diǎn):如果一個(gè)兄弟結(jié)點(diǎn)和當(dāng)前結(jié)點(diǎn)在句法結(jié)構(gòu)上不是并列的關(guān)系,則將它作為候選項(xiàng)。如果該兄弟結(jié)點(diǎn)的句法標(biāo)簽是介詞短語,則將它的所有子節(jié)點(diǎn)都作為候選項(xiàng)。
將當(dāng)前結(jié)點(diǎn)的父結(jié)點(diǎn)設(shè)為當(dāng)前結(jié)點(diǎn),重復(fù)上一個(gè)步驟,直至當(dāng)前結(jié)點(diǎn)是句法樹的根結(jié)點(diǎn)。
舉個(gè)例子,候選論元就是圖上畫圈的:
經(jīng)過剪除得到候選論元之后,進(jìn)入論元識(shí)別階段,為分類器選擇有效的特征。人們總結(jié)出了一些常見的有效特征,比如謂詞本身、路徑、短語類型、位置、語態(tài)、中心詞、從屬類別、論元的第一個(gè)詞和最后一個(gè)詞、組合特征等等。
然后進(jìn)行論元標(biāo)注,這里也需要找一些對(duì)應(yīng)的特征。然后后處理并不是必須的。
基于依存關(guān)系樹的語義角色標(biāo)注方法
該語義角色標(biāo)注方法是基于依存分析樹進(jìn)行的。由于短語結(jié)構(gòu)樹與依存結(jié)構(gòu)樹不同,所以基于二者的語義角色標(biāo)注方法也有不同。
在基于短語結(jié)構(gòu)樹的語義角色標(biāo)方法中,論元被表示為連續(xù)的幾個(gè)詞和一個(gè)語義角色標(biāo)簽,比如上面圖給的『事故 原因』,這兩個(gè)詞一起作為論元A1;而在基于依存關(guān)系樹的語義角色標(biāo)注方法中,一個(gè)論元被表示為一個(gè)中心詞和一個(gè)語義角色標(biāo)簽,就比如在依存關(guān)系樹中,『原因』是『事故』的中心詞,那只要標(biāo)注出『原因』是A1論元就可以了,也即謂詞-論元關(guān)系可以表示為謂詞和論元中心詞之間的關(guān)系。
下面給一個(gè)例子:
句子上方的是原來的依存關(guān)系樹,句子下方的則是謂詞『調(diào)查』和它的各個(gè)論元之間的關(guān)系。
第一步仍然是論元剪除,具體方法如下:
將謂詞作為當(dāng)前結(jié)點(diǎn)
將當(dāng)前結(jié)點(diǎn)的所有子結(jié)點(diǎn)都作為候選項(xiàng)
將當(dāng)前結(jié)點(diǎn)的父結(jié)點(diǎn)設(shè)為當(dāng)前結(jié)點(diǎn),如果新當(dāng)前結(jié)點(diǎn)是依存句法樹的根結(jié)點(diǎn),剪除過程結(jié)束,如果不是,執(zhí)行上一步
論元識(shí)別和論元標(biāo)注仍然是基于特征的分類問題,也有一些人們總結(jié)出來的常見特征。這里不詳述。
基于語塊的語義角色標(biāo)注方法
我們前面知道,淺層語法分析的結(jié)果是base NP標(biāo)注序列,采用的方法之一是IOB表示法,I表示base NP詞中,O表示詞外,B表示詞首。
基于語塊的語義角色標(biāo)注方法將語義角色標(biāo)注作為一個(gè)序列標(biāo)注問題來解決。
基于語塊的語義角色標(biāo)注方法一般沒有論元剪除這個(gè)過程,因?yàn)镺相當(dāng)于已經(jīng)剪除了大量非base NP,也即不可能為論元的內(nèi)容。論元辨識(shí)通常也不需要了,base NP就可以認(rèn)為是論元。
我們需要做的就是論元標(biāo)注,為所有的base NP標(biāo)注好語義角色。與基于短語結(jié)構(gòu)樹或依存關(guān)系樹的語義角色標(biāo)注方法相比,基于語塊的語義角色標(biāo)注是一個(gè)相對(duì)簡單的過程。
當(dāng)然,因?yàn)闆]有了樹形結(jié)構(gòu),只是普通序列的話,與前兩種結(jié)構(gòu)相比,丟失掉了一部分信息,比如從屬關(guān)系等。
語義角色標(biāo)注的融合方法
由于語義角色標(biāo)注對(duì)句法分析的結(jié)果有嚴(yán)重的依賴,句法分析產(chǎn)生的錯(cuò)誤會(huì)直接影響語義角色標(biāo)注的結(jié)果,而進(jìn)行語義角色標(biāo)注系統(tǒng)融合是減輕句法分析錯(cuò)誤對(duì)語義角色標(biāo)注影響的有效方法。
這里所說的系統(tǒng)融合是將多個(gè)語義角色標(biāo)注系統(tǒng)的結(jié)果進(jìn)行融合,利用不同語義角色標(biāo)注結(jié)果之間的差異性和互補(bǔ)性,綜合獲得一個(gè)最好的結(jié)果。
在這種方法中,一般首先根據(jù)多個(gè)不同語義角色標(biāo)注結(jié)果進(jìn)行語義角色標(biāo)注,得到多個(gè)語義角色標(biāo)注結(jié)果,然后通過融合技術(shù)將每個(gè)語義角色標(biāo)注結(jié)果中正確的部分組合起來,獲得一個(gè)全部正確的語義角色標(biāo)注結(jié)果。
融合方法這里簡單說一種基于整數(shù)線性規(guī)劃模型的語義角色標(biāo)注融合方法,該方法需要被融合的系統(tǒng)輸出每個(gè)論元的概率,其基本思想是將融合過程作為一個(gè)推斷問題處理,建立一個(gè)帶約束的最優(yōu)化模型,優(yōu)化目標(biāo)一般就是讓最終語義角色標(biāo)注結(jié)果中所有論元的概率之和最大了,而模型的約束條件則一般來源于人們根據(jù)語言學(xué)規(guī)律和知識(shí)所總結(jié)出來的經(jīng)驗(yàn)。
除了基于整數(shù)線性規(guī)劃模型的融合方法之外,人們還研究了若干種其他融合方法,比如最小錯(cuò)誤加權(quán)的系統(tǒng)融合方法。其基本思想是認(rèn)為,不應(yīng)該對(duì)所有融合的標(biāo)注結(jié)果都一視同仁,我們在進(jìn)行融合時(shí)應(yīng)當(dāng)更多的信賴總體結(jié)果較好的系統(tǒng)。
END
四、cv和nlp是算法嗎
cv和nlp是算法。cv是計(jì)算機(jī)視覺,而nlp是自然語言處理,兩者都是計(jì)算機(jī)發(fā)展的重要算法分支,支撐計(jì)算機(jī)智能化發(fā)展的基石,所以cv和nlp是算法。
以上就是關(guān)于nlp最新算法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
win7刪除winload如何恢復(fù)(win7系統(tǒng)刪除的文件怎么找回)
油管賬號(hào)2023免費(fèi)(油管賬號(hào)大全及密碼2020)
抖音本地生活團(tuán)購代理(抖音本地生活團(tuán)購代理怎么做)