Python 使用spacy进行词性标注和词形还原
Python是理解机器学习和深度学习的概念和应用的重要工具。它提供了许多库和模块,可以构建有用的技术。在本文中,我们将讨论一个名为“spaCy”的开源库。
spaCy 是一个开源库,用于分析和比较文本数据。在深入讨论该库之前,让我们快速浏览本文的概述和行程。
本文分为两个部分:
- 在第一部分中,我们将了解 spaCy 的重要性,并讨论词性标注和词形还原的概念。
-
第二部分将重点介绍spaCy的应用以及词性标记和词形还原的使用。
spaCy是什么
spaCy是一个用于深度学习的开源库,由自然语言处理(NLP)管理。NLP本身是人工智能的一个概念领域,它为机器提供了人类语言的意义,为人机交互铺平了道路。通过spaCy,我们可以对大规模的数据进行处理,并为机器提取含义。
spaCy使用Cython编写,并提供交互式API。
安装
使用“pip”安装spaCy。
pip install spacy
安装完成后,我们可以在IDE中导入它,并通过传递正确的命名约定来加载pipeline包。我们将使用词性标注和词形还原。
en_core_web_sm
这种命名规范决定了我们想要的流水线软件包的类型。“ en ”决定了语言,“ core ”决定了功能,“ web ”决定了类型,“ sm ”决定了大小。
因此,这个规范加载了一个以英语为语言的软件包,其能力是词性标注和词形还原,其训练数据是网络文本。
什么是词性标注
词性标注是一种将文本数据中的单词分类的技术。我们可以分析每个单词,理解它的上下文和涵义。我们可以语法地检查一个句子并描述其结构。
它还包括未知的单词并修改词汇。传入的数据集本身被深度分析。我们可以检查一个单词是动词、名词、代词、介词等的哪一部分。
什么是词形还原
词形还原是将不同版本的术语或单词组合在一起的技术,这些术语或单词是相同的词。它是自然语言处理的重要工具,用于对句子中的屈折词进行分类。
我们可以形态上分析句子并针对具有屈折结尾的单词进行处理,从而将它们去除。词形还原的整个逻辑是为屈折词汇收集基本词汇。
示例
我们将使用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库的各种应用及其作用。