spacy库的安装与使用_使用spaCy让自然语言处理变得更简单

本文介绍了spaCy,一个用Cython编写的快速NLP库。spaCy提供了简洁的API,包括令牌化、词性标注、实体检测和依存句法分析等功能。通过创建pipeline和加载模型,可以轻松实现文本处理。文章还比较了spaCy与NLTK和Core NLP的性能和功能,展示了spaCy在速度和准确性上的优势。
摘要由CSDN通过智能技术生成

介绍

自然语言处理(NLP)是人工智能的主要领域之一。NLP在许多智能应用程序中扮演着重要的角色,例如自动聊天机器人、文章摘要、多语言翻译和数据识别。每一个利用NLP来理解非结构化文本数据的行业,不仅要求准确,而且要迅速获得结果。

自然语言处理是一个广阔的领域,NLP中的一些任务是文本分类、机器翻译、问题应答和概念识别。在我的其中一篇文章中,我讨论了在NLP实现中使用的各种工具和组件。文章大多数都在论及库-NLTK (自然语言工具包)组件。

而在这篇文章中,我将说一说强大的spaCy组件。

1.关于spaCy和安装

1.1 关于

spaCy是用Cython语言编写的,(Python的C扩展,它的目的是将C语言的性能交给Python程序)。它是一个相当快的NLP库。spaCy提供了一个简洁的API来访问它的方法和属性,它由经过训练的机器(以及深度)学习模型来管理。

1.2 安装

spaCy的数据以及它的模型可以使用python包索引和设置工具轻松地安装。使用以下命令在您的计算机中来安装spaCy:

sudo pip install spacy

对于Python3,在上面的命令中使用“pip3”替换“pip”。或者点这里下载源代码并在解压之后运行以下命令:

python setup.py install

下载所有的数据和模型,在安装之后运行以下命令:

python -m spacy.en.download all

现在准备就绪去探索和使用spaCy啦!

2.spaCy的pipeline和属性

通过创建pipeline来启动spaCy实现和对不同属性的访问。Pipeline是通过加载模型来创建的。程序包中提供了不同类型的模型,其中包含关于语言的信息—词汇表、受过训练的向量、语法和实体。

我们将加载一个英语核心web的默认模型。

import spacy

nlp = spacy.load(“en”)

对象“NLP”用于创建文档、访问语言注释和不同的NLP属性。让我们通过在pipeline中加载文本数据来创建一个文档。我使用从tripadvisor网站获得的酒店的评论。数据文件可以在 这里下载。

document = unicode(open(filename).read().decode('utf8'))

document = nlp(document)

这份文件现在已经成为了spaCy英语模型的类的一部分,并与许多属性相关联。

文档(或Token)的属性可以使用以下命令列出:

dir(document)

>> [ 'doc', 'ents', … 'mem']

这将输出大量的文档属性,例如-Token、Token的引用索引、语音标记的一部分、实体、向量、情绪、词汇表等等。让我们来探索其中的一些属性。

2.1令牌化技术(TOKENIZATION)

每个spaCy文档都被标记为句子,并进一步进入Tokens,可以通过迭代文档来访问:

# first token of the doc

document[0]

>> Nice

# last token of the doc

document[len(document)-5]

>> boston

# List of sentences of our doc

list(document.sents)

>> [ Nice place Better than some reviews give it credit for.,

Overall, the rooms were a bit small but nice.,

...

Everything was clean, the view was wonderful and it is very well located (the Prudential Center makes shopping and eating easy and the T is nearby for jaunts out and about the city).]

2.2 词性标注(POS)

词性标注是词在语法正确的句子中所使用的词的属性。这些标记可以用作信息过滤、统计模型和基于规则的解析的文本特性。

让我们检查一下我们文档的所有pos标签:

# get all tags

all_tags = {w.pos: w.pos_ for w in document}

>> {97: u'SYM', 98: u'VERB', 99: u'X', 101: u'SPACE', 82: u'ADJ', 83: u'ADP', 84: u'ADV', 87: u'CCONJ', 88: u'DET', 89:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值