`

利用PHP扩展trie_filter做敏感词过滤

    博客分类:
  • PHP
 
阅读更多

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/1931212

 

      早就想研究下敏感词过滤问题,今天有些时间,正好实践一下。

      1. 安装:libdatrie (http://linux.thai.net/~thep/datrie/datrie.html#Download)

       

 tar zxf libdatrie-0.2.4.tar.gz 
 cd libdatrie-0.2.4 
 ./configure --prefix=/usr/local 
 make 
 make install

  

      2. 安装 trie_filter 扩展 (https://code.google.com/p/as3chat/downloads/detail?name=trie_filter-2011-03-21.tar.gz)

 tar zxf trie_filter-2011.03.21.tar.gz 
 cd trie_filter-2011.03.21 
 phpize (#/usr/local/php/bin/phpize ) 
 ./configure --with-php-config=/usr/local/php/bin/php-config 
 make 
 make install 

 

3. 修改 php.ini 文件,添加 trie_filter 扩展:extension=trie_filter.so,重启PHP。

   查看phpinfo发现trie_filter 扩展可用,如下图所示:


 4. 生成敏感词词典 (dpp 在 trie_filter-1.0.0 里面)

      将需要检测的敏感词写入一文本文件(如:mgc.txt),每行一个敏感词,然后使用dpp处理文本文件生成词典。

      规则:./dpp txt_file_path dict_file_path 

      示例:./dpp ~/mgc.txt mgc.dic 

 

5. 应用

<?php
/**
 * trie_filter 敏感词过滤示例
 * 
 * @author flyer0126
 * @since  2013/08/26
 **/

// 载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL
$file = trie_filter_load('/usr/local/src/trie_filter/mgc.dic');
var_dump($file);
$str1 = '今天利用trie_filter做敏感词过滤示例';
$str2 = '今天利用trie_filter做过滤示例';
// 检测文本中是否含有词典中定义的敏感词(假设敏感词设定为:‘敏感词’)
$res1 = trie_filter_search($file, $str1);
$res2 = trie_filter_search($file, $str2);
echo $res1 ? '存在敏感词' : '不存在敏感词';
echo "<br/>";
echo $res2 ? '存在敏感词' : '不存在敏感词';

/**
resource(1) of type (Trie tree filter)
存在敏感词
不存在敏感词
**/

 

 

    对应 libdatrie-0.2.4.tar.gz 及 trie_filter-2011-03-21.tar.gz 已添加至附件中,有兴趣的可以拿走~

      

  • 大小: 7.9 KB
2
2
分享到:
评论
2 楼 flyer0126 2013-08-27  
vb2005xu 写道
性能咋样?

性能方面本人还没有测试,   网上找了下相关解释:此扩展的检测算法基于 Double Array Trie Tree,查找单一关键字的时间复杂度为 O(1),查找整段文本的时间复杂度为 O(n),n 为文本的长度,而且检测的速度不会因为敏感词的增加而降低。
1 楼 vb2005xu 2013-08-26  
性能咋样?

相关推荐

    linux 下php的filter过滤扩展

    总的来说,`trie_filter`是PHP在Linux环境中进行高效敏感词过滤的重要工具,结合了词库管理和Trie树的高效搜索特性,能够帮助开发者快速实现文本的审查和过滤功能。在使用过程中,理解其工作原理和正确配置是至关...

    php扩展过滤敏感词

    php扩展:trie_filter 过滤敏感词。1.生成敏感词文件,2.加载使用敏感词库,3.查找敏感词。可以循环查找替换,最后输出替换后的文本

    用于检测敏感词的 PHP 扩展

    "用于检测敏感词的 PHP 扩展"就是针对这一需求而设计的,它是一个名为trie_filter的PHP扩展,主要功能是快速有效地检测和过滤用户输入中的敏感词汇。 trie_filter扩展基于字典树(Trie)数据结构,字典树是一种高效...

    使用前缀树(trie tree) 实现敏感词过滤,使用c++实现,性能优异

    前缀树实现的敏感词查找,时间复杂度为 O(kM), k为一小常数,M为文本长度。 该资源提供了c 的dll库,各种语言均可调用,有示例demo,该库在线上IM场景中 10w+敏感词过滤时实时性禁得起考验。

    java敏感词过滤功能

    通常,敏感词过滤器会使用字典树(如Trie树)或者关键词列表来存储敏感词,并提供方法来判断一个字符串是否包含敏感词,或者将敏感词替换为星号等其他字符。 `List.java`:这个文件可能是用于存储敏感词列表的数据...

    敏感词过滤.zip

    在IT行业中,敏感词过滤是一项重要的技术应用,主要用于网络内容审查、社交媒体监控、以及各种在线交互平台的安全管理。这项技术的目的是防止用户发布或传播含有特定敏感词汇的信息,以维护网络安全和社会秩序。以下...

    Go-go-wordsfilter是一个高性能的Go敏感词过滤器

    总之,Go-go-wordsfilter是一个强大的敏感词过滤工具,它结合了Go语言的高性能和Trie树的高效搜索特性,为开发者提供了一套快速、灵活的解决方案。通过理解和运用这个库,我们可以更好地维护网络环境的秩序,保护...

    java实现敏感词过滤

    在IT行业中,尤其是在文本处理和数据安全领域,敏感词过滤是一项至关重要的技术。它主要用于防止非法、不适当或敏感信息的传播,确保网络环境的健康和合规性。本项目是用Java实现的一个敏感词过滤工具,它能对输入的...

    Go-golang敏感词过滤

    11. **可扩展性**:设计时应考虑未来可能的扩展,比如添加新的敏感词、支持更多语言的敏感词过滤、实时更新敏感词库等。 在“filter-service-master”这个项目中,我们可以预期源码包含了实现上述功能的Go代码,...

    JAVA 敏感词过滤

    1. Jieba-Filter:基于Java的jieba分词库,支持敏感词过滤。 2. SensitiveWordFilter:一个简单的Java敏感词过滤库,提供了多种过滤策略。 3. SnowNLP:虽然主要用于中文文本处理,但也可用于敏感词过滤。 在实际...

    java敏感词过滤(支持指定字段过滤)

    在Java开发中,敏感词过滤是一项重要的功能,尤其在处理用户输入、评论或者社交媒体内容时,需要确保不包含任何可能引发争议或不适当的内容。本项目适用于基于SSM(Spring、SpringMVC、MyBatis)和SpringBoot框架的...

    敏感词过滤器(富含3000词汇)

    敏感词过滤器的工作原理通常是通过哈希表或者Trie树等数据结构来高效地存储敏感词库,这样可以快速地查找和识别出文本中的敏感词。当用户输入数据时,系统会将输入内容与敏感词库进行逐词比较,一旦发现匹配,就触发...

    libdatrie_0.1.2.orig.tar.gz_TRIE_double array_double array trie_

    "double_array_trie" 是对双数组Trie的进一步强调,表明这个库专注于这种特定的Trie实现。 "visual_c" 暗示这个库可能支持或兼容Visual C++,这是一个常用的Windows平台上的C/C++集成开发环境,这意味着libdatrie...

    php实现敏感词过滤类.zip

    PHP实现的敏感词过滤类通常会利用数据结构如字典树(Trie树)来高效地进行匹配和过滤。 在这个"php实现敏感词过滤类.zip"压缩包中,我们有一个PHP类,用于处理敏感词过滤任务。这个类可能会包含以下核心功能: 1. ...

    java 敏感词过滤 并显示内容所包含的敏感词

    在IT行业中,尤其是在文本处理和信息安全管理领域,敏感词过滤是一项重要的技术。...通过理解这些概念并结合`FilterCode`中的代码,我们可以创建一个高效、准确的敏感词过滤系统,有效地管理和控制文本中的敏感信息。

    敏感词过滤系统.zip

    《C语言实现的敏感词过滤系统详解》 在信息技术飞速发展的今天,网络内容的管理变得尤为重要,其中敏感词过滤系统扮演着至关重要的角色。本文将深入探讨一个基于C语言实现的简单敏感词过滤系统,该系统包含了服务端...

    WM算法实现_敏感词过滤

    WM算法,全称为“Widow-Matching”算法,是一种常用的文本处理技术,主要用于敏感词过滤。在互联网信息管理、社交媒体监控以及信息安全等领域,敏感词过滤具有重要作用,它可以帮助识别和屏蔽特定的关键词,防止不良...

    Android 敏感词过滤

    在Android开发中,敏感词过滤是一项重要的功能,尤其在处理用户输入、聊天内容或社区交互时,确保内容的合规性和安全性至关重要。本文将详细介绍如何在Android应用中实现敏感词过滤,以及如何使用提供的`TestFliter`...

    php做的敏感词过滤,功能很强大喔!神马敏感词都得过滤掉

    在IT行业中,尤其是在网站开发和社交媒体管理中,敏感词过滤是一项至关重要的技术。本文将深入探讨如何使用PHP实现敏感词过滤功能,以及其在维护网络环境和谐、避免不当言论传播中的作用。 首先,PHP是一种广泛使用...

    php实现敏感词过滤类

    综上所述,创建一个PHP敏感词过滤类涉及的主要知识点包括Trie树数据结构、字符串遍历算法、类设计与实现,以及在实际应用场景中的策略调整。通过这些技术,我们可以有效地过滤和管理敏感词汇,提高系统安全性。

Global site tag (gtag.js) - Google Analytics