将代码转换为scala的

def item_based_recommend(user_id, user_item_time_dict, i2i_sim, sim_item_topk, recall_item_num, item_topk_click):
"""

    :param user_id: 用户id
    :param user_item_time_dict: 字典, 根据点击时间获取用户的点击文章序列   {user1: [(item1, time1), (item2, time2)..]...}
    :param i2i_sim: 字典,文章相似性矩阵
    :param sim_item_topkuser择与当前文章最相似的前k篇文章
    :param recall_item_num: 整数, 最后的召回文章数量
    :param item_topk_click: 列表,点击次数最多的文章列表,用户召回补全
     return: 召回的文章列表 {item1:score1, item2: score2...}

"""

# 获取用户历史交互的文章
user_hist_items = user_item_time_dict[user_id]
user_hist_items_ = {user_id for user_id, _ in user_hist_items}

item_rank = {}
for loc, (i, click_time) in enumerate(user_hist_items):
    for j, wij in sorted(i2i_sim[i].items(), key=lambda x: x[1], reverse=True)[:sim_item_topk]:
        if j in user_hist_items_:
            continue

        item_rank.setdefault(j, 0)
        item_rank[j] += wij

# 不足10个,用热门商品补全
if len(item_rank) < recall_item_num:
    for i, item in enumerate(item_topk_click):
        if item in item_rank.items():  # 填充的item应该不在原来的列表中
            continue
        item_rank[item] = - i - 100  # 随便给个负数就行
        if len(item_rank) == recall_item_num:
            break

item_rank = sorted(item_rank.items(), key=lambda x: x[1], reverse=True)[:recall_item_num]

return item_rank

哪位能把这段代码改成用scala语言写的