-
jieba-fenci 结巴分词与繁简体转换 segment
拓展阅读
DFA 算法详解
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
敏感词 sensitive-word
分词 segment
结巴分词
请参考 结巴分词原理。
结巴分词的不足
这里是针对如果使用繁简体转换,仅仅想使用分词。
那么结巴分词会有哪些不足呢?
HMM 是一种面向未来的分词(预测),但是繁体是一种面向过...
2020-01-08 02:09:32 |
Java
-
jieba-fenci 结巴分词原理讲解之数据归一化 segment
拓展阅读
DFA 算法详解
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
敏感词 sensitive-word
分词 segment
结巴分词的归一化
结巴分词的字典加载有一段源码,做了数据的归一化,使用的是 log 函数。
截取如下:
for (Entry<String, Double> entry : freqs...
2020-01-08 02:09:32 |
NLP
-
jieba-fenci 结巴分词原理讲解 segment
拓展阅读
DFA 算法详解
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
敏感词 sensitive-word
分词 segment
分词的必要性
我们平时做文本分析,或者我个人想做一个繁简体转换/同义词替换等工具,分词都是必须的。
对于文本的朗读,统计等等,都是需要基于分词实现。
算法
前缀树算法+DAG 算法 其实是非常有...
2020-01-08 02:09:32 |
Java
-
sensitive-word v0.13 特性版本发布 支持英文单词全词匹配
拓展阅读
sensitive-word-admin v1.3.0 发布 如何支持分布式部署?
sensitive-word-admin 敏感词控台 v1.2.0 版本开源
sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍
更多技术交流
业务背景
对于英文单词 Disburse 之类的,其中的 sb 字母会被替换,要怎么...
2020-01-07 02:09:32 |
Java
-
v0.12.0-敏感词/脏词词标签能力进一步增强
敏感词标签
说明
有时候我们希望对敏感词加一个分类标签:比如社情、暴/力等等。
这样后续可以按照标签等进行更多特性操作,比如只处理某一类的标签。
我们在 v0.10.0 版本,开始初步支持敏感词的标签分类,不过这个方法没有和以前的方法进行整合。
让我们先做一下回顾:
入门例子
接口
这里只是一个抽象的接口,用户可以自行定义实现。比如从数据库查询等。
public inter...
2020-01-07 02:09:32 |
Java
-
sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?
忽略字符
说明
我们的敏感词一般都是比较连续的,比如 傻帽
那就有大聪明发现,可以在中间加一些字符,比如【傻!@#$帽】跳过检测,但是骂人等攻击力不减。
那么,如何应对这些类似的场景呢?
我们可以指定特殊字符的跳过集合,忽略掉这些无意义的字符即可。
v0.11.0 开始支持
例子
其中 charIgnore 对应的字符策略,用户可以自行灵活定义。
final Strin...
2020-01-07 02:09:32 |
Java
-
java sensitive-word 敏感词之 DFA 算法(Trie Tree 算法)详解
背景
想实现一个基于敏感词库的敏感词工具。
遍历匹配
发现如果是逐个字符遍历的话,效率实在是太低。
这里我首先想到了两种算法:
KMP 算法
BF 暴力匹配算法
当然单纯只是匹配,其实性能依然非常的低。
正则表达式
当然还有一种方式就是基于正则表达式,个人感觉这种性能也比较差。
正则表达式
直接查了下资料,可以使用 DFA 算法来解决这个问题。
DFA 算法
在实现...
2020-01-07 02:09:32 |
Java
-
java 敏感词之 DFA 算法双数组原理及实现
双数组实现原理
双数组Tire树是Tire树的升级版,Tire取自英文Retrieval中的一部分,即检索树,又称作字典树或者键树。
下面简单介绍一下Tire树。
1.1 Tire树
Trie是一种高效的索引方法,它实际上是一种确定有限自动机(DFA),在树的结构中,每一个结点对应一个DFA状态,每一个从父结点指向子结点(有向)标记的边对应一个DFA转换。
遍历从根结点开始,然后从...
2020-01-07 02:09:32 |
Java