Robbe完整版本(PHP测试程序, 开发帮助文档, WinNT下php各版本的dll文件)下载:code.google.com/p/robbe
一. 关于Robbe:
robbe是建立在friso中文分词上的一个高性能php中文分词扩展。了解friso
1.目前最高版本:friso 1.6.0,【源码无需修改即可在各平台下编译运行】
2.mmseg四种过滤算法,分词准确率达到了98.41%。
3.详细功能,请访问friso官方首页:friso [code.google.com/p/friso]
二. Robbe分词速度:
测试环境:2.8GHZ/2G/Ubuntu
简单模式:3.1M/秒
复杂模式:1.4M/秒
(因为php中的大量字符串的复制,性能比friso有些下降)。
$str = "汉字一二3四5六七八,九十六七..."$s1 = array()//初始化储存第二步结果的数组
//preg_match_all("/[x80-xff]+/", $str, $match)//此为GBK使用
preg_match_all("/[\x{4e00}-\x{9fa5}]{2,}+/u", $str, $match)//此为UTF-8使用
foreach($match[0] as $str1)//循环遍历匹配到的汉字
{
$leng = iconv_strlen($str1, "UTF-8")//计算汉字其长度
for($i = 0 $i < $leng-1 $i++)
{
$temp = mb_substr($str1, $i, 2, "UTF-8")//将汉字切割长两个字,得第一步结果
if(!in_array($temp, $s1))//去除重复,得第二步结果
$s1[] = $temp//得到的汉字存入数组
}
}
//print_r($s1)//第一二步完成,得数组$s1,可打印查看结果
$s2 = file_get_contents("21.txt")//将文件内所有字符读取成一个字符串
$s2 = iconv("", "UTF-8", $s2)//将字符串转码,否则难免有乱码
//echo $s2//可输出查看文件中的内容
$s = ""//初始化最终结果的变量
foreach($s1 as $j)//遍历汉字对
{
if(preg_match("/".$j."/", $s2))//判断该汉字对是否被包含于文件的文字中
$s .= ("" == $s) ? $j : "\\".$j//将结果合在$s中
}
echo $s//得结果,可输出查看或调用
若有疑问,可追问。
注释详细,希望能加分
现在很多web系统都用到了不少的自然语言处理技术来提高客户体验。
主要技术:
1.文章关键字提取.
2.相关文章(产品)推荐.
最近有不少网友问道,这里以php为例子讲解下php的"关键字提取"的实现,同时这个也是实现"相关文章推荐"的前提.
基本分以下几个步骤:
一.对文章进行分词:
php的中文分词程序还是有不少的,从前辈的scws,到用纯php实现的phpAnalysis,phpcws(phpcws)以及本人开发的robbe扩展。
这里的讲解是使用"robbe分词扩展"来进行分词,robbe兴许不是最好的,但一定是最快的。
选择的分词器需要支持停止词过滤。
二.统计词条词频并且排序:
对一篇文章分词后,统计每个词条出现的次数。然后按照词频降序排序下,你想要的结果在前面几个词中。
前提是去除了出现词频很高的停止词,要不然得到的都是一些无用的停止词。
现在,很多web系统都用到了不少的自然语言处理技术来提高客户体验.主要技术:1.文章关键字提取.2.相关文章(产品)推荐.最近有不少网友问到,这里以php为例子讲解下php的"关键字提取"的实现,同时这个也是实现"相关文章推荐"的前提。
基本分以下几个步骤:
一.对文章进行分词:php的中文分词程序还是有不少的,从前辈的scws,到用纯php实现的phpAnalysis,phpcws(phpcws)以及本人开发的robbe扩展。这里的讲解是使用"robbe分词扩展"来进行分词,robbe兴许不是最好的,但一定是最快的。选择的分词器需要支持停止词过滤。
二.统计词条词频并且排序:对一篇文章分词后,统计每个词条出现的次数,然后按照词频降序排序下,你想要的结果在前面几个词中。昌平IT培训建议前提是去除了出现词频很高的停止词,要不然得到的都是一些无用的停止词。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)