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

文章目录

    • 简介
      • spaCy
      • 特性:
    • 系统环境与版本
    • 安装
    • 应用示例
    • 参考文献

简介

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 Counternlp_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好用的硬盘分区工具,傲梅分区助手 V10.2

傲梅分区助手软件可以帮助用户在硬盘上创建、调整、合并、删除分区,以及管理磁盘空间等操作。它可以帮助你进行硬盘无损分区操作。 支持系统 目前这款软件支持 Windows 7、Windows 8、Windows 10、Windows 11 等个人系统,还支持 Windows 2012/2016/2019…

五金品牌网站建设的效果如何

五金产品多而广,无论零售还是批发,都有很高需求,市场中也林立着众多大小品牌,在实际经营中,五金也分为多个类目,同时高需求下相关企业也面临着一些痛点: 1、品牌传播难 对普通消费者来说&…

android下的app性能测试应主要针对那些方面,如何开展?

如何开展安卓手机下的App性能测试,对于优秀的测试人员而言,除了要懂得性能测试的步骤流程外,还应该懂的性能测试的一些其他知识,比如性能测试指标、各指标的意义,常用的性能测试工具、如何查看结果分析等等知识。所以本…

linux空洞文件以及多线程写入

介绍空洞文件 Linux空洞文件(hole file)是一种特殊类型的文件,其大小可能超过实际存储的数据量。在空洞文件中,文件系统会为文件分配磁盘空间,但实际上只在文件中存储了部分数据,其余部分被称为"空洞…

linux应用程序直接return与exit的区别

在Linux应用程序中,可以使用return语句直接从main函数返回。这将导致程序终止并返回给操作系统。然而,有时候使用exit函数比直接使用return语句更有优势,以下是一些原因: 清理资源:exit函数可以确保在程序终止之前执行…

C/C++常见面试知识总结(三)

C语言是一种通用计算机(高级)编程语言;面向过程;广泛应用于计算机系统设计以及应用程序编写;设计目标,是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行…

01_Web开发基础之HTML+CSS

Web开发基础之HTMLCSS 学习目标和内容 1、能够描述Web开发需要的技术点 2、能够描述HTML的作用 3、能够实现一个列表 4、能够实现创建一个表格 5、能够实现一个表单 6、能够描述CSS的作用 7、能够使用选择器获取到标签 8、能够使用CSS设置字体的颜色和大小 一、Web开发相关介绍…

Python+Selenium UI自动化测试环境搭建及使用

一、什么是Selenium ? Selenium 是一个浏览器自动化测试框架,它主要用于web应用程序的自动化测试,其主要特点如下:开源、免费;多平台、浏览器、多语言支持;对web页面有良好的支持;API简单灵活易…

window同时安装java8和java11

背景 在日常工作中,使用的工具,有一些java写的比较老的工具,环境要求是1.8,有一些java写的工具,环境要求是java11以上。 痛点 使用java写的工具要求是1.8的java,但是window电脑上只安装了java11。就会报下面的错误 …

pytorch中数据预处理模块:transforms详解

1 tranforms概述 1.1 torchvision介绍 torchvision是pytorch的计算机视觉工具包,主要有以下三个模块: torchvision.transforms:提供了常用的一系列图像预处理方法,例如数据的标准化,中心化,旋转&#xff…

Redis实现延迟队列

目录 一、什么是延时队列 二、延时队列的应用 三、举例说明 我的设计思想: 一、什么是延时队列 延时队列相比于普通队列最大的区别就体现在其延时的属性上,普通队列的元素是先进先出,按入队顺序进行处理,而延时队列中的元素在入队时会指定…

策略+工厂完成支付方式选择(微信/支付宝),简单实现

需求 传参String payType wechat 使用微信支付传参String payType ali 使用支付宝支付代码不允许出现if-else 思路 把支付当作一个行为,代码中当作一个接口,payService。2个实现类,分别是微信支付实现类WeChatPayServiceImpl&#xff0c…

4G无线工业级路由器在智能制造设备互联互通中的角色

随着工业技术的不断发展和进步,智能制造已经成为了现代制造业的重要趋势和发展方向。而在智能制造过程中,设备之间的互联互通是至关重要的一环。在这个过程中,4G无线工业级路由器扮演着重要的角色,它提供了稳定可靠的网络连接&…

c语言->浅学结构体

系列文章目录 文章目录 前言 ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青_C语言,函数,指针-CSDN博客 目的:学习结构体基础内容&am…

6.【自动驾驶与机器人中的SLAM技术】鲁邦核函数的含义和应用

目录 1. 给ICP和NDT配准添加柯西核函数1.1 代码实现 2. 将第1部分的robust loss引入IncNDTLO和LooselyLIO,给出实现和运行效果3. 从概率层面解释NDT残差和协方差矩阵的关系,说明为什么NDT协方差矩阵可以用于最小二乘4. 为LOAM like LO设计一个地面点云提…

从菜鸟到专业人士:来自真实 PRD 写作经验的 5 个改变游戏规则的产品管理课程

产品管理是一个复杂且具有挑战性的角色。PRD(即产品需求文档)就像构建产品的蓝图,可将其视为指导开发团队创造令人惊叹的产品的详细路线图。本文除了介绍产品经理如何写好PRD,也将进一步阐述产品经理应该学习哪些技能?…

玩转树莓派之系统安装篇

介绍 树莓派是树莓派基金会下的一个明星产品(单板计算机),已经迭代到第五代了;它性能强大、开源、拓展性强、体积小,搞物联网开发的人基本都听说过这个玩意!笔者手上刚好有一块4B的板子,让我们…

python封装执行cmd命令的方法

一、前置说明 在自动化时,经常需要使用命令行工具与系统进行交互,因此可以使用python封装一个执行cmd命令的方法。 二、代码实现 import subprocess import timefrom common.exception import RunCMDError from common.logger import loggerclass Cmd…

STM32储存器和总线构架

一、引言 本篇文章旨在介绍STM32小容量、中容量和大容量的储存器和系统构架,文中涉及到一些专有名词和概念较为抽象和陌生,建议读者能够查阅相关资料和知识加深了解。 二、正文 (一)、系统构架 在小容量、中容量和 大容量产品中…

在qemu平台使用gdb调试程序

1、使用gdb在qemu上调试程序 1.1、第一步:在qemu上运行程序并开启gdb server qemu-system-riscv64 -nographic -machine virt -m 128M -smp 1 -kernel …/bin/test.elf -s -S 1.2、第二步:使用gdb客户端连接gdb server -x:指定gdb的配置文件…