作者:Paco Nathan
翻译:笪洁琼
校对:和中华
本文约6600字,建议阅读15分钟。
本文简要介绍了如何使用spaCy和Python中的相关库进行自然语言处理(有时称为“文本分析”)。以及一些目前最新的相关应用。
介绍
本文与配套的Domino项目,简要介绍了如何使用spaCy和相关库在Python中处理自然语言(有时称为“文本分析”)。业界的数据科学团队时常处理大量文本数据,这也是机器学习中使用的四大数据类别之一,通常是人为生成的文本,但也不全是这样。
想想看:商业世界的“操作系统”是如何运行的? 通常,有合同(销售合同、工作协议、合作关系),发票,保险单,规章制度和其他法律条文等等。所有这些都被表示为文本。
你可能会遇到一些缩写词:自然语言处理(NLP),自然语言理解(NLU),自然语言生成(NLG),简单地说,分别是“阅读文本”、“理解意义”、“输出文本”。这些任务越来越多地重叠,而且很难分类。
spaCy框架——以及越来越多的插件和其他集成(包)——为各种各样的自然语言任务提供了支持。它已经成为Python中最广泛使用的工业级自然语言库之一,并且拥有相当大的社区,因此,随着该领域的快速发展,它为科研进展进展的商业化提供了足够地支持。
开始
我们已经在Domino中配置了默认的软件环境,以包含本教程所需的所有包、库、模型和数据。请查看Domino项目以运行代码。
如果您对Domino的计算环境如何工作感兴趣,请查看说明页面。
说明页面
https://support.dominodatalab.com/hc/en-us/articles/115000392643-Environment-management
现在让我们加载spaCy并运行一些代码:
import spacynlp = spacy.load("en_core_web_sm")
该nlp变量现在是您通向所有spaCy的入口,并装载了en_core_web_sm英文模型。接下来,让我们通过自然语言解析器来运行一个小“文档”:
text = "The rain in Spain falls mainly on the plain."doc = nlp(text)for token in doc: print(token.text, token.lemma_, token.pos_, token.is_stop)
The the DET Truerain rain NOUN Falsein in ADP TrueSpain Spain PROPN Falsefalls fall VERB Falsemainly mainly ADV Falseon on ADP Truethe the DET Trueplain plain NOUN False. . PUNCT False
首先,我们从文本创建一个doc(注:spaCy中的一种数据结构)文档,它是一个容器,存放了文档以及文档对应的标注。然后我们遍历文档,看看spaCy解析了什么。
由于信息有点多,读起来有点困难。让我们将这个句子的用spaCy解析结果重新格式化为pandas库的 dataframe:
import pandas as pdcols = ("text
|