Добавление np-массива null столбцов при появлении новой фразы

#python #numpy

#python #numpy

Вопрос:

Я обучаю модель обнаруживать сущности во фразах. Мой поезд состоит из 500 фраз, в которых 1000 слов. Итак, мой

 X_train.shape = (500,1000) 

X_train = [[0. 0. 0. 0. ...], [0. 0. ...], ...]. <-- already have this
  

Каждый столбец посвящен определенному слову (порядок очень важен).

Когда я хочу предсказать сущность новой фразы, я могу получать слова, которые никогда не видели. Считайте, что я получаю ввод: «Моя рубашка желтая»

Мне нужно поместить этот ввод в виде np.array с формой (1, 1000). Если слово yellow не существует, мне нужно иметь форму (1,1001) и переобучить модель (со всеми нулями для этого столбца, ofc). Как я могу это сделать?

Небольшой пример:

            "I" "am" "dark" "Vader's" "son". (trained corpus)
X_train = [[1,   1,   0,      0,      0], 
           [1,   1,   1,      0,      0]]
  

Новый ввод: предсказать «я дочь темного Вейдера»

Итак, мне нужно переобучить мою модель с:

        "I" "am" "dark" "Vader's" "son" "daughter". (trained corpus)
X_train = [[1,   1,   0,      0,      0,   0], 
           [1,   1,   1,      0,      0,   0]]
  

Поэтому я могу предсказать новый ввод:

X_predict = [[1,1,1,1,0,1]] — также необходимо поместить это в эту форму

Ответ №1:

Вы могли бы использовать np.append и np.zeros :

 X_train = np.append(X_train, np.zeros((X_train.shape[0], 1)), axis=1)
print(X_train)
  

Вывод

 array([[1., 1., 0., 0., 0., 0.],
       [1., 1., 1., 0., 0., 0.]])