一元php主机,php 一元分词算法

该博客详细介绍了如何实现一元分词算法,针对UTF8编码的字符串进行处理,确保能正确处理中文字符。文章提及在MySQL中设置ft_min_word_len以支持短词搜索,并提供了过滤特殊字符和转换数字的步骤。此外,还讨论了算法的效率和在全文搜索中的应用。
摘要由CSDN通过智能技术生成

/**

* 一元分词算法

* UTF8编码下一个字符如果首字符ASCII码不大于192则只占1个字节

* 如果首字符ASCII码大于192小于224则占用2个字节,否则占用3个字节

* 一元分词需要在mysql的my.ini文件中增加 ft_min_word_len=1

* 可以使用mysql查询语句 show variables like '%ft%' 查看mysql全文搜索相关设置

*

* @access global

* @param string $str

* @param boolean $unique 是否去除重复值

* @param boolean $merge 是否合并附加值

* @return array

*/

function seg_word($str,$unique=false,$merge=true)

{

$str = trim(strip_tags($str));

$strlen = strlen($str);

if($strlen == 0) return array();

$spc = ' ';

//按需增加需要过滤的字符

$search = array(',', '/', '\\', '.', ';', ':', '\'', '!', '~','"', '`', '^', '(', ')', '?', '-', "\t", "\n", '\'', '', "\r", "\r\n", '\$', '&', '%', '#', '@', '+', '=', '{', '}', '[', ']', ')', '(', '.', '。', ',', '!', ';', '“', '”', '‘', ''', '[', ']', '、', '—', ' ', '《', '》', '-', '…', '【', '】',':');

$numpairs = array('1'=>'一','2'=>'二','3'=>'三','4'=>'四','5'=>'五','6'=>'六','7'=>'七','8'=>'八','9'=>'九','0'=>'零');

$str = alab_num($str);

$str = str_replace($search,' ',$str);

$ord = $i = $k = 0;

$prechar = 0;// 0-空白 1-英文和符号 2-中文

$result = array();

$annex = array();

while($ord = ord($str[$i]))

{

//1字节字符

if ($ord <= 0xC0 )

{

//去除空字符串

if($ord < 33) {

$prechar=0;

$i++;

$k++;

continue;

}

//附加中文大写数字转换

if(isset($numpairs[$str[$i]])) {

$annex[]=$numpairs[$str[$i]];

}

//如果前面是中文

if( $prechar == 2 ){

$result[++$k] = $str[$i];

}

else {

$result[$k] .= $str[$i];

}

$prechar = 1;

$i++;

}

else //2-3字节字符(中文)

{

if($ord < 0xE0)

$step = 2;

else

$step = 3;

$c = substr($str,$i,$step);

if(false !== $key = array_search($c,$numpairs)){

$annex[] = $key;

}

if ($prechar != 0) {

$result[++$k] = $c;

}

else {

$result[$k] .= $c;

}

$prechar = 2;

$i+=$step;

}

}

$result = $merge ? array_merge($result,$annex) : $result ;

return $unique ? array_unique($result) : $result ;

}

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值