问题标签 [spacy-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Spacy 3 对命名实体识别的置信度得分
我需要获得 NER 'de_core_news_lg' 模型预测的标签的置信度分数。Spacy 2 中有一个众所周知的解决方案:
但是,在 Spacy 3 中,我收到以下错误:
显然language
对象不再具有entity
属性。有谁知道如何在 Spacy 3 中获得置信度分数?
nlp - 如何使用 FP16 混合精度训练 Spacy3 项目
目标是以python -m spacy train
FP16 混合精度运行,以便在有限的 VRAM (RTX 2080ti 11 GB) 中使用大型变压器(roberta-large
、、albert-large
等)。
新的 Spacy3 project.yml训练方法直接使用通过Spacy-transformers v1.0加载的Huggingface-transformers 模型。只需添加标志(如此处所述) ,Huggingface 模型就可以混合精度运行。--fp16
spacy 配置是使用 生成的python -m spacy init config --lang en --pipeline ner --optimize efficiency --gpu -F default.cfg
,并由python -m spacy init fill-config default.cfg config.cfg --diff
. 但是找不到 FP16 / 混合精度。
重现
使用spaCy 项目:命名实体识别 (WikiNER)并更改init-config
为project.yml
使用 GPU 和转换器(roberta-base
默认情况下):
测试了什么
- 添加
--fp16
到python -m spacy project run
- 添加
--fp16
到python -m spacy train
- 添加
fp16 = true
到default.cfg
各个部分 ([components.transformer], [components.transformer.model], [training], [initialize]
)
逻辑transformers
在 FP16 中运行,如下所示:
软件堆栈细节
python - 在 Spacy 3 中向管道添加自定义组件
我用 Spacy3 训练了一个 NER 模型。我想在 NER 任务的管道中添加一个自定义组件 (add_regex_match)。目的是改进现有的NER结果。
这是我要实现的代码:
当我想使用命令行评估保存的模型 ml_rule_regex_model 时python -m spacy project run evaluate
,出现错误:'ValueError: [E002] Can't find factory for 'add_regex_match' for language German (de)。当 spaCynlp.create_pipe
使用未在当前语言类上注册的自定义组件名称调用时,通常会发生这种情况。如果您使用的是 Transformer,请确保安装“spacy-transformers”。如果您使用的是自定义组件,请确保您已添加装饰器@Language.component
(用于功能组件)或@Language.factory
(用于类组件)。
我该怎么做?有没有人有经验?非常感谢您的提示。
spacy - Spacy [E047] 无法为未注册的扩展属性“trf_data”赋值
我正在尝试使用 Spacy 的 en_core_web_trf 进行句子分离。出于某种原因,我收到“[E047] 无法为未注册的扩展属性 'trf_data' 赋值。你忘记调用该set_extension
方法了吗?” 当我将模型切换到 en_core_web_lg 时,它起作用了。知道如何使用 trf 模型吗?谢谢
config - spaCy v3 [E930] `el_core_news_lg` 的训练配置文件
我想使用el_core_news_lg
spaCy v3 中引入的训练配置文件为 NER 任务进一步训练 spaCy 的希腊模型。
spacy train
命令抛出错误:
[E923] It looks like there is no proper sample data to initialize the Model of component 'tok2vec'. To check your input data paths and annotation, run: python -m spacy debug data config.cfg
当我spacy debug data
按照错误提示运行时,出现错误:
[E930] Received invalid get_examples callback in Tok2Vec.initialize. Expected function that returns an iterable of Example objects but got: []
有任何想法吗?
python - 我可以使用 spacy 在字符串中识别“问题词”(谁,如何,何时......)?
我有一个字符串
此代码正在打印字符串的所有文本、依赖项和位置。我想在字符串中识别问题词“How”。
python - 在 Spacy 3.0 中使用预训练的 BERT 嵌入作为 textcat 模型的输入
我正在尝试切换到 Spacy 3.0 的培训配置文件框架,并且无法将设置调整为我想做的事情。简单地说,我想使用一个开箱即用的 textcat 模型(例如,词袋),但传入由预训练的转换器(例如,bert base cased)产生的词嵌入,而不进行任何微调。到目前为止,我一直在使用 Spacy 网站上提供的 texcat 配置模板。
任何帮助将非常感激。如有必要,我可以提供更多详细信息。谢谢!
python - ImportError 在 jupyter notebook 中加载 spacy
我遇到了一个我似乎无法弄清楚的问题。我第一次将 Spacy 导入 Jupyter 笔记本时没有任何问题。它只是按我的预期导入了它。
我第二次尝试导入它(使用不同的笔记本),我得到:
所以我尝试重新启动内核并再次尝试(认为这可能是问题)。那并没有解决它。同样尝试运行在第一个笔记本中导入 Spacy 的同一单元格在第一次运行良好后现在也会引发错误。
memory-leaks - 内存泄漏与 en_core_web_trf 模型,Spacy
使用 en_core_web_trf 模型的管道时存在内存泄漏,我使用具有 16GB RAM 的 GPU 运行模型,这是代码示例。
此代码在达到 31K 时会破解,并引发 OOM 错误。
我只是使用管道来预测,而不是训练任何数据或其他东西,并尝试使用不同的批量大小,但什么也没发生,仍然崩溃。
你的环境
- spaCy 版本: 3.0.5
- 平台: Linux-4.19.112+-x86_64-with-Ubuntu-18.04-bionic
- Python版本: 3.7.10
- 管道: en_core_web_trf (3.0.0)
python-3.x - 如何在具有 glibc 2.14 的 unix 机器上导入 spacy 3?
我在装有 glibc 2.12 的 Unix 机器上安装了 spacy 3.0.4。当我这样做时import spacy
,它会抛出一个错误,提示找不到版本“GLIBC_2.14” 。除了升级到 2.14 之外,还有其他解决方法吗?