中文分词,是程序对中文语义的分析的第一步,把一个句子按语法语义分成多个词语,便可方便进行下一步的处理。中文分词在中文搜索引擎方面广泛应用,还可以应用在聊天机器人、信息自动搜集等很多方面。
记得我的毕业设计就是中文搜索引擎,当时自己只用PHP实现了正向最大匹配分词法,效率不是很高,而且分出来的词也不是很精确(不过最简单,哈哈)。但对于一个毕业设计来说,这样已经足够了。但要对一个实际应用来说,分词肯定要越精准越好。中科院的ICTCLAS中文分词库,应该是最好的选择。
这个组件是因为PHP需要用到ictclas分词功能,但官方只提供dll版本,那就有两种方式,一种是封装成php模块,另一种就是封装成com组件了。既然是运行在windows上的,就决定装成com了。
组件提供3函数,init,split,exit.具体看例子一下子就知道了。
使用方法就是先注册:
regsvr32 ictclas.dll
然后再把你购买的中科院的ictclas30.dll拷到C:/windows 目录下(环境变量path里的其它目录也可以),我这儿不提供ictclas30.dll了,你可以自己去买授权或者下载通过开源版的程序封装成的dll。
PHP调用示例:
<?php try{ $c=new COM('ICTCLAS.Split'); $c->init('C:/dict'); //初始化ictclas,参数为字典configure.xml和Data目录所在的文件夹全路径。它们可以从中科院下载的ictclas库里找到。 $result=$c->split('我叫张三,我不是上海人'); //分词。返回带标记字符串 $nameArray=array(); $addressArray=array(); preg_match_all('/([\S]*)\/([\S]*)/',$result,$out); //提取分词信息 print_r($out); $c->exit(); //最后释放ictclas资源。 } catch(Exception $e){ echo "ERROR:COM not supported!"; } ?>
当然这个com也可以用在windows上其它脚本语言上。点击这里下组件ICTCLAS COM封装。
这次是因为PHP需要用到ictclas分词功能,但官方只提供dll版本,那就有两种方式,一种是封装成php模块,另一种就是封装成com组件了。既然是运行在windows上的,就决定封装成com了。
使用方法就是先注册:
然后再把你下载的ictclas.dll拷到C:/windows 目录下(其它在环境变量path里的目录也可以),我这儿不提供ictclas.dll了,你可以自己去买授权或者其它什么方式。
PHP调用示例:
$com=new COM(‘ICTCLAS.SPLIT’);
$com->init();
$str=$com->split();
$com->exit();
运行结果:
当然这个com也可以用在windows上其它脚本语言上。
呵呵,有了它,用PHP做的聊天机器人就会更智能了!因为应该没有比ictclas更强的分词库了吧。。。。