【自然語言處理 - 概念篇】 拆解語句組成的規則, 何謂依存句法分析(Dependency Parsing)?

更新於 發佈於 閱讀時間約 6 分鐘

圖片來源...

我們有想過嗎? 一句簡單的話語, 竟然隱含著豐富的句法結構與規則, 而句法就是依著這樣的規則組合而成, 形成一個完整的句子, 隨著資料量越大, 透過規則與關聯性, 機器就能夠根據我們的話語進行拆解, 並試圖理解我們的意圖進行更貼心的服務, 隨著Chatgpt的興起, 我們也見證到AI的新里程碑, 資訊領域的我們也不得不跟上潮流學習這些AI相關的技術才不至於成為被取代的對象。

一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如果還不熟悉的朋友可以複習一下:

而這些「詞」除了距離以外還可以組成詞組(Phrase), 例如動詞、名詞、形容詞..., 這些詞組又可以再組成一句話, 非常神奇吧! 看到這邊應該非常困惑, 沒關係, 等等會實際以案例來加以說明, 並搭配程式碼進行實作。

我們只要大概記得一個「樹」是由不同的「節點」所組成, 而這些節點我們就想像為詞組(Phrase), 這些詞組之間具有著上下層關係, 從根結點開始透過樹狀結構的分叉更能夠追蹤片語的組成過程, 我們可以更好的理解句子組成的角色與關係。

在進入主題之前, 我們必須先來了解一下「【自然語言處理 - spaCy】 詞性標注POS在NLP的世界扮演什麼樣的角色呢?」每個詞都被賦予一個詞性, 而這些詞性也奠定了「語法分析」、「語意理解」、「文本分類」、「上下文分析」...的基礎, 讓機器更理解我們人類的語言。

!pip install spacy

# 下載Transfromer技術的中文語言模型
!python -m spacy download zh_core_web_trf

載入模型

import spacy

# 載入模型
nlp_zh = spacy.load('zh_core_web_trf')

定義片語解析函式並進行解析

text = '我昨天看了一本有趣的書'

doc = nlp_zh(text)

以視覺化進行語法結構分析

我 昨天 看 了 一 本 有趣 的 書

「我」是名詞,代表主語, 並與「看」之間依賴。
「昨天」是時間副詞,修飾「看」,表示動作發生的時間點。
「看」是動詞,表示動作。
「了」是助動詞,用於表示動作的完成, 因此與「看」依賴。
「一」是數詞,修飾「本」,表示書的數量。
「本」是量詞,用於量詞和名詞之間,表示書的量詞。
「有趣」是形容詞,修飾「書」,表示書的特性。
「的」是助詞,用於連接形容詞和名詞之間,表示形容詞修飾的對象。
from spacy import displacy

options = {
'color': 'blue',
'bg': 'white'
}

displacy.render(doc, style="dep", jupyter=True, options=options)

圖片來源...

「看」是整個句子的根節點, 「我」 是它的主語,「書」 是它的賓語,「昨天」 是它的修飾詞,「有趣」 是 「書」 的修飾詞,觀察句法樹讓我們可以理解詞彙之間的關係, 。

這張圖時有幾個關聯標籤需要知道一下, 這邊使用的是「universaldependencies(用於對句子的語法結構進行標註)」, 由左到右逐一解析:

  • nsubj: 用來表示主語, 通常標記在動詞的依存邊上。「我」是名詞, 而「看」是動詞, 被標記在連接動詞「看」和主語「我」的邊上。
    我 <nsubj> 看。
  • nmod:tmod: 通常是動詞或名詞, 標示在時間的修飾語之間,「看」是動詞, 而「昨天」是時間修飾語, 因此他們之間的關係為nmod:tmod。
  • aux:asp: 輔助動詞:體裁。「體裁(aspect)」是一個用於描述動詞的語法特徵的術語。
    「看(動詞)」、「了(體裁)」。
  • dboj: direct object, 表示動詞的直接賓語。看 <dobj> 書, 「看」的直接賓語為「書」。
  • mark:clf: 冠詞通常用於限定名詞,並在句子中起到指示數量、確定性或泛指性質的作用。一 <mark:clf> 本
    「一」是數量詞,修飾「本」, 表示書的數量。
  • case: 詞彙的格標記(case marking),有趣 <case> 的
    表示形容詞「有趣」修飾名詞「的」,形成一個形容詞詞組
  • unmmod: 數詞修飾名詞的關係書 <nummod> 一。
  • amod: 表示形容詞修飾名詞的關係。書 <amod> 有趣。
    表示這本書是有趣的。

