<p>One approach that I think may be promising is using Dynamic Memory Networks for Questions Answering. The problem they are solving is generalized version of what you are attempting to solve. In your case you would be answering just two questions: "Which is the source?" and "Which is the destination?". Have a look at the <a href="https://arxiv.org/abs/1603.01417" rel="nofollow noreferrer">paper</a> and also this <a href="http://youtube.com/watch?v=T3octNTE7Is" rel="nofollow noreferrer">video lecture</a> that explains the same approach. </p>

<p>Seems to me it should be easy to generate a training set as long as you have enough training examples with ground truth for source and destination. </p>

<p>You could also make use of the fact you are only dealing with 2 different questions - instead of computing embedding for the question, train two different models, one for answering which is the source and second that find the destination. </p>
How to train a machine to label individual words in a text
<p>For a text (say):</p>

<p>"I am leaving India today. I am headed to USA for a week."
"I am travelling from India to USA"</p>

<p>I need to train the machine to label USA as "Destination" and India as "Source"</p>

<p>I am using SpaCy's NER to extract the locations.</p>

<p>How should I proceed to create a training set and train it. What would be my feature vector and label vector?</p>