如何为keras Tokenizer选择num_words参数?

How to choose num_words parameter for keras Tokenizer?

tokenizer = Tokenizer(num_words=my_max)

我正在使用 keras 预处理分词器来处理机器学习模型的文本语料库。 Tokenizer 的参数之一是 num_words 参数,它定义字典中的单词数。应该如何选择这个参数?我可以选择一个巨大的数字并保证每个单词都会被包括在内,但某些只出现一次的单词如果组合在一起作为一个简单的 "out of vocabulary" 标记可能会更有用。设置这个参数的策略是什么?

我的特定用例是处理推文的模型,因此每个条目都在 140 个字符以下,并且所使用的单词类型有一些重叠。该模型用于 kaggle 竞赛,内容是提取代表情绪的文本(即 "my boss is bullying me" returns "bullying me")

这里的基本问题是“什么样的词可以建立情绪,它们在推文中出现的频率如何?”

这当然没有硬性答案。

以下是我的解决方法:

  1. 预处理您的数据,以便从推文中删除连词、stop words 和“垃圾”。
  2. 获取语料库中唯一单词的数量。所有这些词都是传达情感所必需的吗?
  3. 分析频率最高的单词。这些话是表达感情的吗?它们可以在您的预处理中删除吗?分词器记录前 N 个唯一单词,直到字典中包含 num_words,因此这些流行单词更有可能出现在您的字典中。

然后,我将开始尝试不同的值,并查看对输出的影响。

抱歉没有“真正的”答案。我认为没有单一的真正策略来选择这个值。相反,答案应该来自于利用数据的特征和统计数据。