NLP spaCy使用(一,简介)
由于最近希望从客户需求端入手,故而必须做需求文档的语义分析,而且,对于NLP一直心中想做的一点事情,正巧,有人推荐spaCy,希望用stanford的NLP+spaCy。一边从文档入手,一边保留些笔记,希望志同道合朋友指正。
什么是spaCy
spaCy是Expolsion(德国)公司发布的一个开源的,以工业化应用为目标的NLP库。用于Python和Cython。该系统采用最新的NLP相关方面的研究结果。就目前的应用而言,该系统更多的用于教学和科研中,离工业化应用还有一定的距离。不过,个人认为,整体的NLP发展阶段也处于探索中后期。
在最新的spaCy版本中,包含了经过训练的“管道”,同时支持全球近60种语言表计划和基于NLP的训练,具备有最先进的速度和神经网络模型,用于标记、解析、命名实体识别、文本分类等,诸如使用 BERT 等预训练转换器进行多任务学习,以及训练后的系统打包、部署和工作流管理。
安装spaCy和环境要求
- 系统要求
操作系统:macOS/OS X, linux, Window(cygwin, MinGW, visual Studio)
python version: 3.6+ 64位
安装包管理系统:pip, conda(conda-forge)
- pip
在使用pip安装spaCy前,需要更新pip及相关工具(setuptools,wheel)到最新版本。
采用命令:python -m pip install –upgrade pip
具体安装和升级spaCy的命令如下:
pip install -U pip setuptools wheel
pip install spacy
如果需要升级spacy,可以采用下面命令:
pip install -U spacy。
在spaCy的setup.cfg文件中的“options.extra_require]”区中,包括安装诸如spycy[ja]或者spacy[lookups, transformers]。
如安装中文包,可以使用
pip install spacy[zh]
我计算机已经安装了中文包,所以用日文作为测试,最后显示结果如下:
Requirement already satisfied: charset-normalizer~=2.0.0 in c:\python38\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy[ja]) (2.0.6)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\python38\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy[ja]) (1.26.7)
Requirement already satisfied: idna<4,>=2.5 in c:\python38\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy[ja]) (3.2)
Collecting dartsclone~=0.9.0
Downloading dartsclone-0.9.0-cp38-cp38-win_amd64.whl (99 kB)
|████████████████████████████████| 99 kB 819 kB/s
Collecting sortedcontainers~=2.1.0
Downloading sortedcontainers-2.1.0-py2.py3-none-any.whl (28 kB)
Requirement already satisfied: Cython in c:\python38\lib\site-packages (from dartsclone~=0.9.0->sudachipy>=0.4.9->spacy[ja]) (0.29.24)
Requirement already satisfied: colorama in c:\python38\lib\site-packages (from tqdm<5.0.0,>=4.38.0->spacy[ja]) (0.4.4)
Requirement already satisfied: click<9.0.0,>=7.1.1 in c:\python38\lib\site-packages (from typer<0.5.0,>=0.3.0->spacy[ja]) (8.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in c:\python38\lib\site-packages (from jinja2->spacy[ja]) (2.0.1)
Using legacy ‘setup.py install’ for sudachidict-core, since package ‘wheel’ is not installed.
Installing collected packages: sortedcontainers, dartsclone, sudachipy, sudachidict-core
Running setup.py install for sudachidict-core … done
Successfully installed dartsclone-0.9.0 sortedcontainers-2.1.0 sudachidict-core-20201223.post1 sudachipy-0.5.4 - 使用conda安装spaCy
conda在海外也具有很大的用户量, 安装spaCy的命令如下:
conda install -c conda-forge spacy
下载spaCy的模块包
spaCy的训练子系统可以通过python的包管理进行安装。这样,spaCy相关控件和其他python控件模块一样,进行安装。
主要的模块包括:
文档 | 描述 |
---|
Available pipeline | Pipeline的详细信息,精准度和基准等信息 |
Models Documentation | 详细的使用和安装文档 |
Training | 如何使用数据训练自己的pipeline |
安装示例:
python -m spacy download en_core_web_sm
中文相关的命令为:
python -m spacy download zh_core_web_sm
如果已经下载到本地的加载模式或者从github中加载:
pip install /User/you/en_core_web_sm-3.0.0.0.tar.gz
pip install https://github.com/explosion/spacy-models/release/download/en_core_web_sm_3.0.0/en_core_web_sm-3.0.0.tar.gz
如何加载上述模块
使用spacy.load()函数,示例如下:
import spacy
nlp = spacy.load(“en_core_web_sm”)
doc=nlp(“this is a sentence”)