Compartir a través de


Lector de secuencias lu de BrainScript

Nota: si es un recién llegado, considere la posibilidad de usar CNTK Lector de formato de texto. En el futuro LUSequenceReader quedará en desuso y finalmente no se admitirá.

LUSequenceReader es similar a LMSequenceReader. Sin embargo, se usa para las tareas de Language Understanding que tienen cadenas de entrada y salida que son diferentes. Un ejemplo de configuración de LUSequenceReader es el siguiente:

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"
    ]
]

LUSequenceReader tiene los parámetros siguientes:

  • wordContext: especifica una ventana de contexto. Por ejemplo, wordContext=0:1:2 especifica una ventana de contexto de 3. En esta ventana de contexto, lee la entrada en una hora actual, la próxima vez y la hora posteriores a la próxima vez. Otro ejemplo sería wordContext=0:-1. En tal caso, LUSequencReader lee una ventana de contexto de 2 que consta de la entrada actual y la última entrada inmediata.

  • randomize: es None o Auto. Esto especifica el modo de si se realiza la selección aleatoria de frases de todo el corpus.

  • nbrUttsInEachRecurrentIter: especifica el límite del número de oraciones en un minibatch. El lector organiza las oraciones de entrada de misma longitud, hasta el límite especificado, en cada minibatch. En el caso de las redes recurrentes, el instructor restablece las actividades ocultas de la capa solo al principio de las oraciones. Las actividades de capas ocultas se trasladan al siguiente minibatch si no se alcanza un final de oración. El uso de varias oraciones en un minibatch puede acelerar los procesos de entrenamiento.

  • unk: especifica el símbolo para representar símbolos de entrada no vistos. Normalmente, este símbolo es "".

  • wordMap: especifica un archivo que asigna entradas a otras entradas. Esto es útil si el usuario quiere asignar algunas entradas a símbolos desconocidos. Un ejemplo del archivo de asignación de palabras es el siguiente:

    buy buy

    trans <unk>

  • file: el archivo contiene la entrada y sus etiquetas. La última columna es la etiqueta y las demás columnas contienen entradas. A continuación se muestra un ejemplo de archivo de entrenamiento.

    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

En el ejemplo anterior, también puede observar dos sub bloques denominados labelIn y labels.

  • labelIn: la sección de la etiqueta de entrada. Contiene las siguientes configuraciones

    • useWordMaptrue o false, especifica si se usa el mapa de palabras para asignar palabras de entrada a otras palabras de entrada.
    • beginSequence : el símbolo inicial de la oración.
    • endSequence : el símbolo final de la frase.
    • token : el archivo de token contiene una lista de palabras de entrada. Sus órdenes no son importantes.
  • labels: la sección de la etiqueta de salida.

    • token : el archivo de token contiene una lista de etiquetas de salida. Su orden no es importante siempre que los tokens sean únicos.