Partilhar via


Leitor de sequências de cérebros LU

Nota: se for um recém-chegado, considere utilizar CNTK Leitor de Formato de Texto. No futuro, o LUSequenceReader será depreciado e eventualmente não suportado.

LuSequenceReader é semelhante ao LMSequenceReader. No entanto, é usado para tarefas de compreensão da linguagem que têm cadeias de entrada e saída que são diferentes. Um exemplo de configuração 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: isto especifica uma janela de contexto. Por exemplo, wordContext=0:1:2 especifica uma janela de contexto de 3. Nesta janela de contexto, lê-se a entrada num momento atual, a próxima e a hora após a próxima. Outro exemplo seria wordContext=0:-1. Neste caso, o LUSequencReader lê uma janela de contexto de 2 que consiste na entrada atual e na última entrada imediata.

  • randomize: é ou NoneAuto. Isto especifica o modo de fazer a aleatoriedade da frase de todo o corpus.

  • nbrUttsInEachRecurrentIter: isto especifica o limite do número de frases numa minibatch. O leitor organiza frases de entrada de mesmo comprimento, até ao limite especificado, em cada minibatch. Para redes recorrentes, o treinador repõe as atividades de camadas ocultas apenas no início das frases. As atividades das camadas escondidas são levadas para a próxima minibatch se não for atingido um fim de frase. Usar várias frases numa minibatch pode acelerar os processos de treino.

  • unk: isto especifica o símbolo para representar símbolos de entrada invisíveis. Normalmente, este símbolo é "".

  • wordMap: isto especifica um ficheiro que mapeia entradas para outras entradas. Isto é útil se o utilizador quiser mapear algumas entradas para símbolos desconhecidos. Um exemplo do ficheiro de mapeamento de palavras é o seguinte:

    buy buy

    trans <unk>

  • file: o ficheiro contém entradas e as suas etiquetas. A última coluna é a etiqueta, e as outras colunas contêm entradas. Um exemplo de arquivo de treino 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, também pode notar dois sub-blocos nomeados labelIn e labels.

  • labelIn: a secção para a etiqueta de entrada. Contém as seguintes configurações

    • useWordMaptrue ou falseespecifica se usar o mapa de palavras para mapear palavras de entrada para outras palavras de entrada.
    • beginSequence – o símbolo inicial da frase
    • endSequence – o símbolo final da frase
    • token – o ficheiro simbólico contém uma lista de palavras de entrada. As ordens deles não são importantes.
  • labels: a secção para a etiqueta de saída.

    • token – o ficheiro simbólico contém uma lista de etiquetas de saída. A ordem deles não é importante, desde que os tokens sejam únicos.