00:00
本文是I'M全文检索技术专题的第5篇VIVO敏感词匹配系统的技术实践。本文虽不是专门的全文检索技术文章,但文中涉及到的字词、匹配算法等等都是一脉相承,所以也同样收入到了I'M全文检索技术技术专题中,希望能给你启发。敏感词匹配功能可以迅速的匹配文本中的敏感词汇,算法平均耗时为50米秒,引起简单、快速、直接、灵活的特点,成为了审核人员对抗垃圾文本的利器。然而身处信息爆炸时代的网民们非常优秀,他们源源不断的发明各种新词、谐音词来绕过敏感词检测,其中不仅有谐音词,还包含多音字,常规的模式匹配算法很难保证完全命中,这不仅给运营规则带来挑战,也对匹配算法的精准度、漏杀率提出了要求。本文将从算法选型入手,结合2个实际场景来介绍谛听系统的敏感词。匹配算法包括底层算法选型思路和两种实际场景。
01:00
下提升敏感词精准度,降低漏杀率的方案。一、敏感词匹配算法选型敏感词匹配功能依托于模式匹配算法。模式匹配的定义是给定一个子串,在某个字符串中找出与该子串相同的所有子串,其中给定的子串被称为模式串,被匹配的字符串被称为目标串。给予多个模式串进行匹配的算法被称为多模式匹配算法。目前成熟的多模式匹配算法有AC自动机和wm AC自动机算法算法是一种字符串搜索算法,可以同时将目标串与所有模式串进行匹配,算法均摊情况下具有近似于线性的时间复杂度。AC自动机算法启动时需要将所有的模式串加载到内存中,构建成一个初页字典书。2VIVO的谛听系统,谛听系统基于AC自动机算法。
02:00
构建了一套敏感词匹配服务,将敏感词作为模式串,文本内容作为目标串,可以实现常用的中英文敏感词匹配。但是实际的业务有很多细分的场景,普通的AC自动机算法不能满足业务使用需求。因此我们探索了组合敏感词匹配和拼音敏感词匹配两种匹配方式。技术实践一,组合敏感词。常规的敏感词匹配算法通常匹配单个词或者短句,但某些词单独出现时并不违规,只有在于几个特定的词同时出现时才能判定为违规。组合敏感词的匹配算法依然基于AC自动机算法。由于AC自动机只能判断单个词的命中情况,因此我们将组合敏感词分割成单个敏感词,并维护各敏感词与组合间的映射关系。在AC自动机算法运行结束后,只有某个组合对应的敏感词全部命中时,才能判断该组合敏感词命中。4、技术时间2、拼音敏感词。
03:09
在评论、弹幕等创作自由度很高的场景中,某些用户为了规避机器审核,会使用一些多音字、同音字来表达敏感词汇。由于多音字、同音字变化较多,将一个词的所有谐音词都穷举出来是很困难的。因此我们实现了拼音敏感词的匹配方案,将中文文本转换为拼音再匹配。通过读音匹配敏感词即可保证命中所有的同音字,运营直接配置敏感词的拼音,例如caip样即可命中彩票、彩票彩票等词汇。拼音敏感词的匹配关键在于将汉字准确的转换为拼音,这点在多音字的场景下尤为重要。由于多音字的读音是受语境影响的,现有的技术条件很难确保呢将多音字准确的转换为拼音。而上文提到同音词彩票是用户自行造的词,算法无法准确的识别语境,可能转换得到新AI PL cpll两种不同的结果,如果拼音转换不精准,则拼音敏感词也无法准确命中。因此,我们不应。
04:09
在算法识别多音字的读音,而是将文本内容的所有读音都列出来匹配一遍,就可以避免避免拼音转换不精准的问题。
我来说两句