Я пытаюсь AllenNLP reading comprehension
с Transformer QA Model
получить ответ на вопрос "Who is CEO of ABB?"
из отрывка "ABB opened its first dedicated global healthcare research center for robotics in October 2019."
.
Как и ожидалось, демонстрация пользовательского интерфейса показывает no answer returned
. Ответ API на вкладке сети также показывает это. В ответе json best_span_str
пусто, но best_span_scores
равно 9.9
. Снимок экрана демонстрационного пользовательского интерфейса и ответа API на вкладке сети.
Когда я выполняю аналогичный код через библиотеку python, я получаю другой результат.
from allennlp.predictors.predictor import Predictor
import pandas
def allen_nlp_demo_1():
import allennlp_models.structured_prediction
import allennlp_models.rc
predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/transformer-qa-2020-05-26.tar.gz")
data = predictor.predict(
passage="ABB opened its first dedicated global healthcare research center for robotics in October 2019.",
question= "Who is CEO of ABB?"
)
print(data)
if __name__ == '__main__':
allen_nlp_demo_1()
обеспечивает следующий вывод json
{
"span_start_logits": [...],
"best_span": [
7,
15
],
"best_span_scores": -10.418445587158203,
"loss": 0,
"best_span_str": "healthcare research center for robotics in October 2019",
"context_tokens": [...],
"id": "1",
"answers": []
}
Здесь я вижу, что идет best_span_str
, а best_span_scores
как -10.418445587158203
. Прикрепление кода Python и фрагмента вывода.
Почему такая разница в выводе в демонстрации пользовательского интерфейса и библиотеке? Кроме того, каков диапазон best_span_scores
и где я могу определить порог для отбрасывания ложных результатов?