学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
某音乐平台可以为用户推荐歌曲, 推荐歌曲的算法如下:
第1步,系统根据用户的听歌行为,使用-2~5进行量化,单曲循环=5,分享=4,收藏=3,主动播放=2,听完=1,未听=0,跳过=-1,拉黑=-2,量化值大于0表示喜欢,建立如图a数据。

图 a


第2步,分别计算待推荐用户与其他每位用户的听歌相似度(相似度=两用户同时喜欢的歌曲数/两用户中至少有一人喜欢的歌曲数)。
第3步,分别计算其他用户对每一首歌曲的推荐度(推荐度=某用户该歌曲的量化值*两用户的相似度)。
第4步,在其他用户所有量化值大于0的歌曲中找到推荐度最高的,且待推荐用户没有听过的歌曲,推荐给该用户。
小明用Python程序模拟了此推荐算法,请回答下列问题。
(1)在图a所示的10首歌曲中,“yigoo”与“lucky”两用户的相似度为_______。 (四舍五入保留两位小数)
(2)实现上述功能的Python程序如下,运行结果如图b所示,请在划线处填上合适的代码。

图b                                        图 c

def find(name,user):

#代码略

def simalar(music,data,k):        #计算相似度

       xsd=[0]*len(data)

       for i in range(len(data)):

             ms1=ms2=0

             for j in range(len(music)):

                    if k!=i:

                           if data[k][j]>0 and data[i][j]>0:

                                 ms1+=1

                           if _______ :

                                 ms2+=1

             if ms2>0:

                    xsd[i]= ms1/ms2

       return xsd

music=["《孤勇者》 ","《Hug me》","《后会无期》 ","《NUNA》","《蜗牛》 "," 《心墙》 ","《对你说》 ","《与天齐》 ","《栀子花开》"," 《风吹半夏》"]

user=["HelloK","sime32","yigoo","lucky", "halibo","baby","HaiT","bao_66"] #读取听歌行为的量化数据存入data列表,如图c所示

name=input("请输入您的用户名:")

k=find(name,user)                  #调用 find 函数返回该用户在 data 列表中的索引号

xsd=simalar(music,data,k)        #xsd[0]表示 0 号用户与 k 号待推荐用户的相似度

maxm=0

for i in range(len(data)):

       for j in range(len(music)):

             if data[k][j]==0 and data[i][j]>0:

                    like=___________

                    if like>maxm:

                           maxm=like

                           p=j

print("为您推荐的歌曲是:", _________)

编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交