ホームページ >バックエンド開発 >PHPチュートリアル >単語分割アルゴリズム php 単項単語分割アルゴリズム
コードをコピー コードは次のとおりです:
/**
* 単項単語分割アルゴリズム
* 最初の文字の ASCII コードが 192 以下の場合、UTF8 は次の文字をエンコードします。
* 最初の文字の ASCII コードが 192 より大きい場合、および224 未満の場合は 2 バイトを占有します。それ以外の場合は 3 文字を占有します。 '%ft%' mysql 全文検索関連の設定を表示します
*
* @access global
* @param string $str
* @param boolean $unique 重複値を削除するかどうか
* @param boolean $merge追加の値をマージするかどうか
* @return array
*/
function seg_word($str,$unique=false,$merge=true)
{
$str = trim(strip_tags) ($str ));
$strlen = strlen($str);
if($strlen == 0) return array();
//必要に応じてフィルタリングする文字を追加します= array( ',', '/', '\', '.', ';', ':', ''', '!', '~','"', '`', '^' 、「( 」、「)」、「?」、「-」、「t」、「n」、「」、「<」、「>」、「r」、「rn」、「$」 、「&」、「%」、「#」、「@」、「+」、「=」、「{」、「}」、「[」、「]」、「)」、「(」、「 .'、'. '、'、'! '、';'、'"'、'"'、'''、'''、'、'、'《'、'》' , '-', '…', '【', '】',':');
$numpairs = array('1'=>'一','2'=>'二','3 '=>'3'、'4'=>'4'、'5'=>'5'、'6'=>'6'、'7'=>'7'、'8 '=>'8','9'=>'9','0'=>'ゼロ');
$str = alab_num($str);
$str = str_replace($search,' ' ,$str);
$ord = $i = $k = 0;// 0-空白 1-英語と記号 2-中国語
$annex = array( );
while($ord = ord($str[$i]))
{
//1 バイト文字
if ($ord {
// 空の文字列を削除します
if($ord < ; 33) {
$i++;
$k++;
//追加の中国語の大文字変換
if($numpairs[$ str[$i]]) { $annex[]=$numpairs[$str[$i]];
}
//前の文字が中国語の場合
if( $prechar == 2 ){
$result[+ +$k] = $str[ $i];
}
$result[$k] .= $str[$i];
$prechar = 1;
else / 2-3 バイト文字 (中国語) )
{
if($ord < 0xE0)
$step = 2;
else
$step = 3;
$c = substr($str,$i,$step) ; key = array_search($c,$numpairs)){
$annex[] = $key;
}
if ($prechar != 0) {
$result[++$k ] = $c}
else; {
$result[$k] .= $c;
$prechar = 2;
}
}
$result = $merge($result,$annex) : $result ;
$unique を返す ($result) : $result ;
上記は、単語分割アルゴリズムの内容を含む、PHP 単項単語分割アルゴリズムを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。