speechbrain.lm.counting 模块
N-gram计数、折扣、插值和回退
- Authors
阿库·柔赫 2020
摘要
函数:
从序列中生成所有第N阶N-grams。 |
|
生成每个带有适当上下文的标记。 |
|
用句子开始和结束标记填充句子结尾 |
参考
- speechbrain.lm.counting.pad_ends(sequence, pad_left=True, left_pad_symbol='<s>', right_pad_symbol='</s>')[source]
在句子的开头和结尾添加开始和结束标记
在语音识别中,预测句子的结束并使用句子的开始来条件化预测是非常重要的。通常,这是通过在每句话的末尾添加特殊标记(通常是
和)来完成的。标记不应该被预测,因此对于一元语法需要特别小心。- Parameters:
sequence (iterator) – 要填充的序列(任何可迭代类型)。
pad_left (bool) – 是否也在左侧填充。默认为True。
left_pad_symbol (any) – 用于左侧填充的标记。默认为“
”。right_pad_symbol (any) – 用于右侧填充的标记。默认为“”。
- Returns:
生成填充序列的生成器。
- Return type:
生成器
Example
>>> for token in pad_ends(["Speech", "Brain"]): ... print(token) <s> Speech Brain </s>
- speechbrain.lm.counting.ngrams(sequence, n)[source]
从序列中生成所有第N阶N-grams。
这通常将用于N-gram计数管道中。
- Parameters:
sequence (iterator) – 用于生成N-grams的序列。
n (int) – 要生成的N-grams的阶数
- Yields:
tuple – 将每个n元组生成为元组。
- Return type:
无
Example
>>> 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-grams,因此从unigrams/bigrams逐渐增长到max_n。
例如,当你的模型是一个三元模型时,对于第一个标记,你仍然只有一个上下文标记(句子的开始)。
在评估N-gram模型时,这通常是有用的。
- Parameters:
- Yields:
任何 – 要预测的标记
tuple – 用于预测的条件上下文。
Example
>>> 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 )