Посмотрите на NLTK
from nltk.tokenize import sent_tokenize, word_tokenize
data = "All work and no play makes jack a dull boy, all work and no play"
print(word_tokenize(data))
Это выдаст:
['All', 'work', 'and', 'no', 'play', 'makes', 'jack', 'dull', 'boy', ',', 'all', 'work', 'and', 'no', 'play']
Более подробную информацию можно найти здесь: https://pythonspot.com/tokenizing-words-and-sentences-with-nltk/
Затем вам нужно превратить эти слова в числа, самый простой способ сделать это - просто использовать их индексы.
tokens = (word_tokenize(data))
indexes = [idx for idx in range(len(tokens))]
Нет, нам нужно нормализовать, чтобы числа находились в диапазоне от 0 до 1.
indexes = indexes / Len(indexes)
Теперь мы можем использовать тензор потока для преобразования этих индексов в вектор.
vector = tf.convert_to_tensor(
indexes, dtype=tf.float)
)
Обратите внимание, что после использования тензора вам нужно денормализовать ваши данные следующим образом:
Indexes = indexes * Len(indexes)
Чтобы превратить это обратно в слово:
tokens[x]
Где X - индекс слова, которое вы хотите получить.