Пример #1
0
        public List <KeywordModel> GetWordAndCount(ISEOViewModel model, string content)
        {
            List <KeywordModel> returnData = new List <KeywordModel>();
            bool removeStopWord            = false;
            // Check if user select to filter stop words
            var stopWordsOption = model.UserInputModel.AnalysisOptions.Where(x => x.Value == "StopWords").FirstOrDefault();

            if (stopWordsOption != null && stopWordsOption.Selected == true)
            {
                removeStopWord = true;
            }

            string[] words = Regex.Replace(content, "<.*?>", String.Empty).Split(' ');
            //string[] words = content.Replace("<", " ").Replace(">", " ").Replace("</", " ").Split(' ');
            foreach (string word in words)
            {
                string newWord = word.Trim();
                if (newWord != "" && IsAWord(newWord) && !newWord.Any(c => char.IsDigit(c)))
                {
                    if (removeStopWord == true && WordFilters.StopWords.Any(s => s.ToUpper().Contains(newWord.ToUpper())))
                    {
                        // ignore and dont add
                    }
                    else
                    {
                        var checkData = returnData.Where(x => x.Name == newWord).FirstOrDefault();
                        if (checkData == null)
                        {
                            returnData.Add(new KeywordModel
                            {
                                Name = newWord
                                ,
                                WordCount = 1
                            });
                        }
                        else
                        {
                            checkData.WordCount++;
                        }
                    }
                }
            }

            return(returnData);
        }
Пример #2
0
        public async Task <IResultModel> ProcessInput(ISEOViewModel model)
        {
            IResultModel returnModel = new ResultModel();

            // 1. Extract Url link information from URL input
            List <LinkModel> links = _linkExtractor.GetLinkFromContent(model.UserInputModel.TextContent);

            returnModel.Links = links;

            // 2. Extract HTML
            returnModel.Content = await Task.Run(() => model.UserInputModel.TextContent);

            // 3. Get the META keywords
            _metaExtractor.Content = returnModel.Content;
            returnModel.Metas      = _metaExtractor.GetMeta();

            // 4. Get words and its count
            returnModel.Keywords = _htmlExtractor.GetWordAndCount(model, _metaExtractor.Content);

            return(returnModel);
        }