【拥抱AI】沉浸式体验SpaCy开源分词器

本节分享一下SpaCy的学习过程,感兴趣的小伙伴可以接着往下看,最后会附上测试代码和源码地址,如有认知错误的地方,还请批评指正,谢谢。

SpaCy的安装和下载

SpaCy是一个开源的Python自然语言处理库,可以通过pip进行安装:

pip install spacy

安装完成后,需要下载相应的语言模型,例如英语模型:

python -m spacy download en_core_web_sm

或者可以直接从GitHub上下载模型的压缩包,并在本地进行安装。

SpaCy的使用

使用SpaCy进行文本处理的基本步骤包括导入库、加载模型,并对文本进行处理。例如:

import spacy
nlp = spacy.load('en_core_web_sm')
text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

如果需要使用中文分词,则需要额外下载zh_core_web_sm包,然后再加载才不会报错。
下载前可以先校验升级一下spacy。

python -m spacy validate
python -m spacy download zh_core_web_sm
nlp = spacy.load('zh_core_web_sm')

处理后的文档对象doc可以用来获取词性标注、命名实体识别等信息。

SpaCy的主要功能

SpaCy提供了一系列自然语言处理功能,包括:

  • 词性标注(Part-of-Speech Tagging)
  • 命名实体识别(Named Entity Recognition, NER)
  • 依存句法分析(Dependency Parsing)
  • 词向量计算(Word Vectors)
  • 文本分类
  • 实体链接
  • 文本生成等

SpaCy的技术特点

  • 高性能:使用Cython和C++编写,提供快速的文本处理能力。
  • 易于使用:提供简洁的API接口,便于开发者快速上手。
  • 多语言支持:提供多种语言的预训练模型。
  • 模型扩展性:支持自定义模型和组件,便于根据特定需求调整模型。
  • 基于Transformer的模型:引入了基于Transformer的管道,支持多任务学习,提高了模型的扩展性和灵活性。

SpaCy的应用场景

  • 文本分类
  • 情感分析
  • 信息提取
  • 机器翻译
  • 问答系统
  • 聊天机器人

SpaCy的适用范围

SpaCy适用于需要高效文本处理和分析的各种应用,尤其是在工业级应用中,它能够处理大量文本数据,并提供准确的分析结果。

SpaCy支持的文档格式

SpaCy主要支持Python编程语言,并通过其库提供对文本数据的处理功能。它不直接处理特定的文档格式,而是处理字符串形式的文本数据。在实际应用中,可以将各种文档格式(如TXT、PDF、CSV等)中的文本内容提取出来,然后使用SpaCy进行进一步的自然语言处理。

下面是学习使用demo代码,仅供参考

import spacy
from spacy.tokenizer import Tokenizer
import re


# 加载预训练的模型
nlp = spacy.load('zh_core_web_sm') # 中文模型 zh_core_web_sm, 英文模型 en_core_web_sm


# 定义自定义分割规则
custom_infixes = ['#(.*?)#']

infix_re = spacy.util.compile_infix_regex(nlp.Defaults.infixes)
#print(infix_re)

# 创建一个新的Tokenizer实例,使用自定义规则
custom_tokenizer = Tokenizer(nlp.vocab, infix_finditer=infix_re.finditer)

# 将自定义Tokenizer应用到spaCy管道中
nlp.tokenizer = custom_tokenizer

# 定义处理文本的函数
def process_text(text):
    # 使用模型处理文本
    doc = nlp(text)
    print(doc)
    # 打印处理后的信息
    for token in doc:
        print(f'Token: {token.text}, Lemma: {token.lemma_}, POS: {token.pos_}, Tag: {token.tag_}, Dependency: {token.dep_}')


# 读取文件并处理每一行
def process_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            process_text(line.strip())
                

# 调用函数处理文件
file_path = '1.md' # 目标文件
process_file(file_path)

SpaCy的官方文档提供了详细的安装指南、使用说明和教程,可以帮助我们更好地了解和使用该库。
源码地址:https://github.com/explosion/spaCy

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云使用

注:本文的所有演示的代码都基于尚硅谷的尚乐代驾项目 对象存储COS 一种云存储器 官方文档: 对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com) 一 上传文件 1 初始化客户端 官方示例: // 1 传入获取到的临时密钥 (tmpSecret…

Qt | ubuntu20.04安装Qt6.5.3并创建一个example完整教程(涉及诸多开发细节,商用慎重)

点击上方"蓝字"关注我们 01、下载 >>> 下载Qt在线安装包 这里采用镜像地址进行下载,避免网络过慢。 镜像地址:http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/4.5/ 选择最新版本下载,如截至目前最新版本为qt-unified-linux-x64-4.5.2…

Python数据分析于可视化

Python数据分析于可视化 一、前言二、引言三、需求分析四、系统设计1.系统功能结构2.系统业务流程图 五、系统开发必备 一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,让我们一起来学习Python数据分析于可视化。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连…

计算机网络 --- 计算机网络的分类

一、计算机网络分类 1.1 按分布范围分类 举例:广域网(WAN)、局域网(LAN) 举例:个域网(PAN) 1.2 按传输技术分类 广播式网络――当一台计算机发送数据分组时,广播范围…

