淘宝穿衣搭配算法_方案三

来源:互联网 发布:wifi破解软件 编辑:程序博客网 时间:2024/04/28 05:27

ReplaceItem1.java将原先的matchsets中的产品替换为它的分词结果,分词结果以空格隔开,产品与产品间用逗号隔开,输出结果ToTerms1.txt。为了之后比较每个产品与预测产品的相似度,排除方案二中出现多可替代产品,而造成该搭配的相似度虚高的情况(比只有一种产品,但是它们分词重合的面比较广)
CommonCount1.java将预测产品的分词结果和每行都算相似度(分词重合的个数除以预测产品的分词个数)将一行产品的相似度最高值保存为该行的相似度值,然后根据相似度降序排序.
将大于相似度大于0.8的前100条搭配套餐的行号记录下来(输出文件:line_0.8
将大于相似度大于0.6的前100条搭配套餐的行号记录下来。(输出文件:line_0.6
将大于相似度大于0.6的前100条搭配套餐的行号记录下来。如果该行最高的相似度达不到0.6,那只取第一条(输出文件:line0.6_100
将大于相似度大于0.6的前10条搭配套餐的行号记录下来。如果该行最高的相似度达不到0.6,那只取第一条(输出文件:line0.6_10
将line0.6_10中补上line_0.8中出现不止10条的记录(输出文件:line0.6_10_0.8

SelectTop200_1.java根据行号找到相应的搭配套餐,剔除同类产品,将其搭配产品输出到文件(final_example.txt),
ReplaceItem2.java将final_example中的每个产品的id替换为其分词结果(分词结果用空格隔开,产品用逗号隔开),(输出结果:ExampleToTerms.txt)
然后对每行的每个分词结果去到产品库中找出最相似的产品,(可以先排序,可以设定阈值>0.8),每行的都要去产品库匹配,然后所有匹配商品都要放在一行,用逗号隔开
关于推荐个数选取问题:首先对于每个产品都有相似的产品,必须按相似度排序,map:id->commoncount/count-foreitem(也可以用两个数组存),如果推荐example为1个,那必须要推荐200条,不管第200条与之相似度到底有多低,如果推荐example为n个,第一个推荐200*(2*i)/(n+n*n) i由n到1,也不管相似度的大小了,根据原先的相似度配比,选择个数
CommonCount2.java统计各推荐组合中的某个商品与预测商品的相似度(最高相似度)输出结果:simila.txt
CommonCount3.java统计各推荐组合中第几个是该组合中与预测商品相似度最高的商品,输出(simila_place.txt)与simila.txt相对应(之后要将该商品与其可替代商品剔除)1表示b[1],即该行第二个产品
Match_ToTerm.java将match里的东西都变成分词结果,分词空格隔开,产品间可替代还是用逗号,搭配用;隔开,输出文件ToTerms2.txt
MatchDeleteLine.txt,输出文件ToTerms3.txt,将dim_fashion_matches.txt中第一列删除。
SelectTop200_2.java输出文件final_example1.txt,排除原先因为相似度很像,而cat不同而没有排除的商品,即找到该搭配组合中一个商品跟被预测商品很像,但是它们的cat不同
SelectTop200_3.java 输出文件final_example1.simila.txt,是final_example1.txt对应产品的相似度。
ReplaceItem2.java将final_example1.txt中的每个产品的id替换为其分词结果(分词结果用空格隔开,产品用逗号隔开),(输出结果:ExampleToTerms1.txt)
将final_example1.txt中的产品与dim_items.txt中产品做相似度排序,取(200*0.6/(0.6+0.6)条)final_example1_simila.txt中的是final_example1.txt中对应位置的相似度
ChoseFirst.java(输出结果ExampleToTerms2.txt)将ExampleToTerms1.txt中的第一个分词结果提取出来,因为后期看到两个类似的推荐搭配,产品库中与它们相似的一些产品可能有很大一部分重复,由于这部分先前写的排序算法效果不佳,后期可以在各种搭配的推荐商品都可以尝试地推荐一部分类似的
ForeResult.java(输出:Result2.txt)将ExampleToTerms2.txt中到产品库匹配最相似的200条
RemoveEnd.java(输出:Result4.txt)将Result2.txt最后的分号摘掉
ToFinal2.java 格式转换Result4.txt ->final4.txt

0 0