Udostępnij za pośrednictwem


Czytnik sekwencji LM w języku BrainScript

Uwaga: jeśli jesteś nowym użytkownikiem, rozważ użycie CNTK czytnika formatów tekstu. W przyszłości element LMSequenceReader zostanie wycofany i ostatecznie nie będzie obsługiwany.

LMSequenceReader to czytnik, który odczytuje ciąg tekstowy. Jest on najczęściej używany do zadań modelowania języka. Przykład konfiguracji jest następujący

reader = [
    readerType = "LMSequenceReader"
    randomize = false
    nbruttineachrecurrentiter = 10
    unk = "<unk>"
    wordclass = "$DataDir$\wordclass.txt"
    file = "$DataDir$\penntreebank.train.txt"
    labelIn = [
        labelDim = 10000
        beginSequence = "</s>"
        endSequence = "</s>"
    ]
]

Element LMSequenceReader ma następujące parametry:

  • randomize: jest to wartość None lub Auto. Określa tryb wykonywania losowych zdań całego korpusu.

  • nbruttsineachrecurrentiter: określa limit liczby zdań w minibatch. Czytelnik rozmieszcza zdania wejściowe o tej samej długości, do określonego limitu, do każdego minibatcha. W przypadku cyklicznych sieci trener resetuje ukryte działania warstwowe tylko na początku zdań. Działania ukrytych warstw są przenoszone do następnej minibatch, jeśli nie zostanie osiągnięty koniec zdania. Używanie wielu zdań w minibatch może przyspieszyć procesy trenowania.

  • unk: określa symbol do reprezentowania nieużytowanych symboli wejściowych. Zazwyczaj ten symbol to "". Niezamierzone słowa zostaną zamapowane na symbol.

  • wordclass: określa informacje o klasie wyrazów. Jest to używane do modelowania języka opartego na klasach. Poniżej przedstawiono przykład informacji o klasie. Pierwsza kolumna to indeks wyrazów. Druga kolumna to liczba wystąpień, trzecia kolumna to słowo, a ostatnia kolumna to identyfikator klasy wyrazu.

    0 42068 </s> 0

    1 50770 the 0

    2 45020 <unk> 0

    3 32481 N 0

    4 24400 of 0

    5 23638 to 0

    6 21196 a 0

    7 18000 in 1

    8 17474 and 1

  • file: plik zawiera ciągi tekstowe. Poniżej przedstawiono przykład. W tym przykładzie można również zauważyć jeden pod blok o nazwie labelIn.

    pierre N lat dołączy do zarządu jako nonexecutive dyrektor listopad. N pan jest przewodniczącym n.v. holenderskiej grupy publikacji

  • labelIn: sekcja etykiety wejściowej. Zawiera on następujące konfiguracje

    • beginSequence – symbol początkowy zdania
    • endSequence – symbol końcowy zdania
    • labelDim – wymiar etykiet. Zwykle oznacza to rozmiar słownictwa.