CS224n筆記一:開端
何為自然語言處理
自然語言處理的目標是讓計算機處理或者“理解”自然語言,以完成有意義的任務,如QA等。
自然語言處理涉及的層次
輸入有兩個來源:語音和文本,所以第一級是語音識別,OCR或者分詞
形態學(Morphological analysis)或稱詞法或者詞匯形態學。其研究詞的內部結構,包括屈折變化和構詞法兩個部分。
句法分析(Syntactic analysis)和語義分析(Semantic Interpretation)
對話分析(Discourse Processing),根據上文語境理解下文
其中,CS223n關註畫圈部分的三個部分(語音,句法分析和語義分析)
自然語言處理應用
從易到難大致有:
拼寫檢查,關鍵詞檢索...
文本挖掘(產品價格,日期,時間,地點,人名...)
文本分類
機器翻譯
客服系統
復雜對話系統
人類語言的特殊之處
人類語言是離散的,明確的符號系統,但允許出現各種變種。符號傳輸到大腦的過程是通過連續的聲光學信號,大腦編碼似乎是連續的模式。另外,巨大的詞表也導致了數據稀疏,不利於機器學習。因此,是否應該使用連續的信號而非離散的符號處理語言?
什麽是深度學習
機器學習的子集,實際上是將特征工程+學習算法合二為一。深度學習是表示學習的一部分,用來學習原始輸入的多層特征表示:
傳統的機器學習手工特征耗時耗力,不易擴展,而深度學習自有編解碼器,自動特征學習快,方便擴展。傳統的機器學習示意如下:
為何NLP困難
人類語言充滿歧義,解讀依賴現實世界常識以及上下文。
Deep NLP=Deep Learning + NLP
將自然語言處理的思想和表示學習結合,用深度學習的手法解決NLP目標,這推進了不少方面的發展,如詞性標註
,命名實體識別
,句法/語義分析
NLP表示層次:形態級別
傳統方法在形態級別的表示是詞素
,如將uninterested拆分成前綴,詞根,後綴三個部分:
深度學習中把詞素也作為向量:
多個詞素向量構成相同維度語義更豐富的詞向量。
NLP工具:句法分析
NLP語義層面的表示
傳統方法是手寫大量的規則函數,也就是λ演算(Lambda calculus):
在深度學習中,每個句子,短語和邏輯表達都是向量
情感分析
傳統方法是請人手工搜集“情感極性詞典”,在詞袋模型上做分類器。
深度學習使用了RNN
來解決該問題,它可以識別“反話”的情感極性:
QA
傳統方法是手工編寫大量的規則邏輯,比如正則表達式之類:
深度學習依舊使用了類似的學習框架,將事實存儲在向量中:
客服系統
Neural Language Models是基於RNN的:
機器翻譯
傳統方法在眾多層面做了嘗試,如詞語,語法,語法。這類方法試圖找到一種世界通用的“國際語”作為原文和譯文的橋梁。
?
而Neural Machine Translation將原文映射為向量,由向量構建原文,所有層級的表示都是向量:
這也許是因為向量是最靈活的形式,它的維度是自由的,還可以組成矩陣或者更高維度的Tensor,事實上,在實踐時,向量和矩陣沒有本質區別。
碼農場
CS224n筆記一:開端