Fukuball\Jieba\Jieba::loadUserDict PHP Method

loadUserDict() public static method

Static method loadUserDict
public static loadUserDict ( string $f_name, array $options = [] ) : array
$f_name string # input f_name
$options array # other options
return array self::$trie
    public static function loadUserDict($f_name, $options = array())
    {
        array_push(self::$user_dictname, $f_name);
        $content = fopen($f_name, "r");
        while (($line = fgets($content)) !== false) {
            $explode_line = explode(" ", trim($line));
            $word = $explode_line[0];
            $freq = $explode_line[1];
            $tag = $explode_line[2];
            $freq = (double) $freq;
            self::$total += $freq;
            self::$FREQ[$word] = log($freq / self::$total);
            $l = mb_strlen($word, 'UTF-8');
            $word_c = array();
            for ($i = 0; $i < $l; $i++) {
                $c = mb_substr($word, $i, 1, 'UTF-8');
                array_push($word_c, $c);
            }
            $word_c_key = implode('.', $word_c);
            self::$trie->set($word_c_key, array("end" => ""));
        }
        fclose($content);
        return self::$trie;
    }

Usage Example

Exemplo n.º 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::loadUserDict