Guidelines for vocabulary sizes for BoW
I don't think there's any definitive answer for this and it will depend on your particular domain. Here's how I go about it:


The English language contains about 20,000 words (or at least the most common) so I use that as a baseline
I expand this number to account for some common misspellings
Does my data contain special things like emojis? Emojis can still convey meaning, so I expand my vocabulary to include de-emoji'd text
Does my data contain specialized text like scientific and/or academic terms? I expand my baseline number based on this. 


Finally, you can always check  your token index to find how  many words you have out-of-vocabulary. If that number seems reasonable enough to you to proceed then you move forward, otherwise you expand your baseline number a little more.