实现一个高频标签对筛选系统。要求如下:
在一个在线学习平台中,每份学习记录包含若干课程标签。现在需要分析不同标签之间的关联情况。给定 N 条学习记录,每条记录是一个标签集合。对于任意两个不同标签 u 和 v,若某条记录同时包含 u 和 v,则称 u 和 v 在该记录中共现。用 cnt(u,v) 表示同时包含 u 和 v 的记录条数,则它们的共现比例定义为 c(u,v)=Ncnt(u,v)。给定阈值 θ,若 c(u,v)≥θ,则称 (u,v) 为一个高频标签对。请计算所有高频标签对,并按照规定格式输出。
保证总记录数 N 不超过 10^5,单条记录中标签数量不超过 100。所有标签均为非空字符串。阈值 θ 满足 0≤θ≤1。
输入包含若干行。除最后一行为浮点数 θ 外,其余行共同构成一个 Python 风格的二维列表,表示所有学习记录。二维列表的每个元素是一个字符串列表,表示一条记录中包含的标签。最后一行给出最小共现比例阈值 θ。二维列表可以分布在多行中。保证总记录数 N 不超过 10^5,单条记录中标签数量不超过 100。
对于每个高频标签对,输出一行,包含一个三元组 (标签A, 标签B, 共现比例)。其中标签 A 和 B 按字典序排列;共现比例使用 round(x, 2) 保留小数位。输出顺序为计算过程中发现高频标签对的顺序。若不存在满足条件的标签对,则不输出任何内容。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.