code: func FindSentencesByPhraseChain(
  	textRank *TextRank,
  	phrases []string,
  ) []rank.Sentence {
  
  	return rank.FindSentencesByPhrases(textRank.rank, phrases)
  }
docs: // FindSentencesByPhraseChain function retrieves a slice of Sentence structures
  // by TextRank object and slice of phrases. The return value contains the ID of
  // the sentence and the sentence text itself. The slice is sorted by weight of
  // word quantities from 1 to 0.
  //
  // textRank TextRank is the object of the TextRank.
  //
  // phrases []string is a slice of phrases. A single phrase is from two words, so
  // when the slice contains 3 words the inner method will search for two phrases.
  // The search algorithm seeks for "len(phrases)!". In case of three item the
  // possible combination is 3 factorial (3!) = 3 * 2 * 1.
  //
  //    rawText := "Long raw text, lorem ipsum..."
  //    rule := NewDefaultRule()
  //    language := NewDefaultLanguage()
  //    algorithm := NewDefaultAlgorithm()
  //
  //    Append(rawText, language, rule, 1)
  //    Ranking(1, algorithm)
  //
  //    FindSentencesByPhraseChain(1, []string{
  //        "captain",
  //        "james",
  //        "kirk",
  //    })
  //
  // The above code searches for captain james kirk, captain kirk james, james
  // kirk captain, james captain kirk, kirk james captain and james kirk captain
  // combinations in the graph. The 3 of words have to be related to each other
  // in the same sentence but the search algorithm ignores the stop words. So if
  // there is a sentence "James Kirk is the Captain of the Enterprise." the
  // sentence will be returned because the words "is" and "the" are stop words.