Exemple #1
0
        //更新当天网页的平均停留时间(隔一定时间分析一次)
        public static void AnalysisONB_StaySecond()
        {
            long lStaySecond = default(long);

            foreach (KeyValuePair <string, long> item in dic_Url_StaySecond)
            {
                lStaySecond = +item.Value;
            }
            lStaySecond = (long)lStaySecond / dic_Url_StaySecond.Count;
            if (lStaySecond <= 10) //≤10秒
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_A);
            }
            else if ((lStaySecond > 10) && (lStaySecond <= 30)) //10秒—30秒
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_B);
            }
            else if ((lStaySecond > 30) && (lStaySecond <= 60)) //30秒—1分钟
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_C);
            }
            else if ((lStaySecond > 60) && (lStaySecond <= 120)) //1—2分钟
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_D);
            }
            else if ((lStaySecond > 120) && (lStaySecond <= 300)) //2—5分钟
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_E);
            }
            else if (lStaySecond > 300) //>5分钟
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StaySecond(RadioSelectionCategory.RadioSelected_F);
            }
        }
Exemple #2
0
        //浏览器关闭的时候进行统计分析
        //当天的网络浏览时间(第一条记录和最后一条记录的时间差)
        public static void AnalysisOnlineTime()
        {
            //计算今天的网络浏览时间
            string   strMinDateTime = dic_Url_FirstTime.First().Value;         //网络浏览的开启时间
            DateTime BeginningDate  = DateTime.Parse(strMinDateTime);          //转化为DateTime类型
            TimeSpan ts             = DateTime.Now.Subtract(BeginningDate);    //计算时间间隔
            int      iHourSpan      = ts.Hours + 1;
            Int16    iWeek          = Convert.ToInt16(DateTime.Now.DayOfWeek); //计算礼拜

            if ((iWeek == 0) || (iWeek == 6))                                  //周六 周日
            {
                if (iHourSpan <= 3)
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_A);
                }
                else if ((iHourSpan > 3) && (iHourSpan <= 4)) //3 < iHourSpan <= 4
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_B);
                }
                else if ((iHourSpan > 4) && (iHourSpan <= 6))  //4 < iHourSpan <= 6
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_C);
                }
                else if ((iHourSpan > 6) && (iHourSpan <= 9))  //6 < iHourSpan <= 9
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_D);
                }
                else if ((iHourSpan > 9) && (iHourSpan <= 12))  //9 < iHourSpan <= 12
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_E);
                }
                else if (iHourSpan > 12)
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_Weekend(RadioSelectionCategory.RadioSelected_F);
                }
            }
            else  //周一 到 周五
            {
                if (iHourSpan <= 2)
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_WorkDay(RadioSelectionCategory.RadioSelected_A);
                }
                else if ((iHourSpan > 2) && (iHourSpan <= 6))  // 2 < iHourSpan <= 6
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_WorkDay(RadioSelectionCategory.RadioSelected_B);
                }
                else if ((iHourSpan > 6) && (iHourSpan <= 10))  //6 < iHourSpan <= 10
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_WorkDay(RadioSelectionCategory.RadioSelected_C);
                }
                else if ((iHourSpan > 10) && (iHourSpan <= 12)) //10 < iHourSpan <= 12
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_WorkDay(RadioSelectionCategory.RadioSelected_D);
                }
                else if (iHourSpan > 12)
                {
                    BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_WorkDay(RadioSelectionCategory.RadioSelected_E);
                }
            }
        }
        private static void EmotionCategoryFrequencyRating(double dFrequency, EmotionClassify emotion)
        {
            double dNeverVisited     = 0.05; //从未访问过
            double dFewerVisited     = 0.10; //很少访问
            double dSometimesVisited = 0.20; //有时候访问
            double dAlwaysVisited    = 0.30; //经常访问

            if (dFrequency <= dNeverVisited)
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PAN_EmotionClassify(emotion, RadioSelectionCategory.RadioSelected_A);
            }
            else if ((dFrequency > dNeverVisited) && (dFrequency <= dFewerVisited))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PAN_EmotionClassify(emotion, RadioSelectionCategory.RadioSelected_B);
            }
            else if ((dFrequency > dFewerVisited) && (dFrequency <= dSometimesVisited))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PAN_EmotionClassify(emotion, RadioSelectionCategory.RadioSelected_C);
            }
            else if ((dFrequency > dSometimesVisited) && (dFrequency <= dAlwaysVisited))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PAN_EmotionClassify(emotion, RadioSelectionCategory.RadioSelected_D);
            }
            else if (dFrequency > dAlwaysVisited)
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PAN_EmotionClassify(emotion, RadioSelectionCategory.RadioSelected_E);
            }
        }
