Python 使用spacy进行Pos标记和lammetization

Python 使用spacy进行Pos标记和lammetization

Python是理解机器学习和深度学习的概念和应用的一个不可或缺的工具。它提供了许多库和模块,为建立有用的技术提供了一个宏伟的平台。在这篇文章中,我们将讨论这样一个被称为 “spaCy “的库。

spaCy 是一个开源的库,用于分析和比较文本数据。我们将详细讨论这个库,但在我们深入讨论这个主题之前,让我们快速浏览一下本文的概述并了解行程。

本文分为两个部分 –

  • 在第一节中,我们将了解 spaCy 的意义并讨论 PoS标签词法 的概念 。

  • 第二部分将重点讨论spaCy的应用以及PoS标记和词组化标记的使用。

什么是spaCy

spaCy是一个用于深度学习的开源库。它是由自然语言处理(NLP)管理的。NLP本身是人工智能的一个概念领域。它通过为机器提供人类语言的意义,为人机互动铺平道路。在spaCy的帮助下,我们大规模地处理数据并为机器推导出意义。

spaCy是用Cython编写的,它提供交互式API。

安装

spaCy是在 “pip “的帮助下安装的。

pip安装spacy

一旦spaCy安装完毕,我们就可以在我们的IDE上导入它。我们还将通过传递正确的命名规则来加载管道包。对于PoS标签和词法,我们将使用 –

en_core_web_sm

这个命名惯例决定了我们想要什么样的管道包。” en “决定语言, “core “决定能力, “web “决定流派, “sm “决定大小。

因此,这个约定加载的是英语语言的包,它的能力是PoS标签和词法化,它是在书面网络文本上训练的。

什么是Pos标签?

PoS(PART OF SPEECH)标签是一种对文本数据中的单词进行分类的技术。我们可以分析每个词,了解它的上下文和横向含义。我们可以从语法上检查讲话,并描述其结构。

它还包括不知道的词和修改词汇。对通过的数据集本身进行深入分析。我们可以检查讲话的哪个部分是动词、名词、代词、介词等。

什么是词组化

词组化是将不同版本的术语或单词组合在一起的技术,这些术语或单词是同一个词。它是NLP的一个不可或缺的工具,用于对语音中发现的转折词进行分类。

我们可以对语音进行形态分析,并针对带有转折词尾的单词进行分析,这样我们就可以删除它们。词法化的整个逻辑是为一个转折词收集基础词。

例子

我们将构建一个程序,用spaCy来分离语音的不同部分。Firstly we will use PoS tagging and see how it functions −

在这里。

  • 我们在命令提示符下安装spacy后,导入了它。

  • 我们创建了一个名为 “load_capabilites “的变量,将启动 “NLP”。我们加载了一个特定的包,即 “en_core_web_sm”。

  • 我们传递了用于分析的文本数据。

  • 我们创建了一个名为 “Anadata “的变量。

  • 这个Anadata将存储文本数据中的所有单词,以便在spacy中进行分析。

  • 我们将对一个词进行迭代,然后在 “word.pos_”的帮助下,我们将对所有的词进行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']

例子

现在我们已经理解了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"""
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_”来执行词法化。所有的转折词都以它们的基本形式打印出来,现在我们可以在外部词典上添加这些词,以增强本地词汇。

总结

在这篇文章中,我们涵盖了PoS标签和词素化的基本概念,并理解了它在深度学习中的意义。我们还讨论了通过spaCy库的各种应用以及它在NLP中的作用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程