参考文献优化

This commit is contained in:
wyn
2026-07-16 17:02:51 +08:00
parent f09af1d4e4
commit 9b9eec24c2
3 changed files with 44 additions and 39 deletions

View File

@@ -464,7 +464,7 @@ Claim 具体内容见顶层 `claims`combined_reason **只用字母指代**
"is_relevant": 0,
"relevance_score": 0.45,
"reason": "系统综述主语一致。Claim覆盖A✔ B✔ C部分 D✘。类型部分匹配。因缺 D 且 C 仅背景,未达 0.65,故 0.45。",
"author_comment": "该文献与正文主张仅部分匹配,仍缺关键论点支撑。建议补充更直接覆盖核心结论的参考文献。"
"author_comment": "编辑意见:该文献与正文主张仅部分对应,关键论点仍缺直接证据。请改引更能支撑核心结论的文献,或补充说明引用依据。"
},
{
"reference_no": 2,
@@ -478,8 +478,8 @@ Claim 具体内容见顶层 `claims`combined_reason **只用字母指代**
**顶层 claims**:本引用组共用,只写一次;键为 A/B/C…按实际拆解数量值为各 Claim 中文具体内容。
**results 每条仅含**reference_no、is_relevant、relevance_score、reason、author_comment。
`author_comment` 规则:当 `relevance_score <= 0.65` 时必须生成(中文、礼貌、适合展示给作者、可执行≤90字);当 `relevance_score > 0.65` 时必须返回空字符串 `""`。
注意:`author_comment` 禁止出现 A/B/C/D、✔/✘、"Claim覆盖"、具体分值(如 0.65)等技术表达,需改写为作者易读总结
`author_comment` 规则:当 `relevance_score <= 0.65` 时必须生成(中文、**以期刊编辑审稿口吻**、礼貌可执行,**80100字**);当 `relevance_score > 0.65` 时必须返回空字符串 `""`。
注意:`author_comment` 禁止出现 A/B/C/D、✔/✘、"Claim覆盖"、具体分值(如 0.65)等技术表达,需改写为作者易读的编辑批注
**禁止**在 results 各条中写 combined_relevance_score、combined_reason、cite_group_refs、claims。
PROMPT;
}
@@ -502,7 +502,7 @@ PROMPT;
if ($abstractText !== '') {
$parts[] = "【文献摘要/清洗后内容Europe PMC·PubMed·Crossref·PDF\n" . $abstractText;
}
$tail = '请严格按六步标准校对流程执行①提取Claim→②提取文献证据→③Claim Mapping✔/部分/✘)→④计算覆盖率→⑤判断支持类型→⑥输出分值与理由。先在 JSON 顶层 claims 写出各 Claim 具体内容(多事实背景句须拆出比较型/成因型/进展型/数据型独立 Claim再对每篇文献给出单条 relevance_score弱相关文献不得因联合抬高最后写顶层 combined_relevance_score 与 combined_reason。results 每条只写 reference_no、is_relevant、relevance_score、reason、author_comment。author_comment 规则score<=0.65 时输出给作者看的中文批注(礼貌、可执行,≤90字score>0.65 时固定空字符串author_comment 禁止出现 A/B/C/D、✔/✘、Claim覆盖、具体分值。禁止 reason_en、combined_reason_en、relevance_level、relevance_role、combined_is_relevant 等多余字段。';
$tail = '请严格按六步标准校对流程执行①提取Claim→②提取文献证据→③Claim Mapping✔/部分/✘)→④计算覆盖率→⑤判断支持类型→⑥输出分值与理由。先在 JSON 顶层 claims 写出各 Claim 具体内容(多事实背景句须拆出比较型/成因型/进展型/数据型独立 Claim再对每篇文献给出单条 relevance_score弱相关文献不得因联合抬高最后写顶层 combined_relevance_score 与 combined_reason。results 每条只写 reference_no、is_relevant、relevance_score、reason、author_comment。author_comment 规则score<=0.65 时输出以期刊编辑审稿口吻的中文批注(礼貌、可执行,80100字score>0.65 时固定空字符串author_comment 禁止出现 A/B/C/D、✔/✘、Claim覆盖、具体分值。禁止 reason_en、combined_reason_en、relevance_level、relevance_role、combined_is_relevant 等多余字段。';
if ($this->hasMixedReferTypes($referTypeMap)) {
$tail .= ' 注意:本组为图书与期刊混排引用,务必按上方【各编号文献类型标注】分轨判断——图书/教材走「书目推断」轨据书名、副标题、作者、ISBN、出版社判断主题缺摘要不得默认 0.25);期刊/原始研究走「摘要核对」轨(据摘要/清洗内容逐项核对 claim。同组内两类分别按各自标准独立打分切勿用同一把尺子。';
} elseif ($this->allReferType($referTypeMap, 'book')) {
@@ -1612,27 +1612,28 @@ PROMPT;
if ($authorComment !== '') {
$authorComment = $this->sanitizeAuthorCommentText($authorComment);
if ($authorComment !== '') {
return mb_substr($authorComment, 0, 120);
return mb_substr($authorComment, 0, 100);
}
}
$fallback = '编辑意见:该条参考文献与正文匹配度有限,关键论点仍缺直接证据。请改引更能支撑核心结论的文献,或补充说明引用依据。';
$reason = trim((string)$reason);
if ($reason === '') {
return '该条参考文献与正文匹配度有限,建议补充更直接支持该论点的文献。';
return $fallback;
}
// 去掉显式分数结论,保留给作者可读的改进建议
// 去掉显式分数结论,保留给作者可读的编辑批注
$reason = preg_replace('/Claim覆盖[:].*/u', '', $reason);
$reason = preg_replace('/故\s*(?:联合分?)?\s*[01](?:\.\d+)?[。.]?/u', '', $reason);
$reason = trim((string)$reason);
if ($reason === '') {
return '该条参考文献与正文匹配度有限,建议补充更直接支持该论点的文献。';
return $fallback;
}
$reason = $this->sanitizeAuthorCommentText($reason);
if ($reason === '') {
return '该条参考文献与正文匹配度有限,建议补充更直接支持该论点的文献。';
return $fallback;
}
return mb_substr('建议' . $reason, 0, 120);
return mb_substr('编辑意见' . $reason, 0, 100);
}
private function sanitizeAuthorCommentText($text)