speechbrain.lm.counting 模块
N-gram 计数、折扣、插值和回退
- 作者
Aku Rouhe 2020
摘要
函数
从序列生成所有 N 阶 N-gram。 |
|
为每个标记生成适当的上下文。 |
|
用句子开始和结束标记填充句子末尾 |
参考
- speechbrain.lm.counting.pad_ends(sequence, pad_left=True, left_pad_symbol='<s>', right_pad_symbol='</s>')[source]
用句子开始和结束标记填充句子末尾
在语音识别中,预测句子结尾并使用句子开头来条件化预测很重要。通常这是通过在每个句子的末尾添加特殊标记(通常是 <s> 和 </s>)来完成的。<s> 标记不应被预测,因此对于一元词需要特别注意。
- 参数:
sequence (迭代器) – 要填充的序列 (任何可迭代类型)。
pad_left (布尔值) – 是否也填充左侧。默认为 True。
left_pad_symbol (任何类型) – 用于左侧填充的标记。默认为 “<s>”。
right_pad_symbol (任何类型) – 用于右侧填充的标记。默认为 “</s>”。
- 返回值:
一个生成器,生成填充后的序列。
- 返回类型:
生成器
示例
>>> for token in pad_ends(["Speech", "Brain"]): ... print(token) <s> Speech Brain </s>
- speechbrain.lm.counting.ngrams(sequence, n)[source]
从序列生成所有 N 阶 N-gram。
这通常用于 N-gram 计数流程中。
- 参数:
sequence (迭代器) – 从中生成 N-gram 的序列。
n (整数) – 要生成的 N-gram 阶数
- 生成值:
元组 – 将每个 ngram 作为元组生成。
- 返回类型:
无
示例
>>> for ngram in ngrams("Brain", 3): ... print(ngram) ('B', 'r', 'a') ('r', 'a', 'i') ('a', 'i', 'n')
- speechbrain.lm.counting.ngrams_for_evaluation(sequence, max_n, predict_first=False)[source]
为每个标记生成适当的上下文。
此函数生成尽可能大的 N-gram,即从一元词/二元词增长到 max_n。
例如,当你的模型是三元词模型时,对于第一个标记,你仍然只有一个上下文标记(句子开始标记)。
通常,这在评估 N-gram 模型时很有用。
- 参数:
- 生成值:
任何类型 – 要预测的标记
元组 – 用于条件化预测的上下文。
示例
>>> for token, context in ngrams_for_evaluation("Brain", 3, True): ... print(f"p( {token} |{' ' if context else ''}{' '.join(context)} )") p( B | ) p( r | B ) p( a | B r ) p( i | r a ) p( n | a i )