В настоящее время я работаю над задачей классификации по нескольким меткам для текстовых данных. У меня есть фрейм данных со столбцом идентификатора, текстовым столбцом и несколькими столбцами, которые представляют собой текстовую метку, содержащую только 1 или 0.
Я использовал существующее решение, предложенное на этом веб-сайте Классификация токсичных комментариев Kaggle с использованием Bert, который позволяет выражать в процентах степень его принадлежности к каждому ярлыку.
Теперь, когда я обучил свою модель, я хотел бы протестировать ее на нескольких отрывках текста без метки, чтобы получить процент принадлежности к каждой метке:
Я пробовал это решение:
def getPrediction(in_sentences):
label = ['S1, S2, S3']
input_examples = [run_classifier.InputExample(guid="", text_a = x, text_b = None, label=label) for x in in_sentences]
input_features = run_classifier.convert_examples_to_features(input_examples, LABEL_COLUMNS, MAX_SEQ_LENGTH, tokenizer)
predict_input_fn = run_classifier.input_fn_builder(features=input_features, seq_length=MAX_SEQ_LENGTH, is_training=False, drop_remainder=False)
predictions = estimator.predict(predict_input_fn)
return [(sentence, prediction['probabilities'], labels[prediction['labels']]) for sentence, prediction in zip(in_sentences, predictions)]
pred_sentences = [
"here is an exemple of sentence"]
pred_sentences = ''.join(pred_sentences)
predictions = getPrediction(pred_sentences)
И я получил:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-490-770bf0871d3e> in <module>
----> 1 predictions = getPrediction(pred_sentences)
<ipython-input-486-3de7328d60db> in getPrediction(in_sentences)
2 label = ['S1','S2',
3 'S3']
----> 4 input_examples = [run_classifier.InputExample(guid="", text_a = x, text_b = None, labels=label) for x in in_sentences]
5 input_features = run_classifier.convert_examples_to_features(input_examples, LABEL_COLUMNS, MAX_SEQ_LENGTH, tokenizer)
6 predict_input_fn = run_classifier.input_fn_builder(features=input_features, seq_length=MAX_SEQ_LENGTH, is_training=False, drop_remainder=False)
<ipython-input-486-3de7328d60db> in <listcomp>(.0)
2 label = ['S1,
3 S2,S3']
----> 4 input_examples = [run_classifier.InputExample(guid="", text_a = x, text_b = None, labels=label) for x in in_sentences]
5 input_features = run_classifier.convert_examples_to_features(input_examples, LABEL_COLUMNS, MAX_SEQ_LENGTH, tokenizer)
6 predict_input_fn = run_classifier.input_fn_builder(features=input_features, seq_length=MAX_SEQ_LENGTH, is_training=False, drop_remainder=False)
TypeError: __init__() got an unexpected keyword argument 'labels'
Есть идеи, что мне нужно изменить, чтобы последняя часть моего алгоритма работала?