/// <summary>
/// Returns a PhraseNode containing the noun phrase words from the given name, starting from startIndex.
/// All noun phrase words prior to the first encountered preposition are included.
/// </summary>
/// <param name="parsedName">The PhraseNode to get the noun phrase from.</param>
/// <param name="startIndex">The index of the word to start from.</param>
private PhraseNode GetNounPhrase(PhraseNode parsedName, int startIndex)
{
PhraseNode phrase = parsedName.GetNewEmpty();
for (int i = startIndex; i < parsedName.Size(); i++)
{
PartOfSpeechTag tag = parsedName[i].Tag;
if (tag == PartOfSpeechTag.Noun
|| tag == PartOfSpeechTag.NounModifier
|| tag == PartOfSpeechTag.Determiner
|| tag == PartOfSpeechTag.Pronoun
|| tag == PartOfSpeechTag.NounIgnorable
|| tag == PartOfSpeechTag.Digit
|| tag == PartOfSpeechTag.Preamble)
{
phrase.Add(parsedName[i]);
}
else if (tag == PartOfSpeechTag.Preposition)
{
break;
}
}
return phrase;
}