コード例 #1
0
ファイル: MetricsTest.cs プロジェクト: rpwjanzen/blinken
        public void JaccardDistanceTest( )
        {
            JaccardDistance dist = new JaccardDistance( );

            Assert.Throws<ArgumentException>( ( ) => dist.GetDistance( p0, q4 ) );

            double result = dist.GetDistance( p0, q0 );
            Assert.AreEqual( result, 1 );

            result = dist.GetDistance( p1, q1 );
            Assert.AreEqual( result, 1 );

            result = dist.GetDistance( p2, q2 );
            Assert.AreEqual( result, 0 );

            result = dist.GetDistance( p3, q3 );
            Assert.AreEqual( result, 0 );

            result = dist.GetDistance( p4, q4 );
            Assert.AreApproximatelyEqual( result, 0.66666, 0.00001 );

            result = dist.GetDistance( p5, q5 );
            Assert.AreApproximatelyEqual( result, 0.9, 0.1 );
        }
コード例 #2
0
ファイル: StringBase.cs プロジェクト: faszom/prelude-engine
        /// <summary>
        /// JaccardDistance calculation to determine 
        /// matching similar responses
        /// </summary>
        /// <param name="input"></param>
        /// <param name="memory"></param>
        /// <returns></returns>
        protected double calculateMatchRateJ(ArrayList input, ArrayList memory)
        {
            // instantiate new distance class
            JaccardDistance dist = new JaccardDistance();
            // create two vectors for inputs
            //double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
            double[] p = DigitizePhonemes(input);
            //double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
            double[] q = DigitizePhonemes(memory);

            List<double> q1 = EqualizeVector(p, q);

            double[] q2 = q1.ToArray();
            // get distance between the two vectors
            double distance = dist.GetDistance(p, q2);
            return distance;
        }