Compartilhar via


Leitor de sequência de LU do BrainScript

Observação: se você for um recém-chegado, considere usar CNTK Leitor de Formato de Texto. No futuro, LUSequenceReader será preterido e, eventualmente, não terá suporte.

LUSequenceReader é semelhante ao LMSequenceReader. No entanto, ele é usado para tarefas de reconhecimento vocal que têm cadeias de caracteres de entrada e saída diferentes. Um exemplo de configuração do LUSequenceReader é o seguinte

reader = [
    readerType = "LUSequenceReader"
    randomize = "none"
    wordContext = 0:1:2
    nbrUttsInEachRecurrentIter = 10
    unk = "<unk>"
    wordMap = "$DataDir$\inputmap.txt"
    file = "$DataDir$\atis.train.IOB"
    labelIn = [
        useWordMap = true
        beginSequence = "BOS"
        endSequence = "EOS"
        token = "$DataDir$\input.txt"
    ]
    labels = [
        beginSequence = "O"
        endSequence = "O"
        token = "$DataDir$\output.txt"
    ]
]

O LUSequenceReader tem os seguintes parâmetros:

  • wordContext: isso especifica uma janela de contexto. Por exemplo, wordContext=0:1:2 especifica uma janela de contexto 3. Nesta janela de contexto, ele lê a entrada em um momento atual, na próxima vez e na hora após a próxima vez. Outro exemplo seria wordContext=0:-1. Nesse caso, LUSequencReader lê uma janela de contexto 2 que consiste na entrada atual e na última entrada imediata.

  • randomize: é ou NoneAuto. Isso especifica o modo de fazer a randomização da sentença de todo o corpus.

  • nbrUttsInEachRecurrentIter: especifica o limite do número de frases em uma minibatch. O leitor organiza frases de entrada de mesmo comprimento, até o limite especificado, em cada minibatch. Para redes recorrentes, o treinador redefine atividades de camada oculta somente no início das frases. As atividades de camadas ocultas serão levadas para a próxima minibatch se o fim da sentença não for atingido. O uso de várias frases em uma minibatch pode acelerar os processos de treinamento.

  • unk: especifica o símbolo para representar símbolos de entrada não vistos. Normalmente, esse símbolo é "".

  • wordMap: especifica um arquivo que mapeia entradas para outras entradas. Isso será útil se o usuário quiser mapear algumas entradas para símbolos desconhecidos. Um exemplo do arquivo de mapeamento de palavras é o seguinte:

    buy buy

    trans <unk>

  • file: o arquivo contém entrada e seus rótulos. A última coluna é o rótulo e as outras colunas contêm entradas. Um exemplo de arquivo de treinamento está abaixo.

    BOS O

    flight O

    from O

    charlotte B-fromloc.city_name

    to O

    las B-toloc.city_name

    vegas I-toloc.city_name

    EOS O

No exemplo acima, você também pode observar dois subconjuntos nomeados labelIn e labels.

  • labelIn: a seção do rótulo de entrada. Ele contém as configurações a seguir

    • useWordMaptrue ou false, especifica se usar o mapa de palavras para mapear palavras de entrada para outras palavras de entrada.
    • beginSequence – o símbolo de início da frase
    • endSequence – o símbolo final da frase
    • token – o arquivo de token contém uma lista de palavras de entrada. Suas ordens não são importantes.
  • labels: a seção do rótulo de saída.

    • token – o arquivo de token contém uma lista de rótulos de saída. Sua ordem não é importante desde que os tokens sejam exclusivos.