Exemple #4
0
        private static void InitalBehaviorFeatures()
        {
            string strFileName = "BehaviorFeatures.xml"; //用户的行为问卷结果?

            BehaviorFeatureAnalysis.LoadBehaviorFeatureFromXML(strFileName);

            string strEmotionHistory = "EmotionPredictionsHistory";

            Recommendation.LoadEmotionPredictionsHistory(strEmotionHistory);//加载心理分析结果

            string fileName2 = "BehaviorFeaturesHistory.xml";

            BehaviorFeatureHistoryAnalysis.LoadBehaviorFeatureHistoryAnalysis(fileName2);
        }
        /// <summary>
        /// 更新心理预测记录
        /// </summary>
        public static void UpdateEmotionPredictionsHistory()//这个函数是用来更新EmotionTracking里pointlist,从来来更新图标的内容。现在我把phi值换成了bar图(原来是曲线图)。
        {
            long   lPredictionTime = DateTime.Now.ToBinary();
            double xAxis           = (double)new XDate(DateTime.FromBinary(lPredictionTime));

            double dANX = BehaviorFeatureAnalysis.Calc_ANX_Prediction_Value();

            dic_ANX_Predictions.Add(lPredictionTime, dANX);
            EmotionTracking.ANXValueList.Add(xAxis, dANX);

            double dDEP = BehaviorFeatureAnalysis.Calc_DEP_Prediction_Value();

            dic_DEP_Predictions.Add(lPredictionTime, dDEP);
            EmotionTracking.DEPValueList.Add(xAxis, dDEP);

            double dHMA = BehaviorFeatureAnalysis.Calc_HMA_Prediction_Value();

            dic_HMA_Predictions.Add(lPredictionTime, dHMA);
            EmotionTracking.HMAValueList.Add(xAxis, dHMA);

            double dHYP = BehaviorFeatureAnalysis.Calc_HYP_Prediction_Value();

            dic_HYP_Predictions.Add(lPredictionTime, dHYP);
            EmotionTracking.HYPValueList.Add(xAxis, dHYP);

            double dPSD = BehaviorFeatureAnalysis.Calc_PSD_Prediction_Value();

            dic_PSD_Predictions.Add(lPredictionTime, dPSD);
            EmotionTracking.PSDValueList.Add(xAxis, dPSD);

            double dSOM = BehaviorFeatureAnalysis.Calc_SOM_Prediction_Value();

            dic_SOM_Predictions.Add(lPredictionTime, dSOM);
            EmotionTracking.SOMValueList.Add(xAxis, dSOM);

            double dUNR = BehaviorFeatureAnalysis.Calc_UNR_Prediction_Value();

            dic_UNR_Predictions.Add(lPredictionTime, dUNR);
            EmotionTracking.UNRValueList.Add(xAxis, dUNR);
        }
