python兴趣匹配算法
python兴趣匹配算法,用于推荐好友,短视频推荐等等领域
功能列表:
1.用户类的定义,存储用户的基本信息和兴趣。
2.计算两个用户之间兴趣的匹配分数,比较每一位是否相同。
3.根据匹配分数对候选人进行排序。
4.提供交互式输入,让用户输入自己的兴趣模式。
5.预定义候选人列表,并进行匹配演示。
6.输出匹配结果的排名,显示每个候选人的匹配分数。
step1:C:\Users\wangrusheng\PycharmProjects\FastAPIProject1\hello.py
class User:def __init__(self, name, gender, interests):self.name = nameself.gender = genderself.interests = interestsdef get_match_score(self, other):return sum(c1 == c2 for c1, c2 in zip(self.interests, other.interests))def match_users(current_user, candidates):return sorted(candidates, key=lambda u: u.get_match_score(current_user), reverse=True)def run_demo():my_interest = input("请输入你的兴趣模式(7位0/1,例如1011001):\n")current_user = User("我", "MALE", my_interest)candidates = [User("张三", "MALE", "1011001"),User("李四", "MALE", "1110001"),User("王五", "MALE", "0011011"),User("赵六", "MALE", "1011000")]matched = match_users(current_user, candidates)print("\n匹配结果排名:")for i, user in enumerate(matched, 1):score = current_user.get_match_score(user)print(f"{i}. {user.name} (匹配度:{score}/7)")if __name__ == "__main__":run_demo()
step2:运行结果
(.venv) PS C:\Users\wangrusheng\PycharmProjects\FastAPIProject1> python hello.py
请输入你的兴趣模式(7位0/1,例如1011001):
1011001匹配结果排名:
1. 张三 (匹配度:7/7)
2. 赵六 (匹配度:6/7)
3. 李四 (匹配度:5/7)
4. 王五 (匹配度:5/7)
(.venv) PS C:\Users\wangrusheng\PycharmProjects\FastAPIProject1> python hello.py
请输入你的兴趣模式(7位0/1,例如1011001):
1100001匹配结果排名:
1. 李四 (匹配度:6/7)
2. 张三 (匹配度:4/7)
3. 赵六 (匹配度:3/7)
4. 王五 (匹配度:2/7)
(.venv) PS C:\Users\wangrusheng\PycharmProjects\FastAPIProject1>
end