开始使用

v3.6版本的新特性

新功能及如何升级

spaCy v3.6 在核心库中新增了 SpanFinder 组件,并为斯洛文尼亚语提供了新的训练管道。

SpanFinder

SpanFinder组件通过识别文本跨度的起始和结束标记,来识别可能存在重叠且未标注的文本范围。该组件设计用于与SpanCategorizer等组件配合使用,后者可对这些文本范围进行进一步筛选或标注。如需更详细了解跨度查找器,请参阅我们的Spancat博客文章

要训练一个包含span_finder + spancat的流程,请记得将span_finder(及其所需的tok2vectransformer)添加到[training.annotating_components]中,这样spancat组件就能直接从其预测结果进行训练:

在实践中,先单独训练span_finder组件,再将其(连同其tok2vec)整合到spancat管道中进行进一步训练会很有帮助。否则如果span_finder产生大量预测结果,spancat在最初几个训练步骤中的内存使用量可能会激增。

Additional features and improvements

  • Language updates:
    • 添加对马来语的初步支持。
    • 更新拉丁语默认设置以支持名词块,更新词汇/分词器设置并添加示例句子。
  • spacy debug data CLI中支持spancat_singlelabel
  • spacy evaluate CLI的displaCy输出中添加doc.spans渲染功能。
  • 支持为向量添加自定义token/lexeme属性。
  • 新增选项以按组件名称分别返回评分,通过spacy evaluate --per-componentLanguage.evaluate(per_component=True)Scorer.score(per_component=True)实现。当管道中包含多个相同组件(如textcat)且评分键可能重叠时,此功能非常有用。
  • PhraseMatcherSpanGroup 的类型更新。

训练好的管道

新训练好的管道

v3.6版本为斯洛文尼亚语引入了新的处理流程,这些流程使用了可训练的词汇还原器和floret向量

UPOS解析器LASNER F值
sl_core_news_sm96.982.162.9
sl_core_news_md97.684.373.5
sl_core_news_lg97.784.379.0
sl_core_news_trf99.091.790.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 configdebug data