繁体   English   中英

Keras:在文本数据上使用fit_generator()的Tokenizer

[英]Keras: Tokenizer with fit_generator() on text data

我正在使用keras在非常大的文本数据集上创建神经网络。 为了构建模型并确保一切正常,我将一小部分数据读入内存,并使用内置的keras'Tokenizer'来执行必要的预处理工作,包括将每个单词映射到令牌。 然后,我使用model.fit()。

现在,我想扩展到完整的数据集,并没有空间将所有数据读入内存。 所以,我想创建一个生成器函数来顺序从磁盘读取数据,并使用model.fit_generator()。 但是,如果我这样做,那么我会在每批数据上单独调整Tokenizer对象,为每个批次提供不同的单词到令牌映射。 有没有办法解决? 有什么办法可以用keras连续构建一个令牌字典吗?

所以基本上你可以用以下方式定义文本生成器并将其提供给fit_on_text方法:

  1. 假设您有texts_generator从磁盘读取部分数据并返回可迭代的文本集合,您可以定义:

     def text_generator(texts_generator): for texts in texts_generator: for text in texts: yield text 

    请注意,在从磁盘读取整个数据后,应使此发生器停止 - 有可能使您更改要在model.fit_generator使用的原始生成器

  2. 从1开始生成生成器后,您可以通过以下方式应用tokenizer.fit_on_text方法:

     tokenizer.fit_on_text(text_generator) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM