public double ComputeCosineSimilarity(double[] compositeVector, double[] comparedVector, int current, int total) { var percentageFinished = ComputePercentageFinished(current, total); _hubContext.Clients.All.percentageFinishedClient(percentageFinished); return(Math.Round(_cs.GetSimilarityScore(compositeVector, comparedVector), 5)); }
public void CosineSimilarityTest( ) { CosineSimilarity sim = new CosineSimilarity( ); Assert.Throws <ArgumentException>(() => sim.GetSimilarityScore(p0, q4)); double result = sim.GetSimilarityScore(p0, q0); Assert.AreApproximatelyEqual(result, .8, 0.00001); result = sim.GetSimilarityScore(p1, q1); Assert.AreApproximatelyEqual(result, 0.97014, 0.00001); result = sim.GetSimilarityScore(p2, q2); Assert.AreEqual(result, 0); result = sim.GetSimilarityScore(p3, q3); Assert.AreApproximatelyEqual(result, 1, 0.00001); result = sim.GetSimilarityScore(p4, q4); Assert.AreApproximatelyEqual(result, 0.96065, 0.00001); result = sim.GetSimilarityScore(p5, q5); Assert.AreApproximatelyEqual(result, 0.96897, 0.00001); }
public void CosineSimilarityTest() { CosineSimilarity sim = new CosineSimilarity(); // TODO: Re-enable argument checking only for debugging // Assert.Throws<ArgumentException>(() => sim.GetSimilarityScore(p0, q4)); double result = sim.GetSimilarityScore(p0, q0); Assert.AreEqual(result, .8, 0.00001); result = sim.GetSimilarityScore(p1, q1); Assert.AreEqual(result, 0.97014, 0.00001); result = sim.GetSimilarityScore(p2, q2); Assert.AreEqual(result, 0); result = sim.GetSimilarityScore(p3, q3); Assert.AreEqual(result, 1, 0.00001); result = sim.GetSimilarityScore(p4, q4); Assert.AreEqual(result, 0.96065, 0.00001); result = sim.GetSimilarityScore(p5, q5); Assert.AreEqual(result, 0.96897, 0.00001); }
public double GetDistance(double[] p, double[] q) { CosineSimilarity cosineSimilarity = new CosineSimilarity(); return(1.0 - cosineSimilarity.GetSimilarityScore(p, q)); }
public float GetCosineDistance(float[] vector1, float[] vector2) { return((float)sim.GetSimilarityScore(vector1.Select(x => (double)x).ToArray(), vector2.Select(x => (double)x).ToArray())); }