検索
ホームページphp教程php手册PHP での中国語単語分割のためのシンプルなコード共有

PHP での中国語単語分割のためのシンプルなコード共有

Jun 13, 2016 pm 12:06 PM
phpいいえ中国語コードする共有分詞成し遂げる検索エンジン使用研究単純

もちろん、この記事は中国の検索エンジンについて研究することではなく、PHP を使用してオンサイトの検索エンジンを構築する方法を共有することを目的としています。 この記事はこの系の記事です。
私が使用している単語分割ツールは、中国科学院計算技術研究所の ICTCLAS のオープンソース バージョンです。 オープンソースの Bamboo もありますが、これについても後で調査します。
ICCTCLAS のアルゴリズムは広く普及しており、公開された学術文書があり、コンパイルが簡単で、ライブラリへの依存関係がほとんどないため、 ICTCLAS から始めるのが良い選択です。 ただし、現在提供されているのは C/C、Java、および C# バージョンのコードのみであり、PHP バージョンのコードはありません。 どうすればよいでしょうか? C/C ソース コードと学術文書を研究して、PHP バージョンを開発することができます。 ただし、プロセス間通信を使用して、PHP コードから C/C バージョンの実行可能ファイルを呼び出したいと考えています。
ソース コードをダウンロードして解凍した後、C 開発ライブラリとコンパイル環境を備えたマシン上で ictclas を直接作成します。 Makefile スクリプトにエラーがあり、テストを実行するコードに ' が追加されていません。 /' と表示されますが、もちろん Windows のように正常に実行することはできません。 ただし、コンパイル結果には影響しません。
中国語の単語分割の PHP クラスは以下のとおりです。 proc_open() 関数を使用して単語分割プログラムを実行し、パイプラインを通じて対話し、分割するテキストを入力して、単語分割結果を読み取ります。

コードをコピー コードは次のとおりです:


class NLP{
private static $cmd_path;
// '/' で終了しない
static function set_cmd_path($path){
self::$cmd_path = $path;
}
private function cmd($ str){
$descriptorspec = array(
0 =>array("pipe", "r"),
1 =>array("pipe", "w"),
);
$cmd = self::$cmd_path . "/ictclas";
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) 🎜>$str = iconv('utf-8', 'gbk', $str);
fwrite($pipes[0], $str);
$output = stream_get_contents($pipes[1]) ;
fclose($pipes[0]);
$return_value = proc_close($process);
/*
$ cmd = "printf '$input' | " . self::$cmd_path . "/ictclas";
exec($cmd, $output, $ret);出力);
*/
$output = trim($output);
$output = iconv('gbk', 'utf-8', $output); 🎜>}
/**
* 単語の分割を実行し、単語リストを返します。
*/
関数 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 でコンパイルされた実行可能ファイルと辞書が現在のディレクトリにあることを確認してください):



コードをコピーします

コードは次のとおりです。


require_once('NLP.php')
var_dump(NLP::tokenize('Hello, World!' ));
?>

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい