public void SearchResultsClassificationQualityFilter_ShouldReturnAllFilteredResultsForSameWebSearch()
        {
            WebSearchClassifyResult result1 = new WebSearchClassifyResult()
            {
                Result = "falafel",
                Propability = 0.56,
                SearchResult = new WebSearchResult()
                {
                    SearchEngine = "Google",
                    Source = "www.test1.com",
                    Snippet = "פלפליה מקומית, וגם חומוס, הזמנת משלוחים"
                }
            };
            WebSearchClassifyResult result2 = new WebSearchClassifyResult()
            {
                Result = "Hummus",
                Propability = 0.52,
                SearchResult = new WebSearchResult()
                {
                    SearchEngine = "Google",
                    Source = "www.test1.com",
                    Snippet = "פלפליה מקומית, וגם חומוס, הזמנת משלוחים"
                }
            };
            WebSearchClassifyResult result3 = new WebSearchClassifyResult()
            {
                Result = "kebab",
                Propability = 0.53,
                SearchResult = new WebSearchResult()
                {
                    SearchEngine = "Google",
                    Source = "www.test2.com",
                    Snippet = "בשרים על האש"
                }
            };
            List<WebSearchClassifyResult> notQualifiedList = new List<WebSearchClassifyResult>() { result1, result2, result3 };

            SearchResultsClassificationQualityFilter filter = new SearchResultsClassificationQualityFilter(notQualifiedList);

            //act
            var qualifiedResults = filter.Qualify();

            //Assert
            Assert.IsNotNull(qualifiedResults);
            Assert.IsTrue(qualifiedResults.Count == 2);
            Assert.IsTrue(qualifiedResults[0].Propability == 0.56);
            Assert.IsTrue(qualifiedResults[1].Propability == 0.52);
        }
示例#2
0
        public static List<WebSearchClassifyResult> ClassifyWebSearchQueryUnit(RestaurantQueryPattern queryUnit, string classifierName, WebSearchResult searchResult)
        {
            if (!string.IsNullOrEmpty(searchResult.Snippet))
            {
                queryUnit.Description = searchResult.Snippet;
                log.DebugFormat("[ClassifyWebSearchQueryUnit] classifierName={0}, queryUnit={1}.", classifierName, queryUnit.ToString());

                var classifierResults = ClassifyQueryUnit(queryUnit, classifierName);
                if (classifierResults != null || classifierResults.Count > 0)
                {
                    List<WebSearchClassifyResult> returnList = new List<WebSearchClassifyResult>();
                    foreach (var result in classifierResults)
                    {
                        WebSearchClassifyResult tempResult = new WebSearchClassifyResult(result, searchResult);
                        returnList.Add(tempResult);
                    }

                    return returnList;
                }
                else
                {
                    log.WarnFormat("[ClassifyWebSearchQueryUnit] Classifier results is null or empty. queryUnit.Name={0}, queryUnit.Description={1}.", queryUnit.Name, queryUnit.Description);
                }
            }
            else
            {
                log.ErrorFormat("[ClassifyWebSearchQueryUnit] WebSearchResult Snippet can't be null or empty.");
            }
            return null;
        }