按照語言習慣,NLP技術從下到上可以分為3個層面:詞法、句法、語義。
1. 詞彙是語言的最小單元,因此詞法技術可以被視為NLP技術的底層,也是其餘NLP技術的基礎。詞法技術的核心任務是識別和區分文字中的單詞,以及對詞語進行一些預處理。因為詞語具有確定的形式,所以透過規則匹配就可以做到比較準確的識別。但是現階段的分詞結果對語義的理解支援不夠,如何更好的輔助語義理解,將是分詞技術關注的重點。
2. 詞彙組織成語句,句法技術順理成章的成為NLP的第二個層面。句法是對語言進行深層次理解的基石,特別對於機器翻譯非常重要。句法技術的主要任務是識別出句子所包含的句法成分以及這些成分之間的關係,一般以句法樹來表示句法分析的結果。句法分析一直是NLP技術前進的巨大障礙,主要存在兩個難點。一是歧義,自然語言存在大量的歧義現象。人類自身可以依靠大量的先驗知識有效地消除各種歧義,而機器由於在知識表示和獲取方面存在嚴重不足,很難像人類那樣進行句法消歧。二是搜尋空間,句法分析是一個極為複雜的任務,候選樹個數隨句子增多呈指數級增長,搜尋空間巨大。因此,必須設計出合適的解碼器,以確保能夠在可以容忍的時間內搜尋到模型定義最優解。
3. 不論是英語還是漢語,語言的目的都是為了表達含義。因此,語義理解是NLP技術的終極目標,可以說各種NLP技術都採用不同的方式為該目的服務。語義技術不同於上述兩個層面,有明確的評判結果,只能透過一些具體場景來判斷機器對語義的理解是否恰當。例如在文字關鍵詞提取中,就可以透過對提取結果的分析比較,來衡量機器對淺層語義的理解能力。
接下來會依次介紹詞法、句法中的關鍵技術,之後介紹目前較熱的基於機器學習詞向量與深度學習中的NLP技術。
1. 詞法
詞法技術的核心任務是識別和區分文字中的單詞,其過程就是分詞的過程,因此詞法技術主要是各種分詞技術。主要分為兩大類,規則分詞與統計分詞。另外,不同語言的分詞技術也不近相同,因為每個語言詞法層面區別較大。比如英文中,透過空格即可區分詞語。但是漢語中,詞語是連在一起的,所以必須透過一定的技術才能做到區分,且區分精度較之英文稍差。以下主要介紹中文分詞技術。