title: Using word2vec to classify words in categories
body: <p><strong>BACKGROUND</strong></p>
  
  <p>I have vectors with some sample data and each vector has a category name (Places,Colors,Names).</p>
  
  <pre><code>['john','jay','dan','nathan','bob']  -&gt; 'Names'
  ['yellow', 'red','green'] -&gt; 'Colors'
  ['tokyo','bejing','washington','mumbai'] -&gt; 'Places'
  </code></pre>
  
  <p>My objective is to train a model that take a new input string and predict which category it belongs to. For example if a new input is "purple" then I should be able to predict 'Colors' as the correct category. If the new input is "Calgary" it should predict 'Places' as the correct category.</p>
  
  <p><strong>APPROACH</strong></p>
  
  <p>I did some research and came across <a href="https://radimrehurek.com/gensim/models/word2vec.html" rel="noreferrer">Word2vec</a>. This library has a "similarity" and "mostsimilarity" function which i can use. So one brute force approach I thought of is the following:</p>
  
  <ol>
  <li>Take new input.</li>
  <li>Calculate it's similarity with each word in each vector and take an average.</li>
  </ol>
  
  <p>So for instance for input "pink" I can calculate its similarity with words in vector "names" take a average and then do that for the other 2 vectors also. The vector that gives me the highest similarity average would be the correct vector for the input to belong to.</p>
  
  <p><strong>ISSUE</strong></p>
  
  <p>Given my limited knowledge in NLP and machine learning I am not sure if that is the best approach and hence I am looking for help and suggestions on better approaches to solve my problem. I am open to all suggestions and also please point out any mistakes I may have made as I am new to machine learning and NLP world.</p>