本文记录如何在使用uv管理python项目dependencies时,把spaCy的模型也纳入其中.

spaCy

一、spaCy简介

spaCy是一个开源的自然语言处理(NLP)库,它主要用于处理文本数据。它支持多种语言,包括英语、中文等。它是由Explosion AI公司开发的,以简单易用和高性能著称。

二、主要功能

  1. 分词(Tokenization)
    • spaCy可以将文本分割成单词、标点符号等基本单元,这是文本处理的基础步骤。例如,对于句子“I love natural language processing.”,它会将其分割为[“I”, “love”, “natural”, “language”, “processing”, “.”]等token。
  2. 词性标注(Part - of - Speech Tagging)
    • 它能够识别文本中每个单词的词性。比如在句子“He quickly ran to the store.”中,“He”是代词(PRON),“quickly”是副词(ADV),“ran”是动词(VERB),“to”是介词(ADP),“the”是冠词(DET),“store”是名词(NOUN)。
  3. 依存句法分析(Dependency Parsing)
    • spaCy可以分析句子的结构,确定单词之间的依存关系。例如在句子“The cat sat on the mat.”中,它能确定“cat”是主语(nsubj),“sat”是谓语(ROOT),“on”是介词(prep),“mat”是宾语(pobj)等依存关系,这对于理解句子的语义结构很有帮助。
  4. 命名实体识别(Named Entity Recognition,NER)
    • 它能够识别文本中的命名实体,如人名、地名、组织名、日期等。比如在文本“Steve Jobs was the CEO of Apple Inc. in 2000.”中,它能够识别出“Steve Jobs”是人名,“Apple Inc.”是组织名,“2000”是日期。
  5. 文本分类(Text Classification)
    • spaCy支持对文本进行分类任务,例如情感分析(判断文本是正面情感、负面情感还是中性情感)或者主题分类(判断文本属于哪个主题类别,如体育、科技等)。
  6. 实体链接(Entity Linking)
    • 它可以将文本中识别的实体与知识库中的实体进行链接。例如,将文本中提到的“埃菲尔铁塔”链接到维基百科中对应的“埃菲尔铁塔”条目,这样可以更好地理解实体的详细信息。

问题描述

sapCy在使用的时候,需要下载目标语言的模型,如果以英文为例就是en_core_web_sm, 中文可以是zh_core_web_lg ,可以用如下脚本下载

# download en_core_web_sm
python -m spacy download en_core_web_sm# download zh_core_web_lg
python -m spacy download zh_core_web_lg

问题出现在用uv进行依赖管理的场景下,因为这些下载的模型没有被加入到依赖列表中,每次重新进行uv sync 操作后,就会丢失这些依赖. 虽然这些模型实际上也是一个依赖包,但是不在官方的registry中,不能直接y用uv add这种方式进行安装.

解决方案

命令行参数

因为是uv sync时造成了模型删除,那么就是uv严格对照依赖列表中的各个依赖项进行处理,把不在其中的都移除了. 根据这个思路,可以用明亮行参数来改变这个行为

uv sync --inexact

这样操作即可. 但这个方案有缺点,因为不会自动下载model,在新的环境中执行spaCy相关任务会报错.

手动声明依赖

这个方案是笔者最终采纳的方案,把模型的下载路径手动写到依赖中,这样不仅可以不被删除,而且在新环境中还会自动下载

dependencies = ["en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl","zh-core-web-lg @ https://github.com/explosion/spacy-models/releases/download/zh_core_web_lg-3.8.0/zh_core_web_lg-3.8.0-py3-none-any.whl"
]

注意修改为自己所需的版本即可.

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

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

相关文章

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…

Rust 学习笔记:Box<T>

Rust 学习笔记&#xff1a;Box Rust 学习笔记&#xff1a;Box<T\>Box\<T> 简介使用 Box\<T\> 在堆上存储数据启用带有 box 的递归类型关于 cons 列表的介绍计算非递归类型的大小使用 Box\<T\> 获取大小已知的递归类型 Rust 学习笔记&#xff1a;Box<…

英语写作中“不少于(小于)”no less than替代no fewer than的用法

no less than 1 liter of water&#xff0c;no fewer than 100 people 是我们的传统用法。现代英语有一个有趣的现象&#xff0c;就是less 代替fewer 形容可数名词&#xff0c;例如&#xff1a; Do you have 10 courses each week? No. We have less. 显然按严格语法应该是…

竞品分析六大步骤

一、引言 在产品打磨、市场推广或战略定位过程中&#xff0c;我们常常会面临一个关键任务——竞品分析。一份系统的竞品分析不仅能帮助我们知己知彼&#xff0c;优化产品策略&#xff0c;更能成为决策层制定方向的重要依据。竞品分析到底该怎么做&#xff1f;今天我将结合自己的…

【Java Web】9.Maven高级

&#x1f4d8;博客主页&#xff1a;程序员葵安 &#x1faf6;感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb; 文章目录 一、分模块设计与开发 1.1 介绍 1.2 实践 二、继承与聚合 2.1 继承 继承关系 版本锁定 2.2 聚合 2.3 继承与聚合对比 三、…

MySQL 全量、增量备份与恢复

