返回评分

评分算法

本站的评分完全由公开数据与固定公式产生,不调用任何 AI 模型,也不包含主观判断。这一页把两层算法、每一个权重、每一条规则和它们的来源完整写出来,便于逐项核对。

概论

评分分两层。第一层针对单部电影,输出 0-100 分;第二层针对四部电影组成的 Top 4 Build,同样输出 0-100 分。两层之间是单向依赖的:单部分数会作为 Build 质量维度的输入,但 Build 的最终得分不会反过来改变任何一部电影的单部分数。

之所以要分两层,是因为「四部好电影」和「一个好的 Top 4」并不是同一件事。如果只看平均分,那么四部公认杰作永远是最优解,四部作品之间的关系会被完全忽略。所以在第二层里,单部质量的权重被刻意压到 25%,其余 75% 用来衡量这四部电影之间的关系:跨度有多宽、彼此有没有可计算的联系、这套选择是否呈现出某种整体倾向。

整套算法是确定性的:相同的输入永远得到相同的输出,不涉及随机数、不涉及生成式模型,也不使用任何用户画像或行为数据。

数据源与选用理由

算法一共使用四类外部数据。每一类只取它最擅长的那部分字段,避免同一条信息被重复计入。

数据源使用的字段选用理由
TMDBvote_average、vote_count、popularity、genres、release_date、revenue、production_countries、production_companies、original_language、director、keywords、belongs_to_collection观众评分与文化传播度,以及多样性分析所需的类型、地区、语言、导演与关键词
IMDbrating、vote_count观众样本量最大的电影评分数据库,投票数远超 TMDB
奥斯卡最佳影片与最佳导演的获奖记录、其他类别获奖数量辨识度最高的行业认可信号
三大电影节金棕榈、金狮、金熊,以及评审团大奖、评审团奖、最佳导演等九类奖项影史意义明确的国际认可
TSPDT 影史 Top 1000排名覆盖面最广的影史地位指标
TSPDT 21 世纪排名只含 2000 年后上映的电影,用来补偿当代电影——新片在历史总榜上天然吃亏
Sight & Sound 影评人榜排名最权威的影史榜单之一,代表评论界的长期共识
《电影手册》年度十佳排名当代法国作者主义批评视角,对近年新片的认可比历史榜单更及时

刻意不使用的字段:预算与片长。预算高低与一部电影在影史中的位置没有稳定关系;片长对品味评价没有解释力。把它们计入只会增加噪声,不会提高区分度。

第一层 · 单部电影评分(0-100)

单部分数由四个维度加权求和得到。每个维度先各自归一化到 0-100,再乘以权重相加,最后整体乘以 100。

总分 = (观众评分 × 0.20 + 影史地位 × 0.35 + 奖项认可 × 0.20 + 文化传播度 × 0.25) × 100

维度 1 · 观众评分(权重 20%)

主数据源是 IMDb 评分。直接使用算术平均会有一个众所周知的问题:只有几百人投票的 9.2 分,可信度远不如十万人投票的 8.8 分。因此先做贝叶斯收缩,把评分朝总体均值方向拉,票数越少拉得越狠。

WeightedRating = (v / (v + m)) × R + (m / (v + m)) × C

R = IMDb 评分
v = IMDb 票数
C = 6.8  参考总体均值
m = 25000  可信度阈值

收缩后的评分再映射到 0-100。映射区间取 5.0 至 9.0,而不是 0 至 10:真实电影的加权评分几乎不会低于 5.0,用满量程会让所有电影挤在高分段,失去区分度。

IMDbScore = clamp(100 × (WeightedRating − 5.0) / 4.0, 0, 100)

票数本身也参与本维度,但权重很小,因为票数还会在文化传播度维度中单独使用。这里如果给足权重,等于把同一条信息计算两遍。

VoteCredibility = clamp(100 × log10(1 + v) / log10(1 + 1,000,000), 0, 100)
IMDbStrength = 0.85 × IMDbScore + 0.15 × VoteCredibility

最后用 TMDB 评分做交叉验证。TMDB 的样本量小于 IMDb,口味也更偏大众,因此只占 30%,作用是在 IMDb 可能出现极端值时提供校正。

