脏词检测系统

2019-02-19  本文已影响18人  赤子心_d709

背景

最近刚好调用脏词检测,看了下对应的系统大概实现,除了具体的匹配流程实现不便展开,框架层面稍微梳理一下,本质上是一个nlp强相关的系统

词典配置

    不同语言配置:如英语,葡萄牙语,阿拉伯语,意大利语等26个字母大小写
    中文繁体简体转化: 鎄 锿
    中英文符号:〔 %
    数字的规范: ⒈    1
    拼音规范,体现在发音习惯上面:zhu  zu,ceng cen,
    繁体->拼音:蹻    qiao
    输入法距离:比如q w在键盘很近
    字符大小写
    其他:如emoji符号等用于过滤

大致匹配流程:

不同的匹配模式选择,如下面的组合:

繁体内容转简体后匹配,归一化后匹配,同音字和拼音都进行匹配,非连续匹配,组合排列匹配

涉及算法

ac自动机,模糊匹配,trie,gdbt模型,最短编辑距离等

大体上就是根据输入的text,以及查询的词表id,根据匹配模式的选择对text进行处理,和词表里面的词进行比较

系统设计

词表设计:

支持词表的内容的增删改查,每个词表支持不同语言的脏词,比如table 1下面中文是一堆词,英文是一堆词

匹配接口:

支持单个词匹配和批量匹配
指定table ids,language,匹配模式(支持默认),查看匹配结果,返回是否命中(0,1),命中哪个词表的哪些词等具体信息

总结

具体的算法因为是强nlp相关也不算懂,看个框架学习下

上一篇 下一篇

猜你喜欢

热点阅读