HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    nlp分類模型(Nlp分類模型要新增一個(gè)標(biāo)簽有哪些做法)

    發(fā)布時(shí)間:2023-04-08 01:56:31     稿源: 創(chuàng)意嶺    閱讀: 147        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于nlp分類模型的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(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

    本文目錄:

    nlp分類模型(Nlp分類模型要新增一個(gè)標(biāo)簽有哪些做法)

    一、NLP自然語言處理中的閱讀理解

    我們在上學(xué)的時(shí)候經(jīng)常會(huì)做閱讀理解的題目,根據(jù)文章內(nèi)容提取出其中的答案。NLP中的閱讀理解同樣是提出文章中的中心句,不過不同的是,這是利用機(jī)器自動(dòng)提取出來,其中涉及到NLP中LR(邏輯回歸)分類算法、XGboost模型。

    LR(邏輯回歸)分類算法 是一個(gè)二分類算法,主要作用是預(yù)測事務(wù)發(fā)生的概率。通過利用一致的自變量來預(yù)測一個(gè)離散型因變量的值。

    優(yōu)點(diǎn):計(jì)算代價(jià)不高,易于理解和實(shí)現(xiàn)

    缺點(diǎn):容易欠擬合,分類精度可能不高

    適用數(shù)據(jù)類型:數(shù)值型和標(biāo)稱型數(shù)據(jù)

    XGboost模型 一個(gè)監(jiān)督模型,xgboost對應(yīng)的模型是一堆CART樹。xgboost出名的原因一是準(zhǔn),二是快,之所以快,其中就有選用CART樹的一份功勞。由于CART樹的葉子節(jié)點(diǎn)對應(yīng)的值是一個(gè)實(shí)際的分?jǐn)?shù),而非一個(gè)確定的類別,這將有利于實(shí)現(xiàn)高效的優(yōu)化算法

    利用閱讀理解的技術(shù),提取word文檔中重點(diǎn)內(nèi)容。當(dāng)用戶提出問題后,機(jī)器能自動(dòng)從多個(gè)文檔中找到對應(yīng)的答案推送給用戶查看,從而解決用戶的問題

    用戶要咨詢的問題作為作為一個(gè)輸入源,大量的文檔是檢索的對象。

    根據(jù)問題內(nèi)容,機(jī)器去多個(gè)文檔中檢索,找出前N個(gè)與問題相關(guān)的所有文檔中的段落,可以是意思相近,可以是包含相同關(guān)鍵詞等。找出后利用LR算法進(jìn)行二次分類,提取出其中機(jī)器認(rèn)為質(zhì)量較好的前30個(gè)段落。

    然后再利用xgboost模型做分類,從30個(gè)段落中,找出前10個(gè)段落。使用閱讀理解方式,從10個(gè)段落中挑選一個(gè)段落出來,作為多文檔閱讀理解的最終答案

    1.僅將用戶的問題作為輸入,范圍太小,需要將問題進(jìn)行語義泛化

    2.僅憑問題去多個(gè)文檔中進(jìn)行檢索答案,準(zhǔn)確性有多高還需待驗(yàn)證

    二、05-ELMo/BERT/GPT-NLP預(yù)訓(xùn)練模型

    這里可以參考CSDN上的文章-BERT原理和實(shí)踐: https://blog.csdn.net/jiaowoshouzi/article/category/9060488

    在解釋BERT,ELMO這些預(yù)訓(xùn)練模型之前,我們先看一下很久之前的計(jì)算機(jī)是如何讀懂文字的?

    每個(gè)字都有自己的獨(dú)特的編碼。但是這樣是有弊端的,字和字之間的關(guān)聯(lián)關(guān)系是無法得知的,比如計(jì)算機(jī)無法知道dog和cat都是動(dòng)物,它反而會(huì)覺得bag和dog是比較相近的。

    所以后來就有了Word Class,將一系列的詞進(jìn)行分類然后讓一類詞語和一類詞語之間更有關(guān)聯(lián),但是這樣的方法太過于粗糙,比如dog,cat,bird是一類,看不出哺乳動(dòng)物鳥類的區(qū)別。

    在這個(gè)基礎(chǔ)之上,我們有了Word Embedding,Word Embedding我們可以想象成是一種soft的word class,每個(gè)詞都用向量來表示,它的向量維度可能表示這個(gè)詞匯的某種意思,如圖中dog,cat,rabbit的距離相比其他更近。那么word embendding是如何訓(xùn)練出來的,是根據(jù)每個(gè)詞匯的上下文所訓(xùn)練的。

    每個(gè)句子都有bank的詞匯,四個(gè)bank是不同的token,但是同樣的type。(注:token-詞例, type-詞型, class-詞類 or token是出現(xiàn)的總次數(shù)(還有種理解是token是具有一定的句法語義且獨(dú)立的最小文本成分。 ),type是出現(xiàn)的不同事物的個(gè)數(shù)。)

    對于典型的Word Embedding認(rèn)為,每個(gè)詞type有一個(gè)embedding,所以就算是不同的token只要是一樣的type那么word embedding就是一樣的,語義也就是一樣的。

    而事實(shí)上并非如此,1,2句bank指的是銀行,3,4為水庫。所以我們希望讓機(jī)器給不同意思的token而且type還一致,給予不同的embedding。在這個(gè)問題上,之前的做法是從字典中去查找這個(gè)詞包含幾種意思,但是這樣的做法顯然跟不上現(xiàn)實(shí)中詞語的一些隱含的含義。比如bank有銀行的意思,與money一起是銀行的意思,而與blood一起卻是血庫的意思。

    所以我們想讓機(jī)器今天進(jìn)一步做到每一個(gè)word token都可以有自己的embedding(之前是每個(gè)type有一個(gè)embedding或者有固定的一個(gè)或多個(gè)embedding),那么怎么知道一個(gè)word應(yīng)該有怎樣的embedding呢?我們可以取決于該詞的上下文,上下文越相近的token它們就會(huì)越相近的embedding。比如之前提到的bank,下面兩個(gè)句子它們的word token的embedding可能是相近的,而和上面的word token的embedding是相遠(yuǎn)的。

    所以我們想使用一種能夠基于上下文的Contextual word Embedding來解決一詞多義的問題。

    這里使用ELMO可以做到這件事情,即每個(gè)word token擁有不同的word embedding。(右上角動(dòng)物是芝麻街(美國公共廣播協(xié)會(huì)(PBS)制作播出的兒童教育電視節(jié)目)里的角色)。

    它是基于RNN的預(yù)訓(xùn)練模型,它只需要搜集大量語料(句子)且不需要做任何標(biāo)注,就可以訓(xùn)練這個(gè)基于RNN的語言模型,預(yù)測下一個(gè)token是什么,學(xué)習(xí)完了之后就得到了上下文的embedding。因?yàn)槲覀兛梢詫NN的隱藏層中的某一節(jié)點(diǎn)拿出來(圖中橙藍(lán)色節(jié)點(diǎn)),它就是輸入當(dāng)前結(jié)點(diǎn)的詞匯的word embedding。

    從當(dāng)計(jì)算識別到<BOS>,模型訓(xùn)練開始。首先輸入"潮水",然后當(dāng)作輸入輸出"退了",退了當(dāng)做輸入輸出"就"。

    假設(shè)當(dāng)前要得到”退了”這個(gè)詞的上下文embedding,首先,因?yàn)榍斑叺腞NN只考慮到了前文而沒有考慮到后文,所以這里就使用了同前文一樣的反向的RNN。然后,它從句尾開始進(jìn)行,比如給它喂”知道”,它就要預(yù)測”就”,給它喂”就”,它就要預(yù)測”退了”。這時(shí)候就不僅考慮每個(gè)詞匯的前文,還會(huì)考慮每個(gè)詞的后文。最后將正向和逆向得到的兩個(gè)不同的上下文embedding(因?yàn)榉较虿煌?xùn)練結(jié)果也不一樣)拼接起來。

    現(xiàn)在我們訓(xùn)練的程度都會(huì)越來越深度,當(dāng)層數(shù)增加,這樣就會(huì)產(chǎn)生Deep的RNN,因?yàn)楹芏鄬樱颐恳粚佣紩?huì)產(chǎn)生上下文Embedding,那么我們到底應(yīng)該使用哪一層?每一層這種深度LSTM中的每個(gè)層都可以生成潛在表示(方框處)。同一個(gè)詞在不同的層上會(huì)產(chǎn)生不同的Embedding,那么我們應(yīng)該使用哪一層呢?ELMo的策略是每一層得到的上下文embedding都要。

    在上下文embedding的訓(xùn)練模型中,每個(gè)詞輸入進(jìn)去都會(huì)有一個(gè)embedding輸出來。但是在ELMo中,每個(gè)詞匯輸入進(jìn)去,都會(huì)得到不止一個(gè)embedding,因?yàn)槊繉拥腞NN都會(huì)給到一個(gè)embedding,ELMo將它們統(tǒng)統(tǒng)加起來一起使用。

    以圖中為例,這里假設(shè)ELMo有兩層RNN,這里是將α1(黃色,第一層得到的embedding)和α2(綠色,第二層得到embedding)加起來得到藍(lán)色的embedding,并做為接下來要進(jìn)行不同任務(wù)的輸入。

    但是這里存在一些問題,α1和α2是學(xué)習(xí)得到的,而且它是根據(jù)當(dāng)前要進(jìn)行的任務(wù)(如QA,POS of tagging ),然后根據(jù)接下來要進(jìn)行的這些任務(wù)一起被學(xué)習(xí)出來。所以就導(dǎo)致不同任務(wù)導(dǎo)向下的α1和α2也不一樣。

    ELMo的論文中提到,在不同任務(wù)下(SRL,Coref,SNLI,SQuAD,SST-5)。藍(lán)色的上下文embedding在經(jīng)過token(這里為沒有經(jīng)過上下文的embedding),LSTM1,LSTM2后,它在不同階段需要的weight也不一樣。

    BERT相當(dāng)于是Transformer的Encoder部分,它只需要搜集大量的語料去從中學(xué)習(xí)而不經(jīng)過標(biāo)注(不需要label),就可以將Encoder訓(xùn)練完成。如果之前要訓(xùn)練Encoder,我們需要通過一些任務(wù)來驅(qū)動(dòng)學(xué)習(xí)(如機(jī)器翻譯)。

    BERT就是句子給進(jìn)去,每個(gè)句子給一個(gè)embedding。

    這里可以回憶下,Transformer的Enoder中有self-attention layer,就是給進(jìn)去一個(gè)sequence,輸出也得到一個(gè)sequence。

    雖然圖中使用是用詞作為單元進(jìn)行輸入,但是在使用BERT進(jìn)行中文的訓(xùn)練時(shí),字會(huì)是一個(gè)更好的選擇。比如,我們在給BERT進(jìn)行輸入時(shí),用one-hot給詞進(jìn)行編碼,但是詞在中文中數(shù)量龐大,會(huì)導(dǎo)致維度過高。但是,字的話相對會(huì)少很多,特別是中文(大約幾千個(gè),可以窮舉)。這樣以字為單位進(jìn)行輸入會(huì)占很大優(yōu)勢。

    共有兩種方法,一種是Mask LM遮蓋語言模型,另一種是Next Sentence Prediction下一句預(yù)測。

    下面用上圖的例子來理解BERT是怎么樣來進(jìn)行填空的:

    1)這里假設(shè)在所有句子中的詞匯的第2個(gè)位置上設(shè)置一個(gè)<MASK>;

    2)接下來把所有的詞匯輸入BERT,然后每個(gè)輸入的token都會(huì)得到一個(gè)embedding;

    3)接下來將設(shè)置為<MASK>的embedding輸入到Linear Multi-class Classifier中中,要求它預(yù)測被<MASK>的詞匯是哪個(gè)詞匯?

    但是這個(gè)Linear Multi-class Classifier它僅僅是一個(gè)線性分類器,所以它的能力十分弱,這也就需要在之前的BERT模型中需要將它的層數(shù)等參數(shù)設(shè)計(jì)的相當(dāng)好,然后得到非常出色的representation,便于線性分類器去訓(xùn)練。

    那么我們怎么知道最后得到的embedding是什么樣的呢?如果兩個(gè)<MASK>下的詞匯(輸入時(shí)設(shè)置的<MASK>和最后預(yù)測的<MASK>)都放回原來的位置而且沒有違和感(就是語句還算通順),那它們就有類似的embedding(比如退下和落下)。

    如圖中,給定兩個(gè)句子1)醒醒吧 和 2)你沒有妹妹。其中特殊符號[SEP]是告訴BERT兩個(gè)句子的分隔點(diǎn)在哪里。

    特殊符號[CLS]一般放在句子的開頭,它用來告訴BERT從這開始分類任務(wù),[CLS]輸入BERT后得到embedding然后通過Linear Binary Classifier得出結(jié)果說明:經(jīng)過BERT預(yù)測后現(xiàn)在我們要預(yù)測的兩個(gè)句子是接在一起 or 不應(yīng)該被接在一起。

    這里可能會(huì)有疑問,為什么不將[CLS]放在句尾,等BERT訓(xùn)練完兩個(gè)句子再輸出結(jié)果?

    對于上圖中的任務(wù),BERT現(xiàn)在要做的事情就是給定兩個(gè)句子,讓BERT輸出結(jié)果這兩個(gè)句子是不是應(yīng)該接在一起?

    所以在語料庫的大量句子中,我們是知道哪些句子是可以接在一起的,所以也需要我們告訴BERT哪些句子是接在一起的。

    Linear Binary Classifier和BERT是一起被訓(xùn)練的,通過預(yù)測下一句這個(gè)任務(wù),我們就可以把將BERT部分的最優(yōu)參數(shù)訓(xùn)練出來。

    現(xiàn)在我們知道了任務(wù)一和任務(wù)二,在原論文中兩種任務(wù)是要同時(shí)進(jìn)行的,這樣才能將BERT的性能發(fā)揮到最佳。

    現(xiàn)在我們知道了BERT要做什么事情,那么我們要如何去使用它?共有四種方法。論文中是將【BERT模型和接下來你要進(jìn)行的任務(wù)】結(jié)合在一起做訓(xùn)練。

    第一種,假設(shè)當(dāng)前任務(wù)是Input一個(gè)sentence,out一個(gè)class,舉例來說輸入一句話來判斷分類。

    訓(xùn)練流程:1)將做要分類的句子丟給BERT;

    2)需要在句子開始加上分類的特殊符號,這個(gè)特殊符號經(jīng)過BERT輸出的embedding經(jīng)過線性分類器,輸出結(jié)果為當(dāng)前的句子屬于的類別是真還是假。BERT和Linear Classifier的參數(shù)一起進(jìn)行學(xué)習(xí);

    3)這里的Linear Classifier是Trained from Scratch是白手起家從頭開始,即它的參數(shù)隨機(jī)初始化設(shè)置,然后開始訓(xùn)練;

    4)而BERT則是加上Fine-tune微調(diào)策略(一種遷移學(xué)習(xí)方式*),例如Generative Pre-trained Transformer(OpenAI GPT生成型預(yù)訓(xùn)練變換器)(Radford等,2018),引入了最小的任務(wù)特定參數(shù),并通過簡單地微調(diào)預(yù)訓(xùn)練參數(shù)在下游任務(wù)中進(jìn)行訓(xùn)練。

    *這里不得不提一下遷移學(xué)習(xí)中的Fine-tune,這里可以參考csdn的一篇文章: https://blog.csdn.net/u013841196/article/details/80919857

    ( https://arxiv.org/abs/1805.12471 )

    第二種,假設(shè)當(dāng)前任務(wù)是input一個(gè)sentence,輸出這個(gè)句子中的每個(gè)詞匯屬于正例還是負(fù)例。舉例現(xiàn)在的任務(wù)是slot filling填槽任務(wù)(填槽指的是為了讓用戶意圖轉(zhuǎn)化為用戶明確的指令而補(bǔ)全信息的過程)(另一種解釋是從大規(guī)模的語料庫中抽取給定實(shí)體(query)的被明確定義的屬性(slot types)的值(slot fillers))(槽可以理解為實(shí)體已明確定義的屬性),輸入的句子是 arrive Taipei on November 2nd輸出的槽是other dest on time time

    訓(xùn)練流程:

    1)將句子輸入BERT,句子中的每個(gè)詞匯都會(huì)映射出一個(gè)embedding;

    2)每個(gè)詞匯的embedding輸入Linear Classifier,輸出結(jié)果;

    3)Linear Classifier 白手起家和Bert微調(diào)的方式一起去做學(xué)習(xí)。

    第三種,假設(shè)當(dāng)前任務(wù)是input輸入兩個(gè)句子,輸出class。舉例現(xiàn)在要進(jìn)行自然語言預(yù)測,讓機(jī)器根據(jù)premise前提,預(yù)測這個(gè)hypothesis假設(shè)是True還是False還是unknown不知道。實(shí)際上,我們可以把這個(gè)任務(wù)當(dāng)成三分類問題。

    訓(xùn)練過程:

    1)在一個(gè)sentence前設(shè)置特殊符號[CLS],然后在要輸入的兩個(gè)sentence中間設(shè)置[SEP]分隔符號;

    2)將兩個(gè)sentence連同特殊符號一起輸入到BERT中;

    3)將[CLS]輸入BERT后得到的embedding,再把它輸入linear Classifier中,得到class。

    如圖所示,假設(shè)gravity的token序號是17,即 ,我們現(xiàn)在有一個(gè)問題通過QA Model后得到的s=17,e=17,那么答案就是 為gravity;

    同理,假設(shè)within a cloud的序號順序是77到79,即 到 ,我們現(xiàn)在有一個(gè)問題通過QA Model后得到的s=77,e=79,那么答案就是 為within a cloud。

    https://arxiv.org/abs/1905.05950

    https://openreview.net/pdf?id=SJzSgnRcKX

    這張圖顯示了BERT從0-24層的層數(shù)在針對不同的NLP任務(wù)上的表現(xiàn)。

    https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

    而所謂的GPT,它其實(shí)就是Transformer的Decoder。

    我們簡單的描述下GPT的訓(xùn)練過程:這里我們input<BOS>這個(gè)token和潮水,想要GPT預(yù)測輸出“退了”這個(gè)詞匯。

    1)首先輸入[BOS](begin of sentence)和潮水,通過Word Embedding再乘上matrix W變成a 1到a 4,然后把它們丟進(jìn)self-attention 層中,這時(shí)候每一個(gè)input都分別乘上3個(gè)不同的matrix產(chǎn)生3個(gè)不同的vector,分別把它們命名為q,k,v。

    q代表的是query (to match others用來去匹配其它的向量)

    k代表的是key (to be matched用來去被query匹配的向量)

    v代表的是value(information to be extracted用來被抽取的信息的向量)

    2)現(xiàn)在要做的工作就是用每個(gè)query q 去對每個(gè) key k做attention(吃2個(gè)向量,輸出就是告訴你這2個(gè)向量有多么匹配或者可以說輸入兩個(gè)向量輸出一個(gè)分?jǐn)?shù)alpha(而怎么去吃2個(gè)向量output一個(gè)分?jǐn)?shù),有很多不同的做法))。這里要預(yù)測潮水的下一個(gè)詞,所以乘 , 乘上 , 乘上 再經(jīng)過soft-max分別得到 到 。

    3)我們用 和每一個(gè)v相乘, 和 相乘加上 和 相乘。以此類推并相加,最終得到 。

    4)然后經(jīng)過很多層的self-attention,預(yù)測得到”退了”這個(gè)詞匯。

    同理,現(xiàn)在要預(yù)測”退了”的下一個(gè)詞匯,按照前面的流程可以得到 ,然后經(jīng)過很多層的self-attention層,得到”就”這個(gè)詞匯。

    GPT的神奇之處在于它可以在完全沒有訓(xùn)練數(shù)據(jù)的情況下,就可以做到閱讀理解,摘要,翻譯。折線圖中顯示了它在參數(shù)量上升的情況下,F(xiàn)1的值的效果。

    1.Transformer的問題:

    word Embedding 無上下文

    監(jiān)督數(shù)據(jù)太少

    解決方法:

    Contextual Word Embedding

    2.ELMo( E mbeddings from L anguages Mo del)

    - 多層雙向的LSTM的NNLM

    - RNN-based language models(trained from lots of sentences)

    ELMo的問題:

    Contextual Word Embedding作為特征

    不適合特定任務(wù)

    3.OpenAI GPT的改進(jìn)

    根據(jù)任務(wù)Fine-Tuning

    使用Transformer替代RNN/LSTM

    OpenAI GPT的問題:

    單向信息流的問題

    Pretraining(1)和Fine-Tuning(2)不匹配

    解決辦法:

    Masked LM

    NSP Multi-task Learning

    Encoder again

    Tips:

    - 使用中文模型

    - max_seq_length可以小一點(diǎn),提高效率

    - 內(nèi)存不夠,需要調(diào)整train_batch_size

    - 有足夠多的領(lǐng)域數(shù)據(jù),可以嘗試Pretraining

    三、NLP基本術(shù)語與基本概念-上

    詞是最小的能夠獨(dú)立活動(dòng)的有意義的語言成分,英文單詞之間是以空格作為自然分界符的,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區(qū)分標(biāo)記,因此,中文詞語分析是中文分詞的基礎(chǔ)與關(guān)鍵。中文和英文都存在分詞的需求,不過相較而言,英文單詞本來就有空格進(jìn)行分割,所以處理起來相對方便。但是,由于中文是沒有分隔符的,所以分詞的問題就比較重要。分詞常用的手段是基于字典的最長串匹配,據(jù)說可以解決85%的問題,但是歧義分詞很難。舉個(gè)例子,“美國會(huì)通過對臺(tái)售武法案”,我們既可以切分為“美國/會(huì)/通過對臺(tái)售武法案”,又可以切分成“美/國會(huì)/通過對臺(tái)售武法案”。

    中文分詞技術(shù)可分為三大類:

    基于機(jī)器學(xué)習(xí)的方法里,往往需要對詞的詞性進(jìn)行標(biāo)注。詞性一般是指動(dòng)詞、 名詞、形容詞等。標(biāo)注的目的是表征詞的一-種隱藏狀態(tài),隱藏狀態(tài)構(gòu)成的轉(zhuǎn)移就構(gòu)成了狀態(tài)轉(zhuǎn)移序列。例如:我/r愛/v北京/ns天安門/ns。其中,ns代表名詞,v代表動(dòng)詞,ns、v都是標(biāo)注,以此類推。

    詞性作為對詞的一種泛化,在語言識別、句法分析、信息抽取等任務(wù)中有重要作用。

    http://blog.csdn.net/truong/article/details/18847549

    命名實(shí)體是指從文本中識別具有特定類別的實(shí)體(通常是名詞),例如人名、地名、機(jī)構(gòu)名、專有名詞等。主要包含兩部分:

    命名實(shí)體識別是信息提取、問答系統(tǒng)、句法分析、機(jī)器翻譯、面向SemanticWeb的元數(shù)據(jù)標(biāo)注等應(yīng)用領(lǐng)域的重要基礎(chǔ)工具。

    https://blog.csdn.net/u012879957/article/details/81777838

    句法分析往往是一種基于規(guī)則的專家系統(tǒng)。當(dāng)然也不是說它不能用統(tǒng)計(jì)學(xué)的方法進(jìn)行構(gòu)建,不過最初的時(shí)候,還是利用語言學(xué)專家的知識來構(gòu)建的。句法分析的目的是解析句子中各個(gè)成分的依賴關(guān)系。所以,往往最終生成的結(jié)果是一棵 句法分析樹。句法分析可以解決傳統(tǒng)詞袋模型不考慮上下文的問題。比如,“小李是小楊的班長”和“小楊是小李的班長”,這兩句話,用詞袋模型是完全相同的,但是句法分析可以分析出其中的主從關(guān)系,真正理清句子的關(guān)系。

    中文中代詞出現(xiàn)的頻率很高,它的作用的是用來表征前文出現(xiàn)過的人名、地名等。例如,清華大學(xué)坐落于北京,這家大學(xué)是目前中國最好的大學(xué)之-。 在這句話中, 其實(shí)“清華大學(xué)”這個(gè)詞出現(xiàn)了兩次,“這家大學(xué)指代的就是清華大學(xué)。但是出于中文的習(xí)慣,我們不會(huì)把“清華大學(xué)”再重復(fù)一遍。

    一般情況下,指代分為2種:回指和共指。

    回指是指當(dāng)前的照應(yīng)語與上文出現(xiàn)的詞、短語或句子(句群)存在密切的語義關(guān)聯(lián)性,指代依存于上下文語義中,在不同的語言環(huán)境中可能指代不同的實(shí)體,具有非對稱性和非傳遞性;

    共指主要是指2個(gè)名詞(包括代名詞、名詞短語)指向真實(shí)世界中的同一參照體,這種指代脫離上下文仍然成立。

    目前指代消解研究主要側(cè)重于等價(jià)關(guān)系,只考慮2個(gè)詞或短語是否指示現(xiàn)實(shí)世界中同一實(shí)體的問題,即共指消解。

    中文的指代主要有3種典型的形式:

    所謂情感識別,本質(zhì)上是分類問題,經(jīng)常被應(yīng)用在輿情分析等領(lǐng)域。情感一般可以分為兩類,即正面、負(fù)面,也可以是三類,在前面的基礎(chǔ)上,再加上中性類別。一般來說,在電商企業(yè),情感識別可以分析商品評價(jià)的好壞,以此作為下一個(gè)環(huán)節(jié)的評判依據(jù)。通??梢曰谠~袋模型+分類器,或者現(xiàn)在流行的詞向量模型+RNN。經(jīng)過測試發(fā)現(xiàn),后者比前者準(zhǔn)確率略有提升。

    自動(dòng)糾錯(cuò)在搜索技術(shù)以及輸人法中利用得很多。由于用戶的輸人出錯(cuò)的可能性比較大,出錯(cuò)的場景也比較多。所以,我們需要一個(gè)糾錯(cuò)系統(tǒng)。具體做法有很多,可以基于N-Gram進(jìn)行糾錯(cuò),也可以通過字典樹、有限狀態(tài)機(jī)等方法進(jìn)行糾錯(cuò)。

    這是一種類似機(jī)器人的人工智能系統(tǒng)。比較著名的有:蘋果Siri、IBM Watson、微軟小冰等。問答系統(tǒng)往往需要語音識別、合成,自然語言理解、知識圖譜等多項(xiàng)技術(shù)的

    問答系統(tǒng)(Question Answering System, QA)是信息檢索系統(tǒng)的一種高級形式,它能用準(zhǔn)確、簡潔的自然語言回答用戶用自然語言提出的問題。

    基于自由文本的問答系統(tǒng),基本上分為三個(gè)模塊:

    問句分析->文檔檢索->答案抽?。?yàn)證)

    https://blog.csdn.net/class_guy/article/details/81535287

    針對目標(biāo)句子,進(jìn)行各種句法分析,如分詞、詞性標(biāo)記、命名實(shí) 體識別及鏈接、句法分析、語義角色識別和多義詞消歧等。

    抽取目標(biāo)文本中的主要信息,比如從一-條新聞中抽取關(guān)鍵信息。主要是了解是誰、于何時(shí)、為何、對誰、做了何事、產(chǎn)生了有什么結(jié)果。涉及實(shí)體識別、時(shí)間抽取、因果關(guān)系抽取等多項(xiàng)關(guān)鍵技術(shù)。

    主要包含了對文本的聚類、分類、信息抽取、摘要、情感分析以及對挖掘的信息和知識的可視化、交互式的呈現(xiàn)界面。

    將輸人的源語言文本通過自動(dòng)翻譯轉(zhuǎn)化為另種語言的文本。根據(jù)輸人數(shù)據(jù)類型的不同,可細(xì)分為文本翻譯、語音翻譯、手語翻譯、圖形翻譯等。機(jī)器翻譯從最早的基于規(guī)則到二十年前的基于統(tǒng)計(jì)的方法,再到今天的基于深度學(xué)習(xí)(編解碼)的方法,逐漸形成了一套比較嚴(yán)謹(jǐn)?shù)姆椒w系。

    對大規(guī)模的文檔進(jìn)行索引??珊唵螌ξ臋n中的詞匯,賦以不同的權(quán)重來建立索引,也可使用算法模型來建立更加深層的索引。查詢時(shí),首先對輸人比進(jìn)行分析,然后在索引里面查找匹配的候選文檔,再根據(jù)一個(gè)排序機(jī)制把候選文檔排序,最后輸出排序得分最高的文檔。

    針對某個(gè)自然語言表達(dá)的問題,由問答系統(tǒng)給出一個(gè)精準(zhǔn)的答案。需要對自然語言查詢語句進(jìn)行語義分析,包括實(shí)體鏈接、關(guān)系識別,形成邏輯表達(dá)式,然后到知識庫中查我可能的候選答案并通過-個(gè)排序機(jī)制找出最佳的答案。

    系統(tǒng)通過多回合對話,跟用戶進(jìn)行聊天、回答、完成某項(xiàng)任務(wù)。主要涉及用戶意圖理解、通用聊天引擎、問答引擎、對話管理等技術(shù)。此外,為了體現(xiàn)上下文相關(guān),要具備多輪對話能力。同時(shí),為了體現(xiàn)個(gè)性化,對話系統(tǒng)還需要基于用戶畫像做個(gè)性化回復(fù)

    參考: https://mp.weixin.qq.com/s/QjpOzO8Mt17mtnC7efT8nQ

    四、常見文本分類模型

    Fasttext 模型架構(gòu)和 Word2vec 的 CBOW 模型架構(gòu)非常相似,下面就是 FastText 模型的架構(gòu)圖:

    與傳統(tǒng)圖像的CNN網(wǎng)絡(luò)相比, TextCNN 在網(wǎng)絡(luò)結(jié)構(gòu)上沒有任何變化, 從下圖可以看出 TextCNN 其實(shí)只有一層 convolution ,一層 max-pooling , 最后將輸出外接 softmax 來 n分類

    一般取 前向/反向LSTM 在最后一個(gè)時(shí)間步長上隱藏狀態(tài),然后進(jìn)行拼接,在經(jīng)過一個(gè) softmax 層進(jìn)行一個(gè)多分類;或者取 前向/反向LSTM 在每一個(gè)時(shí)間步長上的隱藏狀態(tài),對每一個(gè)時(shí)間步長上的兩個(gè)隱藏狀態(tài)進(jìn)行 拼接concat ,然后對所有時(shí)間步長上拼接后的隱藏狀態(tài)取均值,再經(jīng)過一個(gè) softmax層 進(jìn)行一個(gè)多分類

    與 TextCNN 比較類似,都是把文本表示為一個(gè)嵌入矩陣,再進(jìn)行卷積操作。不同的是 TextCNN 中的文本嵌入矩陣每一行只是文本中一個(gè)詞的向量表示,而在 RCNN 中,文本嵌入矩陣的每一行是當(dāng)前詞的詞向量以及上下文嵌入表示的拼接

    相對于以前的文本分類中的 BiLSTM 模型, BiLSTM+Attention 模型的主要區(qū)別是在 BiLSTM 層之后,全連接 softmax 分類層之前接入了一個(gè)叫做 Attention Layer 的結(jié)構(gòu)

    第一層采用 text region embedding ,其實(shí)就是對一個(gè) n-gram 文本塊進(jìn)行卷積,得到的 feature maps 作為該文本塊的 embedding 。然后是 convolution blocks 的堆疊,就是兩個(gè)卷積層與 shortcut 的組合。 convolution blocks 中間采用 max-pooling ,設(shè)置步長為2以進(jìn)行負(fù)采樣。最后一個(gè) pooling層 將每個(gè)文檔的數(shù)據(jù)整合成一個(gè)向量

    NLP新人,歡迎大家一起交流,互相學(xué)習(xí),共同成長~~

    以上就是關(guān)于nlp分類模型相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    newbing免費(fèi)(newbinlie)

    online是什么意思(地球online是什么意思)

    chatonline翻譯中文(chatting online翻譯)

    如何分享銷售經(jīng)驗(yàn)和技巧(如何分享銷售經(jīng)驗(yàn)和技巧呢)

    杭州車牌競價(jià)成功率(杭州車牌競價(jià)成功率多少)