speechbrain.utils.semdist 模块

为SemDist指标提供了一个指标类。

作者 * Sylvain de Langen 2024

摘要

类:

BaseSemDistStats

实现SemDist度量的基类,适用于估计每对目标和预测文本之间的单个余弦相似度的变体。

SemDistStats

使用提供的HuggingFace Transformers文本编码器计算SemDist指标。

参考

class speechbrain.utils.semdist.BaseSemDistStats(embed_function: Callable[[List[str]], Tensor], scale: float = 1000.0, batch_size: int = 64)[source]

基础:MetricStats

实现SemDist度量的基类,用于估计每对目标和预测文本的单一余弦相似度的变体。 SemDist度量由论文Evaluating User Perception of Speech Recognition System Quality with Semantic Distance Metric描述。

Parameters:
  • embed_function (Callable[[List[str]], torch.Tensor]) – 给定一个句子列表,使用您选择的方法(例如平均池化)返回它们的汇总嵌入。

  • scale (float, optional) – 为了清晰起见,应用于余弦相似度结果的α比例。默认值为1000,以符合作者的建议。

  • batch_size (int, optional) – 一次应考虑多少对语句。数值越大速度越快,但可能导致内存不足(OOM)。

clear()[source]

清除收集的指标

append(ids, predict, target)[source]

将输入、预测和目标附加到内部列表中

Parameters:
  • ids (list) – 样本的字符串ID

  • predict (list) – 模型的可标记格式的预测结果

  • target (list) – 以可分词格式表示的真实值

summarize(field=None)[source]

总结SemDist指标分数。执行实际的嵌入函数调用和SemDist计算。

完整字段集: - semdist: 所有话语的平均SemDist,乘以

初始化时可选指定的比例。

此外,此函数为每对句子填充了一个scores列表。该列表的每个条目都是一个字典,包含以下字段: - key: 话语的ID。 - semdist: 话语的SemDist,乘以比例。

Parameters:

field (str, optional) – 如果您只对其中的一个字段感兴趣,则返回该字段。 如果指定,则返回一个float,否则返回一个字典。

Returns:

  • 从字符串到浮点数的字典,如果 field is None – 上述文档中字段的字典。

  • 浮点数,如果 field is not None – 由 field 选择的单个字段。

class speechbrain.utils.semdist.SemDistStats(lm, method: Literal['meanpool', 'cls'] = 'meanpool', *args, **kwargs)[source]

基础类: BaseSemDistStats

使用提供的HuggingFace Transformers文本编码器计算SemDist指标。

Parameters:
  • lm (speechbrain.lobes.models.huggingface_transformers.TextEncoder) – 用作语言模型的HF Transformers分词器和文本编码器包装器。

  • method ("meanpool""cls") –

    • "meanpool" (默认): 计算所有上下文嵌入的平均值,排除填充标记。

    • "cls": 仅使用第一个上下文嵌入,对于类似BERT的分词器,这是[CLS]标记,通常用于捕获分类信息。

  • *args – 传递给基类构造函数的额外位置参数。

  • **kwargs – 传递给基类构造函数的额外关键字参数。