使用 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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.