private void GetResult(string sentence, int[,] path, int current, int index, List <string> result, string word)
        {
            if (index == 0)
            {
                result.Add(sentence[index] + word);
                return;
            }

            if ("BS".Contains(HiddenMarkovModel.GetCurrentState(current)))
            {
                result.Add(sentence[index] + word);
                word = string.Empty;
            }
            else
            {
                word = sentence[index] + word;
            }
            GetResult(sentence, path, path[index, current], index - 1, result, word);
        }