Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304416
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站导航为爱好php程序的朋友们提供php相关的教程知识。

PhP程序中文分词的简单实现TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    对于中文搜索引擎来说, 中文分词是整个系统最基础的部分之一, 因为目前基于单字的中文搜索算法并不是太好。 当然, 本文不是要对中文搜索引擎做研究, 而是分享如果用 PhP程序 做一个站内搜索引擎。 本文是这个系统中的一篇。TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    我使用的分词工具是中科院计算所的开源版本的 ICTCLAS。 另外还有开源的 Bamboo, 我随后也会对该工具进行调研。TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    从 ICTCLAS 出发是个不错的选择, 因为其算法传播比较广泛, 有公开的学术文档, 并且编译简单, 库依赖少。 但目前只提供了 C/C , Java 和 C# 版本的具体代码如下, 并没有 PhP程序 版本的具体代码如下。 怎么办呢? 也许可以学习它的 C/C 源码和学术文档中, 然后再开发一个 PhP程序 版本出来。 不过, 我要使用进程间通信, 在 PhP程序 具体代码如下里调用 C/C 版本的可执行文件。TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    下载源码解压后, 在有 C 开发库和编译环境的机器上直接 make ictclas 即可。 它的 Makefile 脚本有个错误, 执行测试的具体代码如下没有加上'。/', 当然不能像 Windows 下执行成功了。 但也不影响编译结果。TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    进行中文分词的 PhP程序 类就在下面了, 用 proc_open() 函数来执行分词程序, 并通过管道和其交互, 输入要进行分词的文本, 读取分词结果。TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

<?php
class NLP{
    private static $cmd_path;
 
    // 不以'/'结尾
    static function set_cmd_path($path){
        self::$cmd_path = $path;
    }
 
    private function cmd($str){
        $descriptorspec = array(
           0 => array("pipe", "r"),
           1 => array("pipe", "w"),
        );
        $cmd = self::$cmd_path . "/ictclas";
        $process = proc_open($cmd, $descriptorspec, $pipes);
 
        if (is_resource($process)) {
            $str = iconv('utf-8', 'gbk', $str);
            fwrite($pipes[0], $str);
            $output = stream_get_contents($pipes[1]);
 
            fclose($pipes[0]);
            fclose($pipes[1]);
 
            $return_value = proc_close($process);
        }
 
        /*
        $cmd = "printf '$input' | " . self::$cmd_path . "/ictclas";
        exec($cmd, $output, $ret);
        $output = join("\n", $output);
        */
 
        $output = trim($output);
        $output = iconv('gbk', 'utf-8', $output);
 
        return $output;
    }
 
    /**
     * 进行分词, 返回词语列表.www.mzdh.net
     */
    function tokenize($str){
        $tokens = array();
 
        $output = self::cmd($input);
        if($output){
            $ps = preg_split('/\s /', $output);
            foreach($ps as $p){
                list($seg, $tag) = explode('/', $p);
                $item = array(
                    'seg' => $seg,
                    'tag' => $tag,
                    );
                $tokens[] = $item;
            }
        }
 
        return $tokens;
    }
}
NLP::set_cmd_path(dirname(__FILE__));
?>


TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

使用起来很简单(确保 ICTCLAS 编译后的可执行文件和词典在当前目录):TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

<?php
require_once('NLP.php');
var_dump(NLP::tokenize('hello, World!'));
?>


TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

名站网址导航

用PhP程序改变图片的尺寸大小TvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

imagecopyresampledTvEAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,

标签:

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304416

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市