資源簡(jiǎn)介
用C#實(shí)現(xiàn)基于圖的推薦算法,利用隨機(jī)游走的思想
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
using?System.IO;
namespace?ConsoleApplication1
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????Dictionary>?user2item?=?new?Dictionary>();
????????????Dictionary>?item2user?=?new?Dictionary>();
????????????Dictionary>?checkSet?=?new?Dictionary>();
????????????Dictionary>?result?=?new?Dictionary>();
????????????//讀取數(shù)據(jù)
????????????Random?cq?=?new?Random();
????????????foreach?(string?l?in?File.ReadAllLines(@“C:\Users\SoraYuki\Desktop\tj\ratings.dat“))
????????????{
????????????????string[]?x?=?l.Split(new?string[]?{?“::“?}?StringSplitOptions.RemoveEmptyEntries);
????????????????int?uid?=?int.Parse(x[0]);
????????????????int?iid?=?int.Parse(x[1]);
????????????????List?v;
????????????????if?(cq.NextDouble()?>?0.125)
????????????????{
????????????????????if?(!user2item.TryGetValue(uid?out?v))
????????????????????{
????????????????????????v?=?new?List();
????????????????????????user2item.Add(uid?v);
????????????????????}
????????????????????v.Add(iid);
????????????????????if?(!item2user.TryGetValue(iid?out?v))
????????????????????{
????????????????????????v?=?new?List();
????????????????????????item2user.Add(iid?v);
????????????????????}
????????????????????v.Add(uid);
????????????????}
????????????????else
????????????????{
????????????????????if?(!checkSet.TryGetValue(uid?out?v))
????????????????????{
????????????????????????v?=?new?List();
????????????????????????checkSet.Add(uid?v);
????????????????????}
????????????????????v.Add(iid);
????????????????}
????????????}
????????????//隨機(jī)游走
????????????const?int?iterCnt?=?20000;
????????
評(píng)論
共有 條評(píng)論