【问题标题】:AttributeError: 'Tokenizer' object has no attribute 'oov_token' in KerasAttributeError:“Tokenizer”对象在 Keras 中没有属性“oov_token”
【发布时间】:2018-04-16 16:13:59
【问题描述】:

我正在尝试使用加载的标记器对文本进行编码,但出现以下错误

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' 一起使用。

感谢任何指导!

【问题讨论】:

标签: python nlp keras pickle tokenize


【解决方案1】:

这很可能是this issue:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2016-04-21
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多