【自然語言處理 - 概念篇】 詞性標注POS在NLP的世界扮演什麼樣的角色呢?

閱讀時間約 6 分鐘
Part-of-Speech Tagging, POS是詞性標注的全名, 主要為詞彙標上語言中的語法類別或用途, 再進行後續的分析與處理, 就想像成文件歸檔的動作, 每個文件貼上一個標籤類別, 而透過這些標籤類別進行關聯性的分類歸檔。
一個句子最基本的組成單位是「詞」這在我們之前幾個篇章都有談過,如果還不熟悉的朋友可以複習一下:
但上述的基礎知識都是將「詞」進行量化處理, 以統計的方式估算出相鄰的詞彙, 進行組合, 但這樣缺少了我們人類語言學的一些特徵, 因此才需要針對「詞」加入一些我們語言學的元素, 像是「詞性」就是一個例子, 「看」是一個動詞, 那什麼詞性可以去修飾動詞或者相互依賴就是我們下一個篇章「【自然語言處理 - spaCy】 拆解語句組成的規則, 何謂依存句法分析(Dependency Parsing)?」在介紹的部分, 而這邊主要在說明中文詞性標注POS的部分。

詞性標注(Part-of-Speech Tagging, POS) 提供了什麼價值?

  • 語法分析:詞性標注是進行語法分析的重要步驟之一,通過將詞彙標註為相應的詞性,可以幫助理解句子的結構和句法關係,比如主語、動詞、賓語等,從而更好地理解句子的語法。
  • 語義理解:詞性標注有助於理解詞彙的語義,不同的詞性標籤可以指示詞彙在句子中的角色和含義。通過詞性標注,可以更準確地捕捉詞彙的語義信息,進而進行更精確的文本理解和意義提取。
  • 上下文分析:詞性標注可以幫助理解詞彙在特定上下文中的含義和用法,同一個詞彙在不同的句子或上下文中可能有不同的詞性,詞性標注可以幫助區分這種差異,從而提供更準確的上下文理解。
  • 詞彙處理:詞性標注有助於進行詞彙級別的處理和分析,不同詞性的詞彙在語法結構、語義和用法上可能有所不同,詞性標注可以幫助對詞彙進行分類、聚類和相關性分析,從而進行更深入的詞彙處理。
  • 文本分類和信息檢索:詞性標注可以作為文本分類和信息檢索的特徵之一,將詞彙的詞性作為特徵,可以幫助構建更準確的文本分類模型或搜索引擎,從而提升分類和檢索的效果。
總的來說, 中文詞性標注為中文文本分析提供了重要的基礎信息, 可以幫助我們更好地理解語法結構、詞彙語義和上下文含義, 從而支持多種NLP任務, 包括語法分析、語義理解、文本分類。

看完基本觀念後, 我們用spaCy來玩玩看唄

spaCy是一套處理NLP的框架, 讓我們除了學習以外, 還可以進行一些NLP基礎的任務, 除此之外也提供了基礎任務模型的微調甚至再訓練的方式, 提高目標精準度。
安裝套件並載入模型
!pip install spacy

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

import spacy

# 載入模型
nlp_zh = spacy.load('zh_core_web_trf')
實際來標注一下吧
POS有哪些標籤呢? 請參考「https://universaldependencies.org/u/pos/
import spacy
import random
import pandas as pd
from IPython.display import display, HTML


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

doc = nlp_zh(sentence)

# 建立空的資料框架
data = {"詞語": [], "詞性": []}

# 建立詞性與顏色的對應字典
pos_colors = {}

for token in doc:
# 詞性標籤
pos_tag = token.pos_

# 將詞語和詞性加入資料框架
data["詞語"].append(token.text)
data["詞性"].append(pos_tag)

# 如果詞性標籤尚未有對應的顏色,則賦予一個隨機顏色
if pos_tag not in pos_colors:
color = "#%06x" % random.randint(0, 0xFFFFFF)
pos_colors[pos_tag] = color

df = pd.DataFrame(data)

# 定義自訂函式來設定詞性欄位的顏色
def set_pos_color(pos):
color = pos_colors.get(pos, "#000000") # 若詞性未在字典中,則預設為黑色
return f"background-color: {color}"

styles = df.style.applymap(lambda x: set_pos_color(x), subset=["詞性"])

html = styles.to_html(index=False)

display(HTML(html))
今天的範例都在這裡「📦 spacy_pos.ipynb」歡迎自行取用。

結語

透過上述的基礎處理, 我們可以知道一段話由哪些詞所組成, 這些詞的詞性又是被標注上哪些呢? 有了這些資訊我們就可以進行下一章的「【自然語言處理 - spaCy】 拆解語句組成的規則, 何謂依存句法分析(Dependency Parsing)?」。
我們在後續的章節也會針對如何訓練出POS的模型進行解說, 就讓我們一步步地把玩NLP吧。
------------------------------------------------------------------------------------------------
喜歡撰寫文章的你,不妨來了解一下:
歡迎加入一起練習寫作,賺取知識!
為什麼會看到廣告
95會員
234內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
2022-23生成式ai浪潮,自然語言,與艾西莫夫式的昔時未來科幻想像(刊登於風傳媒,連結:www.storm.mg/article/4796622) 所以,很有意思地,為什麼在當今眾多發展的AI當中,竟然是由自然語言的大型語言模型,來讓人們驚覺有那麼一點通用人工智慧AGI的感覺和發展之可能方向。正是因為概念就藏在語言裡。
avatar
贖名人
2023-05-29
從入門到精通|訓練自然語言處理(NLP)應用中的語意分析模型自然語言處理(Natural Language Processing, NLP)是一個引人注目的領域,通過應用機器學習和人工智能技術,使機器能夠理解和處理人類的語言。其中,語意分析是NLP中一個重要的應用領域,它關注如何理解文本的意思和情感。
Thumbnail
avatar
嵐海智能
2023-05-19
ChatGPT:革命性的自然語言處理技術及其應用 Write with chatgpt探索 ChatGPT,這是一項尖端技術,利用自然語言處理提供複雜的回應並不斷學習和改進。了解 ChatGPT 的歷史、應用和對社會可能帶來的影響。ChatGPT 在醫療、金融、教育和娛樂等領域有廣泛的應用。探索這項技術在各個領域中的幫助方式。ChatGPT 有可能改變我們與技術和工具互動的方式。了解
Thumbnail
avatar
j172tw Blogz
2023-04-29
假如把智能合約看成文章: 探討自然語言處理辨識合約漏洞的可行性以太坊因為有了智能合約而獲得很大的便利性與彈性,智能合約的出現讓原本單純的金流交易功能延伸了許多的擴充功能。這使得合約的安全性受到重視。搭上近年熱門的AI風潮,NLP是一種可以檢測合約安全的新方法。
Thumbnail
avatar
這裡是阿原~~
2023-02-13
NLP 系列:NLP (自然語言處理)是什麼?文字、語言是生活中不可或缺的一部分,而隨著網路時代的開始,我們更多的活動轉往網路、手機中,而最常見的媒介就是文字(語言)了,不論是新聞、個人心得、心情分享、論文等等,都是透過文字來表達想法。而這麼多的內容,電腦是如何呈現出我們感興趣的內容呢?那首先就是需要讓電腦能夠去解讀、使用文字這種非結構化資料,
Thumbnail
avatar
資料週週New
2023-01-01
人工智慧與自然語言處理想要說什麼?標準重要嗎?為什麼Bert能在自動翻譯、問答系統表現得那麼好?
Thumbnail
avatar
朔雪寒
2022-03-18
在元宇宙世代,NLP自然語言處理還剩多少價值?如果要用一句話來說的話,那應該是『技術有限,價值無限』
Thumbnail
avatar
7J
2022-02-04
寧靜,是一種自然的語言圖。文/布恣芽朵 寧靜,是一種心境
Thumbnail
avatar
布恣芽朵
2021-11-08
Chatbot聊天機器人類型:選單性的、關鍵字辨識、自然語言辨識,該如何選擇與應用呢?Chatbot聊天機器人是網路行銷中的新興熱門詞彙,但是你了解多少呢?現今廣泛為應用的聊天機器人五花八門,擁有不同的相貌、不同的形式、不同的功能。你知道聊天機器人分成哪三種主要的形式嗎?又該如何選擇與應用呢?
Thumbnail
avatar
哈利熊HoliBear
2020-06-03