//rmm分詞演算法
class splitword
function __construct()
fclose($fp); //關閉詞庫檔案
}
//析放資源
function clear()
//設定源字串
function setsource($str)
//檢查字串是否不存在中文
function notgbk($str)
//rmm分詞演算法
function splitrmm($str="")
else
}else
else}}
return $this->resultstr;
} //對全中文本串進行逆向匹配方式分解
function runrmm($str)else
else
}$i = -1; break;
}//分析在最小詞以上時的情況
if($i>=$this->maxlen) $maxpos = $this->maxlen;
else $maxpos = $i;
$ismatch = false;
for($j=$maxpos;$j>=0;$j=$j-2)}}
$rsstr = $this->otherword($wordarray);
return $rsstr;
}
function otherword($wordarray)
//返回本段分詞結果
$rsstr = preg_replace("/^".$spc."/","、",$rsstr);
return $rsstr;
}
//判斷詞典裡是否存在某個詞
function isword($okword)
//整理字串(對標點符號,中英文混排等初步處理)
function updatestr($str)else if(preg_match("/[^0-9a-za-z@\.%#:\\&_-]/",$str[$i]))
else
}else
else
else }}
}else
else
$i++;}}
}return $okstr;
}}// 呼叫
$split=new splitword();
echo $split->splitrmm("php搜尋技術");
// 注意 ppldic.csv 詞典的格式是 詞語+空格+編號+n
以前用C 實現的RMM分詞型別
中文分詞中用到的rmm 逆向最大匹配演算法 演算法。不說那麼多了,我不是研究演算法的,總之rmm這種基於詞典的分詞演算法,準確率比較高就是了。我實現的這個方法,會把非詞典的內容,全部拆分成單字。寫了很多年了,忘記了很多,直接貼 include include include include incl...
盤古分詞 多元分詞演算法
中文分詞按照分詞粒度來分,分成 一元分詞,二元分詞,多元分詞和精確分詞等型別。一元分詞就是最簡單的分詞,將所有的中文字元按照單字形式輸出。二元分詞按雙字形式輸出。多元分詞則是將一句話中可能的單詞組合按照一定規則輸出,允許輸出的詞有重疊。精確分詞則是將一句話中最準確的單詞組合輸出,不允許輸出的詞有重疊...
mmseg分詞演算法
不想為了面試而面試,找實習的事還是順其自然,每天刷刷題就行,這樣整天都在看水題效率極低,也水不了幾題。還是得學點有用的東西 9 8日目標 搞清楚mmseg演算法,分別用python和c 實現。mmseg演算法簡介 其關鍵是 1.匹配3個詞得到的片語長度盡量要長 2.每個詞也要盡可能長 3.每個詞要盡...