问题标签 [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 变压器矢量令牌对齐
我将 SpaCy3.0.1
与变压器模型 ( en_core_web_trf
) 一起使用。
当我之前使用 SpaCy 转换器时,可以从 aToken
或Span
. 然而,在 SpaCy 3 中,您似乎只能通过Doc
( doc._.trf_data
) 访问转换器向量,而无需与 SpaCy 令牌正确对齐。
如何获得 SpaCy 令牌和向量/字词之间的对齐?
或者,是否有一些函数可以让您直接获取 aToken
或的向量Span
?
python - 使用 spaCy 3 进行自定义 NER 训练会引发 ValueError
我正在尝试使用 spacy 3 添加自定义 NER 标签。我找到了旧版本的教程并对 spacy 3 进行了调整。这是我正在使用的整个代码:
此代码输出 ValueError 异常,但仅在 2 次迭代后 - 请注意前 2 行:
我看到ANIMAL
标签是通过调用添加的ner.move_names
。
当我更改值LABEL = 'PERSON
时,代码会成功运行并将马识别为PERSON
新数据。这就是我假设代码本身没有错误的原因。
有什么我想念的吗?我究竟做错了什么?请问有人可以复制吗?
注意:这是我在这里的第一个问题。我希望我提供了所有信息。如果没有,请在评论中告诉我。
python - spacy v3 en_core_web_trf 管道和 en_core_web_lg 管道之间的区别
我正在使用 spacy 版本 3 进行一些性能测试,以便在生产中正确调整我的实例大小。我正在观察以下内容
观察:
型号名称 | 没有NER的时间 | NER时间 | 注释 |
---|---|---|---|
en_core_web_lg | 4.89 秒 | 21.9 秒 | NER 将原始时间增加 350% |
en_core_web_trf | 43.64 秒 | 52.83 秒 | NER 只比原来的时间增加了 20% |
为什么在 Transformer 模型的情况下,有 NER和没有 NER场景之间没有显着差异?在 en_core_web_trf 的情况下,NER 只是 POS 标记后的增量任务吗?
测试环境: GPU实例
测试代码:
python - 无法在 conda 环境中将 spacy 更新到较新的版本 3
我一直在尝试将 spacy 更新到 conda 环境中的新版本。尽管我使用了以下命令conda update spacy=3.0
,但我还没有成功
python - Spacy 3.0 的 nlp.update 问题:TypeError:[E978] Language.update 方法采用示例对象列表,但得到:{}
Spacy 3.0 版似乎对 nlp.update 进行了一些更改。我对这个简单的代码完全感到困惑:
当我执行 type(batch) 时,它表明批处理是类型列表。但是错误消息说它是一个元组。我也尝试将其转换为列表但没有成功。我究竟做错了什么?
确切的错误是:
TypeError Traceback (last last call last) in 22 23 for batch in minibatch(examples, size=8): ---> 24 nlp.update(batch, sgd=optimizer, drop=0.35, loss=losses) 25 26 print( "损失 ({}/{})".format(epoch + 1, epochs), loss)
~/nlp_learn/statbot/.statbot/lib/python3.8/site-packages/spacy/language.py in update(self, examples, _, drop, sgd, loss, component_cfg, exclude) 1090 if len(examples) = = 0: 1091 返回损失 -> 1092 validate_examples(examples, "Language.update") 1093 examples = _copy_examples(examples) 1094 如果 sgd 为 None:
~/nlp_learn/statbot/.statbot/lib/python3.8/site-packages/spacy/training/example.pyx 在 spacy.training.example.validate_examples()
TypeError: [E978] Language.update 方法采用示例对象列表,但得到:{<class 'tuple'>}
这里以 TRAIN_DATA 的第一行为例:('Auf Bauer Lehmanns Hof wird an beiden Pfingsttagen Brot im Backofen gebacken.', {'entities': [(10, 18, 'PER')]})
python - 如何从头开始创建一个新的 Spacy 3.0 项目?
我正在尝试从头开始为自定义 NLP 管道创建一个新的 Spacy 3.0 项目。似乎没有办法做到这一点。我可以在文档中找到的唯一机制是克隆现有项目存储库,然后对其进行编辑。有没有其他方法可以做到这一点?
nlp - 将代码从 Spacy2 转换为 Spacy3 - nlp.update 不起作用
编辑:感谢您的评论。我将 doc=nlp(text) 更改为 doc=nlp.make_doc(text)。
我找到了一个我试图复制的代码。它显然是用 Spacy2 编写的:
现在 Spacy3 不再接受文本和注释。因此,我尝试进行如下转换(经过多次绝望的尝试):
现在错误是
Valueerror 为空。我读过这可以连接到小样本?但是现在示例中有超过 5900 项。我正在尝试使用德国模型(de_core_news_lg)。
创建“示例”,他现在还在循环中给出了这个警告:
python - Android 中的 Spacy 版本错误使用 Chaquopy 和 nlp = spacy.load("en_core_web_sm") 错误
我在使用 chaquopy 时在我的代码中使用 spacy (nlp = spacy.load("en_core_web_sm") 但给出版本不兼容的错误,因为 chaquopy 更喜欢原生轮是任何解决方案,因此可以解决此问题,错误消息的图像如下所示 在这张图片中,我们有 spacy 版本问题
python - Python - 长时间运行进程的状态(多个进程的可能性)
我已经使用 Python 和FastAPI构建了一个 API 。使用这个 API,我的目标是训练自定义 spaCy NLP 模型。
这是我的代码:
我通过运行运行应用程序:
然后,我触发一个 POST 请求:http://127.0.0.1:8000/project/train
使用以下正文:
我正在触发的子流程python -m spacy project run all
基本上是在运行spaCy 工作流,这可能需要相当长的时间(数小时)才能完成。
可以说,在我的团队中,我们是两个用户,每个人都想训练一个自定义模型——这意味着我们都将向 API 发送请求(使用不同的项目令牌),并触发 NLP 模型的训练。
有没有办法可以查询正在运行的进程以获取每个进程的输出/进度?
python-3.x - 自定义 spacy 停用词并保存模型
我正在使用它来将停用词添加到 spacy 的停用词列表中
nlp.Defaults.stop_words |= {"my_new_stopword1","my_new_stopword2",}
但是,当我使用保存 nlp 对象并使用nlp.to_disk()
再次加载它时nlp.from_disk()
,我丢失了自定义停用词列表。有没有办法用 nlp 模型保存自定义停用词?
提前致谢