RMM分詞演算法

2021-06-22 21:04:24 字數 1317 閱讀 8373

//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.每個詞要盡...