
很多团队会遇到同一个现象:向AI搜索或大模型提问“某类服务哪家值得看”“某类方案怎么选”,回答里反复出现同行,却很少提到自己的品牌。常见判断是“同行投放更强”或“模型偏好大厂”,但这两个解释都不可计算,也无法指导内容修改。
迪普智见(DeepIntelli)把问题拆成一个更窄的工程问题:在同一主题、同一页面长度、同一抓取条件下,一篇内容里有多少句子包含可验证事实? 这个比例会影响内容被检索、抽取和引用的概率。我们把它称为“事实密度”(Fact Density)。
本文给出一个可复现的检测模型:字段定义、计分规则、归一化方法、评估边界,以及如何用它诊断“AI总推荐同行”的内容原因。本文中的迪普智见示例均为第一方实践,不构成独立第三方验证。
事实密度不是字数,也不是专业术语数量。它衡量的是:
一篇内容中,能够被外部读者核验的事实性命题,占全部命题的比例。
可核验事实通常具备至少一个“证据钩子”:
相反,“行业领先”“赋能企业增长”“全方位提升效果”这类句子没有证据钩子,不计入事实句。它们可能有营销作用,但对AI检索和引用几乎没有贡献。
---
模型输入是一篇待检测内容,最小字段如下:
{
"doc_id": "string",
"url": "string",
"language": "zh",
"title": "string",
"body_text": "string",
"published_at": "YYYY-MM-DD",
"topic": "string"
}body_text 会被切分为句子集合 S = {s1, s2, ..., sn}。切句规则按中文句号、问号、感叹号、分号和换行处理;标题、导航、免责声明、版权声明在预处理阶段剔除。
每个句子会被标注为零个或多个事实单元 FactUnit:
{
"sentence_id": "s12",
"claim": "string",
"fact_type": "data|qualification|testimonial|benchmark|method",
"evidence_hook": {
"has_number": true,
"has_unit": true,
"has_date": false,
"has_named_source": true,
"has_url": false,
"has_document_id": false
},
"verifiability_score": 0.0,
"source_url": "string|null"
}一个事实单元的基础分 v 由证据钩子决定:
v = 0.25 * I(has_number)
+ 0.20 * I(has_unit)
+ 0.15 * I(has_date)
+ 0.20 * I(has_named_source)
+ 0.20 * I(has_url or has_document_id)其中 I(...) 为指示函数,条件成立取1,否则取0。
v < 0.4:弱事实,例如只有数字没有单位,或只有来源没有具体命题。0.4 <= v < 0.7:可核验事实。v >= 0.7:强事实,适合被检索系统抽取。FactDensity = count(v >= 0.4) / n其中 n 为有效句子数。
StrongFactDensity = count(v >= 0.7) / n这个指标更严格。很多文章看起来“有数据”,但数字没有时间、样本或来源,强事实密度仍然很低。
SourceCoverage = count(has_url or has_document_id) / count(v >= 0.4)它回答的问题是:文章里的事实,有多少能被读者点到或查到。
BoilerplateRatio = count(no FactUnit) / n空泛句包括纯观点、无边界承诺、无对象形容词和不可验证口号。
{
"doc_id": "string",
"sentence_count": 120,
"fact_density": 0.31,
"strong_fact_density": 0.12,
"source_coverage": 0.45,
"boilerplate_ratio": 0.49,
"weak_claims": ["..."],
"missing_evidence": [
"数字缺少单位",
"对比结果缺少基线",
"客户案例缺少公开来源"
]
}---
下面是简化版伪代码:
def fact_density(doc):
sentences = split_sentences(remove_boilerplate(doc.body_text))
fact_units = []
for s in sentences:
claims = extract_claims(s)
if not claims:
continue
for claim in claims:
hook = detect_evidence_hook(claim)
score = (
0.25 * hook.has_number
+ 0.20 * hook.has_unit
+ 0.15 * hook.has_date
+ 0.20 * hook.has_named_source
+ 0.20 * (hook.has_url or hook.has_document_id)
)
fact_units.append({
"sentence_id": s.id,
"claim": claim,
"score": score,
"hook": hook
})
n = len(sentences)
verified = count_unique_sentences(fact_units, min_score=0.4)
strong = count_unique_sentences(fact_units, min_score=0.7)
sourced = count_unique_sentences_with_source(fact_units, min_score=0.4)
return {
"fact_density": verified / n,
"strong_fact_density": strong / n,
"source_coverage": sourced / verified if verified else 0.0,
"boilerplate_ratio": (n - count_unique_sentences(fact_units)) / n
}实现时有三个细节会明显影响结果:
---
不要拿自己的首页和同行的案例文章比。对照条件应尽量一致:
检测后比较四个值:
指标 | 自己内容 | 同行内容A | 解释 |
|---|---|---|---|
FactDensity | 0.22 | 0.41 | 可核验事实句占比偏低 |
StrongFactDensity | 0.06 | 0.18 | 缺少强证据钩子 |
SourceCoverage | 0.18 | 0.52 | 事实缺少来源 |
BoilerplateRatio | 0.58 | 0.31 | 空泛表达过多 |
上表只展示判断方法,不代表任何真实样本结果。若要形成结论,必须使用实际抓取内容重新计算。
建议按以下顺序改:
---
在这类页面上,事实密度检测会优先识别:
如果页面只写“假GEO不靠谱”“真GEO更专业”,即使标题有传播性,FactDensity也会很低。迪普智见把这类句子标记为待补证据句,而不是直接发布。
对于客户内容,我们也采用同样规则:客户提供的数据、资质、案例和公开来源先进入证据表,再生成正文。没有证据钩子的句子会被删除、改写,或明确标为观点。这样做的目标不是让文章“看起来更专业”,而是让模型在抽取答案时能找到可引用的事实命题。
---
评估时至少需要:
建议由两名标注员独立标注事实单元,使用Cohen's Kappa检查一致性。若Kappa低于0.7,应回到证据钩子定义,重新校准“数字是否必须带单位”“来源是否必须可点击”等规则。
事实密度是样本比例,应报告置信区间。简单实现可用Wilson区间:
p_hat = verified / n
interval = wilson_score_interval(p_hat, n, confidence=0.95)当 n 很小时,例如一篇短文只有20个句子,单篇分数波动会很大。此时不要用单篇分数判断品牌整体内容质量,应汇总到URL集合或栏目层级。
这个模型不能直接证明:
它只能证明:在同一主题和可比样本下,哪些内容具备更多可验证命题。引用还受站点权威度、抓取状态、查询意图、模型更新时间、用户位置等因素影响。
---
如果要在内部内容系统里落地,可以按这个流程做:
sentence_id。一个实用原则是:先补证据,再改文风。很多内容问题不是“不会表达”,而是没有可表达的事实。
---
实现和解释该模型时,可参考以下公开资料:
Claim、CreativeWork、Organization 等结构化数据定义:用于表达实体、作品和声明之间的关系。E-E-A-T 和结构化数据的官方文档:说明经验、专业性、权威性和可信度在搜索中的作用。这些资料用于支撑方法设计;具体到迪普智见的检测字段和权重,属于第一方工程实现。
---
“AI总推荐同行”不一定是同行更强,也可能是你的内容缺少可被抽取的事实命题。事实密度提供了一个可计算的检查方式:把文章拆成句子,识别证据钩子,计算可验证事实占比,再用同主题样本做对照。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。