Я хотел бы закодировать мои входные буквы строк для методов машинного обучения.Давайте предположим, что мои данные поезда выглядят так:
score text
1 show photos
1 show my photos
2 who are you?
В данный момент я делаю что-то вроде этого:
for index, row in train_set.iterrows():
list2 = []
list2 = list(row.text.lower())
for n, key in enumerate(list2):
if key in dictionary:
list2[n] = dictionary[key]
else:
dictionary[key] = i
list2[n] = i
i += 1
train_set.set_value(index,'text', list2)
И в результате для данных этого примера я получаю:
score text
1 [0, 1, 2, 3, 4, 5, 1, 2, 6, 2, 0]
1 [0, 1, 2, 3, 4, 7, 8, 4, 5, 1, 2, 6, 2, 0]
2 [3, 1, 2, 4, 10, 13, 9, 4, 8, 2, 19, 21]
Как вы знаете, например, для нейронных сетей, это неправильный способ использовать эти значения, поэтому мне кажется, что в этом случае наилучшим решением будет одно горячее кодирование.Интересно, что будет наиболее эффективным способом преобразования этих значений в text
столбец test_set
dataframe, а также в столбец text
в train_set
dataframe, который выглядит как test_set
, но, очевидно, не имеет первого столбца с ожидаемымценности.Я думаю, что в обоих случаях у меня должен быть одинаковый размер столбцов после использования одного горячего кодирования, и один и тот же индекс и строка должны соответствовать одному и тому же символу в обоих test_set
и train_set
данных.Я надеюсь, что вы понимаете, о чем я.Если нет, пожалуйста, дайте мне знать.Я постараюсь объяснить это более четко.Есть идеи, как мне это сделать?