Beispiel #1
0
        public void Results_are_sorted()
        {
            var result = new TagCloudAnalyzer().ComputeTagCloud(new string[] {
                "hi booger bum hi bum guy booger hi booger hi"
            }).Select(t => t.Text).ToArray();

            result.ShouldEqual(new string[] { "hi", "booger", "bum", "guy" });
        }
        public ActionResult Index()
        {
            var phrases = new string[] { Resources.TagCloudInput };
            var model   = new TagCloudAnalyzer()
                          .ComputeTagCloud(phrases)
                          .Shuffle();

            return(View(model));
        }
Beispiel #3
0
        public IEnumerable <BAG.Framework.TagCloud.TagCloudTag> GetTags()
        {
            var analyzer = new TagCloudAnalyzer(new TagCloudSetting(LanguagePrebuilt.German));

            var tags = analyzer.ComputeTagCloud(Content.Split(new char[] { ' ' }));

            tags = tags.Shuffle();
            return(tags);
        }
Beispiel #4
0
        private static string[] GetShuffledWords(string[] original)
        {
            var result = new TagCloudAnalyzer()
                         .ComputeTagCloud(original)
                         .Shuffle()
                         .Select(t => t.Text)
                         .ToArray();

            return(result);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            var words = new TagCloudAnalyzer()
                        .ComputeTagCloud(File.ReadAllLines("Sample_Text_1.txt"));

            Console.Write(string.Join(
                              Environment.NewLine,
                              words.Select(p => "[" + p.Count + "] \t" + p.Text).ToArray()));

            Console.ReadLine();
        }
Beispiel #6
0
        public void There_should_be_a_max_result_size()
        {
            var results = new TagCloudAnalyzer(new TagCloudSetting()
            {
                MaxCloudSize = 2
            })
                          .ComputeTagCloud(new string[] { "hi hi fancy pant pant" });

            results.Count().ShouldEqual(2);
            results.Any(t => t.Text == "hi").ShouldBeTrue();
            results.Any(t => t.Text == "pant").ShouldBeTrue();
        }
Beispiel #7
0
        private List <TagCloudTag> GenerateTagCloud()
        {
            var analyzer = new TagCloudAnalyzer();

            var blogPostTags = _dbContext
                               .Tags
                               .Select(t => t.DisplayName)
                               .ToList();

            // blogPosts is an IEnumerable<String>, loaded from
            // the database.
            var tags = analyzer.ComputeTagCloud(blogPostTags);

            // Shuffle the tags, if you like for a random
            // display
            tags = tags.Shuffle();

            return(tags.ToList());
        }
Beispiel #8
0
        public ActionResult Index(int resourceID)
        {
            //var resources = db.Resources.Include(r => r.AspNetUser);
            var resources = db.Resources.Where(x => x.id == resourceID).FirstOrDefault();

            if (resources == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }
            List <string> phrases = new List <string>();

            //TODO make all the keys 1-10
            if (resources.NumOfKey1 != null)
            {
                KeywordClass k1 = new KeywordClass((int)resources.NumOfKey1, resources.Keyword1);
                phrases.AddRange(k1.ToList());
            }

            if (resources.NumOfKey2 != null)
            {
                KeywordClass k2 = new KeywordClass((int)resources.NumOfKey2, resources.Keyword2);
                phrases.AddRange(k2.ToList());
            }

            if (resources.NumOfKey3 != null)
            {
                KeywordClass k3 = new KeywordClass((int)resources.NumOfKey3, resources.Keyword3);
                phrases.AddRange(k3.ToList());
            }

            if (resources.NumOfKey4 != null)
            {
                KeywordClass k4 = new KeywordClass((int)resources.NumOfKey4, resources.Keyword4);
                phrases.AddRange(k4.ToList());
            }

            if (resources.NumOfKey5 != null)
            {
                KeywordClass k5 = new KeywordClass((int)resources.NumOfKey5, resources.Keyword5);
                phrases.AddRange(k5.ToList());
            }

            if (resources.NumOfKey6 != null)
            {
                KeywordClass k6 = new KeywordClass((int)resources.NumOfKey6, resources.Keyword6);
                phrases.AddRange(k6.ToList());
            }

            if (resources.NumOfKey7 != null)
            {
                KeywordClass k7 = new KeywordClass((int)resources.NumOfKey7, resources.Keyword7);
                phrases.AddRange(k7.ToList());
            }

            if (resources.NumOfKey8 != null)
            {
                KeywordClass k8 = new KeywordClass((int)resources.NumOfKey8, resources.Keyword8);
                phrases.AddRange(k8.ToList());
            }

            if (resources.NumOfKey9 != null)
            {
                KeywordClass k9 = new KeywordClass((int)resources.NumOfKey9, resources.Keyword9);
                phrases.AddRange(k9.ToList());
            }

            if (resources.NumOfKey10 != null)
            {
                KeywordClass k10 = new KeywordClass((int)resources.NumOfKey10, resources.Keyword10);
                phrases.AddRange(k10.ToList());
            }



            var model = new TagCloudAnalyzer()
                        .ComputeTagCloud(phrases)
                        .Shuffle();

            return(View(model));
        }
        public async Task <State> ComputeTagCloudCategoriesAsync(State state, ILambdaContext context)
        {
            var request = new GetObjectRequest
            {
                BucketName = Utilites.BUCKET,
                Key        = Utilites.GetTranscriptKey(state.Id)
            };

            context.Logger.LogLine($"Computing tag cloud categories for {state.VideoName}");
            using (var response = await _s3Client.GetObjectAsync(request))
                using (var reader = new StreamReader(response.ResponseStream))
                {
                    var jsonString = await reader.ReadToEndAsync();

                    context.Logger.LogLine("... Downloaded transcript");

                    var root        = JsonConvert.DeserializeObject(jsonString) as JObject;
                    var transcripts = root["results"]["transcripts"] as JArray;

                    StringBuilder sb = new StringBuilder();
                    foreach (JObject transcript in transcripts)
                    {
                        sb.Append(transcript["transcript"]?.ToString());
                    }

                    var content = sb.ToString();
                    context.Logger.LogLine($"Parse json transcript file and found transcript with length: {content.Length}");


                    var phrases = content.Split(' ', ',');
                    var tags    = new TagCloudAnalyzer()
                                  .ComputeTagCloud(phrases)
                                  .Shuffle();
                    context.Logger.LogLine($"... Found {tags.Count()} tag categories");


                    var tagCloudAnaylsis = JsonConvert.SerializeObject(tags);

                    await _s3Client.PutObjectAsync(new PutObjectRequest
                    {
                        BucketName  = Utilites.BUCKET,
                        Key         = Utilites.GetTagCloudAnalysisKey(state.Id),
                        ContentBody = tagCloudAnaylsis
                    });

                    context.Logger.LogLine("... Uploaded tag cloud anaylysis");
                }

            var catalog = new TagCloudCatalog(this._s3Client);

            var items = await catalog.GetCatalogItemsAsync();

            var item = items.FirstOrDefault(x => string.Equals(x.Id, state.Id, StringComparison.InvariantCulture));

            if (item != null)
            {
                item.CompletedDate = DateTime.UtcNow;
                await catalog.RegisterTagCloudAsync(item);
            }


            return(state);
        }