TMDBScore = clamp(tmdb_rating × 10, 0, 100)
观众评分 = 0.70 × IMDbStrength + 0.30 × TMDBScore

维度 2 · 影史地位(权重 35%,最高)

这是权重最高的维度,因为影史榜单聚合的是数千名影评人与导演的长期共识,不受短期热度与宣发影响。它由四个子项相加而成,满分合计 28 分,再折算为百分制。

子项满分计算方式
TSPDT 影史 Top 100013 分第 1 名 = 13 分,第 1000 名 = 4.55 分,递减且保底 35%
TSPDT 21 世纪6 分仅 2000 年及以后上映的电影适用;第 1 名 = 6 分,第 1000 名 = 2.1 分,递减且保底 35%
Sight & Sound 影评人榜4 分第 1 名 = 4 分,第 250 名 = 1.4 分,递减且保底 35%
《电影手册》年度十佳5 分第 1 名 = 5 分,第 10 名 = 1.75 分,递减且保底 35%

所有榜单共用同一条递减公式:第 1 名拿满该子项的全部分数,之后等距递减,但不会降到 0 —— 榜尾保留该子项 35% 的分数。名次会被夹到 [1, 榜长] 区间内,超出榜长的名次按榜尾计算,不会产生负分。

RankPoints = maxPoints × (0.35 + 0.65 × (listLength − clamp(rank, 1, listLength)) / (listLength − 1))

为什么不一路降到 0:一份千名的榜单若线性归零,几百名之后全部贴近 0 分。实测在 200 部随机抽样里,44% 的影片在这个权重最高的维度上得 0 分,分布的中段因此被压平,总分实际变成了「知名度」的排序,而不是「影史地位」的排序。保留 35% 的保底后,名次差异依然起作用——同一张千名榜上第 1 名仍是第 1000 名的 2.9 倍——但长榜的尾段也能贡献分数。「入榜但排在末位」与「从未入榜」仍然分得开:只有后者才是 0。

上面这些名次都换算成百分制后再按 35% 计入总分,但分母不是固定的 28 分:TSPDT 21 世纪榜只收录 2000 年及以后上映的电影,一部更早的电影根本不可能出现在这张榜上,所以它的名次属于「未知」而不是「没有」。此时这 6 分会连同分母一起被剔除,该片实际按 22 分折算影史地位。这样一部 1963 年的经典不会因为「上不了 21 世纪榜」而被扣掉 6 分;反过来,2000 年后上映的电影若确实没上榜,那就是「已核实为无」,按 0 分计、分母保持 28 分。免除的前提是能确认这部电影不可能入榜,所以上映年份未知的电影不享受免除,仍按满额 28 分计算。

TSPDT Top 1000 占了最重的 13 分,因为它是覆盖面最广的多源聚合榜。TSPDT 21 世纪榜用来补偿当代电影。Sight & Sound 影评人榜代表评论界的长期共识。

《电影手册》年度十佳提供的是当代法国作者主义批评视角,它的价值在于及时:去年的新片几乎不可能立刻登上 TSPDT,却可能已经出现在手册的年度十佳里。四个子项合起来,长期共识与当代判断都被覆盖到。

维度 3 · 奖项认可(权重 20%)

奖项认可 = 0.50 × 奥斯卡 + 0.35 × 电影节 + 0.15 × 奖项广度

奥斯卡部分只统计获奖,完全不使用提名数据。三类获奖相加后按 15 分满分折算。奖项与影史地位同一口径:榜单库里没有记录的影片,奖项按 0 分计,不当作未知剔除。

事件分值
最佳影片获奖8 分
最佳导演获奖5 分
其他类别获奖每项 0.5 分,合计上限 2 分

电影节部分取九个奖项中的最高单项,不做累加,按 10 分满分折算。

