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

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

相关文章

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl