分词能干什么?

  • 提取一篇文章的关键字
  • 检测特定的段落中有没有违禁词
  • 智能机器人
  • …..尽你所想

开启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(中文分词服务)使用的更多相关文章

  1. Sina App Engine(SAE)入门教程(4)- SaeVCode(验证码服务)使用

    参考资料 SaeVCode api 文档 使用教程 所有的验证码原理都是生成一个vcode字符串,存到session中,和用户的输入进行比较判断,以下是一个使用验证码服务的完整实例: 首页index. ...

  2. Sina App Engine(SAE)入门教程(2)-Mysql使用

    如果你还没有SAE的账号,请在http://sae.sina.com.cn 注册新用户.具体的注册流程请参见:Sina App Engine(SAE)入门教程(1)在常规的环境下,我们可以通过http ...

  3. Sina App Engine(SAE)入门教程(8)- SaeFetchurl使用

    fetchurl是什么? FetchURL是SAE为开发者提供的分布式网页抓取服务,用来同步的抓取http页面,FetchURL针对国内的网络的做了优化,内部有调度系统,尽可能保证用户快速的抓取到目标 ...

  4. Sina App Engine(SAE)入门教程(3)-KVDB使用

    简介 因为传统关系型数据库在分布式环境下表现的扩展性不足等缺点,近年来NoSQL的概念渐渐成为业界关注的焦点,越来越多的技术人员也习惯于使用NoSQL数据库进行日常开发,SAE为了应对这种新需求,也进 ...

  5. Sina App Engine(SAE)入门教程(1)

    此教程只针对刚接触SAE的小白用户,资深码农.高手请绕道.首先还是一个经典的实例,hello sae. 创建应用 在注册完账号之后,需要到 http://sae.sina.com.cn/?m=myap ...

  6. Sina App Engine(SAE)入门教程(7)- Storage使用

    参考阅读 sae storage api 文档 Storage 说明文档 Storage 大文件上传说明 storage是什么? 因为sae禁用了代码环境的本地读写,但是在网站运行的过程中,必定会出现 ...

  7. Sina App Engine(SAE)入门教程(10)- Cron(定时任务)使用

    参考资料 SAE Cron说明文档 Cron能干什么? cron 可以定时的触发一个脚本,在sae上最大的频率是一分钟一次.你可以用其来完成自己需要的业务逻辑,例如定期的抓取某些网页完菜信息的采集,定 ...

  8. Sina App Engine(SAE)入门教程(9)- SaeMail(邮件)使用

    参考资料: SAE mail api 文档 怎么使用? 参见代码: <?php $mail = new SaeMail(); $f = new SaeFetchurl(); $img_data ...

  9. Sina App Engine(SAE)入门教程(6)- memcache使用

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...

随机推荐

  1. CentOS配置VSFTP服务器

    [1] 安装VSFTP [root@localhost ~]# yum -y install vsftpd [2] 配置vsftpd.conf文件 [root@localhost ~]# vi /et ...

  2. Cassandra1.2文档学习解读计划——为自己鼓劲

    最近想深入研究一下Cassandra,而Cassandra没有中文文档,仅有的一些参考书都是0.7/0.6版本的.因此有个计划,一边学习文档(地址:http://www.datastax.com/do ...

  3. 基于jquery打造的网页右侧自动收缩浮动在线客服代码

    基于jquery打造的网页右侧自动收缩浮动在线QQ客服代码, 当前比较流行的一款QQ在线jquery特效代码, 代码中还带有IE6下PNG图片透明的特效,如果想研究IE6下PNG透明的同学也可以下载研 ...

  4. 通过 Javacore 了解线程运行状况

    Javacore 是一个当前 JVM 运行状态的快照.通过对Javacore 的分析,可以了解在 JVM 中运行的应用程序的当前状态,比如是否“卡”在某一点上,或在某些代码上运行时间太长. Javac ...

  5. 重绘panel控件,实现panel的阴影效果

    最近想在项目中添加一个要有阴影的panel控件,找了好多资料,最后通过采用图片的方式实现了panel的阴影效果,效果图如下: 重绘代码如下: using System; using System.Co ...

  6. OpenNMS架构介绍

    一.OpenNMS简介 OpenNMS的开发基于TMN及FCAPS这两个模型. 电信管理网络(TMN)是由 ITU-T 推荐 M.3000于1985年提出作为一种应用于电信服务供应商所持有的运营支持系 ...

  7. Eclipse中使用javap运行配置详解

    javap是sun提供的对class文件进行反编译的工具 1.配置Run---external tools---external tools configurations 选择Program 新建ja ...

  8. C++实现数字媒体三维图像变换

    C++实现数字媒体三维图像变换 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画物体对象的功能.并附带放大缩小,旋 ...

  9. Vbox下linux虚拟机根分区扩容

    前言 使用一段时间VBox中的linux后可能会显示根分区空间不足的情况,需要扩容. 通过查阅相关资料,VBox中linux扩容主要有两种办法:通过lvm扩容和通过gparted扩容 LVM条件:VB ...

  10. vs2008调试提示:未安装Silverlight托管调试包

    换个启动浏览器,解决了. 右击项目,选择“属性”,选择"web";启动操作设置“启动外部程序”,填入浏览器exe的路径. 命令行参数填入地址.即可.