奖项分值
戛纳金棕榈 Palme d'Or10 分
威尼斯金狮 Golden Lion9 分
柏林金熊 Golden Bear8 分
戛纳评审团大奖 Grand Prix6 分
威尼斯评审团大奖 Grand Jury Prize5 分
柏林银熊评审团大奖 Silver Bear Grand Jury5 分
戛纳最佳导演 Best Director5 分
戛纳评审团奖 Jury Prize4 分
柏林银熊评审团奖 Silver Bear Jury(含 Alfred Bauer 奖)3 分

奖项广度奖励的是跨机构的覆盖范围,而不是奖项数量。四个机构各占 25 分,只看有没有获奖记录。

奖项广度 = 25 × 奥斯卡有获奖 + 25 × 戛纳有记录 + 25 × 威尼斯有记录 + 25 × 柏林有记录

由于奖项统计过于耗时,很遗憾不能添加更多奖项。

维度 4 · 文化传播度(权重 25%)

四个子项全部做对数归一化,因为这些数据跨越多个数量级(从几百到几百万)。每个子项只在有数据时才进入分母。

子项满分计算方式
IMDb 投票数40 分clamp(40 × log10(1 + v) / log10(1 + 1,000,000), 0, 40)
TMDB 投票数30 分clamp(30 × log10(v) / log10(15,000), 0, 30)
票房收入15 分clamp(15 × log10(1 + revenue) / log10(1 + 1,000,000,000), 0, 15)
TMDB popularity15 分clamp(15 × min(popularity / 100, 1), 0, 15)
维度得分 = 100 × 已有子项得分之和 / 已有子项满分之和

Tier 映射

单部分数与 Build 总分各自有一套档位线,因为两者分布宽度不同:单部分数由四个独立维度构成,在 200 部随机抽样里实测跨度约 0–77;Build 总分是五个已经取过平均的维度再加权平均,天然被压缩在约 38–72。用同一套阈值会让高段档位事实上不可达。两套线都是按实测分布定的。

单部分数区间Tier含义
60 及以上S顶尖,几乎没有短板
50 至 59A优秀,有少数弱点
40 至 49B合格,有亮点也有硬伤
28 至 39C明显弱点,认可集中在少数维度
28 以下F认可度极低,或数据不足

第二层 · Top 4 Build 评分(0-100)

Build 总分 = 0.25 × 质量 + 0.25 × 多样性 + 0.20 × 组合张力 + 0.15 × 辨识度 + 0.15 × 认可度平衡 + 规则调整(−10 ~ +5)

五个维度各自先算到 0-100,再按权重加权求和,最后叠加规则加减分,结果夹到 [0, 100]。

维度 1 · Build 质量(权重 25%)

四部电影单部分数的算术平均值。这个权重从概念上的 40% 下调到 25%,因为单部质量不应主导 Build 评价——Top 4 的核心是组合关系,不是四部电影各自有多好。

维度 2 · 多样性(权重 25%)

多样性 = 0.25 × 时代多样性 + 0.25 × 语言地区多样性 + 0.25 × 类型多样性 + 0.15 × 导演多样性 + 0.10 × 系列公司独立性

时代多样性由香农熵与连续年份跨度两部分构成。7 个固定时代桶为:1930 年前、1930 至 50 年代、1960 至 70 年代、1980 至 90 年代、2000 年代、2010 年代、2020 年代。

p_k = 该时代的电影数 / 4
H = −Σ(p_k × ln p_k)
EraEntropy = 100 × H / ln 4
Span = min(1, (max(year) − min(year)) / 80)
时代多样性 = 0.70 × EraEntropy + 0.30 × Span × 100

语言地区多样性由语言熵与地区熵加权而成。地区按固定映射表归入十个宏观区域(北美、欧洲、东亚、南亚、东南亚、拉丁美洲、中东、大洋洲、非洲、其他)。合拍片最多贡献 2 个地区,否则一长串制作国家会凭空抬高地区多样性。

LanguageDiversity = 100 × H(language) / ln 4
RegionDiversity = 100 × H(region) / ln 4
语言地区多样性 = 0.55 × LanguageDiversity + 0.45 × RegionDiversity

类型多样性取 TMDB 类型 ID 集合两两之间 Jaccard 距离的平均值,四部电影共 6 组配对。

