Closed LinkDisapear closed 2 months ago
JDK版本: openjdk_8_201 hutool版本: 5.8.27
public static void main(String[] args) { WordTree wordTree = new WordTree(); wordTree.addWord("≡国"); // wordTree.addWord("∫国"); String text = "春秋战国五代十国"; System.out.println(wordTree.match(text)); }
堆栈信息 国 Process finished with exit code 0
测试涉及到的文件(注意脱密) 无
说明:DFA组件处理敏感词等业务时,如果敏感词是由一些特殊字符开始的,比如上面代码里的≡和∫等等,那么词汇的判断就发生混乱,无法把整词当成敏感词。这个场景下很多网站会用特殊符号来代替汉字,比如上面的”≡“可以代替汉字”三“来发出一些敏感的词。
StopChar类中定义了一些特殊字符会自动过滤,因此特殊字符不会匹配。
如果你想匹配特殊字符,使用WordTree.setCharFilter自定义字符过滤即可。
WordTree.setCharFilter
版本情况
JDK版本: openjdk_8_201 hutool版本: 5.8.27
问题描述(包括截图)
堆栈信息 国 Process finished with exit code 0
测试涉及到的文件(注意脱密) 无
说明:DFA组件处理敏感词等业务时,如果敏感词是由一些特殊字符开始的,比如上面代码里的≡和∫等等,那么词汇的判断就发生混乱,无法把整词当成敏感词。这个场景下很多网站会用特殊符号来代替汉字,比如上面的”≡“可以代替汉字”三“来发出一些敏感的词。