请借我一个童年 發表於 2025-7-19 14:54:00

敏感词 v0.27.0 新特性之词库独立拆分

<h1 id="创作背景">创作背景</h1>
<p>大家好,我是老马。</p>
<p>敏感词初期在实现的时候,为了用户开箱即用将词库与核心算法库放在一起。</p>
<p>有一些用户希望只用自己的词库,于是内置了各种自定义的策略方法。</p>
<p>但是还是不够,比如有些 andriod 研发希望内置包的信息是干净的,不要有任何敏感信息。</p>
<p>为了保障开箱即用+支持将文件排除,我们在将敏感词库独立为另外一个项目。</p>
<h1 id="系统内置词库及如何排除">系统内置词库及如何排除</h1>
<h2 id="内置词库文件说明">内置词库文件说明</h2>
<p>v0.27.0 将词库和当前项目拆分开,词库可以在 https://github.com/houbb/sensitive-word-data 项目查看。</p>
<p>对应的资源文件在 https://github.com/houbb/sensitive-word-data/tree/main/src/main/resources 目录下</p>
<table>
<thead>
<tr>
<th style="text-align: left">文件</th>
<th style="text-align: left">说明</th>
<th style="text-align: left">默认加载类</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><code>sensitive_word_allow.txt</code></td>
<td style="text-align: left">内置自定义白名单词库</td>
<td style="text-align: left"><code>WordAllowSystem</code></td>
</tr>
<tr>
<td style="text-align: left"><code>sensitive_word_deny.txt</code></td>
<td style="text-align: left">内置自定义黑名单词库</td>
<td style="text-align: left"><code>WordDenySystem</code></td>
</tr>
<tr>
<td style="text-align: left"><code>sensitive_word_dict.txt</code></td>
<td style="text-align: left">内置黑名单词库</td>
<td style="text-align: left"><code>WordDenySystem</code></td>
</tr>
<tr>
<td style="text-align: left"><code>sensitive_word_dict_en.txt</code></td>
<td style="text-align: left">内置黑名单英文词库</td>
<td style="text-align: left"><code>WordDenySystem</code></td>
</tr>
<tr>
<td style="text-align: left"><code>sensitive_word_tags.txt</code></td>
<td style="text-align: left">内置敏感词标签词库</td>
<td style="text-align: left"><code>WordTagSystem</code></td>
</tr>
</tbody>
</table>
<h2 id="如何排除">如何排除</h2>
<p>比如一些 android app 引入时不希望包中内置敏感的信息,希望对词库加解密或者是放在服务端初始化加载。</p>
<p>系统的内置词库通过下面的 maven 依赖导入</p>
<pre><code class="language-xml">&lt;dependency&gt;
    &lt;groupId&gt;com.github.houbb&lt;/groupId&gt;
    &lt;artifactId&gt;sensitive-word-data&lt;/artifactId&gt;
    &lt;version&gt;${sensitive-word-data.version}&lt;/version&gt;
&lt;/dependency&gt;
</code></pre>
<h3 id="依赖排除">依赖排除</h3>
<p>所以可以按照 maven 排除规范,如下将其排除</p>
<pre><code class="language-xml">&lt;dependency&gt;
    &lt;groupId&gt;com.github.houbb&lt;/groupId&gt;
    &lt;artifactId&gt;sensitive-word&lt;/artifactId&gt;
    &lt;version&gt;${sensitive-word.version}&lt;/version&gt;
    &lt;exclusions&gt;
      &lt;exclusion&gt;
            &lt;groupId&gt;com.github.houbb&lt;/groupId&gt;
            &lt;artifactId&gt;sensitive-word-data&lt;/artifactId&gt;
      &lt;/exclusion&gt;
    &lt;/exclusions&gt;
&lt;/dependency&gt;
</code></pre>
<h2 id="排除后自定义">排除后自定义</h2>
<p>不希望使用内置词库,那就需要将原来内置的词库依赖改为自己的依赖</p>
<p>默认配置项:</p>
<pre><code class="language-java">SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
                .wordAllow(WordAllows.defaults())
                .wordDeny(WordDenys.defaults())
                .wordTag(WordTags.defaults())
                .init();
</code></pre>
<p>你可以将用到的这3个配置,改为自己的实现。</p>
<p>可以通过加解密,或者加载远程服务的文件信息都可以。</p>
<h1 id="开源项目">开源项目</h1>
<blockquote>
<p>敏感词核心 https://github.com/houbb/sensitive-word</p>
</blockquote>
<blockquote>
<p>敏感词控台 https://github.com/houbb/sensitive-word-admin</p>
</blockquote>
<blockquote>
<p>敏感词词库 https://github.com/houbb/sensitive-word-dict</p>
</blockquote>
<h1 id="小结">小结</h1>
<p>希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。</p>
<p>我是老马,期待与你的下次相遇。</p>
<h1 id="敏感词系列">敏感词系列</h1>
<p>sensitive-word-admin 敏感词控台 v1.2.0 版本开源</p>
<p>sensitive-word-admin v1.3.0 发布 如何支持分布式部署?</p>
<p>01-开源敏感词工具入门使用</p>
<p>02-如何实现一个敏感词工具?违禁词实现思路梳理</p>
<p>03-敏感词之 StopWord 停止词优化与特殊符号</p>
<p>04-敏感词之字典瘦身</p>
<p>05-敏感词之 DFA 算法(Trie Tree 算法)详解</p>
<p>06-敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果</p>
<p>v0.10.0-脏词分类标签初步支持</p>
<p>v0.11.0-敏感词新特性:忽略无意义的字符,词标签字典</p>
<p>v0.12.0-敏感词/脏词词标签能力进一步增强</p>
<p>v0.13.0-敏感词特性版本发布 支持英文单词全词匹配</p>
<p>v0.16.1-敏感词新特性之字典内存资源释放</p>
<p>v0.19.0-敏感词新特性之敏感词单个编辑,不必重复初始化</p>
<p>v0.20.0 敏感词新特性之数字全部匹配,而不是部分匹配</p>
<p>v0.21.0 敏感词新特性之白名单支持单个编辑,修正白名单包含黑名单时的问题</p>
<p>v0.23.0 敏感词新特性之结果条件拓展,内置支持链式+单词标签</p>
<p>v0.24.0 新特性支持标签分类,内置实现多种策略</p>
<p>v0.25.0 新特性之 wordCheck 策略支持用户自定义</p>
<p>v0.25.1 新特性之返回匹配词,修正 tags 标签</p>
<p>v0.27.0 敏感词库独立拆分</p><br><br>
来源:https://www.cnblogs.com/houbbBlogs/p/18992880
頁: [1]
查看完整版本: 敏感词 v0.27.0 新特性之词库独立拆分