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

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

相关文章

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos