使用 Python 中的 spaCy 進行詞性標註和詞形還原


Python 作為理解機器學習和深度學習概念和應用的重要工具。它提供了許多庫和模組,為構建有用的技術提供了絕佳的平臺。在本文中,我們將討論其中一個名為“spaCy”的庫。

spaCy 是一個開源庫,用於分析和比較文字資料。我們將詳細討論這個庫,但在深入探討主題之前,讓我們快速瀏覽一下本文的概述並瞭解行程。

本文分為兩個部分:

  • 在第一部分中,我們將瞭解spaCy的重要性,並討論詞性標註詞形還原的概念。

  • 第二部分將重點介紹 spaCy 的應用以及詞性標記和詞形還原標記的使用。

什麼是 spaCy?

spaCy 是一個用於深度學習的開源庫。它由自然語言處理 (NLP) 管理。NLP 本身是人工智慧的一個概念領域。它透過為機器提供對人類語言的理解,為人類與計算機的互動鋪平了道路。藉助 spaCy,我們可以大規模處理資料併為機器推匯出含義。

spaCy是用Cython編寫的,它提供了互動式API。

安裝

spaCy 使用“pip”進行安裝。

pip install spacy

安裝 spaCy 後,我們可以在我們的 IDE 中匯入它。我們還將透過傳遞正確的命名約定載入管道包。對於詞性標註和詞形還原,我們將使用:

en_core_web_sm

此命名約定決定了我們想要哪種管道包。“en”決定語言,“core”決定功能,“web”決定型別,“sm”決定大小。

因此,此約定載入了英語語言的包,其功能是詞性標註和詞形還原,並且它是在書面網路文字上訓練的。

什麼是詞性標註?

詞性 (PART OF SPEECH) 標註是一種對文字資料中的單詞進行分類的技術。我們可以分析每個單詞並理解其上下文和橫向含義。我們可以語法檢查語音並描述其結構。

它還包括未知單詞並修改詞彙量。傳遞的資料集本身也進行了深度分析。我們可以檢查哪些詞性是動詞、名詞、代詞、介詞等。

什麼是詞形還原?

詞形還原是將不同版本但屬於同一個詞的詞語或術語組合在一起的技術。它是 NLP 的一個重要工具,用於對語音中發現的屈折詞進行分類。

我們可以對語音進行形態分析,並針對帶有屈折詞尾的單詞,以便我們可以將其移除。詞形還原的整個邏輯是收集屈折詞的基本詞。

示例

我們將構建一個程式,使用 spaCy 將不同的詞性分開。首先,我們將使用詞性標註並檢視其功能:

這裡,

  • 我們在命令提示符下安裝後匯入了 spacy。

  • 我們建立了一個名為“load_capabilites”的變數,它將啟動“NLP”。我們載入了一個特定的包,即“en_core_web_sm”。

  • 我們傳遞了文字資料進行分析。

  • 我們建立了一個名為“Anadata”的變數。

  • 此 Anadata 將儲存來自文字資料的所有單詞,以便在 spacy 中進行分析。

  • 我們將為單個單詞迭代,然後藉助“word.pos_”,我們將對所有單詞執行詞性標註。

import spacy
load_capabilites = spacy.load("en_core_web_sm")
data_text = """Python programming can be used to perform numerous mathematical operations and provide solutions for different problems. Python is a very powerful language as it offers multiple modules
and methods that are tailor made to perform various operations"""
Anadata = load_capabilites(data_text)
for word in Anadata:
   print(word, word.pos_)

輸出

Python PROPN
programming NOUN
can AUX
be AUX
used VERB
to PART
perform VERB
numerous ADJ
mathematical ADJ
operations NOUN
and CCONJ
provide VERB
solutions NOUN
for ADP
different ADJ
problems NOUN
. PUNCT
 SPACE
Python PROPN
is AUX
a DET
very ADV
powerful ADJ
language NOUN
as SCONJ
it PRON
offers VERB
multiple ADJ
modules NOUN
and CCONJ
methods NOUN
that PRON
are AUX
tailor AUX
made VERB
to PART
perform VERB
various ADJ
operations NOUN

這裡,每個標籤都表示某些內容,例如,“PROPN”表示專有名詞,“PUNC”表示標點符號。“ADJ”表示形容詞。

示例

我們甚至可以挑選單個標籤並單獨列印它們。

import spacy
load_capabilites = spacy.load("en_core_web_sm")
data_text = """Python programming can be used to perform numerous mathematical operations and provide solutions for different problems. Python is a very powerful language as it offers multiple modules and methods that are tailor made to perform various operations"""
visdata = load_capabilites(data_text)
for word in visdata:
   pass
print("Ajectives:", [word.text for word in visdata if word.pos_ == "ADJ" ])

輸出

Ajectives: ['numerous', 'mathematical', 'different', 'powerful', 'multiple', 'various']

示例

現在我們已經瞭解了詞性標註的工作原理,讓我們瞭解詞形還原的功能。

import spacy
load_capabilites = spacy.load("en_core_web_sm")
data_text = """Python programming can be used to perform numerous mathematical operations and provide solutions for different problems. Python is a very powerful language as it offers multiple modules and methods that are tailor made to perform various operations"""
visdata = load_capabilites(data_text)
for word in visdata:
   print(word, word.lemma_)

輸出

Python Python
programming programming
can can
be be
used use
to to
perform perform
numerous numerous
mathematical mathematical
operations operation
and and
provide provide
solutions solution
for for
different different
problems problem
. .
Python Python
is be
a a
very very
powerful powerful
language language
as as
it it
offers offer
multiple multiple
modules module
and and
methods method
that that
are be
tailor tailor
made make
to to
perform perform
various various
operations operation

這裡,我們使用“lemma_”來執行詞形還原。所有屈折詞都以其基本形式列印,現在我們可以將這些詞新增到外部字典中以增強本地詞彙量。

結論

在本文中,我們介紹了詞性標註和詞形還原的基本概念,並瞭解了它們在深度學習中的重要性。我們還討論了透過 spaCy 庫的各種應用及其在 NLP 中的作用。

更新於: 2023年2月27日

863 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告