一个简单的中文分词解决方案

中文分词是搜索引擎的关键技术之一,也是一个难点。我这里利用别人做好的一个分词工具api来实现中文分词。不敢独享:

1. 准备环境

  1. WAMP环境
  2. CI框架
  3. 中文分词api http://api.pullword.com/

2. Word_split.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Word_split extends CI_Controller {

    public function index()
    {

    }

    public function split($start = 1, $end = 1)
    {
        $sku = '00000001';
        for($i = $start; $i <= $end; $i++){
            $sku = '00000000' . $i;;
            $sku = substr($sku, -8);
            //echo $sku . '<br>';
            $this->split_word_save($sku);
        }
    }

    private function split_word_save($sku = '00000001')
    {
        $this->load->model('word_split_model');
        $desc = $this->word_split_model->get_desc($sku);

        if($desc == NULL){
            return;
        }

        $keyword = $desc['f_desc_chn'];
        if($keyword != NULL){
            $keyword = urlencode($keyword);
            $url = "http://api.pullword.com/get.php?source={$keyword}&param1=0&param2=0";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $words = curl_exec($ch);
            $words = trim($words);
            $words = str_replace("\r\n", ' ', $words);
            $this->word_split_model->save_keyword($sku, $words);
        }
    }

}

/* End of file Word_split.php */
/* Location: ./application/controllers/Word_split.php */

3. 保存到数据库

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Word_split_model extends CI_Model {

    public function save_keyword($sku, $keyword)
    {
        $this->db->set('f_keyword', $keyword);
        $this->db->where('f_sku_code', $sku);
        $this->db->update('t_pd_product');
    }

    public function get_desc($sku)
    {
        $this->db->select('f_sku_code, f_desc_chn, f_desc_eng');
        $this->db->where('f_sku_code', $sku);
        $query = $this->db->get('t_pd_product');
        return $query->row_array();
    }

}

/* End of file Word_split_model.php */
/* Location: ./application/models/Word_split_model.php */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值