Beispiel #1
0
        /// <summary>
        /// 获取敏感词
        /// </summary>
        /// <param name="sensitiveWordInfos">需要分析的句子集合</param>
        /// <param name="sensitiveWordResultType">分词结果获取类型</param>
        /// <returns>获取结果</returns>
        public static SensitiveWordResult GetSensitiveWordResult(List <SensitiveWordEntity> sensitiveWordInfos, ESensitiveWordResultType sensitiveWordResultType)
        {
            SensitiveWordResult sensitiveWordResult = new SensitiveWordResult();

            switch (sensitiveWordResultType)
            {
            case ESensitiveWordResultType.PerOne:
                sensitiveWordResult.PerOneDictErrorWord = new Dictionary <string, string>();
                break;

            case ESensitiveWordResultType.All:
                sensitiveWordResult.AllDictErrorWord = new Dictionary <string, List <string> >();
                break;
            }
            sensitiveWordResult.SensitiveWordResultType = sensitiveWordResultType;

            SensitiveWordComponent wrapSensitiveWordComponent = null;

            foreach (var sensitiveWordInfo in sensitiveWordInfos)
            {
                switch (sensitiveWordInfo.FieldType)
                {
                case EFieldType.Text:
                    TextSensitiveWordService tempTextSensitiveWordService = new TextSensitiveWordService(sensitiveWordInfo, sensitiveWordResult, wrapSensitiveWordComponent);
                    wrapSensitiveWordComponent = tempTextSensitiveWordService;
                    break;

                case EFieldType.HtmlText:
                    HtmlTextSensitiveWordService tempHtmlTextSensitiveWordService = new HtmlTextSensitiveWordService(sensitiveWordInfo, sensitiveWordResult, wrapSensitiveWordComponent);
                    wrapSensitiveWordComponent = tempHtmlTextSensitiveWordService;
                    break;

                default:
                    TextSensitiveWordService tempDefaultTextSensitiveWordService = new TextSensitiveWordService(sensitiveWordInfo, sensitiveWordResult, wrapSensitiveWordComponent);
                    wrapSensitiveWordComponent = tempDefaultTextSensitiveWordService;
                    break;
                }
            }
            if (wrapSensitiveWordComponent != null)
            {
                wrapSensitiveWordComponent.CheckSensitive();
            }

            return(sensitiveWordResult);
        }
 internal SensitiveWordComponent(SensitiveWordEntity sensitiveWordEntity, SensitiveWordResult sensitiveWordResult, SensitiveWordComponent sensitiveWordComponent)
 {
     m_SensitiveWordEntity    = sensitiveWordEntity;
     m_SensitiveWordResult    = sensitiveWordResult;
     m_SensitiveWordComponent = sensitiveWordComponent;
 }
Beispiel #3
0
        internal HtmlTextSensitiveWordService(SensitiveWordEntity sensitiveWordEntity, SensitiveWordResult sensitiveWordResult, SensitiveWordComponent sensitiveWordComponent)
            : base(sensitiveWordEntity, sensitiveWordResult, sensitiveWordComponent)
        {
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(sensitiveWordEntity.Text);
            m_Text = doc.DocumentNode.InnerText.Replace(" ", "").Replace("\r\n", "");
        }
Beispiel #4
0
 internal TextSensitiveWordService(SensitiveWordEntity sensitiveWordEntity, SensitiveWordResult sensitiveWordResult, SensitiveWordComponent sensitiveWordComponent)
     : base(sensitiveWordEntity, sensitiveWordResult, sensitiveWordComponent)
 {
     m_Text = sensitiveWordEntity.Text;
 }