Пример #1
0
        public DocumentStatistics[] performInference(UserData user)
        {
            ie.NumberOfIterations = user.nIters;
            ie.ShowProgress       = false;
            DocumentStatistics[] docStats = new DocumentStatistics[nRanks];
            for (int i = 0; i < nRanks; i++)
            {
                docStats[i] = new DocumentStatistics();
            }

            nUsers.ObservedValue                = user.nUsers;
            probNextIfNotClick.ObservedValue    = user.probExamine[0];
            probNextIfClickNotRel.ObservedValue = user.probExamine[1];
            probNextIfClickRel.ObservedValue    = user.probExamine[2];

            for (int d = 0; d < nRanks; d++)
            {
                click[d].ObservedValue = user.clicks[d];
            }

            try
            {
                for (int d = 0; d < nRanks; d++)
                {
                    docStats[d].inferredRelevance = ie.Infer <Beta>(relevance[d]);
                    docStats[d].inferredAppeal    = ie.Infer <Beta>(appeal[d]);
                }

                return(docStats);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }
        }
Пример #2
0
		private void showResults(DocumentStatistics[] docStats)
		{
			if (docStats == null)
			{
				colorInvalid(pictureBoxSummaryDoc1, labelSummaryDoc1.Size);
				colorInvalid(pictureBoxSummaryDoc2, labelSummaryDoc2.Size);
				colorInvalid(pictureBoxRelDoc1,labelRelDoc1.Size);
				colorInvalid(pictureBoxRelDoc2, labelRelDoc2.Size);

				return;
			}
			double summaryDoc1 = docStats[0].inferredAppeal.GetMean();
			double summaryDoc2 = docStats[1].inferredAppeal.GetMean();

			double relDoc1 = docStats[0].inferredRelevance.GetMean();
			double relDoc2 = docStats[1].inferredRelevance.GetMean();
			Console.WriteLine("relDoc1 = {0}", relDoc1);

			Size curSize = new Size();
			curSize.Height = labelSummaryDoc1.Size.Height;

			curSize.Width= (int)(summaryDoc1 * labelSummaryDoc1.Size.Width);
			colorResults(pictureBoxSummaryDoc1, curSize, summaryDoc1, true);
			
			curSize.Width = (int)(summaryDoc2 *labelSummaryDoc2.Size.Width);
			colorResults(pictureBoxSummaryDoc2, curSize, summaryDoc2, true);


			curSize.Width = (int)(relDoc1 * labelRelDoc1.Size.Width);
			colorResults(pictureBoxRelDoc1, curSize, relDoc1, false);


			curSize.Width = (int)(relDoc2 * labelRelDoc2.Size.Width);
			colorResults(pictureBoxRelDoc2, curSize, relDoc2, false);
		}
Пример #3
0
		public DocumentStatistics[] performInference(UserData user)
		{
			ie.NumberOfIterations = user.nIters;
			Console.WriteLine("No. of Iterations = {0}", user.nIters);
			DocumentStatistics[] docStats = new DocumentStatistics[nRanks];
			for (int i = 0; i < nRanks; i++)
			{
				docStats[i] = new DocumentStatistics();
			}

			nUsers.ObservedValue = user.nUsers;
			probNextIfNotClick.ObservedValue = user.probExamine[0];
			probNextIfClickNotRel.ObservedValue = user.probExamine[1];
			probNextIfClickRel.ObservedValue = user.probExamine[2];

			for (int d = 0; d < nRanks; d++)
				click[d].ObservedValue = user.clicks[d];

			try
			{
				for (int d = 0; d < nRanks; d++)
				{
					docStats[d].inferredRelevance = ie.Infer<Beta>(relevance[d]);
					docStats[d].inferredAppeal = ie.Infer<Beta>(appeal[d]);
				}
				return docStats;
			}
			catch (Exception e)
			{
				Console.WriteLine(e);
				return null;
			}
		}