天天看點

lnk200無法解析的外部符号_語義解析

lnk200無法解析的外部符号_語義解析

一、智能問答系統與推理

任務需求

人機對話的三個層次:閑聊、問答、對話

基于知識圖譜的問答系統有兩條路:

  • 對使用者的問題進行語義了解 ,一般用Semantic Parsing(語義分析),得到了一個句子的邏輯表示,根據邏輯表示再到知識庫裡去查
  • 資訊檢索方法。 假設這個知識庫是完備的,從使用者的問題中識别一個實體,然後以光實體為中心,進行廣度搜尋,把與他相關的詞全部挖出來,然後計算相似度

eg:張三的小姨是誰?

lnk200無法解析的外部符号_語義解析

相似度計算:

  1. 提取關鍵詞,詞嵌入,計算距離
  2. 将知識庫的一條知識用自然語言表征出來,然後與使用者的問題計算相似性(微軟小冰)

二、語義解析

為什麼?

傳統的資訊檢索:實體及屬性提取→根據映射生成SQL查詢語句

缺點:無推理功能,無法正确了解含有邏輯關聯詞的語句正

lnk200無法解析的外部符号_語義解析
lnk200無法解析的外部符号_語義解析

第一步:實體提取,馬鈴薯它是一個實體,辣是屬性

第二步:語義解析,馬鈴薯是MUST,就是它一定要也,這個辣就是MUST NOT就是一定沒有這樣的一層關系。

第三步:同義表達,馬鈴薯它也是洋芋,所有洋芋也是 MUST。

第四步:實體屬性映射關系,生成SPARQL語句

Eg:洋芋“和”蕃茄“或者”豆角可以做什麼不辣的菜?

實體及屬性提取:洋芋、蕃茄、豆角、辣

生成邏輯表達式:洋芋Λ(蕃茄Ⅴ豆角)Λ(¬不辣)

生成查詢語句:

SELECT ?dish

WHERE { ?dish hasNameIngredient:洋芋, ?dish hasNameIngredient:蕃茄} {?dish hasTaste ?taste.

FILTER (!regex(str(?taste),”辣”))}

UNION

SELECT ?dish

WHERE { ?dish hasNameIngredient:洋芋, ?dish hasNameIngredient:豆角} {?dish hasTaste ?taste.

FILTER (!regex(str(?taste),”辣”))}

是什麼?

lnk200無法解析的外部符号_語義解析

依存句法分析屬于淺層句法分析。其實作過程相對簡單。但是依存句法分析所能提供的資訊也相對較少。深層文法句法分析可以提供豐富的句法和語義資訊,但是采用的文法相對複雜,分析器的運作複 雜度也較高,這使得深層句法分析目前不适合處理大規模資料。短語結構句法分析介于依存 句法分析和深層文法句法分析之間。

句法結構:

詞與詞的組合構成句法結構。句法結構的基本類型有主謂、動賓、偏正、補充、聯合五種。句法結構分析的任務:已知一個句子從左到右各詞的詞性,要反過來求出一棵滿足要求的“句法結構樹”

lnk200無法解析的外部符号_語義解析

文法:編譯原理的中的一個概念。文法是用于描述語言的文法結構的形式規則。任何一種語言都有它自己的文法,不管它是機器語言還是自然語言。就像自然語言裡有主謂賓這樣的文法一樣,機器語言也有描述它語言構成的特定文法

  1. N→ ND|D
  2. D→ 0|1
終結符:

終結符是一個形式語言的基本符号。就是說,它們能在一個形式文法的推導規則的輸入或輸出字元串存在,而且它們不能被分解成更小的機關。确切地說,一個文法的規則不能改變終結符。例如說,下面的文法有兩個規則:

x -> xa

x -> ax

在這種文法之中,a是一個終結符,因為沒有規則可以把a變成别的符号。不過,有兩個規則可以把x變成别的符号,是以x是非終結符。一個形式文法所推導的形式語言必須完全由終結符構成。

非終結符:

不是終結符的都是非終結符。非終結符可了解為一個可拆分元素,而終結符是不可拆分的最小元素。

開始符号:

為非終結符,又稱為識别符号, 常用S表示。

