v3.6版本的新特性
spaCy v3.6 在核心库中新增了 SpanFinder 组件,并为斯洛文尼亚语提供了新的训练管道。
SpanFinder
SpanFinder组件通过识别文本跨度的起始和结束标记,来识别可能存在重叠且未标注的文本范围。该组件设计用于与SpanCategorizer等组件配合使用,后者可对这些文本范围进行进一步筛选或标注。如需更详细了解跨度查找器,请参阅我们的Spancat博客文章。
要训练一个包含span_finder + spancat的流程,请记得将span_finder(及其所需的tok2vec或transformer)添加到[training.annotating_components]中,这样spancat组件就能直接从其预测结果进行训练:
在实践中,先单独训练span_finder组件,再将其(连同其tok2vec)整合到spancat管道中进行进一步训练会很有帮助。否则如果span_finder产生大量预测结果,spancat在最初几个训练步骤中的内存使用量可能会激增。
Additional features and improvements
- Language updates:
- 添加对马来语的初步支持。
- 更新拉丁语默认设置以支持名词块,更新词汇/分词器设置并添加示例句子。
- 在
spacy debug dataCLI中支持spancat_singlelabel。 - 在
spacy evaluateCLI的displaCy输出中添加doc.spans渲染功能。 - 支持为向量添加自定义token/lexeme属性。
- 新增选项以按组件名称分别返回评分,通过
spacy evaluate --per-component、Language.evaluate(per_component=True)和Scorer.score(per_component=True)实现。当管道中包含多个相同组件(如textcat)且评分键可能重叠时,此功能非常有用。 PhraseMatcher和SpanGroup的类型更新。
训练好的管道
新训练好的管道
v3.6版本为斯洛文尼亚语引入了新的处理流程,这些流程使用了可训练的词汇还原器和floret向量。
| 包 | UPOS | 解析器LAS | NER F值 |
|---|---|---|---|
sl_core_news_sm | 96.9 | 82.1 | 62.9 |
sl_core_news_md | 97.6 | 84.3 | 73.5 |
sl_core_news_lg | 97.7 | 84.3 | 79.0 |
sl_core_news_trf | 99.0 | 91.7 | 90.0 |
Pipeline更新
英文处理流程已更新,改进了对带有不同撇号的缩略词的处理,并将"get"作为被动助词进行词形还原。
丹麦语处理管道 da_core_news_trf 已更新为使用
vesteinn/DanskBERT,
各项性能指标均有提升。
关于从v3.5升级的注意事项
SpanGroup 的 spans 现在必须来自同一份文档
初始化SpanGroup时,新增了一项检查来验证所有添加的span是否引用当前文档。如果没有这项检查,可能会遇到字符串存储或其他错误。
这种情况可能出现的一个场景是在创建用于训练自定义跨度的Example对象时:
Pipeline包版本兼容性
当你加载一个使用早期spaCy v3版本训练的流程包时,会看到警告提示该流程可能存在兼容性问题。这并不一定属实,但我们建议针对你的测试套件或评估数据运行这些流程,以确保不会出现意外结果。
如果您正在使用我们提供的训练好的管道之一,您应该运行spacy download来更新至最新版本。要查看所有已安装包及其兼容性的概览,您可以运行spacy validate。
如果您已经训练了自己的自定义流程,并确认其仍按预期工作,可以在meta.json中更新spaCy版本要求:
更新v3.5配置
要将spaCy v3.5的配置更新为新的v3.6设置,请运行
init fill-config:
在许多情况下(spacy train,
spacy.load),新默认值将自动填充,
但您需要填写新设置才能运行
debug config 和 debug data。