Fukuball\Jieba\Jieba::cut PHP Метод

cut() публичный статический Метод

Static method cut
public static cut ( string $sentence, boolean $cut_all = false, array $options = [] ) : array
$sentence string # input sentence
$cut_all boolean # cut_all or not
$options array # other options
Результат array $seg_list
    public static function cut($sentence, $cut_all = false, $options = array())
    {
        $defaults = array('mode' => 'default');
        $options = array_merge($defaults, $options);
        $seg_list = array();
        $re_han_pattern = '([\\x{4E00}-\\x{9FA5}]+)';
        $re_skip_pattern = '([a-zA-Z0-9+#\\r\\n]+)';
        preg_match_all('/(' . $re_han_pattern . '|' . $re_skip_pattern . ')/u', $sentence, $matches, PREG_PATTERN_ORDER);
        $blocks = $matches[0];
        foreach ($blocks as $blk) {
            if (preg_match('/' . $re_han_pattern . '/u', $blk)) {
                if ($cut_all) {
                    $words = Jieba::__cutAll($blk);
                } else {
                    $words = Jieba::__cutDAG($blk);
                }
                foreach ($words as $word) {
                    array_push($seg_list, $word);
                }
            } else {
                array_push($seg_list, $blk);
            }
            // end else (preg_match('/'.$re_han_pattern.'/u', $blk))
        }
        // end foreach ($blocks as $blk)
        return $seg_list;
    }

Usage Example

Пример #1
0
 public function testLoadUserDict()
 {
     $case_array = array("李小福", "是", "创新办", "主任", "也", "是", "云计算", "方面", "的", "专家");
     Jieba::loadUserDict(dirname(dirname(__FILE__)) . '/src/dict/user_dict.txt');
     $seg_list = Jieba::cut("李小福是创新办主任也是云计算方面的专家");
     $this->assertEquals($case_array, $seg_list);
 }
All Usage Examples Of Fukuball\Jieba\Jieba::cut