基于spacy的句法依存、实体识别、分析

2023-12-13 19:01:51

简介

spaCy

spaCy 是一个 Python 和 CPython 的 NLP 自然语言文本处理库。因此它是一个非常快的库。它建立在最新的研究基础上,从设计的第一天起就被用于实际产品中。

spaCy 自带预训练的管道,目前支持 60 多种语言的标记化和训练。它具有最先进的速度和神经网络模型,可用于标记、解析、命名实体识别、文本分类等,使用 BERT 等预训练的变换器进行多任务学习,以及生产就绪的训练系统和简单的模型打包、部署和工作流管理。

特性:

  • 支持 60 多种语言
  • 经过训练的管道可以处理不同的语言和任务
  • 使用像 BERT 这样的预训练变压器进行多任务学习
  • 支持预训练的单词向量和嵌入
  • 最先进的速度
  • 生产就绪培训系统
  • 语言驱动的标记化
  • 用于命名实体识别、词性标记、依存关系分析、句子分段、文本分类、词 义化、形态分析、实体链接等的组件
  • 使用自定义组件和属性可轻松扩展
  • 支持 PyTorch、TensorFlow 和其他框架中的自定义模型
  • 内置用于语法和 NER 的可视化工具
  • 易于模型打包、部署和工作流管理
  • 可靠的、经过严格评估的精确度

系统环境与版本

安装

安装 Spacy

pip install spacy

下载数据和模型

python -m spacy download en

如果spacy报错“TypeError: Plain typing.NoReturn is not valid as type argument”,原因是python3.7.0,请将python升级至3.7.2

conda create -n your_env_name
python=your_python_version的方法创建虚拟环境,并使用source activate
your_env_name方式激活该虚拟环境,并在其中安装与默认(主)python环境不同的软件包等。

当激活该虚拟环境时,ipython下是可以正常加载的。但是打开Jupyter Notebook,会发现其加载的仍然是默认的Python
kernel,而我们需要在notebook中也能使用新添加的虚拟环境。
参考文献:https://94e.cn/info/5744

jupyter notebook 添加核和删除核

安装中文:

为了运行nlp = spacy.load(“zh_core_web_sm”),官方提供的$ python -m spacy download zh_core_web_sm 安装失败,所以只能手动安装
方案1
直接通过连接下载:https://github.com/explosion/spacy-models/releases/download/zh_core_web_sm-3.3.0/zh_core_web_sm-3.3.0.tar.gz
執行:pip install zh_core_web_sm-3.3.0.tar.gz

方案2
1.打开 https://spacy.io/models/zh??????

找到

RELEASE DETAILS
https://github.com/explosion/spacy-models/releases/tag/zh_core_web_sm-3.3.0
在这里插入图片描述

2.下载到本地,并且保存到/user/xxx/这个文件夹下

3.打开终端,输入命令 pip install zh_core_web_sm-3.3.0.tar.gz

ps:目前是3.3.0版本

————————————————
版权声明:本文为CSDN博主「m0_70294827」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_70294827/article/details/124963861

应用示例

import spacy
from spacy import displacy
from collections import Counter

nlp_zh = spacy.load('zh_core_web_sm')
doc = nlp_zh('【郑渝高铁首发,南阳日报社记者带你沿线游】#郑渝高铁 现代化“副中心”建设新支撑# #郑渝高铁全线贯通# #郑渝高铁开通首发# 6月20日上午的在郑渝高铁首发车上,省人大代表马金霞接受南阳日报社记者采访。')
# doc = nlp_zh(text1)
for entity in doc.ents:
    entities.append(str(entity) + ':' + str(entity.label_))
print(entities)


在这里插入图片描述

spacy.displacy.render(doc, style="ent", jupyter=True)

在这里插入图片描述

参考文献

https://blog.csdn.net/sikh_0529/article/details/128667976
https://www.freesion.com/article/23761383290/
https://paper.yanxishe.com/TextTranslation/3195
训练:
https://blog.51cto.com/u_15127631/2739400
https://www.codenong.com/43341148/
https://www.coder.work/article/360381
https://blog.csdn.net/sikh_0529/article/details/128667976
http://cn.voidcc.com/question/p-tfrxwxnj-bnm.html
官方:
https://spacy.io/usage/training
https://spacy.io/
https://gitcode.com/mirrors/explosion/spacy/tree/master?utm_source=csdn_github_accelerator&isLogin=1
https://cloud.tencent.com/developer/article/1346772

文章来源:https://blog.csdn.net/HHTNAN/article/details/124093092
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。