BrainScript LU 序列讀取器
注意:如果您是新使用者,請考慮使用CNTK文字格式讀取器。 在未來的 LUSequenceReader 將會被取代,最終不支援。
LUSequenceReader 類似于 LMSequenceReader。 不過,它用於具有不同輸入和輸出字串的語言理解工作。 設定 LUSequenceReader 的範例如下
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 具有下列參數:
wordContext
:這會指定內容視窗。 例如,wordContext=0:1:2
指定 3 的內容視窗。 在此內容視窗中,它會讀取目前時間、下一次和下一次之後的輸入。 另一個範例是wordContext=0:-1
。 在這種情況下,LUSequencReader 會讀取包含目前輸入和立即最後一個輸入的內容視窗 2。randomize
:它是None
或Auto
。 這會指定是否執行整個主體的句子隨機化模式。nbrUttsInEachRecurrentIter
:這會指定迷你批次中句子數目的限制。 讀取器會將長度相同的輸入句子排列到每個迷你批次中,上限為指定的限制。 針對迴圈網路,定型器只會在句子開頭重設隱藏層活動。 如果未達到句子結尾,隱藏層的活動會傳遞給下一個迷你批次。 在迷你批次中使用多個句子可以加速定型程式。unk
:這會指定要表示未看到輸入符號的符號。 通常,此符號為 「」。wordMap
:這會指定將輸入對應至其他輸入的檔案。 如果使用者想要將某些輸入對應至未知的符號,這會很有用。 文字對應檔案的範例如下:buy buy
trans <unk>
file
:檔案包含輸入及其標籤。 最後一個資料行是標籤,而其他資料行則包含輸入。 訓練檔案的範例如下。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
在上述範例中,您也可以注意到兩個名為 labelIn
和 labels
的子區塊。
labelIn
:輸入標籤的 區段。 其中包含下列設定useWordMap
-true
或false
,指定是否使用文字對應將輸入字對應至其他輸入字。beginSequence
– 句子開頭符號endSequence
– 句子結束符號token
– Token 檔案包含輸入字的清單。 其訂單並不重要。
labels
:輸出標籤的 區段。token
– 權杖檔案包含輸出標籤的清單。 只要權杖是唯一的,其順序就不重要。