基于内容推荐算法-Java电商商品推荐案例
import java.util.*;
// 商品类
class Item {
int id;
String name;
Set<String> features; // 商品特征集合
public Item(int id, String name, Set<String> features) {
this.id = id;
this.name = name;
this.features = features;
}
// 判断商品是否包含某个特征
public boolean hasFeature(String feature) {
return features.contains(feature);
}
}
// 商品推荐器类
class ItemRecommender {
List<Item> items;
public ItemRecommender(List<Item> items) {
this.items = items;
}
// 基于内容的推荐算法
public List<Item> recommendItems(Set<String> userPreferences) {
List<Item> recommendedItems = new ArrayList<>();
for (Item item : items) {
boolean hasCommonFeature = false;
for (String preference : userPreferences) {
if (item.hasFeature(preference)) {
hasCommonFeature = true;
break;
}
}
if (hasCommonFeature) {
recommendedItems.add(item);
}
}
return recommendedItems;
}
}
public class Main {
public static void main(String[] args) {
// 创建一些商品
Item item1 = new Item(1, "手机", new HashSet<>(Arrays.asList("智能", "高清摄像", "大内存")));
Item item2 = new Item(2, "平板电脑", new HashSet<>(Arrays.asList("轻便", "高清屏幕", "长续航")));
Item item3 = new Item(3, "耳机", new HashSet<>(Arrays.asList("蓝牙", "降噪", "高保真")));
// 商品列表
List<Item> items = new ArrayList<>();
items.add(item1);
items.add(item2);
items.add(item3);
// 用户喜好的特征集合
Set<String> userPreferences = new HashSet<>(Arrays.asList("智能", "大内存", "高清屏幕"));
// 创建商品推荐器
ItemRecommender recommender = new ItemRecommender(items);
// 获取推荐结果
List<Item> recommendedItems = recommender.recommendItems(userPreferences);
// 输出推荐结果
System.out.println("为用户推荐的商品是:");
for (Item item : recommendedItems) {
System.out.println(item.name);
}
}
}