【发布时间】:2021-02-16 01:19:49
【问题描述】:
我正在尝试AllenNLP reading comprehension 和Transformer QA Model 从文章"ABB opened its first dedicated global healthcare research center for robotics in October 2019." 中得到问题"Who is CEO of ABB?" 的答案。
正如预期的那样,UI 演示显示no answer returned。网络选项卡中的 API 响应也显示了这一点。在 json 响应中,best_span_str 为空,但best_span_scores 为9.9。 Screenshot of demo UI and API response in network tab.
当我通过 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。 Attaching python code and output snippet.
为什么 UI 演示与库中的输出存在这种差异?另外,best_span_scores 的范围是多少,我在哪里可以确定丢弃错误结果的阈值?
【问题讨论】: