1 回答

TA貢獻(xiàn)1841條經(jīng)驗 獲得超3個贊
的Tokenizer方法例如fit_on_texts或texts_to_sequences期望文本/字符串列表作為輸入(顧名思義,即texts)。但是,您將單個文本/字符串傳遞給它們,因此它會迭代其字符,同時假設(shè)它實際上是一個列表!
解決此問題的一種方法是在每個函數(shù)的開頭添加檢查,以確保輸入數(shù)據(jù)類型實際上是列表。例如:
def padding(text, tokenizer):
if isinstanceof(text, str):
text = [text]
# the rest would not change...
您還應(yīng)該為該tokenize_text函數(shù)執(zhí)行此操作。進行此更改后,您的自定義函數(shù)將同時適用于單個字符串和字符串列表。
作為重要的旁注,如果您在問題中放入的代碼屬于預(yù)測階段,則存在一個基本錯誤:您應(yīng)該使用訓(xùn)練模型時使用的相同實例,以確保完成映射和標(biāo)記Tokenizer化與訓(xùn)練階段相同。實際上,為每個或所有測試樣本創(chuàng)建一個新實例是沒有意義的Tokenizer(除非它具有與訓(xùn)練階段使用的相同的映射和配置)。
添加回答
舉報