Вы подаете список строк в модель, чего она не ожидает. Вы можете использовать модуль keras.preprocessing.text
для преобразования текста в целую последовательность. Более конкретно, вы можете подготовить такие данные, как:
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
tk = Tokenizer()
tk.fit_on_texts(texts)
index_list = tk.texts_to_sequences(texts)
x_train = pad_sequences(index_list, maxlen=maxlen)
Теперь x_train
(a n_samples * maxlen
ndarray типа np.int
) является законным входом для модели.
В C ++ используйте std::string
и operator+
, он разработан специально для решения таких проблем.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string foo( "hello" );
string test( "how are" );
cout << foo + " , " + test;
return 0;
}
Лучше всего использовать std::string
в C ++ в качестве других ответов. Если вам действительно нужно работать с char, попробуйте этот путь. не тестировалось.
const char* foo = "hello";
const char* test= "how are";
char* full_text;
full_text= malloc(strlen(foo)+strlen(test)+1);
strcpy(full_text, foo );
strcat(full_text, test);