Python tool to find meaningful pairs of words in a document
Interesting problem to play with, assuming there's not already a lexicon of meaningful compound words that you could leverage. And I'd love to see "computer science" as a trending topic.
Let's take the approach that we know nothing about compound words in English, whether "stop sign" is as meaningfully distinct from "stop" and "sign" as 
"does better" is from "does" and "better"
Breaking it down, you want to build a process that:

Identifies co-located pairs
Drops any that are clearly not related as compound words (ie parts of    speech, proper names or punctuation)
Saves candidate pairs       
Analyzes candidate pairs for frequency
Teaches your system to look for the most valuable candidate pairs

Is that an accurate description?
If so, I think the tool you ask for would be in (4) or (5). For 4), consider the Associative Rule in Python's Orange library as a start. You could also use TF-IDF from scikit-learn. For 5) you could expose the output from 4) as a list, set or dictionary of strings with counts.
I'm writing a program that gathers tweets from Twitter, and evaluates the text to find trending topics. I'm planning on using NLTK to stem the terms and do some other operations on the data. 
What I need is a tool that can determine if two adjacent words in a tweet should be treated as a single term. For example, if "fake news" is trending on Twitter, I don't want to treat those two words as different. Another example, if everyone is tweeting about 'Computer Science', it wouldn't make sense to treat computer and science as two different terms since they refer to the same topic. Does a tool exist that can find such terms?