Я использую реализацию тензорного потока BERT для прогнозирования настроений в новостях, где мой обучающий набор данных имеет 3 категории: {1: «Положительный», 2: «Отрицательный», 3: «Нейтральный»}. Я натренировал свою модель на этом, но я не в состоянии понять реализацию предсказания настроений по новым предложениям. Ниже приведен код для прогнозирования новых предложений. Я в основном запутался в параметре label = 0 в run_classifier.InputExample (guid = "", text_a = x, text_b = None, label = 0)
Если я использую label = 0, я получаю ошибку keyerror: 0 . Но если я даю любое другое целое число, например lable = 1 или label = 2, я получаю вывод, но прогноз неверен.
Может кто-нибудь сказать мне значение этого конкретного параметра и как его использовать.
def getPrediction(in_sentences):
labels = ["Positive", "Negative","Neutral"]
input_examples = [run_classifier.InputExample(guid="", text_a = x, text_b = None, label = 0) for x in in_sentences] # here, "" is just a dummy label
input_features = run_classifier.convert_examples_to_features(input_examples, label_list, 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)]