1. nlp演算法是什麼
nlp演算法是自然語言處理。
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。
它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。
nlp演算法發展:
在一般情況下,用戶可能不熟悉機器語言,所以自然語言處理技術可以幫助這樣的用戶使用自然語言和機器交流。從建模的角度看,為了方便計算機處理,自然語言可以被定義為一組規則或符號的集合,我們組合集合中的符號來傳遞各種信息。
這些年,NLP研究取得了長足的進步,逐漸發展成為一門獨立的學科,從自然語言的角度出發,NLP基本可以分為兩個部分:自然語言處理以及自然語言生成,演化為理解和生成文本的任務。
2. nlp演算法是什麼呢
1、nlp演算法是自然語言處理演算法。自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。
2、自然語言處理(nlp)是一門融語言學、計算機科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯系,但又有重要的區別。
3、自然語言處理(nlp)並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。
4、自然語言處理(nlp)主要應用於機器翻譯、輿情監測、自動摘要、觀點提取、文本分類、問題回答、文本語義對比、語音識別、中文OCR等方面。
5、自然語言(nlp)的形式(字元串)與其意義之間是一種多對多的關系。其實這也正是自然語言的魅力所在。但從計算機處理的角度看,我們必須消除歧義,而且有人認為它正是自然語言理解中的中心問題,即要把帶有潛在歧義的自然語言輸入轉換成某種無歧義的計算機內部表示。
3. 現在很多做AI語音的廠商都在說NLP,NLP和傳統關鍵詞的區別究竟是什麼
從外呼系統誕生的那一刻起,基於人工規則關鍵詞匹配的語義理解方法,和以NLP演算法驅動的語義理解方法,一直是對話系統工業界領域的爭論焦點。基於關鍵詞匹配的語義理解方法,對於快速搭建新對話場景有著其獨特優勢。在AI訓練師的指導下,機器人通過已配置好的關鍵詞進行匹配,能很快根據用戶的表達做出機械的理解反應,所設置的關鍵詞模板越復雜,機器人能應對的對話內容也越豐富。然而,簡單粗暴的配置方式相應地也帶來了一定的負面作用。隨著對話內容的增多,關鍵詞窮舉所帶來的難度呈指數級上升,形成的語義沖突更是不可忽視的難題。而以NLP演算法驅動的語義理解方法則恰恰相反,演算法的有效工作,往往是「嬌生慣養」型的,需要前沿的演算法和大量的垂直數據作為基礎支持。然而,一旦滿足前沿演算法+大數據兩大條件,以NLP驅動的方法在復雜對話場景的語義泛化性和精準識別上就能夠大顯神威。
只有當行業區分後,垂直行業下的語料積累和NLP演算法模型准確度才有提升的可能。我們曾在已有的1.0NLP系統中做過測試,分場景的意圖判斷准確度相比泛行業可以提升5%-7%。利用演算法能力進行最終意向輸出,替代過往的規則匹配,可以讓意向判斷更貼近真實的轉化效果。與此同時,通過垂直領域下語料庫、意圖庫的積累和調用,以及話術智能推薦,可以大大提升AIT話術交付的響應速度,更好應對618、雙十一等大促節點下的客戶爆發性需求。
有了NLP2.0系統的加持,原先一些高難度的對話場景有了實現的可能。曾經,對於調查問卷、用戶滿意度調研之類的外呼需求,在關鍵信息提取、時間地址組織名等實體信息抽取上的要求非常高,靠簡單關鍵詞窮舉是根本無法滿足要求的。而有了NLP的實體識別功能和關鍵信息提取功能,復雜對話場景的數據分析變得可行;有了情緒識別和情景感知功能的加成,同樣的用戶回復⌄,機器人有了更多的語言表達選擇,真正做到了千人千面;而有了知識圖譜演算法的支持,極大地減少了復雜重復問題的實施投入,也讓機器人在客戶各式各樣問題面前變得更加從容。
此次發布的NLP2.0系統,最核心的亮點,一知智能在杭州人工智慧計算中心與升騰生態軟硬體進行調優,結合浙大·一知人工智慧聯合研究中心,共同提出了在泛消費領域的專用大規模預訓練語言模型「EAZI」。在基於數百G級別涵蓋消費領域信息的互聯網網頁、論壇、微博、新聞等形式的高質量語料訓練,結合數億條一知智能自身積累的消費場景對話數據進行專項任務訓練,可以同時支持多種語義理解演算法,包含意圖識別、問答識別、實體識別、情感識別、知識圖譜以及對話內容生成等多項NLP常見任務。「EAZI」模型在Transformer架構基礎上,自研基於語言學知識、領域數據增強技術,從模型架構表徵層和交互層,再到預訓練策略進行了全方位改進。具體而言:
1、細粒度詞法表徵,並基於詞義信息引入注意力機制,對句法進行約束,提升模型對於語言學知識的建模能力。
2、結合消費場景積累的大量實體信息和引入Discourse的Mask機制,強化模型對場景專項識別的表徵能力。有了垂直領域數據的增強,識別演算法對於領域內常見的表達方式語言成分和語篇關系表徵更為敏感。
3、為滿足工業界高並發、低時延、低資源消耗需求,EAZI使用了大模型蒸餾和初始化小模型策略,最終實現參數僅為十億級別的輕量化預訓練模型。相比於動輒千億參數的大模型而言,在消費領域專有的識別場景中,實現效果與識別速度的雙向提升,突破傳統「巨無霸」大模型的效率限制。
4、在實際訓練過程中,一知智能與華為杭州計算中心共同協作,在升騰生態下,算力達到40 PFLOPS FP16,相當於2萬台高性能PC的計算能力,顯著提升算力的快速響應。
4. NLP是什麼NLP對我們有什麼用處呢
1、NLP是什麼?
答:NLP是目前世界上最實用有效的一門心理行為科學。NLP全名是Neuro Linguistic Programming,中文譯為「神經語言程序學」。有人評價它:納米技術是物理學的一次飛躍,而NLP則是人類心理學的一場革命。互聯網改變了人類的生活方式、NLP則改變了人類的思維方式。NLP是一個引領人走向正面、陽光、積極、和諧的學問;是一套塑造新生活的首選法門;是一種老百姓自己的實用心理學。
2、NLP的意思是什麼?
答:NLP為Neuro-Linguistic Programming的縮寫,三個單詞分別代表以下的意思:
Neuro(腦神經),意為「身心」,指的是我們的頭腦和身體經由我們的腦神經系統聯結在一起。我們的腦神經系統控制我們的感覺器官去維持與世界的聯系。
lnpJistic(語法),指的是我們運用語言與別人作出相互影響,經由姿勢、手勢、習慣等無聲語言顯示我們的思考模式、信念及內心種種狀態。我們的頭腦與身體之間的聯系機制所用的語言模式。
Programming(程式),借用計算機科學語言指出我們的意念、感覺和行為只不過是習慣性的程式,可以經由提升我們"思想」的軟體而將以改善。憑借改善我們思想和行為的重復程序,便能在行動中取得更滿意的效果。
故此,我認為NLP也可以解釋為研究我們的大腦如何工作的學問。知道大腦如何工作後,我們可以配合和提升它,從而使人生更成功、快樂。也因此我把NLP譯為「身心語法程式學」。
3、NLP研究的是什麼?
答:NLP研究我們思想、情緒、行為背後的規律,為我們提供一套如何表現卓越,如何追求成功、快樂、幸福人生的
思維框架與實用技術。
NLP是一門研究人的主觀世界的學科,研究我們如何創造出我們獨特的內心世界。NLP從破解卓越人士的語言及思維模式入手,獨創性地將他們的思維模式進行解碼後,發現了人類思想、情緒和行為背後的規律,並將其歸納為一套可復制,可模仿的程序。
語言是思維的載體,NLP從語言入手,革命性地將意識與潛意識的研究帶到一個全新的高度,更難能可貴的是,它不是一套學者們用來清談的理論,而是可推及到現實生活各個層面的方法論。它被譽為現代心理學最具學科綜合性,最具神奇效力,也是最具發展前景的應用成果。有人說NLP是成功學,正確的解釋是,成功學只是它的冰山一角,它背後有著更深刻的腦神經學及心理學基礎。
4、NLP起源於哪裡?
答:NLP首創於1970年代早期。是由兩位美國人——理察·班德勒(Richard Bandler)和約翰·葛瑞德(John Grinder)完成的基礎理論。這兩個美國人由於不滿於傳統心理學的治療過程冗長,效果反復不定,因而集各家所長,加上他們獨到創見,在美國加州大學經過三年的實踐,奠定了NLP的基礎。
理察·班德勒(Richard Bandler)和約翰·葛瑞德(John Grinder)一起研究並效仿了美國當時四位頂尖的心理治療師與溝通大師:
催眠治療大師也是艾瑞克森摧眠學派創始人:米爾頓·艾瑞克森
家庭治療大師:維吉尼亞·薩提爾
完形治療創始人:弗列茲·皮耳氏
溝通大師:格利葛利·貝特森。
他們一方面親自向四位大師學習,另一方面也將四位大師的心法,適當的修正與發展,他們發展出來的第一個模式就是口語與非口語的溝通技巧,通過策略引導與模仿能快速學習任何事物,汲取精華。
5、為什麼要學習NLP?
答:人生的困局往往來自於頭腦與心靈的抵觸、理智與感情的沖突、意識與潛意識的矛盾。NLP因為完全發現了思維和情緒的規律,知道如何讓你的理性與感性協調一致、身心合一。所以,用它來處理各種困局、突破發展瓶頸,就如利斧斷木,效果驚人,它常常能迅速抓住問題的要害,以最短的時間化矛盾於無形,很大程度上,NLP是教你找到方法的方法。
NLP發現了思維的規律,規律的特性意味著可以不斷地被舉一反三。因此,NLP具有無限的延展性。在這門學問出現後的三十年時間里,已經有無數的人發展出了數百個不同的技巧,並且還在不斷的發展中。這些技巧可以用來處理你工作、學習、生活等各個方面的問題,並極大地提升你的學習能力、溝通能力以及幸福感。毫不誇張的說,沒有哪門學問能夠像NLP這樣給你打開如此廣闊的世界,它讓你看到無限多的可能性,並給你方法,讓你朝著自己想去的方向輕鬆快樂地向前。
6、NLP可以幫我們解決什麼問題?
答:NLP是一門專業研究人主觀世界的學科,可以幫我們解決一下問題:
1)NLP幫助我們深刻的了解人、認識人。了解人跟人是不同的,並且了解每個人行為、情緒、思維背後的規律,從而更有效的配合與提升我們的績效表現。
2)NLP可以協助我們最求卓越,更快速有效的達成目標,創造成果。NLP是一門以結果為導向,注重實效的學科。
3)NLP可以豐盛我們的思想,培養積極處世的人生觀與世界觀。
4)NLP可以快速的提高我們的溝通、領導、管理與的能力,提高我們的思考能力,掌握大腦運作的規律,從而我們掌控人生。
5)NLP可以協助我們處理情緒困擾,消除心理障礙,提升情感平衡的能力,從而達成自我和諧與良好人際關系。
6)NLP可以快速有效的調整與改變我們的一些不良的行為習慣。
7、NLP的中心學問是什麼?
答:NLP的中心學問是「模仿卓越」。我們通過模仿成功人士的行為模式與思想模式,可以做到與他們一樣的效果,並且通過靈活的運用,使到我們在運用各種工具時可以更適應我們自己的情況。NLP四大智慧與核心思想為:敏銳、靈活、彈性、結果導向與系統平衡。
8、NLP學問有什麼特點:
答:1)它是靈活性的。如果用兩個字來形容NLP特點的話,那就是——「靈活」兩個字。NLP猶如一股靈活之泉,它主張向「小河流」學習,還記得在第一章與你分享的小河流嗎?小河流為了到達生命中的大海,它會不斷地改變自己的形狀,去越過高山、穿過草地,為了跨越沙漠,甚至願意蒸發到空氣當中,讓微風帶著它到大海的上空,再化為雨水落下來,到達生命中的目的地。NLP也一樣,一切以效果為導向,而不拘泥於各種形式或道理;
2)它是全面性的。NLP整個體系的訓練,是由修身到與人互動。由生理的覺察到心理的蘇醒,直至靈性的抬頭。不像有些課程只專注在治療或某個單項的快速成功;
3)它是持續性的。NLP是改變自己,引領他人的修習訓練。只要接受它就可生生不息的成長。不像有些課程,只有短期的激情效果,一陣激情後又陷入迷惘;
4)它是自主性的。經NLP訓練後,學員可挑選其中某些領域繼續深入或朝NLP專業發展或與其它專業結合。不像有些課程,沒能幫助學員建立自主的獨立性,所以上過之後還要再上;
5)它是通透性的。只要學會幾種簡單模式與架構,就可以活用於生活中的各種情境。比如呼應與引導的原則,既適用於與客戶的互動,也適用於親子調教,更可用於兩性的互動。不像某些技巧,僅適用於少數特定的情境;
6)它是開放性的。它的結構,既有成長性,也有包容性與附益性。換句話說,它自成一家,但又可與其它領域的專業相結合,不斷地與環境配合適應
9、NLP課程涉及哪些內容?
答:NLP專注於研究人的主觀世界,探討我們是如何創造出我們每個人獨特的內心世界,並如何有效
的配合、調整、改變、提升與整合我們的內在世界,從而達至身心靈和諧一致。NLP探討的內容如下:
1)人的大腦是如何工作的,並有效配合以提升人的思維能力。
2)人的情緒是如何產生的,並有效管理以提升人的情感智能
3)人的行為反應與習慣模式是怎樣的,如何戒除的不良行為,調整狀態,創造最佳的表現
4)如何提高我們內向溝通能力,達成身心靈和諧統一。
5)如何提升我們外向溝通能力,創造良好的人際關系,從而達到人與人,人與社會的和諧。
10、NLP實踐應用在哪些方面?
答:NLP以它神奇、獨特的可以改變人生的超級魅力,以及實用、易學,可操作性強的具體方法,迅速風靡世界。目前NLP已涉足並被廣泛應用於人際溝通、個人成長、家庭婚姻、親子教育、身心健康、企業經營管理、個人與組織學習、教育訓練、心理治療與生涯規劃等領域。更具體地說,如個人心靈創傷、受虐、受暴力、無自信心、恐高症、家庭問題等的心理治療;或減肥、酗酒、戒煙、戒毒、消除壓力、身心不適症狀等的治療;或如何銷售、如何談判、如何領導、如何增加創造力、如何溝通等商業上的應用及改善或加強小孩、職員、組織或自己的有效學習與終生學習能力等。效果無與倫比,頗受贊賞,在全球形成了學習風潮。
11、NLP學問的發展情況怎麼樣
答:全世界現已出版的NLP類書籍有300餘種,各種語言的NLP專業雜志10餘種,在國際互聯網上,NLP網站有100多個,歐美的40多個國家已有全國性NLP協會,數個國際組織在實施NLP專業資格的國際認證作業。
12、什麼樣的人適合學習NLP?
答:幾乎所有人都可以學。尤其適用於:企業負責人、職業經理人、市場營銷人員、行政人事工作者、公關人員、培訓工作者、教練、教育工作者、心理咨詢師、為人父母者等等。
13、NLP容易學嗎?
答:很容易。NLP這門學問題雖然揭示了思維及行為活動的規律,其發現是革命性的。但是,它的理論基礎卻是我們大部分受過教育的人都熟悉的。NLP在短短的三十年裡能夠迅速地傳播,得益於它"效果顯著、易學易懂"的特性,它是一門小學生能聽懂,大學教授覺得有深度的學問。在它的教學過程中,大量地運用體驗式的互動的方法,使得整個學習的過程變得輕松有趣。
5. NLP基礎知識和綜述
一種流行的自然語言處理庫、自帶語料庫、具有分類,分詞等很多功能,國外使用者居多,類似中文的jieba處理庫
為單詞序列分配概率的模型就叫做語言模型。
通俗來說, 語言模型就是這樣一個模型:對於任意的詞序列,它能夠計算出這個序列是一句話的概率。或者說語言模型能預測單詞序列的下一個詞是什麼。
** n-gram Language Models **
N-gram模型是一種典型的統計語言模型(Language Model,LM),統計語言模型是一個基於概率的判別模型.統計語言模型把語言(詞的序列)看作一個隨機事件,並賦予相應的概率來描述其屬於某種語言集合的可能性。給定一個詞彙集合 V,對於一個由 V 中的詞構成的序列S = ⟨w1, · · · , wT ⟩ ∈ Vn,統計語言模型賦予這個序列一個概率P(S),來衡量S 符合自然語言的語法和語義規則的置信度。用一句簡單的話說,統計語言模型就是計算一個句子的概率大小的這種模型。
n-gram模型可以減輕單詞序列沒有在訓練集中出現過而引起的問題,即數據稀疏問題
n-gram模型問題
對於n-gram模型的問題,這兩頁ppt說的很明白
N-gram模型基於這樣一種假設,當前詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積。這些概率可以通過直接從語料中統計N個詞同時出現的次數得到。常用的是二元的Bi-Gram(N=2)和三元的Tri-Gram(N=3).Bi-Gram所滿足的假設是馬爾科夫假設。
一般常用的N-Gram模型是Bi-Gram和Tri-Gram。分別用公式表示如下:
Bi-Gram:P(T)=p(w1|begin) p(w2|w1) p(w3|w2)***p(wn|wn-1)
Tri-Gram:P(T)=p(w1|begin1,begin2) p(w2|w1,begin1) p(w3|w2w1)***p(wn|wn-1,wn-2)
注意上面概率的計算方法:P(w1|begin)=以w1為開頭的所有句子/句子總數;p(w2|w1)=w1,w2同時出現的次數/w1出現的次數。以此類推。
對於其中每項的計算舉個例子:
由上可見Bi-Gram計算公式中的begin一般都是加個<s>標簽。
N-gram存在的問題:
舉一個小數量的例子進行輔助說明:假設我們有一個語料庫(注意語料庫),如下:
老鼠真討厭,老鼠真丑,你愛老婆,我討厭老鼠。
想要預測「我愛老」這一句話的下一個字。我們分別通過 bigram 和 trigram 進行預測。
1)通過 bigram,便是要對 P(w|老)進行計算,經統計,「老鼠」出現了3次,「老婆」出現了1次,通過最大似然估計可以求得P(鼠|老)=0.75,P(婆|老)=0.25, 因此我們通過 bigram 預測出的整句話為: 我愛老鼠。
2)通過 trigram,便是要對便是要對 P(w|愛老)進行計算,經統計,僅「愛老婆」出現了1次,通過最大似然估計可以求得 P(婆|愛 老)=1,因此我們通過trigram 預測出的整句話為: 我愛老婆。顯然這種方式預測出的結果更加合理。
問題一:隨著 n 的提升,我們擁有了更多的前置信息量,可以更加准確地預測下一個詞。但這也帶來了一個問題,當N過大時很容易出現這樣的狀況:某些n-gram從未出現過, 導致很多預測概率結果為0, 這就是稀疏問題。 實際使用中往往僅使用 bigram 或 trigram 。(這個問題可以通過平滑來緩解參考: https://mp.weixin.qq.com/s/NvwB9H71JUivFyL_Or_ENA )
問題二:同時由於上個稀疏問題還導致N-gram無法獲得上下文的長時依賴。
問題三:n-gram 基於頻次進行統計,沒有足夠的泛化能力。
n-gram總結:統計語言模型就是計算一個句子的概率值大小,整句的概率就是各個詞出現概率的乘積,概率值越大表明該句子越合理。N-gram是典型的統計語言模型,它做出了一種假設,當前詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積。它其中存在很多問題,再求每一個詞出現的概率時,隨著N的提升,能夠擁有更多的前置信息量,可以使得當前詞的預測更加准確,但是當N過大時會出現稀疏問題,導致很多詞的概率值為0,為解決這一問題,因此常用的為bigram 或 trigram,這就導致N-gram無法獲得上文的長時依賴。另一方面N-gram 只是基於頻次進行統計,沒有足夠的泛化能力。
神經網路語言模型
2003年 Bengio 提出,神經網路語言模型( neural network language model, NNLM)的思想是提出詞向量的概念,代替 ngram 使用離散變數(高維),採用連續變數(具有一定維度的實數向量)來進行單詞的分布式表示,解決了維度爆炸的問題,同時通過詞向量可獲取詞之間的相似性。
結合下圖可知它所建立的語言模型的任務是根據窗口大小內的上文來預測下一個詞,因此從另一個角度看它就是一個使用神經網路編碼的n-gram模型。
它是一個最簡單的神經網路,僅由四層構成,輸入層、嵌入層、隱藏層、輸出層。(從另一個角度看它就是一個使用神經網路編碼的n-gram模型)
輸入是單詞序列的index序列,例如單詞『這』在字典(大小為∣V∣)中的index是10,單詞『是』的 index 是23,『測』的 index 是65,則句子「這是測試」通過『這是測』預測『試』,窗口大小內上文詞的index序列就是 10, 23, 65。嵌入層(Embedding)是一個大小為∣V∣×K的矩陣(注意:K的大小是自己設定的,這個矩陣相當於隨機初始化的詞向量,會在bp中進行更新,神經網路訓練完成之後這一部分就是詞向量),從中取出第10、23、65行向量拼成3×K的矩陣就是Embedding層的輸出了。隱層接受拼接後的Embedding層輸出作為輸入,以tanh為激活函數,最後送入帶softmax的輸出層,輸出概率,優化的目標是使得待預測詞其所對應的softmax值最大。
缺點:因為這是通過前饋神經網路來訓練語言模型,缺點顯而易見就是其中的參數過多計算量較大,同時softmax那部分計算量也過大。另一方面NNLM直觀上看就是使用神經網路編碼的 n-gram 模型,也無法解決長期依賴的問題。
RNNLM
它是通過RNN及其變種網路來訓練語言模型,任務是通過上文來預測下一個詞,它相比於NNLM的優勢在於所使用的為RNN,RNN在處理序列數據方面具有天然優勢, RNN 網路打破了上下文窗口的限制,使用隱藏層的狀態概括歷史全部語境信息,對比 NNLM 可以捕獲更長的依賴,在實驗中取得了更好的效果。RNNLM 超參數少,通用性更強;但由於 RNN 存在梯度彌散問題,使得其很難捕獲更長距離的依賴信息。
Word2vec中的CBOW 以及skip-gram,其中CBOW是通過窗口大小內的上下文預測中心詞,而skip-gram恰恰相反,是通過輸入的中心詞預測窗口大小內的上下文。
Glove 是屬於統計語言模型,通過統計學知識來訓練詞向量
ELMO 通過使用多層雙向的LSTM(一般都是使用兩層)來訓練語言模型,任務是利用上下文來預測當前詞,上文信息通過正向的LSTM獲得,下文信息通過反向的LSTM獲得,這種雙向是一種弱雙向性,因此獲得的不是真正的上下文信息。
GPT是通過Transformer來訓練語言模型,它所訓練的語言模型是單向的,通過上文來預測下一個單詞
BERT通過Transformer來訓練MLM這種真正意義上的雙向的語言模型,它所訓練的語言模型是根據上下文來預測當前詞。
以上部分的詳細介紹在NLP之預訓練篇中有講到
語言模型的評判指標
具體參考: https://blog.csdn.net/index20001/article/details/78884646
Perplexity可以認為是average branch factor(平均分支系數),即預測下一個詞時可以有多少種選擇。別人在作報告時說模型的PPL下降到90,可以直觀地理解為,在模型生成一句話時下一個詞有90個合理選擇,可選詞數越少,我們大致認為模型越准確。這樣也能解釋,為什麼PPL越小,模型越好。
一般用困惑度Perplexity(PPL)衡量語言模型的好壞,困惑度越小則模型生成一句話時下一個詞的可選擇性越少,句子越確定則語言模型越好。
簡單介紹
Word2vec是一種有效創建詞嵌入的方法,它自2013年以來就一直存在。但除了作為詞嵌入的方法之外,它的一些概念已經被證明可以有效地創建推薦引擎和理解時序數據。在商業的、非語言的任務中。
背景
由於任何兩個不同詞的one-hot向量的餘弦相似度都為0,多個不同詞之間的相似度難以通過onehot向量准確地體現出來。
word2vec⼯具的提出正是為了解決上⾯這個問題。它將每個詞表⽰成⼀個定⻓的向量,並使得這些向量能較好地表達不同詞之間的相似和類⽐關系。
word2vec模型
word2vec⼯具包含了兩個模型,即跳字模型(skip-gram)和連續詞袋模型(continuous bag of words,CBOW)。word2vec的input/output都是將單詞作為one-hot向量來表示,我們可以把word2vec認為是詞的無監督學習的降維過程。
MaxEnt 模型(最大熵模型): 可以使用任意的復雜相關特徵,在性能上最大熵分類器超過了 Byaes 分類器。但是,作為一種分類器模型,這兩種方法有一個共同的缺點:每個詞都是單獨進行分類的,標記(隱狀態)之間的關系無法得到充分利用,具有馬爾可夫鏈的 HMM 模型可以建立標記之間的馬爾可夫關聯性,這是最大熵模型所沒有的。
最大熵模型的優點:首先,最大熵統計模型獲得的是所有滿足約束條件的模型中信息熵極大的模型;其次,最大熵統計模型可以靈活地設置約束條件,通過約束條件的多少可以調節模型對未知數據的適應度和對已知數據的擬合程度;再次,它還能自然地解決統計模型中參數平滑的問題。
最大熵模型的不足:首先,最大熵統計模型中二值化特徵只是記錄特徵的出現是否,而文本分類需要知道特徵的強度,因此,它在分類方法中不是最優的;其次,由於演算法收斂的速度較慢,所以導致最大熵統計模型它的計算代價較大,時空開銷大;再次,數據稀疏問題比較嚴重。
CRF(conditional random field) 模型(條件隨機場模型):首先,CRF 在給定了觀察序列的情況下,對整個的序列的聯合概率有一個統一的指數模型。一個比較吸引人的特性是其為一個凸優化問題。其次,條件隨機場模型相比改進的隱馬爾可夫模型可以更好更多的利用待識別文本中所提供的上下文信息以得更好的實驗結果。並且有測試結果表明:在採用相同特徵集合的條件下,條件隨機域模型較其他概率模型有更好的性能表現。
CRF 可以用於構造在給定一組輸入隨機變數的條件下,另一組輸出隨機變數的條件概率分布模型。經常被用於序列標注,其中包括詞性標注,分詞,命名實體識別等領域。
建一個條件隨機場,我們首先要定義一個特徵函數集,每個特徵函數都以整個句子s,當前位置i,位置i和i-1的標簽為輸入。然後為每一個特徵函數賦予一個權重,然後針對每一個標注序列l,對所有的特徵函數加權求和,必要的話,可以把求和的值轉化為一個概率值。
CRF 具有很強的推理能力,並且能夠使用復雜、有重疊性和非獨立的特徵進行訓練和推理,能夠充分地利用上下文信息作為特徵,還可以任意地添加其他外部特徵,使得模型能夠 獲取的信息非常豐富。
CRF 模型的不足:首先,通過對基於 CRF 的結合多種特徵的方法識別英語命名實體的分析,發現在使用 CRF 方法的過程中,特徵的選擇和優化是影響結果的關鍵因素,特徵選擇問題的好與壞,直接決定了系統性能的高低。其次,訓練模型的時間比 MaxEnt 更長,且獲得的模型很大,在一般的 PC 機上無法運行。
潛在語義分析(Latent Semantic Analysis,LSA)模型
在潛在語義分析(LSA)模型首先給出了這樣一個 『『分布式假設」 :一個 單詞的屬性是由它所處的環境刻畫的。這也就意味著如果兩個單詞在含義上比較接近,那麼它們也會出現在相似的文本中,也就是說具有相似的上下文。
LSA模型在構建好了單詞-文檔矩陣之後,出於以下幾種可能的原因,我們會使用奇異值分解(Singular Value Decomposition,SVD) 的方法來尋找該矩陣的一個低階近似。
概率潛在語義分析(Probability Latent Semantic Analysis ,PLSA)模型
概率潛在語義分析(PLSA)模型其實是為了克服潛在語義分析(LSA)模型存在的一些缺點而被提出的。LSA 的一個根本問題在於,盡管我們可以把 U k 和 V k 的每一列都看成是一個話題,但是由於每一列的值都可以看成是幾乎沒有限制的實數值,因此我們無法去進一步解釋這些值到底是什麼意思,也更無法從概率的角度來理解這個模型。
PLSA模型則通過一個生成模型來為LSA賦予了概率意義上的解釋。該模型假設,每一篇文檔都包含一系列可能的潛在話題,文檔中的每一個單詞都不是憑空產生的,而是在這些潛在的話題的指引下通過一定的概率生成的。
在 PLSA 模型裡面,話題其實是一種單詞上的概率分布,每一個話題都代表著一個不同的單詞上的概率分布,而每個文檔又可以看成是話題上的概率分布。每篇文檔就是通過這樣一個兩層的概率分布生成的,這也正是PLSA 提出的生成模型的核心思想。
PLSA 通過下面這個式子對d和 w 的聯合分布進行了建模:
該模型中的 *z * 的數量是需要事先給定的一個超參數。需要注意的是,上面這 個式子裡面給出了 P (w, d ) 的兩種表達方式,在前一個式子里, *d * 和 w 都是在給定 *z * 的前提下通過條件概率生成出來的,它們的生成方式是相似的,因此是 『『對稱』』 的;在後一個式子里,首先給定 d ,然後根據 P ( z | d ) 生成可能的話題 z ,然後再根據 P (w| z ) 生成可能的單詞 w,由於在這個式子裡面單詞和文檔的生成並不相似, 所以是 『『非對稱』』 的。
上圖給出了 PLSA 模型中非對稱形式的 Plate Notation表示法。其中d表示 一篇文檔,z 表示由文檔生成的一個話題,w 表示由話題生成的一個單詞。 在這個模型中, d和w 是已經觀測到的變數,而z是未知的變數(代表潛在的話題)。
容易發現,對於一個新的文檔而言,我們無法得知它對應的 P ( d ) 究竟是什麼, 因此盡管 PLSA 模型在給定的文檔上是一個生成模型,它卻無法生成新的未知的文檔。該模型的另外的一個問題在於,隨著文檔數量的增加, P ( z | d ) 的參數也會隨著線性增加,這就導致無論有多少訓練數據,都容易導致模型的過擬合問題。這兩點成為了限制 PLSA 模型被更加廣泛使用的兩大缺陷。
潛在狄利克雷分配(Latent Dirichlet Analysis , LDA)模型
為了解決 PLSA 模型中出現的過擬合問題,潛在狄利克雷分配(LDA)模型被 Blei 等人提出,這個模型也成為了主題模型這個研究領域內應用最為廣泛的模 型。LDA就是在PLSA的基礎上加層貝葉斯框架,即LDA就是PLSA的貝葉斯版本(正因為LDA被貝葉斯化了,所以才需要考慮歷史先驗知識,才加的兩個先驗參數)。
從上一節我們可以看到,在 PLSA 這個模型里,對於一個未知的新文檔 d ,我們對於 P ( d ) 一無所知,而這個其實是不符合人的經驗的。或者說,它沒有去使用本來可以用到的信息,而這部分信息就是 LDA 中所謂的先驗信息。
具體來說,在 LDA 中,首先每一個文檔都被看成跟有限個給定話題中的每一個存在著或多或少的關聯性,而這種關聯性則是用話題上的概率分布來刻畫的, 這一點與 PLSA 其實是一致的。
但是在 LDA 模型中,每個文檔關於話題的概率分布都被賦予了一個先驗分布,這個先驗一般是用稀疏形式的狄利克雷分布表示的。 這種稀疏形式的狄利克雷先驗可以看成是編碼了人類的這樣一種先驗知識:一般而言,一篇文章的主題更有可能是集中於少數幾個話題上,而很少說在單獨一篇文章內同時在很多話題上都有所涉獵並且沒有明顯的重點。
此外,LDA 模型還對一個話題在所有單詞上的概率分布也賦予了一個稀疏形式的狄利克雷先驗,它的直觀解釋也是類似的:在一個單獨的話題中,多數情況是少部分(跟這個話題高度相關的)詞出現的頻率會很高,而其他的詞出現的頻率則明顯較低。這樣兩種先驗使得 LDA 模型能夠比 PLSA 更好地刻畫文檔-話題-單詞這三者的關系。
事實上,從 PLSA 的結果上來看,它實際上相當於把 LDA 模型中的先驗分布轉變為均勻分布,然後對所要求的參數求最大後驗估計(在先驗是均勻分布的前提下,這也等價於求參數的最大似然估計) ,而這也正反映出了一個較為合理的先驗對於建模是非常重要的。
分詞就是將連續的字序列按照一定的規范重新組合成詞序列的過程。
現有的分詞演算法可分為三大類:基於字元串匹配的分詞方法、基於理解的分詞方法和基於統計的分詞方法。
按照是否與詞性標注過程相結合,又可以分為單純分詞方法和分詞與標注相結合的一體化方法。
中文分詞根據實現原理和特點,主要分為以下2個類別:
(1)基於詞典分詞演算法
也稱字元串匹配分詞演算法。該演算法是按照一定的策略將待匹配的字元串和一個已建立好的「充分大的」詞典中的詞進行匹配,若找到某個詞條,則說明匹配成功,識別了該詞。常見的基於詞典的分詞演算法分為以下幾種:正向最大匹配法、逆向最大匹配法和雙向匹配分詞法等。
基於詞典的分詞演算法是應用最廣泛、分詞速度最快的。很長一段時間內研究者都在對基於字元串匹配方法進行優化,比如最大長度設定、字元串存儲和查找方式以及對於詞表的組織結構,比如採用TRIE索引樹、哈希索引等。
(2)基於統計的機器學習演算法
這類目前常用的是演算法是HMM、CRF(條件隨機場)、SVM、深度學習等演算法,比如stanford、Hanlp分詞工具是基於CRF演算法。以CRF為例,基本思路是對漢字進行標注訓練,不僅考慮了詞語出現的頻率,還考慮上下文,具備較好的學習能力,因此其對歧義詞和未登錄詞的識別都具有良好的效果。
常見的分詞器都是使用機器學習演算法和詞典相結合,一方面能夠提高分詞准確率,另一方面能夠改善領域適應性。
隨著深度學習的興起,也出現了 基於神經網路的分詞器 ,例如有人員嘗試使用雙向LSTM+CRF實現分詞器, 其本質上是序列標注 ,所以有通用性,命名實體識別等都可以使用該模型,據報道其分詞器字元准確率可高達97.5%。演算法框架的思路與論文《Neural Architectures for Named Entity Recognition》類似,利用該框架可以實現中文分詞,如下圖所示:
首先對語料進行字元嵌入,將得到的特徵輸入給雙向LSTM,然後加一個CRF就得到標注結果。
目前中文分詞難點主要有三個:
1、分詞標准 :比如人名,在哈工大的標准中姓和名是分開的,但在Hanlp中是合在一起的。這需要根據不同的需求制定不同的分詞標准。
2、歧義 :對同一個待切分字元串存在多個分詞結果。
歧義又分為組合型歧義、交集型歧義和真歧義三種類型。
一般在搜索引擎中,構建索引時和查詢時會使用不同的分詞演算法。常用的方案是,在索引的時候使用細粒度的分詞以保證召回,在查詢的時候使用粗粒度的分詞以保證精度。
3、新詞 :也稱未被詞典收錄的詞,該問題的解決依賴於人們對分詞技術和漢語語言結構的進一步認識。
典型的文本分類過程可以分為三個步驟:
1. 文本表示(Text Representation)
這一過程的目的是把文本表示成分類器能夠處理的形式。最常用的方法是向量空間模型,即把文本集表示成詞-文檔矩陣,矩陣中每個元素代表了一個詞在相應文檔中的權重。選取哪些詞來代表一個文本,這個過程稱為特徵選擇。常見的特徵選擇方法有文檔頻率、信息增益、互信息、期望交叉熵等等。為了降低分類過程中的計算量,常常還需要進行降維處理,比如LSI。
2. 分類器構建(Classifier Construction)
這一步驟的目的是選擇或設計構建分類器的方法。不同的方法有各自的優缺點和適用條件,要根據問題的特點來選擇一個分類器。我們會在後面專門講述常用的方法。選定方法之後,在訓練集上為每個類別構建分類器,然後把分類器應用於測試集上,得到分類結果。
3. 效果評估(Classifier Evaluation)
在分類過程完成之後,需要對分類效果進行評估。評估過程應用於測試集(而不是訓練集)上的文本分類結果,常用的評估標准由IR領域繼承而來,包括查全率、查准率、F1值等等。
1. Rocchio方法
每一類確定一個中心點(centroid),計算待分類的文檔與各類代表元間的距離,並作為判定是否屬於該類的判據。Rocchio方法的特點是容易實現,效率高。缺點是受文本集分布的影響,比如計算出的中心點可能落在相應的類別之外。
2. 樸素貝葉斯(naïve bayes)方法
將概率論模型應用於文檔自動分類,是一種簡單有效的分類方法。使用貝葉斯公式,通過先驗概率和類別的條件概率來估計文檔對某一類別的後驗概率,以此實現對此文檔所屬類別的判斷。
3. K近鄰(K-Nearest Neightbers, KNN)方法
從訓練集中找出與待分類文檔最近的k個鄰居(文檔),根據這k個鄰居的類別來決定待分類文檔的類別。KNN方法的優點是不需要特徵選取和訓練,很容易處理類別數目多的情況,缺點之一是空間復雜度高。KNN方法得到的分類器是非線性分類器。
4. 支持向量機(SVM)方法
對於某個類別,找出一個分類面,使得這個類別的正例和反例落在這個分類面的兩側,而且這個分類面滿足:到最近的正例和反例的距離相等,而且是所有分類面中與正例(或反例)距離最大的一個分類面。SVM方法的優點是使用很少的訓練集,計算量小;缺點是太依賴於分類面附近的正例和反例的位置,具有較大的偏執。
文本聚類過程可以分為3個步驟:
1. 文本表示(Text Representation)
把文檔表示成聚類演算法可以處理的形式。所採用的技術請參見文本分類部分。
2. 聚類演算法選擇或設計(Clustering Algorithms)
演算法的選擇,往往伴隨著相似度計算方法的選擇。在文本挖掘中,最常用的相似度計算方法是餘弦相似度。聚類演算法有很多種,但是沒有一個通用的演算法可以解決所有的聚類問題。因此,需要認真研究要解決的問題的特點,以選擇合適的演算法。後面會有對各種文本聚類演算法的介紹。
3. 聚類評估(Clustering Evaluation)
選擇人工已經分好類或者做好標記的文檔集合作為測試集合,聚類結束後,將聚類結果與已有的人工分類結果進行比較。常用評測指標也是查全率、查准率及F1值。
1.層次聚類方法
層次聚類可以分為兩種:凝聚(agglomerative)層次聚類和劃分(divisive)層次聚類。凝聚方法把每個文本作為一個初始簇,經過不斷的合並過程,最後成為一個簇。劃分方法的過程正好與之相反。層次聚類可以得到層次化的聚類結果,但是計算復雜度比較高,不能處理大量的文檔。
2.劃分方法
k-means演算法是最常見的劃分方法。給定簇的個數k,選定k個文本分別作為k個初始簇,將其他的文本加入最近的簇中,並更新簇的中心點,然後再根據新的中心點對文本重新劃分;當簇不再變化時或經過一定次數的迭代之後,演算法停止。k-means演算法復雜度低,而且容易實現,但是對例外和雜訊文本比較敏感。另外一個問題是,沒有一個好的辦法確定k的取值。
3.基於密度的方法
為了發現任意形狀的聚類結果,提出了基於密度的方法。這類方法將簇看作是數據空間中被低密度區域分割開的高密度區域。常見的基於密度的方法有DBSCAN, OPTICS, DENCLUE等等。
4.神經網路方法
神經網路方法將每個簇描述為一個標本,標本作為聚類的"原型",不一定對應一個特定的數據,根據某些距離度量,新的對象被分配到與其最相似的簇中。比較著名的神經網路聚類演算法有:競爭學習(competitive learing)和自組織特徵映射(self-organizing map)[Kohonen, 1990]。神經網路的聚類方法需要較長的處理時間和復雜的數據復雜性,所以不適用於大型數據的聚類。
6. nlp是什麼
NLP:abbr.自然語言處理(Natural Language Processing)。簡而言之,這就是一個創建演算法的過程。
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。
因此,這一領域的研究將涉及自然語言,即人們日常使用的.語言,所以它與語言學的研究有著密切的聯系,但又有重要的區別。自然語言處理並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。
自然語言處理主要應用於機器翻譯、輿情監測、自動摘要、觀點提取、文本分類、問題回答、文本語義對比、語音識別、中文OCR等方面。
語言是人類區別其他動物的本質特性。在所有生物中,只有人類才具有語言能力。人類的多種智能都與語言有著密切的關系。人類的邏輯思維以語言為形式,人類的絕大部分知識也是以語言文字的形式記載和流傳下來的。因而,它也是人工智慧的一個重要,甚至核心部分。
7. cv和nlp是演算法嗎
cv和nlp是演算法。cv是計算機視覺,而nlp是自然語言處理,兩者都是計算機發展的重要演算法分支,支撐計算機智能化發展的基石,所以cv和nlp是演算法。
8. nlp演算法是什麼
nlp演算法是自然語言處理。
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。
相關信息:
自然語言處理是指利用人類交流所使用的自然語言與機器進行交互通訊的技術。通過人為的對自然語言的處理,使得計算機對其能夠可讀並理解。自然語言處理的相關研究始於人類對機器翻譯的探索。
雖然自然語言處理涉及語音、語法、語義、語用等多維度的操作,但簡單而言,自然語言處理的基本任務是基於本體詞典、詞頻統計、上下文語義分析等方式對待處理語料進行分詞,形成以最小詞性為單位,且富含語義的詞項單元。
9. nlp是什麼意思
nlp的幾種意思:
1、nlp(神經語言程序學)
2、nlp(人工智慧的自然語言處理)
3、網路自然語言處理部
4、NLP思維邏輯層次