NLTK FreqDist counting two words as one
This is a well-known problem in NLP and it is often referred to Tokenization. I can think about two possible solutions:

try different NLTK tokenizers (e.g. twitter tokenizer), which maybe will be able to cover all of your cases
run a Name Entity Recognition (NER) on your sentences. This allows you to recognise entity present in the text. This could work because it can recognise Heart rate as a single entity, thus as a single token.
I am having some trouble with NLTK's FreqDist. Let me give you some context first:

I have built a web crawler that crawls webpages of companies selling wearable products (smartwatches etc.). 
I am then doing some linguistic analysis and for that analysis I am also using some NLTK functions - in this case FreqDist.
nltk.FreqDist works fine in general - it does the job and does it well; I don't get any errors etc.

My only problem is that the word "heart rate" comes up often and because I am generating a list of the most frequently used words, I get heart and rate separately to the tune of a few hundred occurrences each.
Now of course rate and heart can both occur without being used as "heart rate" but how do I count the occurrences of "heart rate" instead of just the 2 words separately and I do mean in an accurate way. I don't want to subtract one from the other in my current Counters or anything like that.
Thank you in advance!