国外创意二维码应用案例:迪卡侬太会搞事情了!

想必大家还记得前不久轰动全球的蓝屏事件。多个国家多个行业的大量用户都受到了影响,就在航空公司、银行、超市、酒店、电信、媒体……因为突发的电脑蓝屏故障而手忙脚乱的时候,迪卡侬(Decathlon)却在这场“危机”中看到了机会。 …

VScode安装和使用教程,2024最新最全,零基础入门到精通,看完这一篇就够了!

# VSCode 安装使用教程(图文版) 工欲善其事,必先利其器 对于我们每一位软件工程师来说,都要有自己顺手的 IDE 开发工具,它就是我们的武器。 一个好用的 IDE 不仅能提升我们的开发效率,还能让我们保持愉悦…

51单片机+proteus仿真+基本实验学习1(跑马灯、独立按键和数码管)

目录 1.实验一跑马灯 1.1代码的生成 1.1.151单片机的延时函数的生成 1.1.251单片机的流水灯代码编写 1.2仿真框图 2.实验二I/O独立按键 2.1基本概念 2.1.1按键所需的基本知识 2.2代码的生成 2.2.1头文件定义的代码 2.2.2 执行代码 2.3仿真图 ​3实验三数码管 3.1基…

CentOS镜像源更新

如果 CentOS 7.9 的官方镜像源已不维护,你可以使用以下方法更新: 切换到其他镜像源:使用 CentOS 镜像站点或第三方镜像源,如 EPEL(Extra Packages for Enterprise Linux)。修改 /etc/yum.repos.d/CentOS-Ba…

电商API接口安全:构建稳固的数字防线

电子商务的蓬勃发展带来了前所未有的便利,同时也带来了新的安全挑战。API接口作为电商系统的核心组件,其安全性直接关系到企业的数据安全和业务连续性。因此,评估和加固电商API接口的安全性变得尤为重要。 电商API接口安全的重要性 电商API接…

Android生成Java AIDL

AIDL:Android Interface Definition Language AIDL是为了实现进程间通信而设计的Android接口语言 Android进程间通信有多种方式,Binder机制是其中最常见的一种 AIDL的本质就是基于对Binder的运用从而实现进程间通信 这篇博文从实战出发,用一个尽可能…

《深入浅出AI》前言知识:机器学习知识总结

👨‍💻面向对象: 本篇前言知识主要介绍机器学习,方便小白或AI爱好者学习基础知识。 💚友情提醒: 本文内容可能未能含概机器学习所有知识点,其他内容可以访问本人主页其他文章或个人博客&#xf…

【devops】devops-git之介绍以及日常使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代,企业升级 IT 基础设施,已不再是选择题,而是必答题。 数字化办公时代,企业为何要升级 IT 基础设施? 随着时代变化与科技进步,人们的工作方式也发生了巨大变化。如今,远程办公、全…

算法导论 总结索引 | 第五部分 第二十四章:单源最短路径

1、在最短路径问题中,给定一个带权重的有向图 G (V, E) 和权重函数 w: E→R ,该权重函数 将每条边映射到实数值的权重上。图中一条路径 p 〈v0, v1, …, vk〉 的权重 w(p) 是构成该路径的 所有边的权重之和: 定义从结点 u 到结点 v 的最短路…

电压跟随器的作用是什么?

电压跟随器(也称为单位增益放大器、缓冲放大器和隔离放大器)是一种电压增益为 1 的运算放大器电路。这意味着运算放大器不会对信号进行任何放大。 之所以称为电压跟随器,是因为输出电压直接跟随输入电压,即输出电压与输入电压相同…

测试工程师学历路径:从功能测试到测试开发

现在软件从业者越来越多,测试工程师的职位也几近饱和,想要获得竞争力还是要保持持续学习。基本学习路径可以从功能测试-自动化测试-测试开发工程师的路子来走。 功能测试工程师: 1、软件测试基本概念: 学习软件测试的定义、目的…

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

在当今高速发展的信息技术领域,特别是对于那些致力于前沿科技探索与实践的高校而言,拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台(Data Network Development Platform,简称DNDP)&am…

Marin说PCB之在CST软件中如何搭建两端子电容器--03

上期文章的结尾讲到的问题不知诸位大神们是否还记得:就是一颗新电容器的物料是否可以完全替换掉之前的Murata家的这个GRT033D70E105ME18物料? 小编我也看了私信有不少的人认为是可以替换掉的,原因是两个电容封装,容值都是一样的&a…

停止向供应商提供您的数据

组织管理其数据基础设施的方式正在发生重大转变。越来越多的公司认识到存储和计算分离的优势,从而获得更好的性能、成本节约和可扩展性。这一趋势是由 AI 和 ML 工作负载日益复杂所推动的,这些工作负载需要灵活、高性能的系统。Databricks 首席执行官 Al…

Java短信验证码

想利用java给用户发送短信的话,需要我们与电信、移动、联通三大巨头合作(其实还有广电,但是比较少用),让它帮你发信息,当然直接与它合作显然是不现实的,所以我们要借助第三方的短信平台来替我们…