産生式

:定義符号串之間關系的一組規則, 形如A→ α,文法規則是産生式, 産生式不一定是文法規則。

推導:

由文法開始符号開始推導, 用産生式的右部取代産生式的左部, 直到推到終結符号為止。

規約:

規約是句子通過文法規則将産生式的左部取代右部, 直到規約到非中介符為止。

三、短語結構句法分析

  • Chomsky将文法定義為四元組 G=(VN,VT,R,S) 其中VN表示非終結符的集合,VT表示終結符的集合,R表示産生式的有窮集合,S表示開始符号。 文法具體又可以分為0型文法,1型文法, 2型文法,3型文法。V=VN∪VT

2型文法:R中的産生式具有形式A⟶β ,其中A∈VN,β∈V*

2型文法稱為上下文無關文法,記作CFG(Context-Free Grammar)

  • 基于PCFG的句法分析

PCFG是上下文無關文法的擴充,是一種生成式的為方法,其文法定義為五元組 G=(VN,VT,R,S,P),P代表每個産生規則的統計機率

從同一個詞性序列出發,可能會建構出不同的句法結構樹。

例如:“動詞+形容詞+名詞”,我們有兩種建構句法結構樹的方案:

lnk200無法解析的外部符号_語義解析

造一個句子“踢破皮球”,兩種句法結構都是成立的,于是出現了歧義:把皮球踢破了(結構和“點亮蠟燭”一緻),或者是,踢一個破的皮球(結構和“踢新皮球”一緻)

在生成規則中添加限制條件,便得到了基于規則的句法分析器

lnk200無法解析的外部符号_語義解析
lnk200無法解析的外部符号_語義解析
lnk200無法解析的外部符号_語義解析
  • 實踐工具:Stanford Parser
  • 缺點:雖然基于PCFG的句法分析器的實作比較簡單,但是這類分析器的性能并不能讓人滿意。主要原因在于一條文法規則的選擇隻與該規則左側的非終結符有關,而與任何其它上下文資訊無關。文法中缺乏其它資訊用于規則選擇的消歧

四、組合範疇文法(CCG)

  • 範疇文法:一種用數學方法構造的、描述自然語言的句法理論,它從生成的角度對句子的形式進行演算。帶有語義類型的範疇能夠将句法和語義緊密結合在一起,十分适合進行語義解析
  • CCG屬于短語結構文法。CCG 的基本操作包括:1)原子範疇,用于表達基本的詞彙類别和句法功能; 2)組合範疇,由原子範疇構成,通常用 X/Y 或 XY 來表示可以向左或者向右尋找變元 Y 來獲得組合 X
  • 組合範疇是高度詞例化的文法,大量的詞項組成CCG的詞典,如下所示
lnk200無法解析的外部符号_語義解析
  • 組合規則:組合範疇使用少量的組合規則對句子進行句法解析和語義解析
lnk200無法解析的外部符号_語義解析
  • 利用CCG進行高效的句法分析是目前自然語言處理的重要領域之一。在國外已經取得了一定的研究成果。然而在國内還是一大難題。相較于一般的上下文無關文法,組合範疇文法的的句法分析要困難的多。主要原因在于
  1. 非終結符和句法規則要遠大于CFG
  2. 起步較晚,主要是用規則和模闆的方式來建構解析器,主要應用于資料庫的自然語言接口和指令解釋領域
  3. 利用CCG進行句法分析需要CCG詞典,英文詞典已經比較完善,而中文詞典的建構難度較大,特别是在歧義的處理

五、基于深度學習的句法分析

傳統方法的特征表示主要采用人工定義原子特征和特征組合,而深度學習則把原子特征進行向量化,在利用多層神經元網絡提取特征。把詞、詞性、類别标簽等原子特征表示為向量,然後利用多層網絡進行特征提取。

深度學習在特征表示方面有如下優點:隻需要原子特征。這些原子特征以前是通 過人工的自由組合形成最終的一進制特征、二進制特征、三元特征、四元特征甚至更多元的組合。但是事實上我們不知道怎麼組合能形成最佳的特征集合。

lnk200無法解析的外部符号_語義解析

繼續閱讀