⑴ nlp的理解六層次
學習與改變的邏輯層次,摘自:策略nlp太陽麻麻的博客
邏輯層次在NLP中使用,是二十世紀八十年代羅伯特·迪爾茨(Robert Dilts)從倍特森工作方式中提取借用過來。
這些層次包括(從最高層到最底層按順序排列)
1、身份 2、信念和價值觀2、信念和價值觀 3、能力3、能力 4、行為4、行為 5、環境5、環境
最高這個層次是「靈性」,可以定義為一種「關系領域」,它包含了多種身份,與個人身份不同的是,這里形成了一個更大系統的一名成員的歸屬感。
舉個例子,電腦的顯示屏和鍵盤是環境。用手指按下一個鍵盤是行為。打字(不管你使用的是哪一種輸入法,當你把不同的拼音順序或者比劃透過輸入法有序的輸入電腦形成具體的文字)是一種能力。由這些文字組成的語句,是信念和價值的功能體現。以上所有的過程整合起來就是一個正在使用電腦工作或者學習的人。
簡而言之,環境層面是指行為發生的具體外部條件。沒有任何內在藍圖,計劃或策略來知道的行為,就像膝跳反射一樣,也像是一種習慣和儀式。比如給你一個榔頭,你就會想拿去敲東西, 你看到鍵盤就會下意識的去敲擊讓他產生一些新的信息。
在能力層面,我們能選擇,改變和採用一些行為來拓寬我們的外部情況。
比如:你使用語音溝通,就會繞過你不會使用鍵盤打字的環境限制,並因此拓寬你對電腦在溝通這個領域的運用
在信念和價值層面,我們會鼓勵,阻止或泛化一些具體策略,計劃或思考方法。
比如:你覺得電腦開始是你生活中必不可少的工具!
在身份層面,它把整個信念價值觀系統整合成為一種自我感。比如,我是一個能很好的使用電腦從事現代化辦公的人士!
從具體行為和感官經驗整個層次網上,每個層次都更加抽象,層次越高其對我們行為和經驗的影響也就更加大而廣泛。
根據NLP,我們多維度主觀經驗融合在一起以神經迴路的方式體現著,這些這些神經迴路可以通過語言模式、認知策略和身體解讀線索而被激活和利用。
舉例來說,在不同經驗層次有不同的語言線索,如:
A)身份層面的語言會是有「我是一名……」或者「他是一名……」或者「你是一名……」
B)信念層次的語言通常是評判、規則和因果陳述的方式,例如「如果……那麼……」「一個人應該……」「我們必須 ……」
C)能力層面的語言用一下的詞語「了解」「如何」「我能夠」「認為」等語言來說明
D)行為層面的語言為到具體的行為和可觀察到的動作,例如「做」「行動」走路,說話等等
E) 環境層面的語言具是具體觀察到的外部背景的特徵或細節,例如:白紙,高牆,大房間等等
再來看一個更實際的案例,下面的陳述是在不同層次上對一個數學成績很差的學生所表現的不同反應。
A)身份「你是一個愚蠢的人/有學習障礙的人」
B)信念「如果你數學學不好,那麼你在學校學習就不可能好,你未來的人生就毀了」
C)能力「你不擅長數學」
D)行為「你在這次考試中表現的很差勁」
E) 環境「這個學校太糟糕了,完全教不好你數學」
透過上面的例子,你可以顯而易見的發現,比如在日常生活中,你用理解層次去影響到自身和他人是一件多麼簡單而有強大威力的事。
A)身份層面的語言會是有「我是一名……」或者「他是一名……」或者「你是一名……」
B)信念層次的語言通常是評判、規則和因果陳述的方式,例如「如果……那麼……」「一個人應該……」「我們必須 ……」
C)能力層面的語言用一下的詞語「了解」「如何」「我能夠」「認為」等語言來說明
D)行為層面的語言為到具體的行為和可觀察到的動作,例如「做」「行動」走路,說話等等
E) 環境層面的語言具是具體觀察到的外部背景的特徵或細節,例如:白紙,高牆,大房間等等
再來看一個更實際的案例,下面的陳述是在不同層次上對一個數學成績很差的學生所表現的不同反應。
A)身份「你是一個愚蠢的人/有學習障礙的人」
B)信念「如果你數學學不好,那麼你在學校學習就不可能好,你未來的人生就毀了」
C)能力「你不擅長數學」
D)行為「你在這次考試中表現的很差勁」
E) 環境「這個學校太糟糕了,完全教不好你數學」
透過上面的例子,你可以顯而易見的發現,比如在日常生活中,你用理解層次去影響到自身和他人是一件多麼簡單而有強大威力的事。
針對傳統領域的NLP學習者,運用這個模式能快速的找到自身和個案的受困層級,同時快速有效的幫助自己和個案從最接近受困層級的地方確立更明確的目標,拿到資源,讓自己或個案看到更多的可能性,並因此獲得新的選擇,從而走出受困狀況!
而對於新的一些NLP思想,比如毒辣NLP,權謀等偏門NLP研究者來說,他們會更多的集中在信念和身份層次去影響他人,比如奸的好人和所謂泡學里常提到的「身份封賜」
因此傳統NLP領域非常強調系統平衡,也會對這種刻意將NLP學問運用來影響他人的內容弱化!
下面我們一起來看一下,一些關於這個模型的實際的運用:
1、一句話就可以看透一個人!
例:有人告訴你:隔壁的人很吵,總是無法休息好!因此他覺得很煩
你就可以得知,這個人受困於環境層級,同時他的行為:是抱怨;能力:在有干擾狀態下不能很好休息,也許也不具備良好的溝通說服能力,也許同時還不具備對環境的主導能力(搬家)信念:鄰居應該自覺不應該在休息時間吵到別人 身份:有一個糟糕鄰居的倒霉傢伙或者一個飽受折磨的受害者
而當你已經把理解層次運用到純熟的時候,你就會在一瞬間整合出類似上面我分析給你的信息,同時你可以挑選其中任何一個層級來決定如何影響對方。
這也即是NLP的魅力和巨大的威力所在,因為它讓你看到你以前生活中,無時無刻都在你身邊,而你卻一直視而不見的重要資訊——深層結構!
2、瞬間解決銷售領域中與客戶無休止的價格爭議!
例:客戶告訴你:你的產品很貴!
很多銷售就會機械化的反應,跟客戶說:「這已經是最低價了」。 你認為客戶會相信你么?除非他真的很想購買這個產品,同時只有你一家在賣,又或者的確你就是同類,同質產品的最低價,否則相對於客戶來說這只是在環境領域進行糾纏,受困的可能性會很高!
而如果我們用這個模型來設計話術,那就會變成:「是的,我們的產品的確不便宜,因為這一款產品主要是設計給一些對生活品質要求非常高的人士的,因為這些人士一般都是一些成功人士,他們普遍傾向認為一個產品的耐用性和品質,也就像他們的人生和事業一樣需要達到同樣的穩定程度,當然,也有很多正在拼搏的人士也很喜歡這樣的產品,因為他們同樣也很注重穩定性!」
當然,我相信你看完了上面的案例呢,你也開始試圖根據自己的實際經驗,開發出更加優秀的源自於NLP理解層次的話術模型。而我也相信,你在看完這篇文章後,會和大多數人一樣,的的確確的做到這一點。當有一天,你突然發現在你的生活中,你無意識的用出來這個模型的時候,也許你會給自己一個激勵,並說:哇!原來NLP真的很神奇。
3、最後說一下在兒童教育領這個模型的運用,因為我很專注兒童早期教育所以這方面我也會特別關注
根據最上面的那個例子,我相信,你已經發現,我們大多數人,有可能在無意間也運用到了這個模式,只是大部分人是在錯用這個模式,把自己的孩子和學生打造成失敗者。
3、最後說一下在兒童教育領這個模型的運用,因為我很專注兒童早期教育所以這方面我也會特別關注
根據最上面的那個例子,我相信,你已經發現,我們大多數人,有可能在無意間也運用到了這個模式,只是大部分人是在錯用這個模式,把自己的孩子和學生打造成失敗者。
比如會有很多家長和老師跟孩子說:
你這個笨蛋 —— 這時候你就不斷的在給這個這個孩子一個「身份」
你怎麼這么蠢? —— 這時候你在給孩子輸入一個「信念」
你不好好讀書,未來就毀了 —— 這時候你在給孩子灌輸一個「限制性信念」同時你還成功的把痛苦這種東西和學習結合起來做成了一個心錨送給孩子
你怎麼就是學不好?你怎麼就是做不對? —— 你開始直接認定孩子的能力!?在這樣的認定下,他學不好到底責任歸咎於誰呢?
當然也會有很多家長和老師說,他們會選擇用鼓勵性的方式教育孩子
比如他們會說:哇!你太棒了,你真聰明!你兼職就是天才!
而這樣的直接判斷,首先剝奪了孩子的體驗權,同時呢,又給孩子輸入了一個受限的信念和身份,因此孩子可能脫離現狀,在未來的生活中表現得脆弱,抗挫性嚴重不足!
⑵ nlp演算法是什麼呢
1、nlp演算法是自然語言處理演算法。自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。
2、自然語言處理(nlp)是一門融語言學、計算機科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯系,但又有重要的區別。
3、自然語言處理(nlp)並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。
4、自然語言處理(nlp)主要應用於機器翻譯、輿情監測、自動摘要、觀點提取、文本分類、問題回答、文本語義對比、語音識別、中文OCR等方面。
5、自然語言(nlp)的形式(字元串)與其意義之間是一種多對多的關系。其實這也正是自然語言的魅力所在。但從計算機處理的角度看,我們必須消除歧義,而且有人認為它正是自然語言理解中的中心問題,即要把帶有潛在歧義的自然語言輸入轉換成某種無歧義的計算機內部表示。
⑶ 沒有採用自然語言處理技術的是
沒有採用自然語言處理技術的是撰寫新聞。
自然語言處理技術內容:
自然語言處理(NLP)是計算機科學,人工智慧,語言學關注計算機和人類(自然)語言之間的相互作用的領域。因此,自然語言處理是與人機交互的領域有關的。在自然語言處理面臨很多挑戰,包括自然語言理解,因此,自然語言處理涉及人機交互的面積。在NLP諸多挑戰涉及自然語言理解,即計算機源於人為或自然語言輸入的意思,和其他涉及到自然語言生成。
現代NLP演算法是基於機器學習,特別是統計機器學習。機器學習範式是不同於一般之前的嘗試語言處理。語言處理任務的實現,通常涉及直接用手的大套規則編碼。
許多不同類的機器學習演算法已應用於自然語言處理任務。這些演算法的輸入是一大組從輸入數據生成的"特徵"。一些最早使用的演算法,如決策樹,產生硬的if-then規則類似於手寫的規則,是再普通的系統體系。然而,越來越多的研究集中於統計模型,這使得基於附加實數值的權重,每個輸入要素柔軟,概率的決策。
此類模型具有能夠表達許多不同的可能的答案,而不是只有一個相對的確定性,產生更可靠的結果時,這種模型被包括作為較大系統的一個組成部分的優點。
自然語言處理研究逐漸從詞彙語義成分的語義轉移,進一步的,敘事的理解。然而人類水平的自然語言處理,是一個人工智慧完全問題。它是相當於解決中央的人工智慧問題使計算機和人一樣聰明,或強大的AI。自然語言處理的未來一般也因此密切結合人工智慧發展。
⑷ 自然語言處理基礎知識
NLP 是什麼?
NLP 是計算機科學領域與 人工智慧 領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的學科。NLP 由兩個主要的技術領域構成:自然語言理解和自然語言生成。
自然語言理解方向,主要目標是幫助機器更好理解人的語言,包括基礎的詞法、句法等語義理解,以及需求、篇章、情感層面的高層理解。
自然語言生成方向,主要目標是幫助機器生成人能夠理解的語言,比如文本生成、自動文摘等。
NLP 技術基於大數據、知識圖譜、 機器學習 、語言學等技術和資源,並可以形成機器翻譯、深度問答、對話系統的具體應用系統,進而服務於各類實際業務和產品。
NLP在金融方面
金融行業因其與數據的高度相關性,成為人工智慧最先應用的行業之一,而NLP與知識圖譜作為人工智慧技術的重要研究方向與組成部分,正在快速進入金融領域,並日益成為智能金融的基石。輿情分析輿情主要指民眾對社會各種具體事物的情緒、意見、價值判斷和願望等。
事件(Event ):在特定時間、特定地點發生的事情。主題(Topic):也稱為話題,指一個種子事件或活動以及與它直接相關的事件和活動。專題(Subject):涵蓋多個類似的具體事件或根本不涉及任何具體事件。需要說明的是,國內新聞網站新浪、搜狐等所定義的「專題」概念大多數等同於我們的「主題」概念。熱點:也可稱為熱點主題。熱點和主題的概念比較接近,但有所區別。
1. 詞干提取
什麼是詞干提取?詞干提取是將詞語去除變化或衍生形式,轉換為詞干或原型形式的過程。詞干提取的目標是將相關詞語還原為同樣的詞干,哪怕詞干並非詞典的詞目。
2. 詞形還原
什麼是詞形還原? 詞形還原是將一組詞語還原為詞源或詞典的詞目形式的過程。還原過程考慮到了POS問題,即詞語在句中的語義,詞語對相鄰語句的語義等。
3. 詞向量化什麼是詞向量化?詞向量化是用一組實數構成的向量代表自然語言的叫法。這種技術非常實用,因為電腦無法處理自然語言。詞向量化可以捕捉到自然語言和實數間的本質關系。通過詞向量化,一個詞語或者一段短語可以用一個定維的向量表示,例如向量的長度可以為100。
4. 詞性標注
什麼是詞性標注?簡單來說,詞性標注是對句子中的詞語標注為名字、動詞、形容詞、副詞等的過程。
5. 命名實體消歧
什麼是命名實體消岐?命名實體消岐是對句子中的提到的實體識別的過程。例如,對句子「Apple earned a revenue of 200 Billion USD in 2016」,命名實體消岐會推斷出句子中的Apple是蘋果公司而不是指一種水果。一般來說,命名實體要求有一個實體知識庫,能夠將句子中提到的實體和知識庫聯系起來。
6. 命名實體識別
體識別是識別一個句子中有特定意義的實體並將其區分為人名,機構名,日期,地名,時間等類別的任務。
7. 情感分析
什麼是情感分析?情感分析是一種廣泛的主觀分析,它使用自然語言處理技術來識別客戶評論的語義情感,語句表達的情緒正負面以及通過語音分析或書面文字判斷其表達的情感等等。
8. 語義文本相似度
什麼是語義文本相似度分析?語義文本相似度分析是對兩段文本的意義和本質之間的相似度進行分析的過程。注意,相似性與相關性是不同的。
9.語言識別
什麼是語言識別?語言識別指的是將不同語言的文本區分出來。其利用語言的統計和語法屬性來執行此任務。語言識別也可以被認為是文本分類的特殊情況。
10. 文本摘要
什麼是文本摘要?文本摘要是通過識別文本的重點並使用這些要點創建摘要來縮短文本的過程。文本摘要的目的是在不改變文本含義的前提下最大限度地縮短文本。
11.評論觀點抽取
自動分析評論關注點和評論觀點,並輸出評論觀點標簽及評論觀點極性。目前支持 13 類產品用戶評論的觀點抽取,包括美食、酒店、汽車、景點等,可幫助商家進行產品分析,輔助用戶進行消費決策。
11.DNN 語言模型
語言模型是通過計算給定片語成的句子的概率,從而判斷所組成的句子是否符合客觀語言表達習慣。在機器翻譯、拼寫糾錯、語音識別、問答系統、詞性標注、句法分析和信息檢索等系統中都有廣泛應用。
12.依存句法分析
利用句子中詞與詞之間的依存關系來表示詞語的句法結構信息 (如主謂、動賓、定中等結構關系),並用樹狀結構來表示整句的的結構 (如主謂賓、定狀補等)。
1、NLTK
一種流行的自然語言處理庫、自帶語料庫、具有分類,分詞等很多功能,國外使用者居多,類似中文的 jieba 處理庫
2、文本處理流程
大致將文本處理流程分為以下幾個步驟:
Normalization
Tokenization
Stop words
Part-of-speech Tagging
Named Entity Recognition
Stemming and Lemmatization
下面是各個流程的具體介紹
Normalization
第一步通常要做就是Normalization。在英文中,所有句子第一個單詞的首字母一般是大寫,有的單詞也會全部字母都大寫用於表示強調和區分風格,這樣更易於人類理解表達的意思。
Tokenization
Token是"符號"的高級表達, 一般值具有某種意義,無法再拆分的符號。在英文自然語言處理中,Tokens通常是單獨的詞,因此Tokenization就是將每個句子拆分為一系列的詞。
Stop Word
Stop Word 是無含義的詞,例如』is』/『our』/『the』/『in』/'at』等。它們不會給句子增加太多含義,單停止詞是頻率非常多的詞。 為了減少我們要處理的詞彙量,從而降低後續程序的復雜度,需要清除停止詞。
Named Entity
Named Entity 一般是名詞短語,又來指代某些特定對象、人、或地點 可以使用 ne_chunk()方法標注文本中的命名實體。在進行這一步前,必須先進行 Tokenization 並進行 PoS Tagging。
Stemming and Lemmatization
為了進一步簡化文本數據,我們可以將詞的不同變化和變形標准化。Stemming 提取是將詞還原成詞干或詞根的過程。
3、Word2vec
Word2vec是一種有效創建詞嵌入的方法,它自2013年以來就一直存在。但除了作為詞嵌入的方法之外,它的一些概念已經被證明可以有效地創建推薦引擎和理解時序數據。在商業的、非語言的任務中。
### 四、NLP前沿研究方向與演算法
1、MultiBERT
2、XLNet
3、bert 模型
BERT的全稱是Bidirectional Encoder Representation from Transformers,即雙向Transformer的Encoder,因為decoder是不能獲要預測的信息的。模型的主要創新點都在pre-train方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation。
BERT提出之後,作為一個Word2Vec的替代者,其在NLP領域的11個方向大幅刷新了精度,可以說是近年來自殘差網路最優突破性的一項技術了。BERT的主要特點以下幾點:
使用了Transformer作為演算法的主要框架,Trabsformer能更徹底的捕捉語句中的雙向關系;
使用了Mask Language Model(MLM)和 Next Sentence Prediction(NSP) 的多任務訓練目標;
使用更強大的機器訓練更大規模的數據,使BERT的結果達到了全新的高度,並且Google開源了BERT模型,用戶可以直接使用BERT作為Word2Vec的轉換矩陣並高效的將其應用到自己的任務中。
BERT的本質上是通過在海量的語料的基礎上運行自監督學習方法為單詞學習一個好的特徵表示,所謂自監督學習是指在沒有人工標注的數據上運行的監督學習。在以後特定的NLP任務中,我們可以直接使用BERT的特徵表示作為該任務的詞嵌入特徵。所以BERT提供的是一個供其它任務遷移學習的模型,該模型可以根據任務微調或者固定之後作為特徵提取器。
模型結構: 由於模型的構成元素Transformer已經解析過,就不多說了,BERT模型的結構如下圖最左:
對比OpenAI GPT(Generative pre-trained transformer),BERT是雙向的Transformer block連接;就像單向rnn和雙向rnn的區別,直覺上來講效果會好一些。
優點: BERT是截至2018年10月的最新state of the art模型,通過預訓練和精調橫掃了11項NLP任務,這首先就是最大的優點了。而且它還用的是Transformer,也就是相對rnn更加高效、能捕捉更長距離的依賴。對比起之前的預訓練模型,它捕捉到的是真正意義上的bidirectional context信息。
缺點: MLM預訓練時的mask問題
[MASK]標記在實際預測中不會出現,訓練時用過多[MASK]影響模型表現
每個batch只有15%的token被預測,所以BERT收斂得比left-to-right模型要慢(它們會預測每個token)
BERT火得一塌糊塗不是沒有原因的:
使用Transformer的結構將已經走向瓶頸期的Word2Vec帶向了一個新的方向,並再一次炒火了《Attention is All you Need》這篇論文;
11個NLP任務的精度大幅提升足以震驚整個深度學習領域;
無私的開源了多種語言的源碼和模型,具有非常高的商業價值。
遷移學習又一次勝利,而且這次是在NLP領域的大勝,狂勝。
BERT演算法還有很大的優化空間,例如我們在Transformer中講的如何讓模型有捕捉Token序列關系的能力,而不是簡單依靠位置嵌入。BERT的訓練在目前的計算資源下很難完成,論文中說的訓練需要在64塊TPU晶元上訓練4天完成,而一塊TPU的速度約是目前主流GPU的7-8倍。
⑸ NLP之文本分類
作為NLP領域最經典的使用場景之一,文本分類積累了許多的實現方法。這里我們根據是否使用深度學習方法將文本分類主要分為一下兩個大類:
隨著統計學習方法的發展,特別是在90年代後互聯網在線文本數量增長和機器學習學科的興起,逐漸形成了一套解決大規模文本分類問題的經典玩法,這個階段的主要套路是人工特徵工程+淺層分類模型。整個文本分類問題就拆分成了 特徵工程 和 分類器 兩部分。
這里的特徵工程也就是將文本表示為計算機可以識別的、能夠代表該文檔特徵的特徵矩陣的過程。在基於傳統機器學習的文本分類中,我們通常將特徵工程分為 文本預處理、特徵提取、文本表示 等三個部分。
文本預處理過程是提取文本中的關鍵詞來表示文本的過程 。中文文本預處理主要包括 文本分詞 和 去停用詞 兩個階段。
文本分詞 ,是因為很多研究表明特徵粒度為詞粒度遠好於字粒度(其實很好理解,因為大部分分類演算法不考慮詞序信息,基於字粒度顯然損失了過多「n-gram」信息)。具體到中文分詞,不同於英文有天然的空格間隔,需要設計復雜的分詞演算法。傳統分詞演算法主要有 基於字元串匹配的正向/逆向/雙向最大匹配 ; 基於理解的句法和語義分析消歧 ; 基於統計的互信息/CRF方法 。近年來隨著深度學習的應用, WordEmbedding + Bi-LSTM+CRF方法 逐漸成為主流,本文重點在文本分類,就不展開了。
而 停止詞 是 文本中一些高頻的代詞、連詞、介詞等對文本分類無意義的詞 ,通常維護一個停用詞表,特徵提取過程中刪除停用表中出現的詞,本質上屬於特徵選擇的一部分。
特徵提取包括 特徵選擇 和 特徵權重計算 兩部分。
特徵選擇的基本思路 是 根據某個評價指標獨立的對原始特徵項(詞項)進行評分排序,從中選擇得分最高的一些特徵項,過濾掉其餘的特徵項 。常用的評價有:文檔頻率、互信息、信息增益、χ²統計量等。
特徵權重計算 主要是經典的TF-IDF方法及其擴展方法。 TF-IDF的主要思想 是 一個詞的重要度與在類別內的詞頻成正比,與所有類別出現的次數成反比 。
文本表示的目的是把文本預處理後的轉換成計算機可理解的方式,是決定文本分類質量最重要的部分。傳統做法常用 詞袋模型 (BOW, Bag Of Words)或 向量空間模型 (Vector Space Model),最大的 不足 是忽略文本上下文關系,每個詞之間彼此獨立,並且無法表徵語義信息。
大部分機器學習方法都在文本分類領域有所應用,比如樸素貝葉斯分類演算法(Naïve Bayes)、KNN、SVM、最大熵和神經網路等等。
FastText 是Facebook AI Research在16年開源的一種文本分類器。 其 特點 就是 fast 。相對於其它文本分類模型,如 SVM , Logistic Regression 等模型,fastText能夠在保持分類效果的同時,大大縮短了訓練時間。
FastText方法包含三部分, 模型架構 , 層次SoftMax 和 N-gram特徵 。
FastText模型架構和 Word2Vec 中的 CBOW 模型很類似,因為它們的作者都是Facebook的科學家Tomas Mikolov。不同之處在於,FastText 預測標簽 ,而CBOW 模型 預測中間詞 。
TextCNN 是利用卷積神經網路對文本進行分類的演算法,它是由 Yoon Kim 在2014年在 「 Convolutional Neural Networks for Sentence Classification 」 一文中提出的。詳細的原理圖如下。
特徵 :這里的特徵就是詞向量,有 靜態(static) 和 非靜態(non-static) 方式。static方式採用比如word2vec預訓練的詞向量,訓練過程不更新詞向量,實質上屬於遷移學習了,特別是數據量比較小的情況下,採用靜態的詞向量往往效果不錯。non-static則是在訓練過程中更新詞向量。推薦的方式是 non-static 中的 fine-tunning方式,它是以預訓練(pre-train)的word2vec向量初始化詞向量,訓練過程中調整詞向量,能加速收斂,當然如果有充足的訓練數據和資源,直接隨機初始化詞向量效果也是可以的。
通道(Channels) :圖像中可以利用 (R, G, B) 作為不同channel,而文本的輸入的channel通常是不同方式的embedding方式(比如 word2vec或Glove),實踐中也有利用靜態詞向量和fine-tunning詞向量作為不同channel的做法。
一維卷積(conv-1d) :圖像是二維數據,經過詞向量表達的文本為一維數據,因此在TextCNN卷積用的是一維卷積。一維卷積帶來的問題是需要設計通過不同 filter_size 的 filter 獲取不同寬度的視野。
Pooling層: 利用CNN解決文本分類問題的文章還是很多的,比如這篇 A Convolutional Neural Network for Modelling Sentences 最有意思的輸入是在 pooling 改成 (dynamic) k-max pooling,pooling階段保留 k 個最大的信息,保留了全局的序列信息。
參考文獻
⑹ NLP和語言有關系嗎
從這種分析可以看出,大部分的選題都是運用了國外的理論來研究中英文的語言問題,一個側重教學或特殊語言現象,一個是面向NLP實際應用。在工具方面,也很相似,都是用國外的工具包和演算法為主。NLP領域的演算法看似高大上,但一眼望去,神經網路、深度學習都是舶來品。語言學的報告質量顯得略高,大概是文科的口才更好哈。在審稿制度上差別比較大,語言學的會議大都是邀請制或者摘要評審,錄用率一般高於50%,主要講究同行交流。NLP的會議則採用國際慣例,採用雙盲投稿評審制度,錄用率只有30%左右。從研究成果來看,語言學的應用性比不了NLP,研究所得的往往是更多的問題,而非問題的解決方案。NLP力求更高、更好的自動分析處理效果。但是在會場氛圍上很有趣,語言學的更專注與熱烈。300多人的會議,分了12個平行會場,每個會場都坐滿了,而且發言討論熱烈,對各種語言現象樂此不疲。相比之下,計算語言學會議之前都分多個並行session,但分布極不平均,所以去年開始改為了單會場運作。即便如此,在很多時候大家聽會也並不太認真,因為深度學習的框架差不多,區別是處理任務不同和實驗細節略有差異。
總的來說,復雜多樣的語言現象是語言學界的口香糖,越嚼越香;對NLP領域來說,語言現象沒啥要緊,關鍵是要更強大的硬體和機器學習演算法來刷分。為什麼就不能結合起來呢,用機器學習的牛刀來分析和解決語言問題。
⑺ 產品經理如何入門自然語言處理(NLP)
自然語言處理,顧名思義即自然語言處理的技術,通常用縮寫NLP指代。各類產品經理日常的工作中,會遇到大量自然語言處理的應用場景。以智能推薦為例,在待推薦物文本分類、主題分類等場景中都會用到。本篇以產品經理的視角,談談如何入門自然語言處理。
統計模型
很多大牛對人工智慧的抨擊在於,認為人工智慧只是統計學,並不是真正的具有「智能」。在當前「弱人工智慧」的時代背景下,學習統計模型仍然有非常重要的價值。
拿經常用於分類場景的貝葉斯模型為例,在已經拿到用於訓練集的語料中,可以通過統計得出A出現的概率、B出現的概率、在A出現的前提下B出現的概率,計算如果B出現同時A出現的概率(即給定B樣本計算出現A的概率),就可以直接從前面三個統計概率計算得出。
當然以上貝葉斯模型成立並且表現良好的前提是 數據量足夠大,滿足大數定律 。不難發現統計模型的精髓在於,假設數據量足夠大後,可以用已有樣本的統計情況,來做判別或預測。
閉環流程
NLP技術應用場景廣泛且鬆散,且在很多情況下,作為中間處理技術流程,不被最終用戶所感知。再加上近些年新的自然語言處理技術不斷出現,給想入門自然語言處理的產品經理眼花繚亂,不知如何入手的困惑。
入門自然語言處理也需要講究MVP,以最小可行性的閉環,建立起初步認知,再不斷擴展和豐富NLP的知識體系,逐步建立大的框架和認知。
通常的自然語言處理任務可從「分詞」—>「構建特徵」—>「訓練模型」—>「分類或預測應用」。
以上流程中,除了分詞外,與機器學習通常流程一樣。英文一個個單詞本身就是分開的,是不需要分詞的。但對於中文來講,詞與詞之間是連接在一起的,需要將文本內容,切分成一個個詞再處理。
完成分詞後,計算機無法直接理解漢字,需要通過將一個個詞,編碼成計算機可以理解的數字再做處理,這個階段即構建特徵階段。
特徵完成後,再根據自然語言處理任務類型,決定採用哪種演算法訓練模型,最後將訓練好的模型應用於特定的分類或預測任務上。一個自然語言處理任務就完成了。
標注與預處理
前幾年從事的智能推薦產品中,推薦系統本身以CTR作為優化目標,實際是將點擊與否作為label,相當於用戶幫著做了分布式的標注工作。
傳統基於統計的自然語言處理任務中,大部分任務類型是有監督學習,需要人在已有語料上做大量的標注工作,才能保證任務的正常進行。
例如情感識別是否為正向情感,就需要人在語料上,將一條條信息標出是否為正向情感。再將此語料作為訓練集訓練模型,生成情感識別的分類模型用於情感識別。
文檔的預處理通常是將拿到的語料做去除標點符號、停用詞、數字等處理,去除自然語言無關內容,加快計算機計算和模型生成速度。
在完成以上處理後,可將文檔做分詞處理,再將詞作編碼處理即可。
常見任務及演算法原理
自然語言處理通常有以下應用場景:分詞、詞性標注、主題識別、情感識別、文本分類、機器翻譯等。下面將主要應用及背後演算法原理作簡要介紹。
有監督的分類問題。 無論情感識別還是垃圾郵件分類,本質上都可以轉化為幾個目標類型的分類問題。按照貝葉斯公式的邏輯,將已有語料數據進行類型標注,基於統計模型的邏輯,訓練得到分類模型,將待識別內容通過模型計算打分,根據閾值即可完成識別。例如二分類的情感識別,可以將0-0.5區間歸為消極情感,0.5-1區間歸為積極情感。多分類則是計算待分類樣本離哪個區間更近,即識別為哪種類型。
無監督的分類問題 。自然語言處理中,經常會有主題識別任務,這類任務通常是採用LDA主題模型,核心邏輯是將文章劃分為「文檔」—「主題」—「詞」的三層邏輯,以無監督學習自動完成按照主題的詞聚類。由於是無監督學習,需要根據實際情況指定學習出的主題個數,最終選擇主題個數最合理的結果。依賴人的主觀判斷和理解一系列詞背後組成的主題。
生成問題 。生成問題常見的有文本糾錯、詞生成、句子生成、機器翻譯等。生成問題從統計學邏輯上講,是基於已有語料的統計,計算出接下來要生成內容的概率。拿機器翻譯舉例,需要事先准備好中英文對照的大量語料,基於語料,機器學習到中英文詞對照、短語對照的知識,最終在翻譯場景下,輸出中文或英文相應的翻譯內容。
再拿隱馬爾可夫模型做詞性標注舉例,基於已經標注的語料,隱馬爾可夫模型可以學習到詞與詞之間詞性的狀態轉移概率,基於這個概率可以計算出一個詞屬於哪種詞性。
深度學習的應用。 CNN構建的神經網路,比較適合解決NLP分類問題,但由於沒有記憶,無法解決生成問題。RNN相較於CNN可以解決一定長度記憶問題,適合解決NLP領域一定長度的生成問題,例如詞生成,但無法保留長期記憶。LSTM具有長期記憶的手段,可以做生成句子的任務。
NLP 應用價值
文本是最常見的生產資料,產品經理學習NLP的原理及應用,可以開闊解決問題的視野。
拿在線教育行業舉例,利用自然語言處理能力,可以自動識別出學生評論的情感傾向,可以輔助老師進行作文批改、自動出題、自動解題。
不難看出,自然語言處理的應用場景,並非人做不了,而是可以替代人類的手工勞動,大大提升任務的效率,將人解放出來,做更有價值的工作。
小樂帝,一線AI產品經理、科技優秀作者、產品經理讀書會創始人。
「產品經理讀書會」
專注於愛讀書愛思考的產品人提供讀書推薦、產品思考、以書會友的環境
⑻ nlp演算法是什麼
nlp演算法是自然語言處理。
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。
它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。
nlp演算法發展:
在一般情況下,用戶可能不熟悉機器語言,所以自然語言處理技術可以幫助這樣的用戶使用自然語言和機器交流。從建模的角度看,為了方便計算機處理,自然語言可以被定義為一組規則或符號的集合,我們組合集合中的符號來傳遞各種信息。
這些年,NLP研究取得了長足的進步,逐漸發展成為一門獨立的學科,從自然語言的角度出發,NLP基本可以分為兩個部分:自然語言處理以及自然語言生成,演化為理解和生成文本的任務。
⑼ nlp演算法是什麼
nlp演算法是自然語言處理。
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。
相關信息:
自然語言處理是指利用人類交流所使用的自然語言與機器進行交互通訊的技術。通過人為的對自然語言的處理,使得計算機對其能夠可讀並理解。自然語言處理的相關研究始於人類對機器翻譯的探索。
雖然自然語言處理涉及語音、語法、語義、語用等多維度的操作,但簡單而言,自然語言處理的基本任務是基於本體詞典、詞頻統計、上下文語義分析等方式對待處理語料進行分詞,形成以最小詞性為單位,且富含語義的詞項單元。
⑽ 自然語言處理(NLP)的基礎難點:分詞演算法
自然語言處理(NLP,Natural Language Processing)是人工智慧領域中的一個重要方向,主要研究人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理的底層任務由易到難大致可以分為詞法分析、句法分析和語義分析。分詞是詞法分析(還包括詞性標注和命名實體識別)中最基本的任務,也是眾多NLP演算法中必不可少的第一步,其切分准確與否往往與整體結果息息相關。
金融領域分詞的難點
分詞既簡單又復雜。簡單是因為分詞的演算法研究已經很成熟了,大部分的演算法(如HMM分詞、CRF分詞)准確率都可以達到95%以上;復雜則是因為剩下的5%很難有突破,主要可以歸結於三點:
▲粒度,即切分時的最小單位,不同應用對粒度的要求不一樣,比如「融資融券」可以是一個詞也可以是兩個詞
▲歧義,比如「恆生」一詞,既可指恆生公司,又可指恆生指數
▲未登錄詞,即未出現在演算法使用的詞典中的詞,比如不常見的專業金融術語,以及各種上市公司的名稱
在金融領域中,分詞也具有上述三個難點,並且在未登錄詞方面的難點更為突出,這是因為金融類詞彙本來就多,再加上一些專有名詞不僅有全稱還有簡稱,這就進一步增大了難度。
在實際應用中,以上難點時常會造成分詞效果欠佳,進而影響之後的任務。尤其是在一些金融業務中,有許多需要與用戶交互的場景,某些用戶會用口語化的詞彙描述業務,如果分詞錯誤會影響用戶意圖的解析,這對分詞的准確性提出了更高的要求。因此在進行NLP上層應用開發時,需要對分詞演算法有一定的了解,從而在效果優化時有能力對分詞器進行調整。接下來,我們介紹幾種常用的分詞演算法及其應用在金融中的優劣。
幾種常見的分詞演算法
分詞演算法根據其核心思想主要分為兩種:
第一種是基於字典的分詞,先把句子按照字典切分成詞,再尋找詞的最佳組合方式,包括最大匹配分詞演算法、最短路徑分詞演算法、基於N-Gram model的分詞演算法等;
第二種是基於字的分詞,即由字構詞,先把句子分成一個個字,再將字組合成詞,尋找最優的切分策略,同時也可以轉化成序列標注問題,包括生成式模型分詞演算法、判別式模型分詞演算法、神經網路分詞演算法等。
最大匹配分詞尋找最優組合的方式是將匹配到的最長片語合在一起,主要的思路是先將詞典構造成一棵Trie樹(也稱為字典樹),Trie樹由詞的公共前綴構成節點,降低了存儲空間的同時可以提升查找效率。
最大匹配分詞將句子與Trie樹進行匹配,在匹配到根結點時由下一個字重新開始進行查找。比如正向(從左至右)匹配「他說的確實在理」,得出的結果為「他/說/的確/實在/理」。如果進行反向最大匹配,則為「他/說/的/確實/在理」。
這種方式雖然可以在O(n)時間對句子進行分詞,但是只單向匹配太過絕對,尤其是金融這種詞彙較豐富的場景,會出現例如「交易費/用」、「報價單/位」等情況,所以除非某些詞的優先順序很高,否則要盡量避免使用此演算法。
最短路徑分詞演算法首先將一句話中的所有詞匹配出來,構成詞圖(有向無環圖DAG),之後尋找從起始點到終點的最短路徑作為最佳組合方式,例:
我們認為圖中每個詞的權重都是相等的,因此每條邊的權重都為1。
在求解DAG圖的最短路徑問題時,總是要利用到一種性質:即兩點之間的最短路徑也包含了路徑上其他頂點間的最短路徑。比如S->A->B->E為S到E到最短路徑,那S->A->B一定是S到B到最短路徑,否則會存在一點C使得d(S->C->B)<d(S->A->B),那S到E的最短路徑也會變為S->C->B->E,這就與假設矛盾了。利用上述的最優子結構性質,可以利用貪心演算法或動態規劃兩種求解演算法:
(1)基於Dijkstra演算法求解最短路徑,該演算法適用於所有帶權有向圖,求解源節點到其他所有節點的最短路徑,並可以求得全局最優解;
(2)N-最短路徑分詞演算法,該方法是對Dijkstra演算法的擴展,在每一步保存最短的N條路徑,並記錄這些路徑上當前節點的前驅,在最後求得最優解時回溯得到最短路徑。這種方法的准確率優於Dijkstra演算法,但在時間和空間復雜度上都更大。
相較於最大匹配分詞演算法,最短路徑分詞演算法更加靈活,可以更好地把詞典中的片語合起來,能更好地解決有歧義的場景。比如上述「他說的確實在理」這句話,用最短路徑演算法的計算結果為「他/說/的/確實/在理」,避免了正向最大匹配的錯誤。但是對於詞典中未存在的詞基本沒有識別能力,無法解決金融領域分詞中的「未登錄詞」難點。
N-Gram(又稱N元語法模型)是基於一個假設:第n個詞出現與前n-1個詞相關,而與其他任何詞不相關。在此種假設下,可以簡化詞的條件概率,進而求解整個句子出現的概率。
現實中,常用詞的出現頻率或者概率肯定比罕見詞要大。因此,可以將求解詞圖最短路徑的問題轉化為求解最大概率路徑的問題,即分詞結果為「最有可能的詞的組合「。
計算詞出現的概率,僅有詞典是不夠的,還需要充足的語料,所以分詞任務已經從單純的「演算法」上升到了「建模」,即利用統計學方法結合大數據挖掘,對「語言」(句子出現的概率)進行建模。
我們將基於N-gram模型所統計出的概率分布應用到詞圖中,可以得到詞的概率圖。對該詞圖用最短路徑分詞演算法求解最大概率的路徑,即可得到分詞結果。
相較於前兩種分詞演算法,基於N-Gram model的分詞演算法對詞頻進行了統計建模,在切分有歧義的時候力求得到全局最優值,比如在切分方案「證券/自營/業務」和「證券/自/營業/務」中,統計出「證券/自營/業務」出現的概率更大,因此結果有更高的准確率。但也依然無法解決金融場景中未登錄詞的問題。
生成式模型主要有隱馬爾可夫模型(HMM,Hidden Markov Model)、樸素貝葉斯分類等。HMM是常用的分詞模型,基於Python的jieba分詞器和基於Java的HanLP分詞器都使用了HMM。
HMM模型認為在解決序列標注問題時存在兩種序列,一種是觀測序列,即人們顯性觀察到的句子,另一種是隱狀態序列,即觀測序列的標簽。假設觀測序列為X,隱狀態序列是Y,則因果關系為Y->X。因此要得到標注結果Y,必須對X的概率、Y的概率、P(X|Y)進行計算,即建立P(X,Y)的概率分布模型。
HMM演算法可以在一定程度上解決未登錄詞的問題,但生成式模型的准確率往往沒有接下來要談到的判別式模型高。
判別式模型主要有感知機、支持向量機(SVM,Support Vector Machine)、條件隨機場(CRF,Conditional Random Field)、最大熵模型等,其中感知機模型和CRF模型是常用的分詞模型。
(1)平均感知機分詞演算法
感知機是一種簡單的二分類線性模型,通過構造超平面,將特徵空間(輸入空間)中的樣本分為正負兩類。通過組合,感知機也可以處理多分類問題。但由於每次迭代都會更新模型的所有權重,被誤分類的樣本會造成很大影響,因此採用平均的方法,在處理完一部分樣本後對更新的權重進行平均。
(2)CRF分詞演算法
CRF可以看作一個無向圖模型,假設給定的標注序列為Y,觀測序列為X,CRF對條件概率P(Y|X)進行定義,而不是對聯合概率建模。
平均感知機演算法雖然速度快,但仍不夠准確。適合一些對速度要求高、對准確性要求相對不那麼高的場景。CRF分詞演算法可以說是目前最常用的分詞、詞性標注和實體識別演算法,它對未登陸詞也有很好的識別能力,是目前在速度、准確率以及未登錄詞識別上綜合表現最突出的演算法,也是我們目前所採用的解決方案,但速度會比感知機慢一些。
在NLP中,最常用的神經網路為循環神經網路(RNN,Recurrent Neural Network),它在處理變長輸入和序列輸入問題中有著巨大的優勢。LSTM(Long Short-Term Memory,長短期記憶網路)為RNN變種的一種,在一定程度上解決了RNN在訓練過程中梯度消失和梯度爆炸的問題。
目前對於序列標注任務,業內公認效果最好的模型是BiLSTM+CRF。相比於上述其它模型,雙向循環神經網路BiLSTM,可以更好地編碼當前字等上下文信息,並在最終增加CRF層,核心是用Viterbi演算法進行解碼,以得到全局最優解,避免B,S,E這種不可能的標記結果的出現,提高准確率。
神經網路分詞雖然能在准確率、未登錄詞識別上有更好的表現,但RNN無法並行計算,在速度上沒有優勢,所以該演算法通常在演算法研究、句子精確解析等對速度要求不高的場景下使用。
分詞作為NLP底層任務之一,既簡單又重要,很多時候上層演算法的錯誤都是由分詞結果導致的。因此,對於底層實現的演算法工程師,不僅需要深入理解分詞演算法,更需要懂得如何高效地實現和調試。
而對於上層應用的演算法工程師,在實際分詞時,需要根據業務場景有選擇地應用上述演算法,比如在搜索引擎對大規模網頁進行內容解析時,對分詞對速度要求大於精度,而在智能問答中由於句子較短,對分詞的精度要求大於速度。