一.MySQL 数据库备份概述 备份的主要目的是灾难恢复&#xff0c;备份还可以测试应用、回滚数据修改、查询历史数据、审计等。之前已经学习过如何安装 MySQL&#xff0c;本小节将从生产运维的角度了解备份恢复的分类与方法。 1 数据备份的重要性 在企业中数据的价值至关…

第六个微信小程序:教师工具集

源于工作需要&#xff0c;下面开始。 安装及使用 | Taro 文档 vscode 代码管理 git 辅助 开发技术如上&#xff1a; 1.开始创建模板 taro4.1.1 $ taro init teachers-tools 2.用vsocde开始吧。 选择 第二个文件夹找一。 (base) PS D:\react\teachers-tools> pnpm…

Linux 里 su 和 sudo 命令这两个有什么不一样?

《小菜狗 Linux 操作系统快速入门笔记》目录&#xff1a; 《小菜狗 Linux 操作系统快速入门笔记》&#xff08;01.0&#xff09;文章导航目录【实时更新】 Linux 是一个多用户的操作系统。在 Linux 中&#xff0c;理论上来说&#xff0c;我们可以创建无数个用户&#xff0c;但…

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …

服务器被攻击了怎么办

可以上一个高防IP或者AI云防护都是可以的。&#xff08;有效防御CC、APl接口、http、tcp、WEB应用扫描/爬虫、SYN、WAF、DDOS、UDP、入侵、渗透、SQL注入、XSS跨站脚本攻击、远程恶意代码执行、session fixation、Webshell攻击、恶意请求&#xff0c;恶意扫描、暴力破解、CSRF等…

【学习笔记】Circuit Tracing: Revealing Computational Graphs in Language Models

Circuit Tracing: Revealing Computational Graphs in Language Models 替代模型(Replacement Model)&#xff1a;用更多的可解释的特征来替代transformer模型的神经元。 归因图(Attribution Graph)&#xff1a;展示特征之间的相互影响&#xff0c;能够追踪模型生成输出时所采用…

灵活控制,modbus tcp转ethernetip的 多功能水处理方案

油田自动化和先进的油气行业软件为油气公司带来了诸多益处。其中包括&#xff1a; 1.自动化可以消除多余的步骤、减少人为错误并降低运行设备所需的能量&#xff0c;从而降低成本。 2.油天然气行业不断追求高水平生产。自动化可以更轻松地减少计划外停机时间&#xff0c;从而…

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…

windows VeraCrypt – 磁盘加密工具

下载链接&#xff1a;夸克网盘分享 VeraCrypt一款跨平台(Windows/Mac/Linux)的磁盘加密工具&#xff0c;提供多层级数据保护方案&#xff1a;虚拟加密盘&#xff1a;在文件中创建可挂载的加密虚拟磁盘全设备加密&#xff1a;支持分区/USB/硬盘等存储设备的全盘加密系统盘加密&…

客户体验数据使用的三种视角——场景视角

当企业收集到大量的客户体验数据之后&#xff0c;应该如何应用&#xff1f;有哪些主要的使用场景和分析视角&#xff1f;体验家团队通过三篇文章&#xff0c;陆续介绍三种体验数据的使用场景&#xff0c;以帮助企业更有效地利用体验数据进行改进。 01 宏观层次的“旅程视角” …

时序数据库IoTDB的UDF Sample算法在数据监控、故障预防的应用

一、数据监控在工业物联网中的重要性 设备数据监控是工业物联网&#xff08;IoT&#xff09;中最为广泛应用的领域之一。通过实时监控工厂机械设备的运行状态&#xff0c;企业能够提前发现设备的潜在故障&#xff0c;从而实现预防性维护与可预测性维护。这一做法不仅能有效提升…

fastadmin fildList 动态下拉框默认选中

html页面 <td><select class"form-control dtselect" data-rule"required" data-dtselected"<%row.type%>" name"<%name%>[<%index%>][type]">{foreach nametypeList idvo}<option value"{$vo…

Python 入门到进阶全指南:从语言特性到实战项目

一、Python 简介 Python 是一种高级、跨平台、解释型编程语言&#xff0c;以简洁语法和高可读性著称&#xff0c;既适合编程初学者快速入门&#xff0c;也能满足资深开发者的复杂需求。其核心特性与应用场景如下&#xff1a; 核心特性解析 解释型语言&#xff1a;无需编译即可…

【unity游戏开发入门到精通——通用篇】从零掌握UnityWebRequest:文件下载、表单提交、超时处理、断点续传

文章目录 一、UnityWebRequest 与 WWW 的比较二、核心组件三、常用方法四、基本使用示例1. GET请求2. POST请求五、实用功能1. 下载进度显示2. 断点续传实现3. 文件上传到服务器六、使用建议七、性能优化专栏推荐完结一、UnityWebRequest 与 WWW 的比较 UnityWebRequest 是 Un…

使用 Flutter 开发 App 时,想要根据 Figma 设计稿开发出响应式 UI 界面

在使用 Flutter 开发 App 时&#xff0c;想要根据 Figma 设计稿开发出响应式 UI 界面&#xff08;Responsive UI&#xff09;&#xff0c;以适配不同尺寸和分辨率的手机设备&#xff0c;需要从 设计阶段 和 编码实现阶段 双向配合。以下是详细的实现思路与方法&#xff1a; &am…