paddlespeech.s2t.utils.error_rate 模块
该模块提供计算不同级别的错误率的函数。 例如,wer用于单词级别,cer用于字符级别。
- class paddlespeech.s2t.utils.error_rate.ErrorCalculator(char_list, sym_space, sym_blank, report_cer=False, report_wer=False)[来源]
基础:
object在训练过程中计算E2E_ASR和CTC模型的CER和WER。
- Parameters:
y_hats -- numpy 数组,包含预测的文本
y_pads -- numpy数组,包含真实(目标)文本
char_list -- List[str]
sym_space --
sym_blank -- <空白>
- Returns:
方法
__call__(ys_hat, ys_pad[, is_ctc])计算句子级别的 WER/CER 分数。
calculate_cer(seqs_hat, seqs_true)计算句子级别的CER评分。
calculate_cer_ctc(ys_hat, ys_pad)计算CTC的句子级CER分数。
calculate_wer(seqs_hat, seqs_true)计算句子级别的WER分数。
convert_to_char(ys_hat, ys_pad)将索引转换为字符。
- calculate_cer(seqs_hat, seqs_true)[来源]
计算句子级别的CER分数。
- Parameters:
seqs_hat (list) -- 预测
seqs_true (list) -- 参考
- Returns:
平均句子级 CER 得分
:rtype 浮点数
- calculate_cer_ctc(ys_hat, ys_pad)[来源]
计算CTC的句子级CER分数。
- Parameters:
ys_hat (paddle.Tensor) -- 预测 (批次, 序列长度)
ys_pad (paddle.Tensor) -- 参考 (批次,序列长度)
- Returns:
平均句子级CER评分
:rtype 浮点数
- paddlespeech.s2t.utils.error_rate.cer(reference, hypothesis, ignore_case=False, remove_space=False)[来源]
计算字符错误率 (CER)。CER 在字符级别比较参考文本和假设文本。CER 定义为:
\[CER = (Sc + Dc + Ic) / Nc\]哪里
Sc is the number of characters substituted, Dc is the number of characters deleted, Ic is the number of characters inserted Nc is the number of characters in the reference
我们可以使用莱文斯坦距离来计算CER。中文输入应编码为unicode。请注意,开头和结尾的空格字符将被截断,句子中多个连续的空格字符将被替换为一个空格字符。
- Parameters:
参考 (str) -- 参考句子。
假设 (str) -- 假设句子。
ignore_case (bool) -- 是否区分大小写。
remove_space (bool) -- 是否移除内部空格字符
- Returns:
字符错误率。
- Return type:
浮点数
- Raises:
ValueError -- 如果参考长度为零。
- paddlespeech.s2t.utils.error_rate.char_errors(reference, hypothesis, ignore_case=False, remove_space=False)[来源]
计算参考序列和假设序列之间的勒文斯坦距离(字符级)。
- Parameters:
引用 (str) -- 参考句子。
假设 (str) -- 假设句子。
ignore_case (bool) -- 是否区分大小写。
remove_space (bool) -- 是否移除内部空格字符
- Returns:
莱文斯坦距离和参考句子的长度。
- Return type:
列表
- paddlespeech.s2t.utils.error_rate.wer(reference, hypothesis, ignore_case=False, delimiter=' ')[来源]
计算词错误率 (WER)。WER 在词级别上比较参考文本和假设文本。WER 定义为:
\[WER = (Sw + Dw + Iw) / Nw\]哪里
Sw is the number of words subsituted, Dw is the number of words deleted, Iw is the number of words inserted, Nw is the number of words in the reference
我们可以使用莱文斯坦距离来计算词错误率(WER)。请注意,当通过分隔符拆分句子时,空项将被移除。
- Parameters:
参考 (str) -- 参考句子。
假设 (str) -- 假设句子。
ignore_case (bool) -- 是否区分大小写。
delimiter (char) -- 输入句子的分隔符。
- Returns:
词错误率。
- Return type:
浮点数
- Raises:
值错误 -- 如果参考的单词数量为零。
- paddlespeech.s2t.utils.error_rate.word_errors(reference, hypothesis, ignore_case=False, delimiter=' ')[来源]
计算参考序列与假设序列之间的莱文斯坦距离(Levenshtein distance),以词为单位。
- Parameters:
引用 (str) -- 参考句子。
假设 (str) -- 假设句子。
ignore_case (bool) -- 是否区分大小写。
delimiter (char) -- 输入句子的分隔符。
- Returns:
参考句子的Levenshtein距离和单词数量。
- Return type:
列表