コード例 #1
0
 /// <summary>
 /// Sum all relevant labels in the @imageLabels container.
 /// </summary>
 /// <returns></returns>
 public double SumOfRelevantLabels(
     IEnumerable <string> relevantLabels,
     ImageLabels imageLabels
     )
 {
     return(imageLabels.LabelValues
            .Where(t => relevantLabels.Contains(t.Key))
            .Sum(t => t.Value));
 }
コード例 #2
0
        public List <string> GenerateQueryFromLabels(ImageLabels imageLabels)
        {
            var sortedLabels =
                imageLabels.LabelValues.OrderByDescending(x => x.Value).ToList();

            var queriesWithLabels = sortedLabels.Take(3).ToList();

            return(queriesWithLabels.Select(t => t.Key).ToList());
        }
コード例 #3
0
        public List <string> GetTopNLabels(int numberOfTopLabels, ImageLabels imageLabels)
        {
            if (numberOfTopLabels > imageLabels.LabelValues.Count)
            {
                throw new ArgumentException("Cannot select more label values than the number of labels loaded");
            }

            return(imageLabels.LabelValues
                   .OrderByDescending(x => x.Value)
                   .Take(numberOfTopLabels)
                   .Select(t => t.Key)
                   .ToList());
        }
コード例 #4
0
        public void CorrectGetTopNTest()
        {
            var labelSorterService = new LabelSorterService();

            var labelValues = new Dictionary <string, double>
            {
                ["car"]   = 0.1,
                ["dark"]  = 0.2,
                ["wheel"] = 0.3,
                ["sky"]   = 0.4
            };

            var imageLabels = new ImageLabels(
                "randomId1",
                labelValues
                );

            var top2LabelValues = labelSorterService.GetTopNLabels(2, imageLabels);

            Assert.True(top2LabelValues.Count == 2);
            Assert.True(top2LabelValues[0] == "sky");
            Assert.True(top2LabelValues[1] == "wheel");
        }
コード例 #5
0
        /// <summary>
        /// Outputs sum of all relevant query parameters.
        /// </summary>
        private static double SumQueries(ICollection <string> queryParams, ImageLabels imageLabels)
        {
            var labels = imageLabels.LabelValues.ToList();

            return(labels.Where(t => queryParams.Contains(t.Key)).Sum(t => t.Value));
        }