Exemple #6
0
        /// <summary>
        /// 更新心理预测记录
        /// </summary>
        public static void UpdateBehaviorFeatureHistory()//更新EmotionTracking里面的行为特征值(也就是曲线数据),其实就是要从BehaviorFeaturesHistory.xml里取出最新的record,然后加载到EmotionTracking里的pointlist里
        {
            long   lPredictionTime = DateTime.Now.ToBinary();
            double xAxis           = (double)new XDate(DateTime.FromBinary(lPredictionTime));

            double dANX = BehaviorFeatureAnalysis.Calc_ANX_Prediction_Value();

            dic_ANX_Predictions.Add(lPredictionTime, dANX);
            EmotionTracking.ANXValueList.Add(xAxis, dANX);

            double dDEP = BehaviorFeatureAnalysis.Calc_DEP_Prediction_Value();

            dic_DEP_Predictions.Add(lPredictionTime, dDEP);
            EmotionTracking.DEPValueList.Add(xAxis, dDEP);

            double dHMA = BehaviorFeatureAnalysis.Calc_HMA_Prediction_Value();

            dic_HMA_Predictions.Add(lPredictionTime, dHMA);
            EmotionTracking.HMAValueList.Add(xAxis, dHMA);

            double dHYP = BehaviorFeatureAnalysis.Calc_HYP_Prediction_Value();

            dic_HYP_Predictions.Add(lPredictionTime, dHYP);
            EmotionTracking.HYPValueList.Add(xAxis, dHYP);

            double dPSD = BehaviorFeatureAnalysis.Calc_PSD_Prediction_Value();

            dic_PSD_Predictions.Add(lPredictionTime, dPSD);
            EmotionTracking.PSDValueList.Add(xAxis, dPSD);

            double dSOM = BehaviorFeatureAnalysis.Calc_SOM_Prediction_Value();

            dic_SOM_Predictions.Add(lPredictionTime, dSOM);
            EmotionTracking.SOMValueList.Add(xAxis, dSOM);

            double dUNR = BehaviorFeatureAnalysis.Calc_UNR_Prediction_Value();

            dic_UNR_Predictions.Add(lPredictionTime, dUNR);
            EmotionTracking.UNRValueList.Add(xAxis, dUNR);
        }
        private static void ContentCategoryFrequencyRating(double dFrequency, ContentClassify content)
        {
            double dFewerVisited     = 0.10; //很少访问
            double dSometimesVisited = 0.20; //有时候访问
            double dAlwaysVisited    = 0.30; //经常访问

            if (dFrequency <= dFewerVisited)
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PTN_ContentClassify(content, RadioSelectionCategory.RadioSelected_A);
            }
            else if ((dFrequency > dFewerVisited) && (dFrequency <= dSometimesVisited))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PTN_ContentClassify(content, RadioSelectionCategory.RadioSelected_B);
            }
            else if ((dFrequency > dSometimesVisited) && (dFrequency <= dAlwaysVisited))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PTN_ContentClassify(content, RadioSelectionCategory.RadioSelected_C);
            }
            else if (dFrequency > dAlwaysVisited)
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_PTN_ContentClassify(content, RadioSelectionCategory.RadioSelected_D);
            }
        }
Exemple #8
0
        //分析每天的上网时段:每天的起始上网时间在哪个时段 (一天分析一次即可)
        public static void AnalysisONB_StartTime()
        {
            //计算当天的开始浏览网络的时段
            string   strMinDateTime = dic_Url_FirstTime.First().Value; //网络浏览的开启时间
            DateTime BeginningDate  = DateTime.Parse(strMinDateTime);  //转化为DateTime类型
            int      iHour          = BeginningDate.Hour;

            if (iHour < 9)
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_A);
            }
            else if ((iHour >= 9) && (iHour < 12))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_B);
            }
            else if ((iHour >= 12) && (iHour < 14))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_C);
            }
            else if ((iHour >= 14) && (iHour < 18))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_D);
            }
            else if ((iHour >= 18) && (iHour < 19))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_E);
            }
            else if ((iHour >= 19) && (iHour < 23))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_F);
            }
            else if ((iHour >= 23) && (iHour < 24))
            {
                BehaviorFeatureAnalysis.UpdateBehaviorFeature_ONB_StartTime(RadioSelectionCategory.RadioSelected_G);
            }
        }