敏感词过滤 转化为拼音后再过滤


最近拿python做个敏感词过滤的程序.完成了一部分,还有待完善.现在将已经做的部分说明一下.
 
效果示例:  

假设敏感词库中有 江责民 法论功 小泽玛莉亚 学潮 这几个词语

原文: ...法<>--=论,,.功 

包含敏感词: 法<>--=论,,.功>

原文: 大家说学习fa仑功夫好啊 

包含敏感词: fa仑功

原文: 我倒江.;;>泽.(*民 

包含敏感词: 江.;;>泽.(*民

原文: 小..,,(())ze.,玛丽亚大家都喜欢 

包含敏感词: 小..,,(())ze.,玛丽亚

原文: 为什么不让我搜索学潮 

包含敏感词: 学潮

原文: 为什么不让我搜索xue潮 

包含敏感词: xue潮

 
处理步骤

1.数据预处理,处理掉那些除中文和英文字母之外的字符,转化英文字母为小写.

     "大家说.发.lun*>>功是个害人的"->

     "大家说发lun工是个害人的->

     ['大','家','说','发','lun','工','是','个','害','人','的']

2.中文转化为拼音.

['大','家','说','发','lun','工','是','个','害','人','的'] ->

['da','jia','shuo','fa','lun','gong','shi','ge','hai','ren','de']->

_da_jia_shuo_fa_lun_gong_shi_ge_hai_ren_de_


3.敏感词库中的词语转化为拼音,并拼接正则 

假设词库中有 江则民 法论功 两个词语.

正则为

"_jiang_ze_min_|_fa_lun_gong_"

4.找到存在敏感词的拼音的位置.

原文:  "_da_jia_shuo_fa_lun_gong_shi_ge_hai_ren_de_"

正则:  ""_jiang_ze_min_|_fa_lun_gong_""

5.根据拼音的位置找到原文中的实际位置.

   这里中文转为为unicode会比较好处理
 
ps:  还需要解决的问题有两个  同音字  和  交叉字.

     比如说敏感词库中有 "学潮",某人的名字叫 "薛超", 这个同音字就会被误判.

     哈佛大学潮汐很漂亮.这个交叉字也会被误判,接下来会考虑加入中文分词来处理交叉词

 

 

你可能感兴趣的:(编程,python)