houbb / sensitive-word

👮‍♂️The sensitive word tool for java.(敏感词/违禁词/违法词/脏词。基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。请勿发布涉及政治、广告、营销、翻墙、违反国家法律法规等内容。高性能敏感词检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。)
https://houbb.github.io/opensource/sensitive-word
Apache License 2.0
4.36k stars 589 forks source link

敏感词为包含关系时,如何只检测较长的敏感词,忽略短的 #9

Closed tenstep closed 3 years ago

houbb commented 3 years ago

敏感词在处理的时候,本身就是会先处理较长的。如果有问题,是否给一个具体的例子?

tenstep commented 3 years ago

敏感词在处理的时候,本身就是会先处理较长的。如果有问题,是否给一个具体的例子?

发现是跟另外一个问题搞混了,中文没问题,确实是优先匹配长的敏感词,但是数字的匹配有问题。比如:

数字但凡长一点,8个字符或以上就会被判别为敏感词,换成其他数字测试同样地会被判别为敏感词,是不是对数字的判断有特殊的处理?

houbb commented 3 years ago

是的,默认认为较长的数字是营销链接方式。 比如手机号,微信号等,这个配置应该可以关闭的。

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: exodus @.> 发送时间: 2021年6月28日 11:34 收件人: houbb/sensitive-word @.> 抄送: 老马啸西风 @.>, Comment @.> 主题: 回复:[houbb/sensitive-word] 敏感词为包含关系时,如何只检测较长的敏感词,忽略短的 (#9)

敏感词在处理的时候,本身就是会先处理较长的。如果有问题,是否给一个具体的例子?

发现是跟另外一个问题搞混了,中文没问题,确实是优先匹配长的敏感词,但是数字的匹配有问题。比如:

文本"20100506,张三出生,20100506222。",判别出的敏感词是[20100506, 20100506222]。

文本"20100506,张三出生。",判别出的敏感词是[20100506]

数字但凡长一点,8个字符或以上就会被判别为敏感词,换成其他数字测试同样地会被判别为敏感词,是不是对数字的判断有特殊的处理?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

tenstep commented 3 years ago

如何关闭营销号的检测呢,查了文档,没有这块的用法说明

houbb commented 3 years ago

可以参考 配置说明

原来忘记加了,SensitiveWordBs.newInstance().enableNumCheck(false); 可关闭对于数字的检测。

tenstep commented 3 years ago

可以了,谢谢

wang-droid commented 2 years ago

敏感词在处理的时候,本身就是会先处理较长的。如果有问题,是否给一个具体的例子? 比如举这个例子, 我有俩个敏感词 Ŏ̷̢̡̩̯̰̪̘͈̦͘ 和 O̷ 前者是包含后者的,现在的问题是先识别了后者也就是短的,跪求大佬看看