Keras 2.1.3导入Tokenizer报错:module 'keras.preprocessing'无text属性
解决Keras 2.1.3中导入Tokenizer时的AttributeError问题
这个问题我之前帮人排查过,核心原因是Keras 2.1.3作为较早的版本,模块结构和你参考的新版官方文档不一致。
问题根源
在Keras 2.1.3里,keras.preprocessing.text子模块并不会自动被加载到keras.preprocessing的命名空间下,直接通过keras.preprocessing.text访问会触发"没有text属性"的错误,而新版Keras(或TensorFlow Keras)已经优化了这个模块结构,直接访问就没问题。
两种可行的解决方法
方法一:显式导入text子模块
先把keras.preprocessing.text模块导入,之后就能正常调用Tokenizer了:import keras # 显式导入text子模块 import keras.preprocessing.text tokenizer = keras.preprocessing.text.Tokenizer()方法二:直接从子模块导入Tokenizer
这也是更简洁的写法,跳过层级直接导入目标类:from keras.preprocessing.text import Tokenizer tokenizer = Tokenizer()
额外提示
你参考的官方文档是对应最新版本的Keras,建议以后查文档时注意选择和自己使用版本匹配的文档,避免这类版本差异导致的问题。
内容的提问来源于stack exchange,提问作者Soumya Boral




