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!' ));
?>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
