首页 > 试题广场 >

新闻推荐处理

[编程题]新闻推荐处理

你正在为一个新闻推荐系统工作,该系统根据用户的阅读历史和新闻的类别来推荐新闻。

给定一个用户的阅读历史数据,每个用户有多个新闻类别的阅读次数。我们希望计算每个用户阅读新闻类别的信息熵。

信息熵的计算公式为:

其中,p_i是用户阅读第i类新闻的概率, n 是新闻类别的数量。

你需要编写一个Python函数,该函数接受上述格式的输入数据,从终端读取输入,然后计算每个用户的信息熵,并将结果保留到3位小数并输出到终端。


输入描述:
输入是一个字典,键是用户的id(字符串),值是一个字典,包含多个键,分别代表用户的历史阅读的新闻类型。


输出描述:
返回一个字典,格式与输入相同,但是输出每个用户的信息熵。注意输出的引号格式。
示例1

输入

{"user1": {"sports": 10, "technology": 20, "entertainment": 30}, "user2": {"sports": 20, "technology": 30, "entertainment": 10}, "user3": {"sports": 30, "technology": 10, "entertainment": 20}}

输出

{"user1": {"entropy": 1.459}, "user2": {"entropy": 1.459}, "user3": {"entropy": 1.459}}

这道题你会答吗?花几分钟告诉大家答案吧!