1. 安装

1.1 安装spaCy

$ sudo pip3 install spacy


  • 注意:此处使用的是python3
  • 执行此命令之前应先确保pip已安装,可通过如下命令进行检测是否安装 pip3 --version
  • 运行结果如下,则未安装

python+spaCy进行自然语言处理(NLP)_NLP

  • 执行sudo apt install python3-pip命令进行安装
  • 安装spaCy的过程中要保证网络畅通,否则会报错
  • 安装成功如下所示

python+spaCy进行自然语言处理(NLP)_词性标注_02

1.2 下载spaCy的数据集和模型

在线安装行不通,只能离线安装,english对应的统计模型共四个,可以选择需要的进行离线下载

先只下载en_core_web_sm,下载对应的github地址为​​https://github.com/explosion/spacy-models/tags​

python+spaCy进行自然语言处理(NLP)_python_03

如上图,点击Downloads,翻到新打开页面的最下方,点击第二个,即可下载en_core_web_sm-3.1.0.tar.gz

python+spaCy进行自然语言处理(NLP)_github_04

在下载位置的地方打开终端,执行命令

$ pip install en_core_web_sm-3.1.0.tar.gz


运行结果如下,安装成功

python+spaCy进行自然语言处理(NLP)_python_05

可通过如下操作进行测试:

lmy@LMY-LAPTOP:~/NLP$ python3
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import spacy
>>> spacy.load("en_core_web_sm")
<spacy.lang.en.English object at 0x7f4bddc37670>
>>>


2. spaCy的简单使用

2.1 查看活动的管道组件

>>> import spacy
>>> nlp = spacy.load("en_core_web_sm")
>>> doc = nlp("He went to play basketball")
>>> nlp.pipe_names
['tok2vec', 'tagger', 'parser', 'attribute_ruler', 'lemmatizer', 'ner']


2.2 词性标注

>>> for item in doc:
... print(item.text, "-->", item.pos_)
...
He --> PRON
went --> VERB
to --> PART
play --> VERB
basketball --> NOUN
>>> spacy.explain("PART")
'particle'


2.3 依存分析

>>> for item in doc:
... print(item.text, "-->", item.dep_)
...
He --> nsubj
went --> ROOT
to --> aux
play --> advcl
basketball --> dobj
>>> spacy.explain("nsubj"), spacy.explain("ROOT"), spacy.explain("aux"), spacy.explain("advcl"), spacy.explain("dobj")
('nominal subject', None, 'auxiliary', 'adverbial clause modifier', 'direct object')


2.4 基于spaCy的命名实体识别

>>> doc = nlp("Indians spent over $71 billion on clothes in 2018")
>>> for ent in doc.ents:
... print(ent.text, ent.label_)
...
Indians NORP
over $71 billion MONEY
2018 DATE
>>> spacy.explain("NORP")
'Nationalities or religious or political groups'