Как проверить модель НЛП со многими строками - PullRequest
0 голосов
/ 30 сентября 2019

Я обучил модель классификатора, используя логистическую регрессию для набора строк, который классифицирует строки на 0 или 1. У меня сейчас есть такая, где я могу тестировать только одну строку за раз. Как можно, чтобы моя модель проходила более одного предложения за раз, может быть, из файла .csv, чтобы мне не приходилось вводить каждое предложение отдельно?

def train_model (классификатор, feature_vector_train, метка, feature_vector_valid, valid_y, is_neural_net = False): classifier.fit (feature_vector_train, label)

# predict the labels on validation dataset
predictions = classifier.predict(feature_vector_valid)

if is_neural_net:
    predictions = predictions.argmax(axis=-1)

return classifier , metrics.accuracy_score(predictions, valid_y)

затем

model, accuracy = train_model(linear_model.LogisticRegression(), xtrain_count, train_y, xtest_count,test_y)

В настоящее время, как я тестирую свою модель

sent = ['here I copy a string'] 

преобразование текстапосчитать мешок векторов слов

count_vect = CountVectorizer(analyzer='word', token_pattern=r'\w{1,}',ngram_range=(1, 2))
x_feature_vector =  count_vect.transform(sent)
pred = model.predict(x_feature_vector)

и я получу предложение и его предсказание

Я хотел, чтобы модель классифицировала все мои новые предложения сразу и дала классификацию каждому предложению.

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Намного проще будет

vecs=count_vec.transform(test['column_name_on_which_you_want_to_predict'])
pred=model.predict(vecs)
data=pd.DataFrame({'Text':column_name,'SECTION':pred})

, вы можете экспортировать его тогда, как хотите.

0 голосов
/ 30 сентября 2019

model.predict (X) принимает список выборок, то же самое для count_vec.transform (X) , так что вы можете читать предложения из файла и прогнозировать их вместе следующим образом:

with open('file.txt', 'r') as f:
    samples = f.readlines()
    vecs = count_vec.transform(samples)
    preds = model.predict(vecs)
    for s, p in zip(samples, preds):
        #printing each sentence with the predicted label
        print(s + "     Label: " + p)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...