ホームページ  >  記事  >  バックエンド開発  >  PHP 単項単語分割アルゴリズム_PHP チュートリアル

PHP 単項単語分割アルゴリズム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:42:24833ブラウズ

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


/**
* 単項単語分割アルゴリズム
* 最初の文字の 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();
$spc = ' '//必要に応じてフィルタリングする文字を追加します$search = 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);
$ord = $i = $k = 0;// 0-空白 1-英語と記号 2-中国語
$annex = array();

while($ord = ord($str[$i]))
{
//1 バイト文字
if ($ord {
//空の文字列を削除します
if ($ord $i++;
$k++
}
//追加の中国語の大文字変換
if($ numpairs[$str[$i]] )) {
$annex[]=$numpairs[$str[$i]];
}
//前の文字が中国語の場合
if( $prechar == 2 ){
$ result[++$k] = $str[$i];
else {
$result[$k] .= $str[$i]
}
$i++}
else;バイト文字 (中国語)
{
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 = $array_merge ?付録) : $result ;
$unique ? array_unique($result) : $result ;



http://www.bkjia.com/PHPjc/320992.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320992.html

技術記事

次のようにコードをコピーします。 /** * 単項単語分割アルゴリズム * 最初の文字の ASCII コードが 192 以下の場合、UTF8 は 1 バイトのみを占有します。 * 最初の文字の ASCII コードの場合は、次の文字をエンコードします。 192 より大きく 224 より小さい場合、次の値が占められます...


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