JaccardDistance(i, j) = 1 − |Genres_i ∩ Genres_j| / |Genres_i ∪ Genres_j|
类型多样性 = 100 × average(JaccardDistance(i, j), 全部 6 组)

导演多样性只看不同导演的数量,四部片子由四位不同导演执导即为满分。

D = 不同导演数量
导演多样性 = clamp(100 × (D − 1) / 3, 0, 100)

系列公司独立性惩罚的是同系列扎堆与制作公司重复。

CollectionPenalty = 50   四部同属一个系列
CollectionPenalty = 25   三部同属一个系列
CompanyOverlap = 重复制作公司的比例
系列公司独立性 = clamp(100 − CollectionPenalty − 25 × CompanyOverlap, 0, 100)

维度 3 · 组合张力(权重 20%)

综合亲和度 = 0.40 × 类型亲和 + 0.25 × 关键词亲和 + 0.20 × 创作者亲和 + 0.15 × 年代亲和

类型亲和与关键词亲和都使用 Jaccard 相似度,分别作用于 TMDB 类型 ID 与关键词 ID,取全部 6 组配对的平均值。关键词只做集合运算,不解释语义。

类型亲和 = 100 × average(JaccardSimilarity(i, j), 全部 6 组)

创作者亲和衡量导演与制作公司的重复程度。

DirectorRepeat = clamp((同一位导演最多执导数 − 1) / 3, 0, 1)
SharedCompanyRate = 重复制作公司的比例
创作者亲和 = 100 × (0.70 × DirectorRepeat + 0.30 × SharedCompanyRate)

年代亲和使用年份差值计算:同一年为 1,相差 80 年及以上为 0。

YearSimilarity(i, j) = clamp(1 − |year_i − year_j| / 80, 0, 1)
年代亲和 = 100 × average(YearSimilarity(i, j), 全部 6 组)

四项加权平均后得到「综合亲和度」,衡量这四部电影彼此有多像。但组合张力并不是这条亲和度的单调函数——它是一条单峰曲线,峰值在亲和度 35 分的位置。

亲和度 ≤ 35: 组合张力 = 40 + 60 × 亲和度 / 35
亲和度 > 35: 组合张力 = 100 − 55 × (亲和度 − 35) / 65

两端的取值:四部电影毫无交集时(亲和度 0)得 40 分;四部电影几乎可以互相替换时(亲和度 100)得 45 分。只有落在峰值附近——既有说得清楚的共同线索,又保持真实的跨度——才拿满分。

这样设计的原因:一个 Top 4 有两种失败方式。四部片毫无关系,它就是一个随机抽样;四部片是同一部片,它就是重复而不是表达。两种都不该被奖励。反过来,「反差」本身是加分项,不该被当成「不一致」扣分。峰值 35 分略高于实测的随机组合亲和度中位数(约 16 分),所以随手挑的四部不会掉进低分区,而刻意经营的一组可以明显甩开它。

维度 4 · 辨识度(权重 15%)

辨识度 = 0.35 × 类型集中度 + 0.30 × 导演签名 + 0.20 × 主流冷门混合 + 0.15 × 稀有特征

类型集中度使用赫芬达尔指数(HHI)。集中度高说明风格专精,集中度低说明类型混搭,两者都可能构成辨识度,因此采用「偏离均匀分布的程度」来衡量,中间值最低。结果上限 80 分。

p_g = 类型 g 在四部电影中出现的比例
HHI = Σ(p_g²)
类型集中度 = min(80, 100 × 2 × |HHI − 0.25|)

导演签名是一张固定分值表,按导演重复模式取值:

模式分值
同一导演 2 部,且另外两部导演不同80
同一导演 3 部70
同一导演 4 部60
导演不重复,但类型或关键词亲和达到 50 以上30
导演与类型都高度随机20

主流冷门混合取电影层文化传播度得分的标准差:不同可见度的电影混在一起,通常比四部热度相当的作品更有组合特色。

FootprintSpread = stdDev(文化传播度_1..4)
主流冷门混合 = clamp(100 × FootprintSpread / 40, 0, 100)

稀有特征统计四个信号,每个信号只在该特征于四部中仅出现一次时才计分。

