日期:2014-05-17  浏览次数:20414 次

如何查找用户相关性......求思路或代码...谢谢!!!
例如:用户1 选择的产品: 1,3,5,7
  用户2 选择的产品: 2,4,5,6
  用户3, 选择的产品 1,3,4,7

通过什么方法可以判断出 用户1,用户3 是相关的。因为他们选择了3个相同的产品。,只要三个或三个以上相同的产品两个用户就是相关的。



------解决方案--------------------
字符串匹配之类的问题
------解决方案--------------------
C# code

 class Program
    {
        static void Main(string[] args)
        {
            List<ArrayList> li = new List<ArrayList>();
            li.Add(new ArrayList() {"用户1","1","3","5","7" });
            li.Add(new ArrayList() { "用户2", "2", "4", "5", "6" });
            li.Add(new ArrayList() { "用户3", "1", "3", "4", "7" });
            li.Add(new ArrayList() { "用户4", "1", "2", "5", "7" });
            li.Add(new ArrayList() { "用户5", "1", "3", "5", "7" });
            List<string[]> li_N = new List<string[]>();
            for (int i = 0; i < li.Count; i++)
            {

                for (int j = i+1; j < li.Count; j++)
                {
                    bool fg = GetRelationName(li[i], li[j]);
                    if (fg)
                    {
                        li_N.Add(new string[] { li[i][0].ToString(), li[j][0].ToString() });
                        //看看结果
                        Console.Write(li[i][0].ToString() + "与" + li[j][0].ToString() + "有关系\r\n");
                    }
                }
            }

            Console.Read();

        }
        //比较数组
        static bool GetRelationName(ArrayList li1,ArrayList li2)
        {
            int flag = 0;
            for (int i = 1; i < li1.Count; i++)
            {
                if (flag <= 3)
                {
                    for (int j = 1; j < li2.Count; j++)
                    {
                        if (li1[i] == li2[j])
                        {
                            flag++;
                        }
                    }
                }
                else
                    break;
            }
            if (flag == 3)
                return true;
            else
                return false;
 
        }

    }

------解决方案--------------------
LZ,你这是个大课题……
参考:推荐引擎