Нет, нет необходимости изучать все данные один раз, а затем представлять каждую запись в формате нумерации c, это делается индивидуально. То, что вы сделали, правильно, но есть много методов для обработки естественного языка, я также могу рекомендовать вам хороший метод, чтобы преобразовать каждую букву в число, так что здесь вы можете использовать предсказание буква за буквой, правда ли, что это не будет быстрым, но это может гарантировать хорошую точность, потому что словарный запас букв меньше словарного запаса, это может быть что-то вроде этого:
vocab = set( your_text ) # extract each distinct letter
vocab_to_int = {l:i for i,l in enumerate(vocab)} # transforms letter to number
int_to_vocab = {i:l for i,l in enumerate(vocab)} # do the inverse
transformed_text = [vocab_to_int[l] for l in your_text] # all text transformed