分词工具
我使用的分词工具是中科院计算所的开源版本的 ICTCLAS. 另外还有开源的 Bamboo, 我随后也会对该工具进行调研.
从 ICTCLAS 出发是个不错的选择, 因为其算法传播比较广泛, 有公开的学术文档, 并且编译简单, 库依赖少. 但目前只提供了 C/C++, Java 和 C# 版本的代码, 并没有 PHP 版本的代码. 怎么办呢? 也许可以学习它的 C/C++ 源码和学术文档中, 然后再开发一个 PHP 版本出来. 不过, 我要使用进程间通信, 在 PHP 代码里调用 C/C++ 版本的可执行文件.
下载源码解压后, 在有 C++ 开发库和编译环境的机器上直接 make ictclas 即可. 它的 Makefile 脚本有个错误, 执行测试的代码没有加上’./’, 当然不能像 Windows 下执行成功了. 但也不影响编译结果.进行中文分词的 PHP 类就在下面了, 用 proc_open() 函数来执行分词程序, 并通过管道和其交互, 输入要进行分词的文本, 读取分词结果.