<p>The approach depends on what kind of phrases or keywords you want to extract. </p>

<p>If the type of phrase is well-defined, the best way might be to parse the fragments and then extract from the parse tree with a few rules. As long as the fragments are proper English, parsers should process them with about the same quality as full sentences.</p>

<p>More generally, you could also approach this problem as a machine learning problem. If you have enough data, i.e. pairs of fragments and what should be extracted, you can use that to train a model. Common approaches would be</p>

<ul>
<li><a href="https://en.wikipedia.org/wiki/Sequence_labeling" rel="nofollow noreferrer">sequence labeling</a> - marking for each token if it should be kept or dropped, using <a href="https://en.wikipedia.org/wiki/Conditional_random_field" rel="nofollow noreferrer">CRFs</a> or <a href="https://en.wikipedia.org/wiki/Recursive_neural_network" rel="nofollow noreferrer">RNNs</a></li>
<li><a href="https://medium.com/towards-data-science/sequence-to-sequence-model-introduction-and-concepts-44d9b41cd42d" rel="nofollow noreferrer">sequence-to-sequence models</a> - encoding the input sequence and then generating a new, shorter output, using a combinations of two RNNs</li>
</ul>

<p>In the NLP literature, you could look for sentence compression / summarization. A recent paper that first proposed the second approach listed above is:</p>

<ul>
<li><a href="https://arxiv.org/pdf/1509.00685.pdf" rel="nofollow noreferrer">A Neural Attention Model for Abstractive Sentence Summarization</a> - Rush et al. 2015</li>
</ul>
Extracting key phrases from a short fragment
<p>While there are tons of information on how to extract keywords/phrases from documents, I could not find any technique on how to extract key phrases from fragments (not necessarily sentences). Here are some examples:</p>

<ul>
<li>Art Museums and galleries in China -> Museums and galleries Naval   </li>
<li>Battles Of The Russo-Japanese War -> Naval Battles, The       Russo-Japanese War</li>
</ul>

<p>One could suggest to simply use NLP toolkit and parse the tree and extract the noun phrases. I wonder if there are any better approaches.</p>