# wordFilter **Repository Path**: chinaestone/wordFilter ## Basic Information - **Project Name**: wordFilter - **Description**: 敏感词过滤:ik分词的使用,以及DFA算法。只有接口,木有页面 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-10-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wordFilter 敏感词过滤:ik分词的使用,以及DFA算法。(接口,没有页面) **简要描述:** - spring-boot项目,通过主类启动。主要逻辑是通过ik分词,将一段语句分词,然后通过过滤算法(dfa树)实现敏感词的检测 - 包含的接口有: 1. 敏感词检测 2. 敏感词增删改查 3. 敏感词类型增删改查 4. 接口地址:https://www.showdoc.cc/web/#/66408137037681?page_id=374235850912163(不知道为啥添加不了此连接,请自行复制打开) **程序逻辑以及实现** - 该项目是spring-boot项目,maven管理,使用了mysql(mybatis)(使用注解方式,后来开发中发现,还是使用Mapper映射方式更便于开发),分词方面使用ik,过滤算法使用dfa树实现。 **_(需 [下载 ik](https://gitee.com/nullPointE/ik-analyzer) 。打包,在該項目需要依賴)_** ![输入图片说明](https://gitee.com/uploads/images/2018/0510/223745_e0787742_890053.png "2.png") - 项目启动: 1. spring-boot方式启动主类 2. 会将敏感词加载到内存中 3. 将命敏感词加入分词字典 4. 构建dfa树 **调用方式** - http,post方式,json格式参数 **不足以及改进** - 初始化ik分词词库的时候,由于是直接使自己将数据库中的词语一个个添加,会有一定的性能问题。看后期如何将ik词表添加词语可以优化 - 对敏感词增删改查的时候,也会涉及分词词库的改动,现在是简单粗暴往里面添加。会有内存,以及性能问题(压测中,压测机器8g内存,暂时没有溢出,但是tps很低,性能不足) - dfa树在数据量大的时候,可以提现性能有时(不会由于敏感词过多,导致性能急剧下降)但是对敏感词增删改查时,会涉及到dfa数变动,现在是直接重新构建敏感词。但是由于内存会由于敏感词多而会内存占用多,这也是一个优化点 - 虽说还有好多需要改进,但是可经过测试,如果不是压力很大,应该还是可以应对,希望有时间可以去优化