AttributeError:' Tokenizer'对象没有属性' oov_token'在Keras

时间:2018-04-16 16:13:59

标签: python nlp keras pickle tokenize

我正在尝试使用我加载的tokenizer对文本进行编码,但收到以下错误

  

AttributeError: 'Tokenizer' object has no attribute 'oov_token'

我包含以下代码:

from keras.preprocessing.text import Tokenizer
from keras.preprocessing import sequence
from keras.models import Model, Input, Sequential, load_model
import pickle
import h5py

maxlen = 100
tok = open('tokenizer.pickle', 'rb')
tokenizer = pickle.load(tok)
tok.close()
model = load_model('weights.h5')

def predict():
    new_text = sequence.pad_sequences((tokenizer.texts_to_sequences(['heyyyy'])), maxlen=maxlen)
    prediction = model.predict(new_text,batch_size=1,verbose=2)

问题出现在tokenizer.texts_to_sequences(['heyyyy'])行,我不知道为什么。泡菜有问题吗? tokenizer.texts_to_sequences适用于'hey''heyy''heyyy'

感谢任何指导!

1 个答案:

答案 0 :(得分:3)

这很可能是this issue

  

您可以手动设置tokenizer.oov_token = None来解决此问题。

     

Pickle不是一种可靠的序列化对象的方法,因为它假定   您导入的基础Python代码/模块没有   改变。一般情况下,请勿使用不同的腌制物品   库的版本比酸洗时使用的版本。那不是   一个Keras问题,这是一个通用的Python / Pickle问题。在这种情况下   有一个简单的修复(设置属性),但在许多情况下会有   不是。