1. 程式人生 > >SCWS 添加自定義詞典

SCWS 添加自定義詞典

分詞 scws

最近使用了SCWS進行中文分詞。有個問題就是添加自定義詞典,總結一下吧。

詞典格式的話

  # WORD TF IDF ATTR

學五 14.01 5.92 n

去這個網址可查:http://www.xunsearch.com/scws/demo/get_tfidf.php

自己寫的,把要查的詞放到txt中,然後批量查詢~

require_once __DIR__.‘/func/my_curl_function.php‘;
require_once __DIR__.‘/func/simple_html_dom.php‘;
$url=‘http://www.xunsearch.com/scws/demo/get_tfidf.php‘;
$header=array(
    "Referer:http://www.xunsearch.com/scws/demo/get_tfidf.php",
"Cookie:PHPSESSID=1fuk5j3ckb7n55s5j4cltk2sd3"
);
$f= fopen(‘tfidf.txt‘,‘r‘);
$i=0;
$html=new simple_html_dom();
while (!feof($f))
{
sleep(1);
  $contents = array();
    $contents = trim(fgets($f));
   if($contents=="")continue;
         //echo $contents;
    $data[‘data‘]=urlencode(trim($contents));
    $returndata=my_curl_post($url,$data,$header);
    //var_dump($returndata);
    //正則匹配出TF IDF
preg_match(‘/WORD=.*? TF=(.*?) IDF=(.*?)<br \/>/‘,$returndata,$ret);
$tf=$ret[1];
$idf=$ret[2];
echo "\n";
echo $contents."\t".$tf."\t".$idf."\tn\r\n";
//$html->load($returndata);
//$ps=$html->find(‘p‘);
//var_dump($ret);
file_put_contents("tfidf.out",$contents."\t".$tf."\t".$idf."\tn\r\n",FILE_APPEND);
}
fclose($f);


生成好自己的字典後就可以添加了

其實只要添加$so->add_dict(‘路徑‘,詞典);即可.

function scws_text($string)
{
$so = scws_new();
$so->set_charset(‘utf8‘);
$so->set_ignore(true);
$so->add_dict(‘/usr/local/scws/etc/dict.xdb‘,SCWS_XDICT_XDB);
$so->add_dict(‘/usr/local/scws/etc/dict.utf8.xdb‘,SCWS_XDICT_XDB);
$so->add_dict(‘/usr/local/scws/etc/mydict.txt‘,SCWS_XDICT_TXT);
$so->send_text($string);
$text ="";
while ($tmp = $so->get_result())
{
foreach($tmp as $key=>$value){
  //print_r($tmp);
 //$tmp .= $tmp;
$text .= $value[‘word‘]." ";
}
}
//print_r($text);
$so->close();
return $text;
}


添加上就可以使用咯

SCWS 添加自定義詞典