Have you looked at FindTextualAnswer
?
Here's an example with 5 solutions:
```
s1 = "John enjoyed spaghetti at Terranova located in New York City."
FindTextualAnswer[s1, "Who did what?", 5, {"Probability", "String", "Position", "HighlightedSentence"}] // Column
The answer:
{
{{0.0949745, "John enjoyed spaghetti at Terranova", {1, 35}}},
{{0.00473055, "New York City", {48, 60}}},
{{0.00355906, ".", {61, 61}}},
{{0.0022374, "located", {37, 43}}},
{{0.000319291, "in", {45, 46}}}
}
```
There are also other options such as "HighlightSentence".