Best way to distinguish between close entities

I have 2 entities:

  1. one is a list of countries, about 100 or so in the entity country. Eg: USA, India etc.
  2. Another one is a list of companies about 50,000 names in the entity company

The challenge is that quite a few company contains name like: Google India, ABC CORP CHINA INC, etc.

now entity identification often picks up Google India as Google > Company and India > Country or even India as a company name.

What is the best way to separately identify these 2 entities with reasonable accuracy?