예제 #1
0
        /// <summary>
        /// 将分析后的 词输出,并在输出前用自定义的转码器转码
        /// </summary>
        /// <param name="simplifiedAnalysedWordStruct"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public static IList <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified> SimplifiedWordStructProcessBeforeReturn(this IList <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified> simplifiedAnalysedWordStruct, Func <string, string> filter = null)
        {
            var retSimplifiedAnalysedWordStruct = new List <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified>();

            if (simplifiedAnalysedWordStruct != null && simplifiedAnalysedWordStruct.Any())
            {
                if (filter != null)
                {
                    foreach (var simplifiedWord in simplifiedAnalysedWordStruct)
                    {
                        var curSimplifiedWord = new Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified();

                        curSimplifiedWord.Word = filter(simplifiedWord.Word);

                        curSimplifiedWord.Synonyms = simplifiedWord.Synonyms.Select(x => filter(x)).ToList();

                        retSimplifiedAnalysedWordStruct.Add(curSimplifiedWord);
                    }
                }
                else
                {
                    retSimplifiedAnalysedWordStruct.AddRange(simplifiedAnalysedWordStruct);
                }
            }

            return(retSimplifiedAnalysedWordStruct);
        }
예제 #2
0
        /// <summary>
        /// 将结果集简化
        /// </summary>
        /// <param name="analysedWordStruct"></param>
        /// <returns></returns>
        public static IList <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified> SimplifyAnalysedWordStruct(this IList <Wl.WordsAnalyzer.Models.AnalysedWordStruct> analysedWordStruct)
        {
            var retAnalysedWordStructSimplified = new List <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified>();

            if (analysedWordStruct != null && analysedWordStruct.Any())
            {
                foreach (var analysedWordSet in analysedWordStruct)
                {
                    var curAnalysedWordStructSimplified = new Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified();
                    if (analysedWordSet.SynonymsOfSingularizedWord.Count() > analysedWordSet.SynonymsOfOriginalWord.Count())
                    {
                        curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfSingularizedWord;
                        curAnalysedWordStructSimplified.Word     = analysedWordSet.SingularizedWord;
                    }
                    else
                    {
                        curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfOriginalWord;
                        curAnalysedWordStructSimplified.Word     = analysedWordSet.OriginalWord;
                    }

                    retAnalysedWordStructSimplified.Add(curAnalysedWordStructSimplified);
                }
            }

            return(retAnalysedWordStructSimplified);
        }
예제 #3
0
        /// <summary>
        /// 将结果集简化 并 在输出前 用定义的转码器 转码
        /// </summary>
        /// <param name="analysedWordStruct"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public static IList <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified> SimplifyAnalysedWordStructProcessBeforeReturn(this IList <Wl.WordsAnalyzer.Models.AnalysedWordStruct> analysedWordStruct, Func <string, string> filter = null)
        {
            var retAnalysedWordStructSimplified = new List <Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified>();

            if (analysedWordStruct != null && analysedWordStruct.Any())
            {
                foreach (var analysedWordSet in analysedWordStruct)
                {
                    var curAnalysedWordStructSimplified = new Wl.WordsAnalyzer.Models.AnalysedWordStructSimplified();
                    if (analysedWordSet.SynonymsOfSingularizedWord.Count() > analysedWordSet.SynonymsOfOriginalWord.Count())
                    {
                        if (filter != null)
                        {
                            curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfSingularizedWord.Select(x => filter(x)).ToList();
                            curAnalysedWordStructSimplified.Word     = filter(analysedWordSet.SingularizedWord);
                        }
                        else
                        {
                            curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfSingularizedWord;
                            curAnalysedWordStructSimplified.Word     = analysedWordSet.SingularizedWord;
                        }
                    }
                    else
                    {
                        if (filter != null)
                        {
                            curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfOriginalWord.Select(x => filter(x)).ToList();
                            curAnalysedWordStructSimplified.Word     = filter(analysedWordSet.OriginalWord);
                        }
                        else
                        {
                            curAnalysedWordStructSimplified.Synonyms = analysedWordSet.SynonymsOfOriginalWord;
                            curAnalysedWordStructSimplified.Word     = analysedWordSet.OriginalWord;
                        }
                    }

                    retAnalysedWordStructSimplified.Add(curAnalysedWordStructSimplified);
                }
            }

            return(retAnalysedWordStructSimplified);
        }