稀有特征 = 25 × 独特语言 + 25 × 独特地区 + 25 × 独特时代 + 25 × 独特类型

维度 5 · 认可度平衡(权重 15%)

认可度平衡 = 0.45 × 公众共识 + 0.30 × 奖项声望 + 0.15 × 文化可见度 + 0.10 × min(100, 认可层次 × 2)

IMDb 声誉占最大比重(45%),因为它是可持续累积的公众评分;奖项占 30%,代表行业认可但不让它主导结果;文化可见度占 15%。最后 10% 奖励组合内部的认可度层次,用四部电影认可指数的标准差计算——四部完全同质时该项为 0。

各项均值都只在有数据时参与计算,缺失项按比例重新分配权重。

Build 档位映射

Build 总分是五个 0-100 维度的加权平均,天然被压缩:在 404 部 TMDB 热门与高分影片的池子里随机抽 2 万组四部,分位数是 25% = 51.9、50% = 55.2、75% = 58.1、90% = 60.4,跨度约 38–72。所以 Build 的档位线比单部分数低,是按这条实际分布划的,而不是照搬单部分的档位。

Build 总分区间Tier实测含义
67 及以上S随机组合中约占 0.2%;四部都取自池内前 10% 影片时约 41% 达到
58 至 66A随机组合中约占 26%
53 至 57B随机组合中约占 42%
46 至 52C随手挑四部的典型落点,约占 30%
46 以下F需要四部都缺认可,或触发规则扣分

我们用 24 次不同起点的爬山搜索与 821 万组穷举交叉验证,404 部影片池中 Build 总分的全局最大值是 79.0,出自下面的组合。作为对照,随机抽 2 万组的实测最高分只有 72.2。

  • 教父 The Godfather(1972)— 单片 76.1(S)
  • 教父2 The Godfather Part II(1974)— 单片 76.9(S)
  • 寄生虫 Parasite(2019)— 单片 88.7(S)
  • 四月三周两天 4 Months, 3 Weeks and 2 Days(2007)— 单片 53.6(A)

这组的组合张力 99.3 几近顶格,并触发全部规则加分(+5)。

在首页查看这组评分

派别判定

在五个维度之外,引擎会用同一组已经算出的信号做一次轻量的派别判定:满足条件的派别全部列出,排在最前的是最具体的一个。派别只是给信号组合起名字,不参与总分,也不影响档位与 Level。

派别判定信号
全同系列派四部全部属于同一个电影系列
导演专精派三部及以上出自同一位导演
类型专精派类型集中度不低于 55
老派电影派三部及以上来自 1970 年前的年代桶
年轻影迷派三部及以上来自 2010s / 2020s
国际电影猎人派非英语片不少于三部,且语种不少于两种
混沌抽卡派多样性不低于 65,组合张力不超过 48,且导演签名为随机档
终极混合派多样性不低于 70,组合张力不低于 55,主流混合不低于 60
冷热混搭派主流混合不低于 60,且认可 spread 不低于 45
颁奖季派奖项声望不低于 70,且不少于两部奥斯卡获奖片
影迷标准答案派公众共识不低于 60,且组内平均榜单地位(TSPDT/《视与听》/《电影手册》)不低于 60
艺术电影派组内平均榜单地位(TSPDT/《视与听》/《电影手册》)不低于 40,且平均热度(IMDb 与 TMDB 票数分之和)不超过 58
电影发烧友派影评力不低于 60,两部同导演,且公众共识不超过 65
大众真爱派公众共识不低于 70,影评力不超过 55,主流混合不超过 35,且没有任何一部片进入 TSPDT、《视与听》或《电影手册》榜单
舒适电影派三部及以上属于舒适类型(喜剧、家庭、爱情、动画、音乐),且公众共识不低于 50
冷门派每部片的 IMDb 与 TMDB 评分数都低于阈值

判定只看选片形态,不看动机。怀旧派、反主流派、反讽派这类取决于「为什么选它」的派别,数据看不见意图,因此不参与判定——这也是「评价选片套路,不评价人」的边界。

规则加减分

