如果我在初始化Tokenizer()
时没有传递num_words
参数,我如何在它用于对训练数据集进行分词后找到词汇量?
之所以这样做,是因为我不希望限制分词器的词汇量,以了解我的Keras模型在不限制词汇量的情况下表现如何。但随后我需要将这个词汇量作为参数传递到模型的第一层定义中。
回答:
所有单词及其索引将存储在一个字典中,您可以使用tokenizer.word_index
访问它。因此,您可以根据该字典中元素的数量来查找唯一单词的数量:
num_words = len(tokenizer.word_index) + 1
那个+ 1
是因为保留了填充(即索引零)。
注意:这个解决方案(显然)适用于您未设置num_words
参数的情况(即您不知道或不想限制单词数量),因为word_index
包含了所有单词(而不仅仅是最常见的单词),无论您是否设置了num_words
。