1 NlP自然语言处理语音识别中常用的标识符的含义

NLP进行文本处理以及语音识别处理语音对应标签时我们经常会看到一些特殊的标识符,一些常见的标识符及其含义如下

  • <blank>/<BLANK>:表示空白符号;
  • <unk>/<UNK>:低频词或未在词表中的词;
  • <pad>/<PAD>:补全字符,我们进行网络训练时,通常一个batch中的文本或者语音对应的文本的序列长度是不一样的,这个时候需要将同一个batch中的数据长度进行统一,经常是以当前batch中序列长度最长的数据作为统一长度,这个时候其他序列需要使用<pad>字符进行补齐;
  • <sos>/<SOS>:句子起始标识符
  • <go>/<GO>:句子起始标识符
  • <eos>/<EOS>:句子结束标识符
  • [SEP]:两个句子之间的分隔符
  • [MASK]:填充被掩盖掉的字符
  • [CLS]:句子开头,以[CLS]开头,随后跟句子的第一个单词

在工业级的流式实时语音识别框架wenet中,使用

  • <blank>:表示CTC的空白符号,一般指定id为0;
  • unk:表示未在词表中的符号;
  • <sos><eos>:表示语音开始符号和语音结束符号,两个共享同一id;

示例的词表如下

<blank> 0
<unk> 1
' 2
▁ 3
A 4
▁A 5
AB 6
▁AB 7
▁YOU 4995
▁YOUNG 4996
▁YOUR 4997
▁YOUTH 4998
Z 4999
ZZ 5000
<sos/eos> 5001

2 实际的数据处理过程

2.1 <unk>替换低频词汇

在实际的数据处理过程中,我们首先需要将所有序列出现的单词符号整合成一个词汇表(单词和符号不重复),然后统计每一个单词和符号出现的次数,根据我们所设置的低频词汇的标准,比如只出现过一次的单词和词汇可以看作为低频词汇,那么我们首先需要从词汇表中使用<unk>替换低频词汇(低频词汇从总的词表中删除,标签中的低频词汇使用unk替换)。

2.2 标记标签开始和结束

在处理机器翻译数据时,需要在句子第一个单词符号钱加入句子起始符<sos>,以及在句子换行,逗号或者结尾处加入句子结束符号<eos>

参考链接