规则加减分只处理算法能够明确检测到的特殊情况,调整范围被夹在 −10 到 +5 之间。同一条件只会触发一次,不会重复累加。

规则分值触发条件
三重覆盖+33 个及以上时代,且 3 种及以上语言或地区,且 4 种及以上类型
分布认可+23 部及以上电影的单部分数达到 60
全同系列−3四部全部属于同一个系列
同质年代−2同一个时代,且同一种语言,且同主要地区
类型狭窄−2总共不超过 2 种类型,且只有一种语言
作弊−100提交的电影数量超过 4 部

Level 系统(1-9)

Level 描述的是公开数据呈现出的 Build 复杂度,不代表用户的智力、观影数量、职业或身份。

LevelRaw = 0.35 × 多样性 + 0.30 × 组合张力 + 0.20 × 辨识度 + 0.15 × 时代纵深

时代纵深 = 0.60 × 时代多样性 + 0.40 × min(100, 奖项声望)

LevelRaw 同样是多个已归一化维度的加权平均,实测跨度只有约 43–77(随机抽四部:10% = 55、50% = 61、90% = 66)。因此档位线比常见的百分制刻度窄得多——每级 4 分——否则所有组合都会挤在同一两级里。第 5 级的区间对准实测中位数。

LevelRawLevel描述
46 及以下1白板开局
47 至 502起手套装
51 至 543类型尝鲜
55 至 584开荒期
59 至 625均衡构筑
63 至 666专精路线
67 至 707广度养成
71 至 748资深收藏
75 及以上9满级构筑

LevelRaw 的全池上限同样实测过(同一套搜索与穷举流程):81.3,Level 9,出自冬眠(2014)、远方(2002)、Oro negro(2024)与飞越疯人院(1975)——四个年代桶、三种语种、四个地区,组合张力 99.5、辨识度 76.5。注意其中一部单片只有 13.5 分(F):LevelRaw 完全不看质量与认可度,冷门片的稀缺特征反而抬升辨识度,因此理论上限会被数据稀疏的影片推高。若只在前 120 部单片高分影片里穷举,上限是 80.0(黄金三镖客(1966)、霸王别姬(1993)、远方(2002)、冬眠(2014))。

在首页查看这组评分

属性面板

属性面板只由上面已经算出的中间值组合而成,不会再次进入最终总分。它的作用是提供另一种读法,而不是另一个分数。

属性公式
影评力 Film Criticism0.45 × 公众共识 + 0.35 × 奖项声望 + 0.20 × 时代纵深
个性 Originality辨识度
主流度 Mainstream Power文化可见度
Build 张力组合张力
时代纵深 Historical Depth时代纵深
奖项声望 Awards Prestige奖项声望
公众共识 Public Consensus公众共识
被攻击风险 Roast Vulnerabilityclamp(100 − 0.45 × 多样性 − 0.35 × 组合张力 − 0.20 × 辨识度, 0, 100)

数据置信度

单片数据置信度由五个可核实的字段累加而成,满分 100。

单片置信度 = 25 × 有 IMDb ID
           + 25 × 有 IMDb 评分与票数
           + 20 × 有类型与年份
           + 15 × 有导演
           + 15 × 奖项数据已核实

整套 Build 的置信度是四部电影置信度的算术平均值。

分数等级处理方式
85 至 100High字段完整,评级可直接采信
65 至 84Medium正常评级,同时标记缺失字段
40 至 64Low只输出区间,不建议作为最终 Tier
0 至 39Invalid不评级,先修正影片匹配

方法论限制

算法可以稳定回答

  • 四部电影在年代、语言、地区和类型上的差异有多大
  • 四部电影之间是否存在可计算的类型、关键词、导演或系列联动
  • IMDb 声誉、奖项认可与文化可见度在组合内如何分布
  • 某个 Top 4 更接近专精流、混合流还是热门集中流

算法无法客观回答

  • 你是否真的喜欢这四部电影
  • 你是否在刻意塑造某种形象
  • 哪一部电影「真正更伟大」
  • 四部的反差是否构成幽默
  • 你的年龄、职业、人格或任何现实身份