Spacy 自然语言处理入门教程
Spacy 安装
-
建议在虚拟环境下安装
-
以下命令都是在shell环境下执行
pip 安装方法
# 创建虚拟环境
python -m venv .env_spacy
# 激活虚拟环境
source .env/bin/activate
# 更新pip, setuptools, wheel
pip install -U pip setuptools wheel
# 安装spacy
pip install -U spacy
# 安装 中文训练库
python -m spacy download zh_core_web_sm
conda 安装方法
# 创建虚拟环境
conda create --name env_spacy
# 激活虚拟环境
conda activate env_spacy
# 安装spacy
conda install -c conda-forge spacy
# 安装 中文训练库
python -m spacy download zh_core_web_sm
第一章
1.1 Spacy 介绍
spaCy是一个先进且广受欢迎的自然语言处理Python库。github:explosion/spaCy: 💫 Industrial-strength Natural Language Processing (NLP) in Python (github.com)
1.1.1 nlp对象
- 包含了自然语言处理的流程
- 包括了分词等任务的特定语言的规则
spaCy的核心就是包含了自然语言处理流程的对象。我们通常把这个变量叫做nlp
。
举个例子,要创造一个中文的nlp
的对象,我们要导入spacy
然后使用spacy.blank
方法来创建一个空的中文流程。 我们可以像一个函数一样使用nlp
对象来分析文本。
这个nlp对象包含了流程中的所有不同组件。
它还包含了一些特定语言相关的规则,用来将文本分词成为单个的词汇和标点符号。 spaCy支持多种不同语言。
1.1.2 Doc对象
# 导入spaCy
import spacy
# 创建一个空白的中文nlp对象
nlp = spacy.blank("zh")
# 使用nlp对象处理文本并生成doc实例
doc = nlp("大家好,我在学习自然语言处理。")
# 遍历doc实例中的词符
for token in doc:
print(token.text)
- 输出结果
大
家
好
,
我
在
学
习
自
然
语
言
处
理
。
由于调用的是空的中文流程,所以没有分词效果
当我们用nlp
对象来处理文本时,spaCy会创建一个Doc
的对象,这是"document"的缩写。 Doc可以让我们用结构化的方式来读取文本相关的信息,并且不会有信息丢失。
Doc用起来就像一个正常的Python序列,我们可以遍历它的词符, 或者使用索引读取其中一个词符。后面我们会详细介绍!
import spacy
# 创建一个nlp对象,同时调用中文中等语料库 sm 小,md 中,lg 大
nlp = spacy.load("zh_core_web_md")
# 使用nlp对象处理文本并生成doc实例
doc = nlp("大家好,我在学习自然语言处理。")
# 遍历doc实例中的词符
for token in doc:
print(token.text)
- 输出结果
大家
好
,
我
在
学习
自然
语言
处理
。
1.1.3 Token对象
Token
实例代表了一个文本中的词符,比如一个词或者一个标点符号。
要读取某一个位置的词符,我们可以直接使用doc的索引。
Token
实例同时提供了不同的属性可以让我们读取词符的其它信息。 比如.text
属性可以返回词符的原始文本。
import spacy
# 创建一个nlp对象,同时调用中文中等语料库 sm 小,md 中,lg 大
nlp = spacy