如何复现行为
当 span_key
在 [components.spancat_singlelabel]
或 [components.spancat]
部分中不是 "sc"
时,训练输出如下:
ℹ Pipeline: ['sentencizer', 'tok2vec', 'spancat_singlelabel']
ℹ Set annotations on update for: ['sentencizer']
ℹ Initial learn rate: 0.001
E # LOSS TOK2VEC LOSS SPANC... SENTS_F SENTS_P SENTS_R SPANS_SC_F SPANS_SC_P SPANS_SC_R SCORE
--- ------ ------------ ------------- ------- ------- ------- ---------- ---------- ---------- ------
0 0 0.00 19.33 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 200 5.46 409.10 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 400 10.51 96.83 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 600 10.37 77.10 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 800 8.99 99.86 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 1000 9.52 100.14 100.00 100.00 100.00 0.00 0.00 0.00 0.50
0 1200 6.18 62.30 100.00 100.00 100.00 0.00 0.00 0.00 0.50
我以为我疯了 :)
这似乎是评估步骤中的一个bug,我没有进一步调查,抱歉。
其他部分似乎都能正常工作:
python -m spacy debug data config.cfg
对非"sc"值感到满意。
此外,标签从训练数据集中获取并在 meta.json
中正确显示。
在我将 span_key
改回默认的 "sc" 后,我得到了这个:
E # LOSS TOK2VEC LOSS SPANC... SENTS_F SENTS_P SENTS_R SPANS_SC_F SPANS_SC_P SPANS_SC_R SCORE
--- ------ ------------ ------------- ------- ------- ------- ---------- ---------- ---------- ------
0 0 0.00 19.33 100.00 100.00 100.00 96.81 96.81 96.81 0.98
0 200 6.64 421.19 100.00 100.00 100.00 99.32 99.32 99.32 1.00
0 400 8.43 82.30 100.00 100.00 100.00 99.43 99.43 99.43 1.00
0 600 9.34 71.43 100.00 100.00 100.00 99.45 99.45 99.45 1.00
0 800 9.28 107.05 100.00 100.00 100.00 99.59 99.59 99.59 1.00
0 1000 8.78 89.08 100.00 100.00 100.00 98.95 98.95 98.95 0.99
另外,不确定为什么句子指标会出现——我正在使用不可训练的简单分词器。这并不重要,显然。
您的环境
- spaCy版本: 3.6.1
- 平台: macOS-12.4-x86_64-i386-64bit
- Python版本: 3.10.11
- Pipelines: en_core_web_sm (3.6.0)
3条答案
按热度按时间x6h2sr281#
你好,@nrodnova,感谢你报告这个问题!我们会进行调查。
zfciruhq2#
这可能是由于您的分数权重没有正确配置,因为分数权重属性的名称是从
span_key
的值派生的。例如,如果span_key == "sc"
,则分数权重配置可能如下所示:我建议您将此配置添加到其中(如果已经存在,请更新它),以反映您实际的
span_key
。例如,如果span_key == "myspankey"
:bqucvtff3#
@rmitsch 多谢,这很有道理。我会测试一下并回复。如果这个方法可行,我会很高兴地将其添加到文档中。