您的位置:

php中文分词类,php 缩写

本文目录一览:

PHP中文分词应用到搜索的例子

中文分词,首先对您输入的搜索关键字进行分词,然后数据库中本来就存在一个索引表,就像个词典,然后当你进行搜索的时候就用你的词去和那本字典对比,得到索引结果表,然后通过id类似于偏移地址,得到真正的数据源地址,反馈回来,这是我平时做搜索的方法,希望对你有用。顺便插播个小广告bbs.45net.cn。有时间捧个人场。O(∩_∩)O~

php 一般使用什么中文分词扩展

Robbe是建立在Friso中文分词器上的一个高性能php中文分词扩展,除了提供了基本的分词函数以外,还提供一些编码转换函。

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有些下降)。

php 提取中文后简单分词

$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;//得结果,可输出查看或调用

若有疑问,可追问。

注释详细,希望能加分

php 中文分词难题 sphinx

1.看一下bin目录是否存在search.exe

如果不存在,就不能用search命令,看你下载到的是什么版本,有些版本是没有这个文件的。

2.Query()的两个参数,第一个是搜索的关键词,第二个是索引。

没有结果的话,请确保你的数据中有那个关键词,还要确保索引存在,并配置正确。

以前弄这个的时候,我写了篇笔记:

有兴趣可以去看一下。