Esempio n. 1
0
 static public void RunJDDS()
 {
     //遍历在某个group size分组下的第几组
     for (int groupIndex = 0; groupIndex < GroupVariable.AnnotatorGroups.Length; ++groupIndex)
     {
         Sij sij = CoreFunction.InitializeSij(Variable.LabelArray, groupIndex);
         CoreFunction.Intgerate(Variable.LabelArray, groupIndex, ref sij);//迭代在此
         DDSFunction.ObtainBinaryResult(sij, "JDDS", groupIndex);
         Function.WriteBinaryResultFile("JDDS", groupIndex);
     }
 }
Esempio n. 2
0
 static public void RunIDS()
 {
     for (int groupIndex = 0; groupIndex < GroupVariable.AnnotatorGroups.Length; ++groupIndex)
     {
         foreach (Sentence sentence in Variable.Sentences)
         {
             sentence.AnnotaitonGroups[groupIndex].IDSNumResult = new NumericResult();
             sentence.AnnotaitonGroups[groupIndex].IDSResult    = new Result();
         }
         foreach (Label label in Variable.LabelArray)
         {
             Sij sij = CoreFunction.InitializeSij(new Label[] { label }, groupIndex);
             CoreFunction.Intgerate(new Label[] { label }, groupIndex, ref sij);
             ObtainLabelResult(sij, groupIndex);
         }
         Function.WriteBinaryResultFile("IDS", groupIndex);
     }
 }
Esempio n. 3
0
 static public void RunPDS()
 {
     for (int groupIndex = 0; groupIndex < GroupVariable.AnnotatorGroups.Length; ++groupIndex)
     {
         foreach (Sentence sentence in Variable.Sentences)
         {
             sentence.AnnotaitonGroups[groupIndex].PDSNumResult = new NumericResult();
             sentence.AnnotaitonGroups[groupIndex].PDSResult    = new Result();
         }
         LabelPair[] bilabels = GenerateBilabels(groupIndex);
         foreach (LabelPair bilabel in bilabels)
         {
             Sij sij = CoreFunction.InitializeSij(bilabel.ToArray(), groupIndex);
             CoreFunction.Intgerate(bilabel.ToArray(), groupIndex, ref sij);
             ObtainLabelResult(bilabel, groupIndex, sij);
         }
         Function.WriteBinaryResultFile("PDS", groupIndex);
     }
 }
Esempio n. 4
0
 static public void RunPeT(PorSForJointje PorS, Smoothing SmoothingBE, BnOrNot bnOrNot)
 {
     double[] accuracyOfPersonalityForEachGroup = new double[GroupVariable.AnnotatorGroups.Length];
     for (int groupIndex = 0; groupIndex < GroupVariable.AnnotatorGroups.Length; ++groupIndex)
     {
         IDictionary <Annotator, IDictionary <Character, IDictionary <Will, double> > > okcx = PersonalityFunction.CalculateOkcx(groupIndex);//模拟人对角色个性的标注,计算一次就不变了
         Mce mce = null;
         Sij sij = null;
         if (bnOrNot == BnOrNot.Yes)
         {
             sij = NDDSFunction.Initialize(groupIndex, Math.Pow(10, -1), IndependenceEstimation.MutualInformation);
         }
         else
         {
             sij = CoreFunction.InitializeSij(Variable.LabelArray, groupIndex);
         }
         Pje            pje    = null;//p(t|e)
         Pdata          pdata  = null;
         IList <double> Pdatas = new List <double>();
         for (int convergeTime = 1; convergeTime <= Variable.ConvergeTimeThreshold; ++convergeTime)
         {
             mce = CalculateMce(sij, groupIndex);
             PersonalityFunction.WriteMVResultFile(mce, groupIndex);
             PAkjl pakjl = CoreFunction.CalculatePAkjl(Variable.LabelArray, sij, convergeTime, groupIndex);
             BEkef bekef = PersonalityFunction.CalculateBExy(mce, okcx, SmoothingBE, convergeTime, groupIndex);
             if (PorS == PorSForJointje.P)
             {
                 pje = CalculatePje(sij, convergeTime);
             }
             if (CalculatePdataAndSij(ref sij, pakjl, bekef, pje, mce, okcx, ref pdata, Pdatas, groupIndex))//old/new
             {
                 break;
             }
         }
         DDSFunction.ObtainBinaryResult(sij, "PeT", groupIndex);
         Function.WriteBinaryResultFile("PeT", groupIndex);
         accuracyOfPersonalityForEachGroup[groupIndex] = PersonalityPaperFunction.AccuracyOfPersonalityForEachGroup(PersonalityVariable.TruePersonality, mce.EstimatedPersonality);
     }
     Function.ConsoleWriteLine("Accuracy Of PeT: " + PersonalityPaperFunction.AccuracyOfPersonality(accuracyOfPersonalityForEachGroup));
 }