//����������ԭ֮��ľ��룬���������ԭ���û�й�ͬ�ڵ㣬���������ǵľ���Ϊ20��
 public int disPrimitive(Primitive p, string primitive1, string primitive2)
 {
     //Primitive p = new Primitive();
     List<int> list1 = p.getparents(primitive1);
     List<int> list2 = p.getparents(primitive2);
     for (int i = 0; i < list1.Count; i++)
     {
         int id1 = list1[i];
         if (list2.Contains(id1))
         {
             int index = list2.IndexOf(id1);
             return index + i;//������ԭ�����ϵĽڵ��·����
         }
     }
     return DEFAULT_PRIMITIVE_DIS;
 }
Example #2
0
 public MasterDataBL(string path, double confredence, Primitive yiYuan, WordSimilarity yiXiang, List<string> posSentiment, List<string> negSentiment)
 {
     YiYuan = yiYuan;
     YiXiang = yiXiang;
     PosSentiment = posSentiment;
     NegSentiment = negSentiment;
     MasterDatas = new Dictionary<string, MasterData>();
     Path = path;
     Confredence = confredence;
     MasterDataTable = new DataTable();
     MasterDataTable.Columns.Add("id");
     MasterDataTable.Columns.Add("docid");
        // MasterDataTable.Columns.Add("SentenceId");
     MasterDataTable.Columns.Add("word-string");
     //MasterDataTable.Columns.Add("WordOrder");
     MasterDataTable.Columns.Add("confidence-score", typeof(double));
     MasterDataTable.Columns.Add("word-polarity");
     MasterDataTable.Columns.Add("context-string");
 }
        private void btnImportYiYuan_Click(object sender, RoutedEventArgs e)
        {
            YiYuan = new Primitive();
            IsImportYiYuan = false;
            MessageInit();

            txtYiYuanMessage.Text = "义原导入中...";
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));

            YiYuan.Path = txtYiYuanPath.Text;
            YiYuan.loadGlossary();
            if (YiYuan.PRIMITIVESID.Count > 0)
            {
                IsImportYiYuan = true;
                txtYiYuanMessage.Text = "成功导入义原" + YiYuan.ALLPRIMITIVES.Count.ToString() + "条";
                txtYiYuanMessage.Foreground = Brushes.Green;
            }
            else
            {
                IsImportYiYuan = false;
                txtYiYuanMessage.Text = "义原尚未导入";
                txtYiYuanMessage.Foreground = Brushes.Red;
                MessageFail("义原导入失败,请去日志查看原因");
            }
        }
 //�ڲ��Ƚ������ʣ�������Ϊ����ʣ�Ҳ��������ԭ
 private double innerSimWord(Primitive p, string word1, string word2)
 {
     //Primitive p = new Primitive();
     bool isPrimitive1 = p.isPrimitive(word1);
     bool isPrimitive2 = p.isPrimitive(word2);
     //������ԭ
     if (isPrimitive1 && isPrimitive2)
         return simPrimitive(p, word1, word2);
     if (!isPrimitive1 && !isPrimitive2)
     {
         if (word1.Equals(word2))
             return 1;
         else
             return 0;
     }
     // ��ԭ�;���ʵ����ƶ�, Ĭ��Ϊgamma=0.2
     return gamma;
 }
 //����������ԭ֮������ƶ�
 public double simPrimitive(Primitive p, string primitive1, string primitive2)
 {
     int dis = disPrimitive(p, primitive1, primitive2);
     return alpha / (dis + alpha);
 }