透過分析圖的繪製, 我們可以分析一個句子的組成可能包含動詞、名詞..., 而這些詞類之間又有相斥相吸的特性, 最終組成一句話。

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
129會員
283內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
2025/03/12
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
2025/03/12
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
2025/03/05
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」分享如何架設API V3版本的TTS服務, 但發音的部份似乎只有早期的API版本才使用到g2pw這類的技術, 因此我們可能會需要將API退回舊版, 在這裡我們也整理了早期版本api與api_v2的一些差異, 期望幫助到正在面臨選
Thumbnail
2025/03/05
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」分享如何架設API V3版本的TTS服務, 但發音的部份似乎只有早期的API版本才使用到g2pw這類的技術, 因此我們可能會需要將API退回舊版, 在這裡我們也整理了早期版本api與api_v2的一些差異, 期望幫助到正在面臨選
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
Part-of-Speech Tagging, POS是詞性標注的全名, 主要為詞彙標上語言中的語法類別或用途, 再進行後續的分析與處理, 就想像成文件歸檔的動作, 每個文件貼上一個標籤類別, 而透過這些標籤類別進行關聯性的分類歸檔。 一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如
Thumbnail
Part-of-Speech Tagging, POS是詞性標注的全名, 主要為詞彙標上語言中的語法類別或用途, 再進行後續的分析與處理, 就想像成文件歸檔的動作, 每個文件貼上一個標籤類別, 而透過這些標籤類別進行關聯性的分類歸檔。 一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如
Thumbnail
我們有想過嗎? 一句簡單的話語, 竟然隱含著豐富的句法結構與規則, 而句法就是依著這樣的規則組合而成, 形成一個完整的句子, 隨著資料量越大, 透過規則與關聯性, 機器就能夠根據我們的話語進行拆解, 並試圖理解我們的意圖進行更貼心的服務, 隨著Chatgpt的興起, 我們也見證到AI的新里程碑, 資
Thumbnail
我們有想過嗎? 一句簡單的話語, 竟然隱含著豐富的句法結構與規則, 而句法就是依著這樣的規則組合而成, 形成一個完整的句子, 隨著資料量越大, 透過規則與關聯性, 機器就能夠根據我們的話語進行拆解, 並試圖理解我們的意圖進行更貼心的服務, 隨著Chatgpt的興起, 我們也見證到AI的新里程碑, 資
Thumbnail
詞跟詞之間的距離有多近呢? 如果一個詞在相對的空間內都佔有一席之地的話, 試想, 每個詞都是一個獨立的個體, 就如同我們人類一般, 相同興趣的、相同頻率的就容易被歸納在一起,某些詞可能是相近的意思, 因此我們只需要給每個詞標上一個向量值, 並進行統計,而這些詞在這批資料集之中所佔的位置依照距離都能夠
Thumbnail
詞跟詞之間的距離有多近呢? 如果一個詞在相對的空間內都佔有一席之地的話, 試想, 每個詞都是一個獨立的個體, 就如同我們人類一般, 相同興趣的、相同頻率的就容易被歸納在一起,某些詞可能是相近的意思, 因此我們只需要給每個詞標上一個向量值, 並進行統計,而這些詞在這批資料集之中所佔的位置依照距離都能夠
Thumbnail
常常我們在進行NLP討論時,不管哪一種NLP任務都會偶爾聽到BOW這個詞,原來全名就是「Bag-of-words」由名稱就可以知道這是在處理NLP任務之前的基礎工事,將一整篇文章切碎成一段語句,甚至是最小單位的「詞」,而這些詞又如何表述關係或者進一步的使用,試圖讓機器可以理解我們人類的詞語,就是基於
Thumbnail
常常我們在進行NLP討論時,不管哪一種NLP任務都會偶爾聽到BOW這個詞,原來全名就是「Bag-of-words」由名稱就可以知道這是在處理NLP任務之前的基礎工事,將一整篇文章切碎成一段語句,甚至是最小單位的「詞」,而這些詞又如何表述關係或者進一步的使用,試圖讓機器可以理解我們人類的詞語,就是基於
Thumbnail
我發現通常分析/技術類報告 (analytical/technical reports) 都寫得很精簡扼要 如果主要動詞下夠準的話,觀眾就會一目了然想表達的東西
Thumbnail
我發現通常分析/技術類報告 (analytical/technical reports) 都寫得很精簡扼要 如果主要動詞下夠準的話,觀眾就會一目了然想表達的東西
Thumbnail
外語的新詞序很容易混淆,尤其是來自不同語系的詞序。 日語句子結構可能非常古怪,但通過將其分解為基本部分,您會發現日語句子具有穩定、一致的邏輯。 正如任何日文班的老師都會告訴你的那樣,基本的日語句子設置為“主賓動詞”。 讓我們看一個日語句子,看看它是如何組合在一起的。 我吃麵包。
Thumbnail
外語的新詞序很容易混淆,尤其是來自不同語系的詞序。 日語句子結構可能非常古怪,但通過將其分解為基本部分,您會發現日語句子具有穩定、一致的邏輯。 正如任何日文班的老師都會告訴你的那樣,基本的日語句子設置為“主賓動詞”。 讓我們看一個日語句子,看看它是如何組合在一起的。 我吃麵包。
Thumbnail
這篇文章能帶你的收穫將超乎你的想像,除了可以避免你或你所在的公司浪費無數時間、金錢在一些沒有意義的事情上面虛耗(譬如調參數、重新訓練,採用錯誤的機器學習方法或架構),也可以讓你或你的公司在獲得相關知識之後,能更正確的理解當前的環境與制定出更好的市場戰略。LSTM技術的致命缺陷也在此顯現出來!
Thumbnail
這篇文章能帶你的收穫將超乎你的想像,除了可以避免你或你所在的公司浪費無數時間、金錢在一些沒有意義的事情上面虛耗(譬如調參數、重新訓練,採用錯誤的機器學習方法或架構),也可以讓你或你的公司在獲得相關知識之後,能更正確的理解當前的環境與制定出更好的市場戰略。LSTM技術的致命缺陷也在此顯現出來!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News