私は以前に dedecms の単語分割機能を使用したことがありますが、テスト後もまだ理想的ではありませんでした。その後、いくつかの処理を行った後、結果は許容範囲内でした。今日、この単語分割方法をもう一度見て、みんなに見せました。
本当http://www.bkjia.com/PHPjc/444764.html技術記事class NLP{
private static $cmd_path;
// は '/' で終わりません
static function set_cmd_path($path){
self::$cmd_path = $path;
プライベート関数 cmd($str){
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
); $ cmd = self::$cmd_path . "/ictclas";
$process = proc_open($cmd, $descriptorspec, $pipes); {
$str = iconv('utf-8) ' , 'gbk', $str);
$output = stream_get_contents($pipes[0]);パイプ [1]);
$return_value = proc_close($process);
/*
$cmd = "printf '$input' | " ./ictclas"; , $output, $ret);
$output = join("n", $output);
$output = トリム($output); , $output);
return $output;
/**
* 単語の分割を実行し、単語リストを返します。*/
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__));
?>
使い方は非常に簡単です (ICTCLAS でコンパイルされた実行可能ファイルと辞書が現在のディレクトリにあることを確認してください):
コードをコピーします。次のように:
< ;?php
require_once('NLP.php');
var_dump(NLP::tokenize('Hello, World!'));
?>
中国語の単語の分割のための PHP クラスは次のとおりです。以下では、proc_open () 関数を使用して単語分割プログラムを実行し、パイプラインを通じて対話し、分割するテキストを入力して、単語分割結果を読み取ります。
http://www.bkjia.com/PHPjc/444764.html
www.bkjia.com