统计各推荐组合中第几个是该组合中与预测商品相似度最高的商品

2024-02-16 02:32

本文主要是介绍统计各推荐组合中第几个是该组合中与预测商品相似度最高的商品,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CommonCount3.java统计各推荐组合中第几个是该组合中与预测商品相似度最高的商品,输出(simila_place.txt)与simila.txt相对应(之后要将该商品与其可替代商品剔除)1表示b[1],即该行第二个产品

package test;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Map;public class CommonCount3 {public static int count(String[] s1,String[] s2){int count1=0;for(int k=0;k<s2.length;k++){for(int j=0;j<s1.length;j++){if(s2[k].equals(s1[j]))count1++;}}return count1;}public static void appendMethod(String fileName, String content) {try {//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件FileWriter writer = new FileWriter(fileName, true);writer.write(content);writer.close();} catch (IOException e){e.printStackTrace();}}public static double[] bubbleSort(double[] a,int[] b,int[] c) {  for (int i = 0; i < a.length - 1; i++){  for (int j = i + 1; j < a.length; j++){  if(a[i] < a[j]){  double temp;int temp1; int temp2;temp = a[j];  a[j] = a[i];  a[i] = temp;  temp1 = b[j];  b[j] = b[i];  b[i] = temp1;  temp2=c[j];c[j]=c[i];c[i]=temp2;}  }  }  return a;  }  public static void main(String args[]){int count =0;double temp;double a[]=new double[23105];int b[]=new int[23105];int c[]=new int[23105];String fileName = "/public/home/dsj/Public/sundujing/fpgrowth/simila_place.txt";String content;FileInputStream fis;InputStreamReader isr;BufferedReader br = null;try {fis = new FileInputStream("/public/home/dsj/Public/sundujing/fpgrowth/IdToItem.txt");isr = new InputStreamReader(fis, "UTF-8");br = new BufferedReader(isr);} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}String[] strings = new String[1];String str;try {while ((str = br.readLine()) != null){for(int i=0;i<23105;i++){a[i]=0;b[i]=i+1;}count=0;String[] str1 = str.split(" ");
//              for(int k=0;k<str1.length;k++)
//              {//str1[k]//读Toterms1文件,每行比较,选取相似度最高的100个,记录行号即可FileInputStream fis1;InputStreamReader isr1;BufferedReader br1 = null;try {           fis1 = new FileInputStream("/public/home/dsj/Public/sundujing/fpgrowth/ToTerms1.txt");isr1 = new InputStreamReader(fis1, "UTF-8");br1 = new BufferedReader(isr1);} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}String str2;try {while ((str2 = br1.readLine()) != null){temp=0;a[count]=0;c[count]=0;String[] str3 = str2.split(",");//将原先的一行所有分词,换成一个一个产品的分词for(int i1=0;i1<str3.length;i1++){String[] str4=str3[i1].split(" ");temp=(double)count(str1,str4)/str1.length;if(temp>(double)a[count]/str1.length){a[count]=temp;c[count]=i1;}}count++;}} catch (IOException e) {e.printStackTrace();}//sortbubbleSort(a,b,c);
//                  content=b[0-100];for(int j=0;j<100;j++){if(a[0]<=0.8){content=c[0]+" "+c[1]+" "+c[2]+" "+c[3]+" "+c[4];//a[j]similar,b[j]line_numberappendMethod(fileName, content);break;}if(a[j]>0.8){content=c[j]+" ";appendMethod(fileName, content);}}appendMethod(fileName, "\n");}} catch (IOException e) {e.printStackTrace();}}
}

这里写图片描述

这里写图片描述

这里写图片描述

这篇关于统计各推荐组合中第几个是该组合中与预测商品相似度最高的商品的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713235

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;