本篇部落格簡單概述一下句法分析,感覺這個任務是乙個很有趣的任務,並且可以當做很多上游任務的乙個預處理工作,提取句法結構作為輸入向量的一部分。在實際工程或者包括打比賽中都有可能起到意想不到的作用。
依存文法由語言學家l.tesniere在其著作《結構句法基礎》(2023年)中提出,對語言學的發展產生了深遠的影響,特別是在計算語言學界備受推崇。依存句法分通過分析語言單位內成分之間的依存關係揭示其句法結構。
在依存關係中兩個單詞之間的關係是主從關係,什麼叫做主從關係呢,就是說乙個單詞附屬與另乙個單詞。
• 主從關係
• 從屬詞-支配詞
舉個例子,像裡面的 「篇」 是乙個從屬詞, 「文章」是乙個支配詞。具體之間的關係有很多種情況。
大家可以仔細看一下,上面的這兩個例子很有意思。第乙個句子比第二個句子多了乙個「的」,意思就完全不一樣了。第乙個句子是指「文章」無知,第二個句子是指「你」無知。我們想一下,如果我們用句向量的話,那他們的句子相似度很高(去掉停用詞簡直一摸一樣),這樣就完全處理錯誤了。實際上這兩個意思千差萬別。深度學習遇到這種侷限性的時候就是需要用句法分析這種下層任務來輔助。
為什麼句法分析是很常見的呢。因為下面三個原因:
• 依存關係的普遍性,在任何語言都是適用的。
• 獲取長距離的搭配資訊,現在cnn\rnn進行編碼,句子中遠距離原始碼不容易獲得搭配資訊。句法分析天然的具有這種優勢。
• 不需要去明白詞彙本身的意義,只需要根據關係形成關係樹就可以,知道我們句子大概是乙個什麼樣的語法結構就可。
依存句法分析的兩大要點:
• 句子中的核心動詞是支配其他成分的中心成分。例如上述句子中root節點是「無知」,它不受任何其它成分支配。
• 其它成分間也存在支配關係。
依存句法分析的五大規律:
接下來我們將將關係型別,可以想一下關係型別在不同的任務中可以如何使用。
可作為文字特徵,區分如下的兩個句子:
老黃是誰的兒子?對於如下的句子,可以抽取被告人和原告人,這種都是深度學習不好做的:老黃的兒子是誰?
黃某用一把鏟子砍傷了謝某。還可以用來進行詞向量的訓練,大家可以想一下word2vec訓練時都要定乙個視窗(大小為3)來進行詞訓練,這樣單詞之間的訓練和關係提取會受到詞之間距離的影響,我們可以用句法分析拿到單詞之間的關係。
此外,我們還可以用於問答系統,深度學習模型複雜,準備工作多並且效果不一定理想,句法分析可能會帶來一些收益,如下圖所示:
當出現如下問句的時候:
whom did alice see?
我們看一下上面的句法分析結構圖,就可知root是saw,左邊是alice, 右邊的鏈結是bob,那麼根據句法分析可知答案應該是alice。
聚類,例如可以把兼詞的詞語聚類在一起。
語言模型,可以通過句法結構方面判斷乙個句子是否合理。
自注意力,詞語間的關係可以作為分配注意力的依據。
關係抽取,可以直接抽取實體間的關係。
詞彙間的知識圖譜,天然的三元組形式,可直接轉換為知識圖譜的形式。
from pyhanlp import
*sentence = "自然語言處理是電腦科學領域與人工智慧領域中的乙個重要方向。」
res = hanlp.parsedependency(sentence)
print
(res)
另外語法和句法不一樣,語法包含(詞法、句法、構詞法)等很多東西。 句法分析 依存句法分析
句法分析是自然語言處理中的關鍵技術之一,其基本任務是確定句子的句法結構或者句子中詞彙之間的依存關係。主要包括兩方面的內容,一是確定語言的語法體系,即對語言中合法的句子的語法結構給與形式化的定義 另一方面是句法分析技術,即根據給定的語法體系,自動推導出句子的句法結構,分析句子所包含的句法單位和這些句法...
入門句法分析
入門句法分析 fudannlp 提供了依存句法分析功能。對應的類為 edu.fudan.nlp.parser.dep.jointparser。fudannlp 的依存關係型別包括 核心詞 主語 補語 賓語 定語 狀語 並列 同位語 數量 介賓 連動 疑問連動 兼語 關聯 重複 標點 的字結構 地字結...
句法分析的學習
句法分析 sentence parsing 有二層含義,一是指根據文法對乙個句子進行分析,建立這個句子的語法樹,即文法分析 syntactic parsing 二是指對乙個句子中各成分的語義進行分析,得到對這個句子的語義的一種描述,也就是語義樹,即語義分析 semantic parsing 文法分析...