自然語言處理的目標是讓計算機處理或者「理解」自然語言,以完成有意義的任務,如qa等。
形態學(morphological analysis)或稱詞法或者詞彙形態學。其研究詞的內部結構,包括屈折變化和構詞法兩個部分。
句法分析(syntactic analysis)和語義分析(semantic interpretation)
對話分析(discourse processing),根據上文語境理解下文
其中,cs223n關注畫圈部分的三個部分(語音,句法分析和語義分析)
從易到難大致有:
文字挖掘(產品**,日期,時間,地點,人名...)
文字分類
機器翻譯
客服系統
複雜對話系統
人類語言是離散的,明確的符號系統,但允許出現各種變種。符號傳輸到大腦的過程是通過連續的聲光學訊號,大腦編碼似乎是連續的模式。另外,巨大的詞表也導致了資料稀疏,不利於機器學習。因此,是否應該使用連續的訊號而非離散的符號處理語言?
機器學習的子集,實際上是將特徵工程+學習演算法合二為一。深度學習是表示學習的一部分,用來學習原始輸入的多層特徵表示:
傳統的機器學習手工特徵耗時耗力,不易擴充套件,而深度學習自有編解碼器,自動特徵學習快,方便擴充套件。傳統的機器學習示意如下:
人類語言充滿歧義,解讀依賴現實世界常識以及上下文。
將自然語言處理的思想和表示學習結合,用深度學習的手法解決nlp目標,這推進了不少方面的發展,如詞性標註
,命名實體識別
,句法/語義分析
傳統方法在形態級別的表示是詞素
,如將uninterested拆分成字首,詞根,字尾三個部分:
深度學習中把詞素也作為向量:
多個詞素向量構成相同維度語義更豐富的詞向量。
傳統方法是手寫大量的規則函式,也就是λ演算(lambda calculus):
在深度學習中,每個句子,短語和邏輯表達都是向量
。神經網路負責將它們合併。
傳統方法是請人手工蒐集「情感極性詞典」,在詞袋模型上做分類器。
深度學習使用了rnn
來解決該問題,它可以識別「反話」的情感極性:
傳統方法是手工編寫大量的規則邏輯,比如正規表示式之類:
深度學習依舊使用了類似的學習框架,將事實儲存在向量中:
neural language models是基於rnn的:
傳統方法在眾多層面做了嘗試,如詞語,語法,語法。這類方法試圖找到一種世界通用的「國際語」作為原文和譯文的橋梁。
而neural machine translation將原文對映為向量,由向量構建原文,所有層級的表示都是向量:
這也許是因為向量是最靈活的形式,它的維度是自由的,還可以組成矩陣或者更高維度的tensor,事實上,在實踐時,向量和矩陣沒有本質區別。
碼農場
CS224N 語言模型介紹
語言模型實現 語言模型是指根據給定序列 下乙個單詞的任務,其形式化表達為 給定單詞序列x 1 x 2 x t 然後 單詞x t 1 的概率分布 語言模型的另一種定義是給給定文字序列分配概率 這個概率代表了該文字序列出現的可能性大小 例如,給定一段文字x 1 x 2 x t 那麼這段文字出現的概率為 ...
CS224n學習筆記 Lecture1 2
開始的這部分主要是對dl4nlp的乙個簡介。個人理解,dl4nlp中,所有層級都是以向量的形式進行處理,用向量表示單詞 用向量表示句子等。向量是最靈活的形式,維度自由,可組成矩陣,可組成高維的tensor等。進行nlp等後續任務,首先需要輸入。輸入 主要有兩個,乙個是來自語音speech,乙個是來自...
CS224N 子詞模型(subwords)
二 subword model 三 subword level language model 四 hybrid nwt 五 character level 因為人類書寫系統多種多樣,同時詞語存在形態變換,音譯,縮寫以及網路用語等現象,所以僅在word level進行建模是不夠的,需要model bl...