Sina App Engine(SAE)入门教程(5)- SaeSegment(中文分词服务)使用
分词能干什么?
- 提取一篇文章的关键字
- 检测特定的段落中有没有违禁词
- 智能机器人
- …..尽你所想
开启SAE 分词服务
首先你需要在sae的管理面板开始分词服务后才能使用sae的服务。具体的开启操作:


成功的开启之后可以写一段脚本试试看看分词的效果如何,代码如下:
filename:test_segment.php
<?php
header("Content-Type:text/html;charset=utf-8");
$str = '我是一个超级大懒鬼';
$seg = new SaeSegment();
$ret = $seg->segment($str, 1);
var_dump($ret);
?>
访问 :http://lazydemo.sinaapp.com/segment/test_segment.php 发现输出:
array(6) {
[0]=> array(3) { ["word"]=> string(3) "我" ["word_tag"]=> string(3) "123" ["index"]=> string(1) "0" }
[1]=> array(3) { ["word"]=> string(3) "是" ["word_tag"]=> string(3) "173" ["index"]=> string(1) "1" }
[2]=> array(3) { ["word"]=> string(6) "一个" ["word_tag"]=> string(3) "201" ["index"]=> string(1) "2" }
[3]=> array(3) { ["word"]=> string(6) "超级" ["word_tag"]=> string(2) "20" ["index"]=> string(1) "3" }
[4]=> array(3) { ["word"]=> string(3) "大" ["word_tag"]=> string(2) "10" ["index"]=> string(1) "4" }
[5]=> array(3) { ["word"]=> string(6) "懒鬼" ["word_tag"]=> string(2) "95" ["index"]=> string(1) "5" }
}
发现效果还不错,那么下面就是一个更综合的实例(来找一个网页中是否包含敏感词)来说明sae分词服务的应用。我们假设这里的敏感词只为几个,为了更简单的说明实例,在现实的应用中,可以把敏感词变成一个数组,推倒memcache中加速。我们假设此处的敏感词为:
array('fuck','av','苍老湿');
判断的脚本:
filename:segment_api.php
<?php
header("Content-Type:text/html;charset=utf-8");
$str = $_REQUEST['str'];
if($str == null)
{
die('没有链接哇');
}
//获取指定链接的纯文本内容
$url_content = file_get_contents($str);
$cotent_strip_tags = strip_tags($url_content);//过滤下HTML标签
$cotent_strip_tags = iconv("gb2312", "utf-8", $cotent_strip_tags);//转换编码
//var_dump($cotent_strip_tags);
$seg = new SaeSegment();
$ret = $seg->segment($cotent_strip_tags,1,'utf-8');
foreach ($ret as $key) {
$array_all[] = $key['word'];
}
$hot = array('fuck','av','苍老湿');
foreach($hot as $small)
{
if(in_array($small, $array_all))
{
die('出现敏感词');
}
}
echo '未发现敏感词';
可以测试:http://lazydemo.sinaapp.com/segment/segment_api.php?str=http://www.php100.com
http://lazydemo.sinaapp.com/segment/segment_api.php?str=http://lazydemo.sinaapp.com/segment/hello.txt
其中hello.txt的内容是:
fuck av
本实例所有代码打包下载地址:
http://lazydemo.sinaapp.com/segment/segment.zip
参考资料:
Sina App Engine(SAE)入门教程(5)- SaeSegment(中文分词服务)使用的更多相关文章
- Sina App Engine(SAE)入门教程(4)- SaeVCode(验证码服务)使用
参考资料 SaeVCode api 文档 使用教程 所有的验证码原理都是生成一个vcode字符串,存到session中,和用户的输入进行比较判断,以下是一个使用验证码服务的完整实例: 首页index. ...
- Sina App Engine(SAE)入门教程(2)-Mysql使用
如果你还没有SAE的账号,请在http://sae.sina.com.cn 注册新用户.具体的注册流程请参见:Sina App Engine(SAE)入门教程(1)在常规的环境下,我们可以通过http ...
- Sina App Engine(SAE)入门教程(8)- SaeFetchurl使用
fetchurl是什么? FetchURL是SAE为开发者提供的分布式网页抓取服务,用来同步的抓取http页面,FetchURL针对国内的网络的做了优化,内部有调度系统,尽可能保证用户快速的抓取到目标 ...
- Sina App Engine(SAE)入门教程(3)-KVDB使用
简介 因为传统关系型数据库在分布式环境下表现的扩展性不足等缺点,近年来NoSQL的概念渐渐成为业界关注的焦点,越来越多的技术人员也习惯于使用NoSQL数据库进行日常开发,SAE为了应对这种新需求,也进 ...
- Sina App Engine(SAE)入门教程(1)
此教程只针对刚接触SAE的小白用户,资深码农.高手请绕道.首先还是一个经典的实例,hello sae. 创建应用 在注册完账号之后,需要到 http://sae.sina.com.cn/?m=myap ...
- Sina App Engine(SAE)入门教程(7)- Storage使用
参考阅读 sae storage api 文档 Storage 说明文档 Storage 大文件上传说明 storage是什么? 因为sae禁用了代码环境的本地读写,但是在网站运行的过程中,必定会出现 ...
- Sina App Engine(SAE)入门教程(10)- Cron(定时任务)使用
参考资料 SAE Cron说明文档 Cron能干什么? cron 可以定时的触发一个脚本,在sae上最大的频率是一分钟一次.你可以用其来完成自己需要的业务逻辑,例如定期的抓取某些网页完菜信息的采集,定 ...
- Sina App Engine(SAE)入门教程(9)- SaeMail(邮件)使用
参考资料: SAE mail api 文档 怎么使用? 参见代码: <?php $mail = new SaeMail(); $f = new SaeFetchurl(); $img_data ...
- Sina App Engine(SAE)入门教程(6)- memcache使用
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...
随机推荐
- 提高Linux安全性--hosts.allow, hosts.deny 文件修改方法
有一种办法来提高Linux安全性--修改 hosts.allow , hosts.deny 这2个文件来配置 允许某个ip访问, 或者禁止访问. 可以通过这种方式设置限制 sshd 的远程访问, 只允 ...
- 第27章 项目8:使用XML-RPC进行文件共享
1.问题 创建一个简单的P2P文件共享程序. P2P文件共享程序是在不同计算机上的程序交换文件.P2P交互内,任何节点(peer)都可以是链接到其他节点.在这样一个由节点组成的虚拟网络中,是没有中央节 ...
- 隐藏wmware到系统托盘
[此方法是百度到的,经整理放在这里以防忘记.] 1.打开VMware Authorization Service服务.控制面板--管理工具--服务,在里面找到VMware Authorization ...
- 原创的基于HTML/CSS/JavaScript的层级目录树
之前参加过一些基于HTML/CSS/JavaScript的项目,当在页面中需要生成一颗目录树时,总是首先想着网上有没有现成的生成树的源代码,比如dtree.zthee,或者使用一些javascript ...
- AVG()和to_date()函数的使用
1.一道关于AVG函数和NULL值的面试题 某部门有10个员工,其中9个工资为1000,另一个为NULL,当使用AVG函数取该部门平均工资时,结果应该是多少? A.1000 B.900 我这里把题目再 ...
- ASP.NET 运行机制续(完结)
上一篇说到applicationInstance会执行一些列的事件.下面是我在msdn上找到有关asp.net程序生命周期相关的描述及图片 声明周期的起始 ASP.NET 应用程序的生命周期以浏览器向 ...
- iOS常见问题(3)
一.发现不少人在给成员变量初始化的时候,容易进错一个方法去初始化. //注意这个方法只有在内存发生警告的时候才会调用. - (void)didReceiveMemoryWarning { [super ...
- Log4Net学习【一】
如果项目上过线的话,那你一定知道Log是多么重要.为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题.这时打一手好Log的重要性绝不亚于写一手好代码.项目出问题时,你要能拿出L ...
- 20145120 《Java程序设计》第4周学习总结
20145120 <Java程序设计>第4周学习总结 教材学习内容总结 -定义子类,加"extends+父类名"以继承父类. -子类只能继承一个父类 -编辑器会检查等号 ...
- android 中使用回调方法(适用于自定义view传值到activity、adapter传值到activity)
如图所示: 每当listview中有选中的操作时都需要发消息给activity,用来实时改变真实需要支付的剩余金额. 代码暂不公开啦!公司项目!