我试图使用加载的令牌程序对文本进行编码,但得到了以下错误
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'一起工作。
如有任何指导,将不胜感激!
发布于 2018-04-16 16:22:19
这很可能是本期
您可以手动设置
tokenizer.oov_token = None来修复这个问题。 泡菜不是序列化对象的可靠方法,因为它假定您要导入的底层Python代码/模块没有更改。通常,不要使用与腌制时使用的库版本不同的泡沫化对象。这不是Keras问题,而是一般Python/Pickle问题。在本例中,有一个简单的修复(设置属性),但在许多情况下不会有。
https://stackoverflow.com/questions/49861842
复制相似问题