Board logo

标题: 聚类(6) [打印本页]

作者: look_w    时间: 2019-4-17 19:02     标题: 聚类(6)

TermVector.cs

    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace WawaSoft.Search.Common
    {
        public class TermVector
        {
            public static double ComputeCosineSimilarity(double[] vector1, double[] vector2)
            {
                if (vector1.Length != vector2.Length)
                    throw new Exception("DIFER LENGTH");
     
     
                double denom = (VectorLength(vector1) * VectorLength(vector2));
                if (denom == 0D)
                    return 0D;
                else
                    return (InnerProduct(vector1, vector2) / denom);
     
            }
     
            public static double InnerProduct(double[] vector1, double[] vector2)
            {
     
                if (vector1.Length != vector2.Length)
                    throw new Exception("DIFFER LENGTH ARE NOT ALLOWED");
     
     
                double result = 0D;
                for (int i = 0; i < vector1.Length; i++)
                    result += vector1[i] * vector2[i];
     
                return result;
            }
     
            public static double VectorLength(double[] vector)
            {
                double sum = 0.0D;
                for (int i = 0; i < vector.Length; i++)
                    sum = sum + (vector[i] * vector[i]);
     
                return (double)Math.Sqrt(sum);
            }
     
        }
    }




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0