# 问答系统 (Question Answering)<no value>

# 问答系统使用说明

问答系统可以理解为「读一段文字，按问题在原文里标出答案」：先阅读给定段落，再看问题，最后在段落中拖选能直接回答问题的连续文字片段。它适合新闻、百科、说明书等场景，常用于抽取式问答、阅读理解与检索增强类模型训练。

## 标注核心作用

1.  提供可定位的答案监督：答案与原文片段对齐，便于训练与评测；
2.  约束答案来源：答案必须来自段落中的连续文本，减少凭空编造；
3.  标注流程清晰：先选标签再划词，与常见阅读标注习惯一致。

## 基础操作步骤

1.  通读下方段落，理解大意；
2.  阅读问题，明确要回答的要点；
3.  点选「回答」标签，在段落中拖选作为答案的连续文字；
4.  核对所选片段是否完整、无多余内容后提交。

![问答系统标注示例](./images/question-answering-example.png)

说明：答案应尽量是完整短语或句子，避免只选半个词；若段落中不存在合适答案，按项目约定处理（如标空或跳过）。

## 注意事项

- 划选范围需与问题严格对应，避免包含无关邻句；
- 同一问题通常只保留一条答案片段，与 `maxUsage="1"` 一致；
- 示例数据里的 `text` 字段建议写成**单行字符串**（不在 JSON 内换行），以免与字符偏移不一致。

## 模板预览

![问答系统模板预览](./images/question-answering.png)

## 模板配置
### 完整代码块

```html
<View>
  <Header value="请先通读段落，再回答问题。"/>
  <Header value="段落"/>
  <Text name="text" value="$text" granularity="word"/>
  <Header value="问题"/>
  <Text name="question" value="$question"/>
  <Header value="操作：先点选下方「回答」标签，再在段落中用鼠标拖选能作为答案的连续文字。"/>
  <Labels name="answer" toName="text">
    <Label value="回答" maxUsage="1" background="red"/>
  </Labels>
</View>
```

### 问答系统配置代码说明

以上代码用于实现「段落文本 + 问题 + 在原文中标注答案片段」的流程。

1、段落与问题：`Text` 分别绑定 `$text`、`$question`；段落使用 `granularity="word"` 便于按词粒度划选。

2、标签组件：`Labels name="answer"` 与 `toName="text"` 关联，`Label value="回答"` 表示答案类别，`maxUsage="1"` 限制每条任务仅标注一次答案。

### 示例数据（简要）

以下示例中 `text` 为**单行字符串**（无换行）；`annotations` 中的 `start` / `end` 为字符偏移，需与 `text` 完全一致。可按业务替换段落与问题。

```json
{
  "data": {
    "text": "从该区域中无法逃脱的边界被称为事件视界（event horizon）。虽然事件视界会对穿越它的物体的命运和处境产生巨大的影响，但根据广义相对论，它在局部范围内没有任何可以被直接探测到的特征。在很多方面，黑洞的行为就像一个理想的黑体，因为它不会反射任何光。此外，弯曲时空中的量子场论预测，事件视界会发射被称为霍金辐射的辐射，其光谱与黑体辐射相同，而黑体温度与黑洞质量成反比。对于恒星质量级别的黑洞来说，这个温度大约只有十亿分之一开尔文量级，因此几乎不可能被直接观测到。",
    "question": "如何探测黑洞？"
  },
  "annotations": [
    {
      "result": [
        {
          "value": {
            "start": 143,
            "end": 186,
            "text": "事件视界会发射被称为霍金辐射的辐射，其光谱与黑体辐射相同，而黑体温度与黑洞质量成反比。",
            "labels": ["回答"]
          },
          "id": "b0wKkdnnRc",
          "from_name": "answer",
          "to_name": "text",
          "type": "labels"
        }
      ]
    }
  ]
}
```

说明
- 代码可直接复制到标注配置文件中使用；
- 若需多种答案类型，可增删 `Label` 并同步调整示例中的 `labels` 字段；
- 修改 `text` 后，务必重新计算 `start`、`end` 与 `value.text`，保持三者一致。
