//список шинглов public static List <string> WordsIndexesToShingleTexts(string[] words, List <int> wordsIndexes) { List <string> shingleTexts = new List <string> { Shingle.QueryFromWords(words, wordsIndexes[0]) }; for (int i = 1; i < wordsIndexes.Count; i++) { int overlap; if ((overlap = Shingle.Lenght - (wordsIndexes[i] - wordsIndexes[i - 1])) > 0) { for (int j = overlap; j < Shingle.Lenght; j++) { shingleTexts[shingleTexts.Count - 1] += " " + words[wordsIndexes[i] + j]; } } else { shingleTexts.Add(Shingle.QueryFromWords(words, wordsIndexes[i])); } } return(shingleTexts); }