Postgresql - Multiple counts within a join
You were nearly there, you can do this with case when ... end 

SELECT      tweet.id, tweet.status_id, count(token.id) AS tokenCount, 
sum(case when token.type = 'LOCATION' then 1 else 0 end) AS locToken, 
sum(case when token.type = 'PERSON' then 1 else 0 end) AS personToken    
FROM        tweet     
INNER JOIN  token on token.tweet_id = tweet.id     
WHERE       tweet.process_id = 5     
GROUP BY    tweet.id;